From d847364cb3db8ce0c97e3881242b5e0e33fc1920 Mon Sep 17 00:00:00 2001 From: Richard Kasongo Date: Wed, 17 Jul 2024 09:58:05 -0500 Subject: [PATCH 001/418] Identify json files available in directory Allow user to select the data they want to analyze and get response on their data being loaded. --- FWCore/Services/web/index.html | 13 + FWCore/Services/web/server.py | 22 +- FWCore/Services/web/transitions.css | 39 ++ FWCore/Services/web/transitions.js | 872 +++++++++++++++------------- 4 files changed, 535 insertions(+), 411 deletions(-) diff --git a/FWCore/Services/web/index.html b/FWCore/Services/web/index.html index d23e976785c93..10ece21358d2d 100644 --- a/FWCore/Services/web/index.html +++ b/FWCore/Services/web/index.html @@ -30,6 +30,17 @@ +

Please select a file

+ +
+ + +
@@ -49,9 +60,11 @@

<CTRL>+scroll to zoom

+ + diff --git a/FWCore/Services/web/server.py b/FWCore/Services/web/server.py index b0af978d575a4..fa39416bbb7d5 100644 --- a/FWCore/Services/web/server.py +++ b/FWCore/Services/web/server.py @@ -1,20 +1,26 @@ import os -from http.server import HTTPServer, BaseHTTPRequestHandler +from http.server import HTTPServer, SimpleHTTPRequestHandler import mimetypes import argparse +import json -class Serv(BaseHTTPRequestHandler): +class Serv(SimpleHTTPRequestHandler): def do_GET(self): # Default route to serve the index.html file if self.path == '/': self.path = '/index.html' - # Serve the uploaded JavaScript file if requested - if self.path == '/modules_data.json': - self.path = '/modules_data.json' + elif self.path == '/list-json': + self.send_response(200) + self.send_header('Content-type', 'application/json') + self.end_headers() + json_files = [f for f in os.listdir('.') if f.endswith('.json')] + self.wfile.write(json.dumps(json_files).encode()) + return - try: - file_path = self.path[1:] # Remove leading '/' to get the file path + # Serve the requested file (JSON or other static files) + file_path = self.path[1:] # Remove leading '/' to get the file path + try: # Read the requested file with open(file_path, 'rb') as file: file_to_open = file.read() @@ -61,3 +67,5 @@ def run(server_class=HTTPServer, handler_class=Serv, port=65432): # Start the server with the specified port run(port=args.port) + + diff --git a/FWCore/Services/web/transitions.css b/FWCore/Services/web/transitions.css index b1799fc84dd8d..bb07aea62f3a1 100644 --- a/FWCore/Services/web/transitions.css +++ b/FWCore/Services/web/transitions.css @@ -83,3 +83,42 @@ body { grid-column: 1/1; grid-row: 9; } +#jsonDropdownDiv { + margin-bottom: 20px; +} + +#loadingSpinner { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + text-align: center; + z-index: 9999; /* Make sure it's on top of other elements */ + background-color: rgba(255, 255, 255, 0.8); /* Optional: background overlay */ + padding: 20px; + border-radius: 10px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +} + +.spinner { + border: 4px solid rgba(0, 0, 0, 0.1); + border-radius: 50%; + border-top: 4px solid #3498db; + width: 40px; + height: 40px; + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +#selectFilePrompt { + font-size: 16px; + color: #333; + margin: 10px 0; + text-align: center; +} + + diff --git a/FWCore/Services/web/transitions.js b/FWCore/Services/web/transitions.js index 4b9ac5a9b80ec..5c633c0ce3ed2 100644 --- a/FWCore/Services/web/transitions.js +++ b/FWCore/Services/web/transitions.js @@ -90,477 +90,541 @@ const activityToColor = ["#FF5F1F", "#CC7722", null, "#FF4433", "#8B4513"]; return data; }); */ window.onload = async() => { - - const response = await fetch("modules_data.json"); - const data = await response.json(); - const left = document.querySelector('.name_div'); - const div = document.querySelector('.graph_div'); - const bottom = document.querySelector('.time_div'); - const graph = document.getElementById('graph_view'); - const graph_context = graph.getContext('2d'); - const name_view = document.getElementById('name_view'); - const name_context = name_view.getContext('2d'); - const time_view = document.getElementById('time_view'); - const time_context = time_view.getContext('2d'); - const selected_view = document.getElementById('selected_paragraph'); - const zoom_in_button = document.getElementById('zoom_in'); - const zoom_out_button = document.getElementById('zoom_out'); - let selected_item = null; - selected_view.innerHTML = "Selected: [click on box in graph]"; - let mouse_is_down = false; - - let rows = 0; - for( let grouping of data.transitions ) { - for( let slot in grouping.slots ) { - ++rows; + // Select the dropdown element + const jsonDropdown = document.getElementById('jsonDropdown'); + // Function to fetch data based on selected file + async function fetchData(file) { + showLoadingSpinner(); // Show loading spinner + try { + const response = await fetch(file); // Fetch the selected JSON file + const data = await response.json(); // Parse JSON data from the response + processData(data); // Call the function to process the fetched data + } catch (error) { + console.error('Error fetching data:', error); + }finally { + hideLoadingSpinner(); // Hide loading spinner } } - - const max_graph_height = kRowHeight*rows; - //same scale as window coordinates - let graph_vertical_offset = 0.; - let minVisibleTime = 0.; - let timeZoomFactor = 1.0; - - function maxTime() { - let maxTime = 0; - for( let grouping of data.transitions) { - for( let slot of grouping.slots) { - for (let transition of slot) { - if (maxTime < transition.finish) { - maxTime = transition.finish; - } - } + // Function to process the fetched data + function processData(data) { + const left = document.querySelector('.name_div'); + const div = document.querySelector('.graph_div'); + const bottom = document.querySelector('.time_div'); + const graph = document.getElementById('graph_view'); + const graph_context = graph.getContext('2d'); + const name_view = document.getElementById('name_view'); + const name_context = name_view.getContext('2d'); + const time_view = document.getElementById('time_view'); + const time_context = time_view.getContext('2d'); + const selected_view = document.getElementById('selected_paragraph'); + const zoom_in_button = document.getElementById('zoom_in'); + const zoom_out_button = document.getElementById('zoom_out'); + let selected_item = null; + selected_view.innerHTML = "Selected: [click on box in graph]"; + let mouse_is_down = false; + + let rows = 0; + for( let grouping of data.transitions ) { + for( let slot in grouping.slots ) { + ++rows; } } + + const max_graph_height = kRowHeight*rows; - maxTime = Math.ceil(maxTime); + //same scale as window coordinates + let graph_vertical_offset = 0.; + let minVisibleTime = 0.; + let timeZoomFactor = 1.0; - const digits = maxTime.toString().length; - const digitsToZeroOut = digits -2; - if (digitsToZeroOut > 0) { - for(let i = 0; i < digitsToZeroOut; ++i) { - maxTime /= 10; + function maxTime() { + let maxTime = 0; + for( let grouping of data.transitions) { + for( let slot of grouping.slots) { + for (let transition of slot) { + if (maxTime < transition.finish) { + maxTime = transition.finish; + } + } + } } - maxTime *=10; - maxTime +=9; - for( let i = 1; i < digitsToZeroOut; ++i) { + + maxTime = Math.ceil(maxTime); + + const digits = maxTime.toString().length; + const digitsToZeroOut = digits -2; + if (digitsToZeroOut > 0) { + for(let i = 0; i < digitsToZeroOut; ++i) { + maxTime /= 10; + } maxTime *=10; + maxTime +=9; + for( let i = 1; i < digitsToZeroOut; ++i) { + maxTime *=10; + } + maxTime = Math.ceil(maxTime); } - maxTime = Math.ceil(maxTime); + return maxTime; } - return maxTime; - } - - const kEndTime = maxTime(); - - function drawNames() { - name_context.setTransform(1,0,0,1,0,0); - name_context.fillStyle = "#AACD6E" - name_context.fillRect(0,0,name_view.width,name_view.height); - name_context.scale(1,1) - name_context.fillStyle = "black" - name_context.strokeStyle = "black" - name_context.font = '9pt monospace'; //context.font = "50px"; - let offset = kRowHeight/2 + graph_vertical_offset; - for( let grouping of data.transitions ) { - name_context.fillText(grouping.name, 0, offset); - offset += grouping.slots.length*kRowHeight; + const kEndTime = maxTime(); + + function drawNames() { + name_context.setTransform(1,0,0,1,0,0); + name_context.fillStyle = "#AACD6E" + name_context.fillRect(0,0,name_view.width,name_view.height); + name_context.scale(1,1) + name_context.fillStyle = "black" + name_context.strokeStyle = "black" + name_context.font = '9pt monospace'; //context.font = "50px"; + + let offset = kRowHeight/2 + graph_vertical_offset; + for( let grouping of data.transitions ) { + name_context.fillText(grouping.name, 0, offset); + offset += grouping.slots.length*kRowHeight; + } } - } - - function timeStepPower() { - let timeDecade = 0; - let nSteps = time_view.width/kInitPixelsPerSecond/timeZoomFactor; - while (nSteps < 3) { - --timeDecade; - nSteps *=10.; - } - while (nSteps > 20) { - ++timeDecade; - nSteps /=10.; - } - return timeDecade; - } - - function drawTime() { - time_context.save() - time_context.setTransform(1,0,0,1,0,0); - time_context.fillStyle = "#CD6E6E"; - time_context.fillRect(0,0,time_view.width,time_view.height); - time_context.restore(); - time_context.scale(1,1); - const end = kEndTime; - const timePower = timeStepPower(); - const stepSize = Math.pow(10., timePower); - let fixedValue = timePower; - if (fixedValue < 0 ) { - fixedValue *= -1; + + function timeStepPower() { + let timeDecade = 0; + let nSteps = time_view.width/kInitPixelsPerSecond/timeZoomFactor; + while (nSteps < 3) { + --timeDecade; + nSteps *=10.; + } + while (nSteps > 20) { + ++timeDecade; + nSteps /=10.; + } + return timeDecade; } - const tickDistance = stepSize/10.*kInitPixelsPerSecond*timeZoomFactor; - const bigTickDistance = stepSize*kInitPixelsPerSecond*timeZoomFactor; - for( let bigTick = 0; bigTick < end; bigTick +=stepSize) { - let t = (bigTick-minVisibleTime)*kInitPixelsPerSecond*timeZoomFactor; - if ((t + bigTickDistance) < 0 ) continue; - if (t > time_view.width) break; - graph_context.strokeStyle = "black"; - time_context.beginPath() - time_context.moveTo(t,0) - time_context.lineTo(t, time_view.height/2); - time_context.stroke() - const sec = bigTick.toFixed(fixedValue); + function drawTime() { + time_context.save() + time_context.setTransform(1,0,0,1,0,0); + time_context.fillStyle = "#CD6E6E"; + time_context.fillRect(0,0,time_view.width,time_view.height); + time_context.restore(); + time_context.scale(1,1); + const end = kEndTime; + const timePower = timeStepPower(); + const stepSize = Math.pow(10., timePower); + let fixedValue = timePower; + if (fixedValue < 0 ) { + fixedValue *= -1; + } - time_context.fillText(sec.toString()+"s", t, time_view.height*0.75) - for(let tick = 1; tick < 10; ++tick) { - let pos = t+tick*tickDistance; - time_context.beginPath(); - time_context.moveTo(pos,0); - time_context.lineTo(pos, time_view.height/4); - time_context.stroke(); + const tickDistance = stepSize/10.*kInitPixelsPerSecond*timeZoomFactor; + const bigTickDistance = stepSize*kInitPixelsPerSecond*timeZoomFactor; + for( let bigTick = 0; bigTick < end; bigTick +=stepSize) { + let t = (bigTick-minVisibleTime)*kInitPixelsPerSecond*timeZoomFactor; + if ((t + bigTickDistance) < 0 ) continue; + if (t > time_view.width) break; + graph_context.strokeStyle = "black"; + time_context.beginPath() + time_context.moveTo(t,0) + time_context.lineTo(t, time_view.height/2); + time_context.stroke() + const sec = bigTick.toFixed(fixedValue); + + time_context.fillText(sec.toString()+"s", t, time_view.height*0.75) + for(let tick = 1; tick < 10; ++tick) { + let pos = t+tick*tickDistance; + time_context.beginPath(); + time_context.moveTo(pos,0); + time_context.lineTo(pos, time_view.height/4); + time_context.stroke(); + } } } - } - - function colorToUse(transition) { - if (!transition.isSrc) { - if ( ('act' in transition) && transition.act != 2) { - return activityToColor[transition.act]; - } else { - return typeToColor[transition.type+kTypeOffset]; + + function colorToUse(transition) { + if (!transition.isSrc) { + if ( ('act' in transition) && transition.act != 2) { + return activityToColor[transition.act]; + } else { + return typeToColor[transition.type+kTypeOffset]; + } } + return kSourceColor; } - return kSourceColor; - } - - function drawGraph() { - const scale = kInitPixelsPerSecond * timeZoomFactor; - const maxVisibleTime = time_view.width/scale+minVisibleTime; - //console.log(minVisibleTime); - graph_context.save(); - graph_context.setTransform(1,0,0,1,0,0); - graph_context.fillStyle = "#D5D6C6" - graph_context.fillRect(0,0,graph.width,graph.height); - graph_context.restore(); - graph_context.strokeStyle = "black"; - graph_context.scale(1,1); - - let offset = graph_vertical_offset; - for( let grouping of data.transitions) { - if (offset > graph.height) break; - for( let slot of grouping.slots ) { + function drawGraph() { + const scale = kInitPixelsPerSecond * timeZoomFactor; + const maxVisibleTime = time_view.width/scale+minVisibleTime; + //console.log(minVisibleTime); + graph_context.save(); + graph_context.setTransform(1,0,0,1,0,0); + graph_context.fillStyle = "#D5D6C6" + graph_context.fillRect(0,0,graph.width,graph.height); + graph_context.restore(); + + graph_context.strokeStyle = "black"; + graph_context.scale(1,1); + + let offset = graph_vertical_offset; + for( let grouping of data.transitions) { if (offset > graph.height) break; - if (offset+kBoxHeight >= 0) { - for( let transition of slot) { - if (maxVisibleTime < transition.start) { - break; - } - if (minVisibleTime > transition.finish) { - continue; - } - if(transition == selected_item) { - graph_context.fillStyle = "white"; - } else { - graph_context.fillStyle = colorToUse(transition); + for( let slot of grouping.slots ) { + if (offset > graph.height) break; + if (offset+kBoxHeight >= 0) { + for( let transition of slot) { + if (maxVisibleTime < transition.start) { + break; + } + if (minVisibleTime > transition.finish) { + continue; + } + if(transition == selected_item) { + graph_context.fillStyle = "white"; + } else { + graph_context.fillStyle = colorToUse(transition); + } + graph_context.fillRect(scale*(transition.start-minVisibleTime), offset, scale*(transition.finish-transition.start), kBoxHeight); } - graph_context.fillRect(scale*(transition.start-minVisibleTime), offset, scale*(transition.finish-transition.start), kBoxHeight); } + offset += kRowHeight; } - offset += kRowHeight; } + drawNames(); + drawTime(); + } - drawNames(); - drawTime(); + graph.width = div.clientWidth; + const kInitPixelsPerSecond = graph.width/kEndTime; + const max_graph_width = graph.width; - } - graph.width = div.clientWidth; - const kInitPixelsPerSecond = graph.width/kEndTime; - const max_graph_width = graph.width; - - graph.height = div.clientHeight - name_view.width = left.clientWidth - name_view.height = left.clientHeight - time_view.width = bottom.clientWidth - time_view.height = bottom.clientHeight - drawGraph() - - let graph_isDragging = false; - let graph_mouseDown = false; - let graph_mouseDownPosition = {x:0, y:0}; - let graph_dragStartPosition = { x: 0, y: 0 }; - - let time_isDragging = false; - let time_dragStartPosition = 0; - - function graph_translate(xDiff, yDiff) { - let original = minVisibleTime; - minVisibleTime -= xDiff/kInitPixelsPerSecond/timeZoomFactor; - //console.log(xDiff, original, minVisibleTime); - const timeEnd = (max_graph_width)/kInitPixelsPerSecond/timeZoomFactor+minVisibleTime; - if (timeEnd > kEndTime) { - minVisibleTime = kEndTime - max_graph_width/kInitPixelsPerSecond/timeZoomFactor; - } - if (minVisibleTime < 0) { - minVisibleTime = 0; + graph.height = div.clientHeight + name_view.width = left.clientWidth + name_view.height = left.clientHeight + time_view.width = bottom.clientWidth + time_view.height = bottom.clientHeight + drawGraph() + + let graph_isDragging = false; + let graph_mouseDown = false; + let graph_mouseDownPosition = {x:0, y:0}; + let graph_dragStartPosition = { x: 0, y: 0 }; + + let time_isDragging = false; + let time_dragStartPosition = 0; + + function graph_translate(xDiff, yDiff) { + let original = minVisibleTime; + minVisibleTime -= xDiff/kInitPixelsPerSecond/timeZoomFactor; + //console.log(xDiff, original, minVisibleTime); + const timeEnd = (max_graph_width)/kInitPixelsPerSecond/timeZoomFactor+minVisibleTime; + if (timeEnd > kEndTime) { + minVisibleTime = kEndTime - max_graph_width/kInitPixelsPerSecond/timeZoomFactor; + } + if (minVisibleTime < 0) { + minVisibleTime = 0; + } + original = graph_vertical_offset; + graph_vertical_offset += yDiff; + if (graph_vertical_offset < -max_graph_height) { + graph_vertical_offset = -max_graph_height; + } + if (graph_vertical_offset > 0) { + graph_vertical_offset = 0; + } } - original = graph_vertical_offset; - graph_vertical_offset += yDiff; - if (graph_vertical_offset < -max_graph_height) { - graph_vertical_offset = -max_graph_height; + + function getTransformedPoint(x, y) { + const originalPoint = new DOMPoint(x, y); + return graph_context.getTransform().invertSelf().transformPoint(originalPoint); } - if (graph_vertical_offset > 0) { - graph_vertical_offset = 0; + + function graph_onMouseDown(event) { + graph_mouseDown = true; + graph_mouseDownPosition = {x:event.offsetX, y:event.offsetY}; + graph_dragStartPosition = getTransformedPoint(event.offsetX, event.offsetY); } - } - - function getTransformedPoint(x, y) { - const originalPoint = new DOMPoint(x, y); - return graph_context.getTransform().invertSelf().transformPoint(originalPoint); - } - - function graph_onMouseDown(event) { - graph_mouseDown = true; - graph_mouseDownPosition = {x:event.offsetX, y:event.offsetY}; - graph_dragStartPosition = getTransformedPoint(event.offsetX, event.offsetY); - } - - function graph_onMouseMove(event) { - let currentTransformedCursor = getTransformedPoint(event.offsetX, event.offsetY); - if (graph_mouseDown) { - if (Math.abs(graph_mouseDownPosition.x-event.offsetX)> 5 || - Math.abs(graph_mouseDownPosition.y-event.offsetY)> 5) { - graph_isDragging = true; + function graph_onMouseMove(event) { + let currentTransformedCursor = getTransformedPoint(event.offsetX, event.offsetY); + + if (graph_mouseDown) { + if (Math.abs(graph_mouseDownPosition.x-event.offsetX)> 5 || + Math.abs(graph_mouseDownPosition.y-event.offsetY)> 5) { + graph_isDragging = true; + } + } + if (graph_isDragging) { + graph_translate(currentTransformedCursor.x - graph_dragStartPosition.x, currentTransformedCursor.y - graph_dragStartPosition.y); + graph_dragStartPosition.x = currentTransformedCursor.x; + graph_dragStartPosition.y = currentTransformedCursor.y; + drawGraph(); } } - if (graph_isDragging) { - graph_translate(currentTransformedCursor.x - graph_dragStartPosition.x, currentTransformedCursor.y - graph_dragStartPosition.y); - graph_dragStartPosition.x = currentTransformedCursor.x; - graph_dragStartPosition.y = currentTransformedCursor.y; - drawGraph(); - } - } - - function moduleName(id) { - if (id ==0) { - return "source"; + + function moduleName(id) { + if (id ==0) { + return "source"; + } + return ""; } - return ""; - } - - function doUnselection() { - selected_view.innerHTML = "Selected: [click on box in graph]"; - selected_item = null; - } - - function moduleIdToName(id) { - if (id < 0) { - return data.esModules[-1*id]; + + function doUnselection() { + selected_view.innerHTML = "Selected: [click on box in graph]"; + selected_item = null; } - return data.modules[id]; - } - - function duration(t) { - if (t < 0.001) { - return (t*1000000).toFixed()+"us"; + + function moduleIdToName(id) { + if (id < 0) { + return data.esModules[-1*id]; + } + return data.modules[id]; } - if (t < 0.1) { - return (t*1000).toFixed(3)+"ms"; + + function duration(t) { + if (t < 0.001) { + return (t*1000000).toFixed()+"us"; + } + if (t < 0.1) { + return (t*1000).toFixed(3)+"ms"; + } + return t.toFixed(6)+"s"; } - return t.toFixed(6)+"s"; - } - - function updateSelectedView(item) { - if ('isSrc' in item) { - if (item.isSrc) { - if(item.mod) { - selected_view.innerHTML ="Selected: source reading data product: for module "+item.mod+" "+moduleIdToName(item.mod)+ " while "+activityToName[item.act]+" "+typeToName[item.type+kTypeOffset] +" start: "+item.start.toFixed(6)+"s finish: "+item.finish.toFixed(6)+"s duration: "+duration(item.finish-item.start); + + function updateSelectedView(item) { + if ('isSrc' in item) { + if (item.isSrc) { + if(item.mod) { + selected_view.innerHTML ="Selected: source reading data product: for module "+item.mod+" "+moduleIdToName(item.mod)+ " while "+activityToName[item.act]+" "+typeToName[item.type+kTypeOffset] +" start: "+item.start.toFixed(6)+"s finish: "+item.finish.toFixed(6)+"s duration: "+duration(item.finish-item.start); + } else { + selected_view.innerHTML = "Selected: source "+typeToName[item.type+kTypeOffset]+" id: "+item.id+" run: "+item.sync[0] + +" lumi: "+item.sync[1]+ " event: "+item.sync[2]+" start: "+item.start.toFixed(6)+"s finish:"+item.finish.toFixed(6)+"s duration: "+duration(item.finish-item.start); + } } else { - selected_view.innerHTML = "Selected: source "+typeToName[item.type+kTypeOffset]+" id: "+item.id+" run: "+item.sync[0] + selected_view.innerHTML = "Selected: "+typeToName[item.type+kTypeOffset]+" id: "+item.id+" run: "+item.sync[0] +" lumi: "+item.sync[1]+ " event: "+item.sync[2]+" start: "+item.start.toFixed(6)+"s finish:"+item.finish.toFixed(6)+"s duration: "+duration(item.finish-item.start); } } else { - selected_view.innerHTML = "Selected: "+typeToName[item.type+kTypeOffset]+" id: "+item.id+" run: "+item.sync[0] - +" lumi: "+item.sync[1]+ " event: "+item.sync[2]+" start: "+item.start.toFixed(6)+"s finish:"+item.finish.toFixed(6)+"s duration: "+duration(item.finish-item.start); - } - } else { - let transform = ''; - if (item.call != 0 && item.mod > 0) { - transform = ' transform ' + let transform = ''; + if (item.call != 0 && item.mod > 0) { + transform = ' transform ' + } + selected_view.innerHTML ="Selected: module : "+item.mod+" "+moduleIdToName(item.mod)+ " while "+activityToName[item.act]+transform+" "+typeToName[item.type+kTypeOffset] +" start: "+item.start.toFixed(6)+"s finish: "+item.finish.toFixed(6)+"s duration: "+duration(item.finish-item.start); } - selected_view.innerHTML ="Selected: module : "+item.mod+" "+moduleIdToName(item.mod)+ " while "+activityToName[item.act]+transform+" "+typeToName[item.type+kTypeOffset] +" start: "+item.start.toFixed(6)+"s finish: "+item.finish.toFixed(6)+"s duration: "+duration(item.finish-item.start); } - } - function doSelection(items, x) { - let time = x/kInitPixelsPerSecond/timeZoomFactor+minVisibleTime; - //console.log(time); - if( time < 0 || time > kEndTime) { - doUnselection(); + function doSelection(items, x) { + let time = x/kInitPixelsPerSecond/timeZoomFactor+minVisibleTime; + //console.log(time); + if( time < 0 || time > kEndTime) { + doUnselection(); + drawGraph(); + return; + } + selected_item = null; + for( let item of items) { + if (time < item.start) { + break; + } + if (time > item.start && time < item.finish) { + selected_item = item; + if ( overlappingTransitions.includes(selected_item.type)) { + continue; + } else { + break; + } + } + } + if (selected_item) { + updateSelectedView(selected_item); + } else { + doUnselection(); + } drawGraph(); - return; } - selected_item = null; - for( let item of items) { - if (time < item.start) { - break; + + function graph_onMouseUp(event) { + if (graph_mouseDown && ! graph_isDragging) { + //trying to select + const selectionPoint = getTransformedPoint(event.offsetX, event.offsetY); + const vertIndex = Math.floor((selectionPoint.y-graph_vertical_offset)/kRowHeight); + + let presentIndex = 0; + let container = null; + outer: for(let grouping of data.transitions) { + for(let slot of grouping.slots) { + if (presentIndex == vertIndex) { + container = slot; + break outer; + } + ++presentIndex; + } } - if (time > item.start && time < item.finish) { - selected_item = item; - if ( overlappingTransitions.includes(selected_item.type)) { - continue; + if (!container) { + doUnselection(); + drawGraph(); } else { - break; + doSelection(container, selectionPoint.x); } } + graph_isDragging = false; + graph_mouseDown = false; } - if (selected_item) { - updateSelectedView(selected_item); - } else { - doUnselection(); + + function graph_onMouseOut() { + graph_isDragging = false + graph_mouseDown = false; } - drawGraph(); - } - - function graph_onMouseUp(event) { - if (graph_mouseDown && ! graph_isDragging) { - //trying to select - const selectionPoint = getTransformedPoint(event.offsetX, event.offsetY); - const vertIndex = Math.floor((selectionPoint.y-graph_vertical_offset)/kRowHeight); - - let presentIndex = 0; - let container = null; - outer: for(let grouping of data.transitions) { - for(let slot of grouping.slots) { - if (presentIndex == vertIndex) { - container = slot; - break outer; - } - ++presentIndex; + function graph_onWheel(event) { + if (event.ctrlKey) { + let currentTransformedCursor = getTransformedPoint(event.offsetX, event.offsetY); + const zoom = event.deltaY < 0 ? 1.02 : 0.98; + const originalScale = 1./timeZoomFactor/kInitPixelsPerSecond; + timeZoomFactor *= zoom; + const newScale = 1./timeZoomFactor/kInitPixelsPerSecond; + //Keep the cursor at the same time and change zoom around that point + minVisibleTime = minVisibleTime + currentTransformedCursor.x*(originalScale-newScale); + } else { + graph_translate(-1*event.deltaX, -1*event.deltaY); } + drawGraph(); + event.preventDefault() } - if (!container) { - doUnselection(); + + window.addEventListener('resize',function(){ + graph_context.canvas.width = graph.clientWidth; + graph_context.canvas.height = graph.clientHeight; + name_context.canvas.width = name_view.clientWidth; + name_context.canvas.height = name_view.clientHeight; + time_context.canvas.width = time_view.clientWidth; + time_context.canvas.height = time_view.clientHeight; + drawGraph(); + }, false); + graph.addEventListener('mousedown', graph_onMouseDown) + graph.addEventListener('mousemove', graph_onMouseMove) + graph.addEventListener('mouseup', graph_onMouseUp) + graph.addEventListener('mouseout', graph_onMouseOut) + graph.addEventListener('wheel', graph_onWheel); + + function time_onMouseDown(event) { + time_isDragging = true; + time_dragStartPosition = getTransformedPoint(event.offsetX, 0).x; + } + + function time_onMouseMove(event) { + let currentTransformedCursor = getTransformedPoint(event.offsetX, 0); + + if (time_isDragging) { + graph_translate(currentTransformedCursor.x - time_dragStartPosition, 0); + time_dragStartPosition = currentTransformedCursor.x; drawGraph(); + } + } + + function time_onMouseUp() { + time_isDragging = false; + } + + function time_onMouseOut() { + time_isDragging = false + } + + function time_onWheel(event) { + if (event.ctrlKey) { + let currentTransformedCursor = getTransformedPoint(event.offsetX, event.offsetY); + const zoom = event.deltaY < 0 ? 1.02 : 0.98; + const originalScale = 1./timeZoomFactor/kInitPixelsPerSecond; + timeZoomFactor *= zoom; + const newScale = 1./timeZoomFactor/kInitPixelsPerSecond; + //Keep the cursor at the same time and change zoom around that point + minVisibleTime = minVisibleTime + currentTransformedCursor.x*(originalScale-newScale); } else { - doSelection(container, selectionPoint.x); + graph_translate(-1*event.deltaX, 0); } + //console.log(minVisibleTime); + drawGraph(); + event.preventDefault(); + } - graph_isDragging = false; - graph_mouseDown = false; - } - - function graph_onMouseOut() { - graph_isDragging = false - graph_mouseDown = false; - } - function graph_onWheel(event) { - if (event.ctrlKey) { - let currentTransformedCursor = getTransformedPoint(event.offsetX, event.offsetY); - const zoom = event.deltaY < 0 ? 1.02 : 0.98; - const originalScale = 1./timeZoomFactor/kInitPixelsPerSecond; + + time_view.addEventListener('mousedown', time_onMouseDown) + time_view.addEventListener('mousemove', time_onMouseMove) + time_view.addEventListener('mouseup', time_onMouseUp) + time_view.addEventListener('mouseout', time_onMouseOut) + time_view.addEventListener('wheel', time_onWheel); + + function zoom_in_click(event) { + const zoom = 1.1; + const originalScale = 1. / timeZoomFactor / kInitPixelsPerSecond; timeZoomFactor *= zoom; - const newScale = 1./timeZoomFactor/kInitPixelsPerSecond; - //Keep the cursor at the same time and change zoom around that point - minVisibleTime = minVisibleTime + currentTransformedCursor.x*(originalScale-newScale); - } else { - graph_translate(-1*event.deltaX, -1*event.deltaY); + const newScale = 1. / timeZoomFactor / kInitPixelsPerSecond; + //Keep the center of the view at the same time and change zoom around that point + minVisibleTime = minVisibleTime + max_graph_width/2*(originalScale-newScale); + drawGraph(); } - drawGraph(); - event.preventDefault() - } + function zoom_out_click(event) { + const zoom = 0.909; + const originalScale = 1. / timeZoomFactor / kInitPixelsPerSecond; + timeZoomFactor *= zoom; + const newScale = 1. / timeZoomFactor / kInitPixelsPerSecond; + //Keep the center of the view at the same time and change zoom around that point + minVisibleTime = minVisibleTime + max_graph_width/2*(originalScale-newScale); + drawGraph(); + } + zoom_in_button.addEventListener("click", zoom_in_click); + zoom_out_button.addEventListener("click", zoom_out_click); - window.addEventListener('resize',function(){ - graph_context.canvas.width = graph.clientWidth; - graph_context.canvas.height = graph.clientHeight; - name_context.canvas.width = name_view.clientWidth; - name_context.canvas.height = name_view.clientHeight; - time_context.canvas.width = time_view.clientWidth; - time_context.canvas.height = time_view.clientHeight; - drawGraph(); - }, false); - graph.addEventListener('mousedown', graph_onMouseDown) - graph.addEventListener('mousemove', graph_onMouseMove) - graph.addEventListener('mouseup', graph_onMouseUp) - graph.addEventListener('mouseout', graph_onMouseOut) - graph.addEventListener('wheel', graph_onWheel); - - function time_onMouseDown(event) { - time_isDragging = true; - time_dragStartPosition = getTransformedPoint(event.offsetX, 0).x; - } - - function time_onMouseMove(event) { - let currentTransformedCursor = getTransformedPoint(event.offsetX, 0); - - if (time_isDragging) { - graph_translate(currentTransformedCursor.x - time_dragStartPosition, 0); - time_dragStartPosition = currentTransformedCursor.x; + function name_onWheel(event) { + let offset = 0; + graph_translate(0, -1*event.deltaY); drawGraph(); + event.preventDefault() } + name_view.addEventListener('wheel', name_onWheel); } - - function time_onMouseUp() { - time_isDragging = false; - } - - function time_onMouseOut() { - time_isDragging = false + async function populateDropdown() { + showLoadingSpinner(); // Show loading spinner + try { + const response = await fetch('/list-json'); + const jsonFiles = await response.json(); + const dropdown = document.getElementById('jsonDropdown'); + + jsonFiles.forEach(file => { + const option = document.createElement('option'); + option.value = file; + option.textContent = file; + dropdown.appendChild(option); + }); + } catch (error) { + console.error('Error fetching JSON file list:', error); + } + finally { + hideLoadingSpinner(); // Hide loading spinner + } } - - function time_onWheel(event) { - if (event.ctrlKey) { - let currentTransformedCursor = getTransformedPoint(event.offsetX, event.offsetY); - const zoom = event.deltaY < 0 ? 1.02 : 0.98; - const originalScale = 1./timeZoomFactor/kInitPixelsPerSecond; - timeZoomFactor *= zoom; - const newScale = 1./timeZoomFactor/kInitPixelsPerSecond; - //Keep the cursor at the same time and change zoom around that point - minVisibleTime = minVisibleTime + currentTransformedCursor.x*(originalScale-newScale); + // Event listener for dropdown change + jsonDropdown.addEventListener('change', function() { + const selectedFile = this.value; // Get the selected value from the dropdown + if (selectedFile) { + hideSelectFilePrompt(); // Hide select file prompt + fetchData(selectedFile); // Fetch the selected JSON file } else { - graph_translate(-1*event.deltaX, 0); + console.log('No file selected'); } - //console.log(minVisibleTime); - drawGraph(); - event.preventDefault(); - - } - - time_view.addEventListener('mousedown', time_onMouseDown) - time_view.addEventListener('mousemove', time_onMouseMove) - time_view.addEventListener('mouseup', time_onMouseUp) - time_view.addEventListener('mouseout', time_onMouseOut) - time_view.addEventListener('wheel', time_onWheel); + }); - function zoom_in_click(event) { - const zoom = 1.1; - const originalScale = 1. / timeZoomFactor / kInitPixelsPerSecond; - timeZoomFactor *= zoom; - const newScale = 1. / timeZoomFactor / kInitPixelsPerSecond; - //Keep the center of the view at the same time and change zoom around that point - minVisibleTime = minVisibleTime + max_graph_width/2*(originalScale-newScale); - drawGraph(); - } - function zoom_out_click(event) { - const zoom = 0.909; - const originalScale = 1. / timeZoomFactor / kInitPixelsPerSecond; - timeZoomFactor *= zoom; - const newScale = 1. / timeZoomFactor / kInitPixelsPerSecond; - //Keep the center of the view at the same time and change zoom around that point - minVisibleTime = minVisibleTime + max_graph_width/2*(originalScale-newScale); - drawGraph(); - } - zoom_in_button.addEventListener("click", zoom_in_click); - zoom_out_button.addEventListener("click", zoom_out_click); +populateDropdown(); +function showLoadingSpinner() { + document.getElementById('loadingSpinner').style.display = 'block'; +} - function name_onWheel(event) { - let offset = 0; - graph_translate(0, -1*event.deltaY); - drawGraph(); - event.preventDefault() - } - name_view.addEventListener('wheel', name_onWheel); -} \ No newline at end of file +function hideLoadingSpinner() { + document.getElementById('loadingSpinner').style.display = 'none'; +} +// Functions to show and hide the select file prompt +function showSelectFilePrompt() { + document.getElementById('selectFilePrompt').style.display = 'block'; +} + +function hideSelectFilePrompt() { + document.getElementById('selectFilePrompt').style.display = 'none'; +} + +}; \ No newline at end of file From dbd4367723a9bcc29fcf308f2902896c2aabbc6e Mon Sep 17 00:00:00 2001 From: IzaakWN Date: Mon, 5 Aug 2024 17:29:10 +0200 Subject: [PATCH 002/418] VarParsing: prevent TypeError for default of int/float/bool list --- FWCore/ParameterSet/python/VarParsing.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/FWCore/ParameterSet/python/VarParsing.py b/FWCore/ParameterSet/python/VarParsing.py index 5ac0ece250cd9..d80fa0ec7719d 100644 --- a/FWCore/ParameterSet/python/VarParsing.py +++ b/FWCore/ParameterSet/python/VarParsing.py @@ -413,8 +413,9 @@ def register (self, name, self._lists[name] = [] # if it's a list, we only want to use the default if it # does exist. - if len (default): - self._lists[name].append (default) + if (mytype in [VarParsing.varType.bool, VarParsing.varType.int, VarParsing.varType.float] and \ + default != "") or len (default): # check type to prevent TypeError for bool/int/float defaults + self._lists[name].append (default) # known bug: default can be list ####################################### ## Process any additional directives ## ####################################### From 5089cc19ff62fa05a5b76e871dcb438933d47f09 Mon Sep 17 00:00:00 2001 From: IzaakWN Date: Wed, 7 Aug 2024 23:33:55 +0200 Subject: [PATCH 003/418] add unit test for VarParsing list default --- FWCore/ParameterSet/test/BuildFile.xml | 2 ++ .../ParameterSet/test/test_varparsing_list.py | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 FWCore/ParameterSet/test/test_varparsing_list.py diff --git a/FWCore/ParameterSet/test/BuildFile.xml b/FWCore/ParameterSet/test/BuildFile.xml index af77e27b94d1c..829b5c769f8f7 100644 --- a/FWCore/ParameterSet/test/BuildFile.xml +++ b/FWCore/ParameterSet/test/BuildFile.xml @@ -15,3 +15,5 @@ + + diff --git a/FWCore/ParameterSet/test/test_varparsing_list.py b/FWCore/ParameterSet/test/test_varparsing_list.py new file mode 100644 index 0000000000000..b51577a1ab625 --- /dev/null +++ b/FWCore/ParameterSet/test/test_varparsing_list.py @@ -0,0 +1,26 @@ +import sys +from FWCore.ParameterSet.VarParsing import VarParsing + +def parse(argv): + sys.argv = ['test.py','maxEvents=100']+argv # emulate user arguments + opts = VarParsing('standard') + def add(n, d, m, t): + opts.register(n, d, m, t) + add('myInts0', '', VarParsing.multiplicity.list, VarParsing.varType.int) + add('myInts1', 0, VarParsing.multiplicity.list, VarParsing.varType.int) + add('myInts2', [0], VarParsing.multiplicity.list, VarParsing.varType.int) + add('myFloats0', '', VarParsing.multiplicity.list, VarParsing.varType.float) + add('myFloats1', 0, VarParsing.multiplicity.list, VarParsing.varType.float) + add('myFloats2', [0], VarParsing.multiplicity.list, VarParsing.varType.float) + add('myBools0', '', VarParsing.multiplicity.list, VarParsing.varType.bool) + add('myBools1', True, VarParsing.multiplicity.list, VarParsing.varType.bool) + add('myBools2', [True], VarParsing.multiplicity.list, VarParsing.varType.bool) + add('myStrs0', '', VarParsing.multiplicity.list, VarParsing.varType.string) + add('myStrs1', 'foo', VarParsing.multiplicity.list, VarParsing.varType.string) + add('myStrs2', ['foo'], VarParsing.multiplicity.list, VarParsing.varType.string) + +# parse without user arguments +parse([ ]) + +# parse with user arguments +parse(['myInts1=0,1','myBools1=True,False','myStrs1=foo,bar','myStrs2=foo,bar']) \ No newline at end of file From db50eede364f8cbc223cd1823f9e383c94b6afcd Mon Sep 17 00:00:00 2001 From: IzaakWN Date: Thu, 8 Aug 2024 10:50:15 +0200 Subject: [PATCH 004/418] VarParsing: skip empty list for int/float/bool list default; add opts.parseArguments to unit test --- FWCore/ParameterSet/python/VarParsing.py | 2 +- .../ParameterSet/test/test_varparsing_list.py | 36 ++++++++++--------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/FWCore/ParameterSet/python/VarParsing.py b/FWCore/ParameterSet/python/VarParsing.py index d80fa0ec7719d..c94a3cf362df2 100644 --- a/FWCore/ParameterSet/python/VarParsing.py +++ b/FWCore/ParameterSet/python/VarParsing.py @@ -414,7 +414,7 @@ def register (self, name, # if it's a list, we only want to use the default if it # does exist. if (mytype in [VarParsing.varType.bool, VarParsing.varType.int, VarParsing.varType.float] and \ - default != "") or len (default): # check type to prevent TypeError for bool/int/float defaults + default not in ["",[]]) or len (default): # check type to prevent TypeError for bool/int/float defaults self._lists[name].append (default) # known bug: default can be list ####################################### ## Process any additional directives ## diff --git a/FWCore/ParameterSet/test/test_varparsing_list.py b/FWCore/ParameterSet/test/test_varparsing_list.py index b51577a1ab625..65efd6e1664ef 100644 --- a/FWCore/ParameterSet/test/test_varparsing_list.py +++ b/FWCore/ParameterSet/test/test_varparsing_list.py @@ -2,25 +2,29 @@ from FWCore.ParameterSet.VarParsing import VarParsing def parse(argv): - sys.argv = ['test.py','maxEvents=100']+argv # emulate user arguments + sys.argv = ['test_varparsing_list.py','maxEvents=100']+argv # emulate user arguments opts = VarParsing('standard') - def add(n, d, m, t): - opts.register(n, d, m, t) - add('myInts0', '', VarParsing.multiplicity.list, VarParsing.varType.int) - add('myInts1', 0, VarParsing.multiplicity.list, VarParsing.varType.int) - add('myInts2', [0], VarParsing.multiplicity.list, VarParsing.varType.int) - add('myFloats0', '', VarParsing.multiplicity.list, VarParsing.varType.float) - add('myFloats1', 0, VarParsing.multiplicity.list, VarParsing.varType.float) - add('myFloats2', [0], VarParsing.multiplicity.list, VarParsing.varType.float) - add('myBools0', '', VarParsing.multiplicity.list, VarParsing.varType.bool) - add('myBools1', True, VarParsing.multiplicity.list, VarParsing.varType.bool) - add('myBools2', [True], VarParsing.multiplicity.list, VarParsing.varType.bool) - add('myStrs0', '', VarParsing.multiplicity.list, VarParsing.varType.string) - add('myStrs1', 'foo', VarParsing.multiplicity.list, VarParsing.varType.string) - add('myStrs2', ['foo'], VarParsing.multiplicity.list, VarParsing.varType.string) + opts.register('myInts0', '', VarParsing.multiplicity.list, VarParsing.varType.int) + opts.register('myInts1', [], VarParsing.multiplicity.list, VarParsing.varType.int) + opts.register('myInts2', 0, VarParsing.multiplicity.list, VarParsing.varType.int) + opts.register('myInts3', [0], VarParsing.multiplicity.list, VarParsing.varType.int) + opts.register('myFloats0', '', VarParsing.multiplicity.list, VarParsing.varType.float) + opts.register('myFloats1', [], VarParsing.multiplicity.list, VarParsing.varType.float) + opts.register('myFloats2', 0, VarParsing.multiplicity.list, VarParsing.varType.float) + opts.register('myFloats3', [0], VarParsing.multiplicity.list, VarParsing.varType.float) + opts.register('myBools0', '', VarParsing.multiplicity.list, VarParsing.varType.bool) + opts.register('myBools1', [], VarParsing.multiplicity.list, VarParsing.varType.bool) + opts.register('myBools2', True, VarParsing.multiplicity.list, VarParsing.varType.bool) + opts.register('myBools3', [True], VarParsing.multiplicity.list, VarParsing.varType.bool) + opts.register('myStrs0', '', VarParsing.multiplicity.list, VarParsing.varType.string) + opts.register('myStrs1', [], VarParsing.multiplicity.list, VarParsing.varType.string) + opts.register('myStrs2', 'foo', VarParsing.multiplicity.list, VarParsing.varType.string) + opts.register('myStrs3', ['foo'], VarParsing.multiplicity.list, VarParsing.varType.string) + opts.parseArguments() + #print(f">>> Parsed: {sys.argv} -> lists={opts._lists}") # parse without user arguments parse([ ]) # parse with user arguments -parse(['myInts1=0,1','myBools1=True,False','myStrs1=foo,bar','myStrs2=foo,bar']) \ No newline at end of file +parse(['myInts1=0,1,-1','myFloats1=3.14,0,0.0,-1.0','myBools1=True,False','myStrs1=foo,bar']) \ No newline at end of file From 43550a4b4543df3ef2eed748a1ff8cbdd4cb243f Mon Sep 17 00:00:00 2001 From: kdeleo Date: Tue, 20 Aug 2024 10:43:33 +0200 Subject: [PATCH 005/418] add class to store rootuples for MTD studies --- RecoMTD/TimingIDTools/plugins/BuildFile.xml | 2 + .../plugins/MVATrainingNtuple.cc | 893 ++++++++++++++++++ .../test/mvaTrainingSaveNtuple_cfg.py | 36 + 3 files changed, 931 insertions(+) create mode 100644 RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc create mode 100644 RecoMTD/TimingIDTools/test/mvaTrainingSaveNtuple_cfg.py diff --git a/RecoMTD/TimingIDTools/plugins/BuildFile.xml b/RecoMTD/TimingIDTools/plugins/BuildFile.xml index 4fefd35177d86..359da6392cd6d 100644 --- a/RecoMTD/TimingIDTools/plugins/BuildFile.xml +++ b/RecoMTD/TimingIDTools/plugins/BuildFile.xml @@ -5,4 +5,6 @@ + + diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc new file mode 100644 index 0000000000000..81854591a4122 --- /dev/null +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -0,0 +1,893 @@ +#include +#include "TTree.h" +#include "TFile.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "DataFormats/VertexReco/interface/Vertex.h" +#include "DataFormats/TrackerRecHit2D/interface/MTDTrackingRecHit.h" + +#include "SimDataFormats/Associations/interface/TrackToTrackingParticleAssociator.h" +#include "SimDataFormats/Associations/interface/MtdSimLayerClusterToTPAssociatorBaseImpl.h" +#include "SimDataFormats/Associations/interface/MtdRecoClusterToSimLayerClusterAssociationMap.h" + +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "RecoVertex/PrimaryVertexProducer/interface/HITrackFilterForPVFinding.h" + + +using reco::TrackCollection; + +class MVATrainingNtuple : public edm::one::EDAnalyzer { + + typedef math::XYZTLorentzVector LorentzVector; + + // auxiliary class holding simulated vertices (originally from Primary4DVertexValidation) + struct simPrimaryVertex { + simPrimaryVertex(double x1, double y1, double z1, double t1, int k1) + : x(x1), + y(y1), + z(z1), + t(t1), + key(k1), + LV_distance_z(-1.){}; + double x, y, z, t; + int key; + int eventId; + int bunchCrossing; + TrackingVertexRef sim_vertex; + int OriginalIndex = -1; + bool is_LV; + double LV_distance_z; + + }; + +public: + explicit MVATrainingNtuple(const edm::ParameterSet&); + ~MVATrainingNtuple() override; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void analyze(const edm::Event&, const edm::EventSetup&) override; + + const edm::Ref>* getAnyMatchedTP(const reco::TrackBaseRef&); + double timeFromTrueMass(double, double, double, double); + + bool isSameCluster(const FTLCluster&, const FTLCluster&); + + std::vector getSimPVs(const edm::Handle&); + + edm::Service fs_; + + // ----------member data --------------------------- + const edm::ESGetToken theTTBToken; + TrackFilterForPVFindingBase* theTrackFilter; + + static constexpr unsigned int NOT_MATCHED = 66666; + static constexpr double simUnit_ = 1e9; //sim time in s while reco time in ns + static constexpr double c_ = 2.99792458e1; //c in cm/ns + std::string fileName_; + + bool saveNtupleforBDT_; + bool saveNtupleforGNN_; + + // cuts for BDT training input + static constexpr double BDT_track_eta_cut = 3.0; + static constexpr double BDT_track_pt_cut = 0.5; + static constexpr double BDT_track_dz_cut = 1.0; // 1cm cut for BDT training sample + + const reco::RecoToSimCollection* r2s_; + const reco::SimToRecoCollection* s2r_; + + // GNN input variables + std::vector gnn_pt, gnn_eta, gnn_phi, gnn_z_pca, gnn_dz, gnn_t_Pi, gnn_t_K, gnn_t_P, gnn_t0safe, gnn_t0pid, gnn_sigma_t0safe, gnn_mtdTime, gnn_sigma_tmtd, gnn_mva_qual, gnn_btlMatchChi2, gnn_btlMatchTimeChi2, gnn_etlMatchChi2, gnn_etlMatchTimeChi2, gnn_pathLength, gnn_probPi, gnn_probK, gnn_probP, gnn_trk_chi2, gnn_trk_ndof, gnn_sigma_tof_Pi, gnn_sigma_tof_K, gnn_sigma_tof_P, gnn_sim_vertex_z, gnn_sim_vertex_t, gnn_sim_vertex_LV_dz, gnn_tp_tEst, gnn_outermostHitPosition; + std::vector gnn_npixBarrel, gnn_npixEndcap, gnn_sim_vertex_evID, gnn_sim_vertex_BX, gnn_sim_vertex_index, gnn_tp_pdgId, gnn_trk_validhits; + std::vector gnn_is_matched_tp, gnn_sim_vertex_isLV; + + // BDT input variables + std::vector Ttrack_pt, Ttrack_eta, Ttrack_phi, Ttrack_dz, Ttrack_dxy, Ttrack_chi2, Ttrack_BTLchi2, Ttrack_BTLtime_chi2, Ttrack_ETLchi2, Ttrack_ETLtime_chi2, Ttrack_t0, Ttrack_sigmat0, Ttrack_Tmtd, Ttrack_sigmaTmtd, Ttrack_lenght, Ttrack_MtdMVA, TtrackTP_pt, TtrackTP_eta, TtrackTP_phi, Ttrack_CluTime1, Ttrack_CluTime2; + std::vector Ttrack_ndof, Ttrack_nValidHits, Ttrack_npixBarrelValidHits, Ttrack_npixEndcapValidHits, TtrackTP_nValidHits, Ttrack_det, Ttrack_subdet, Ttrack_subdetmtd,Ttrack_nSimClust; + std::vector Ttrack_Signal, Ttrack_Associated, Ttrack_HasTP, Ttrack_TPHasSimClu, Ttrack_TPSimCluDirect, Ttrack_hitMTD, Ttrack_hit, Ttrack_hitMatchMTD, Ttrack_hasRecoClu, Ttrack_RecoSimLink, Ttrack_FullMatch; + + edm::EDGetTokenT> btlMatchChi2Token_; + edm::EDGetTokenT> btlMatchTimeChi2Token_; + edm::EDGetTokenT> etlMatchChi2Token_; + edm::EDGetTokenT> etlMatchTimeChi2Token_; + edm::EDGetTokenT> npixBarrelToken_; + edm::EDGetTokenT> npixEndcapToken_; + edm::EDGetTokenT> outermostHitPositionToken_; + + edm::EDGetTokenT RecTrackToken_; + edm::EDGetTokenT RecMTDTrackToken_; + edm::EDGetTokenT> RecVertexToken_; + edm::EDGetTokenT RecBeamSpotToken_; + edm::EDGetTokenT trackingParticleCollectionToken_; + edm::EDGetTokenT recoToSimAssociationToken_; + edm::EDGetTokenT simToRecoAssociationToken_; + edm::EDGetTokenT trackingVertexCollectionToken_; + edm::EDGetTokenT> trackAssocToken_; + edm::EDGetTokenT tp2SimAssociationMapToken_; + edm::EDGetTokenT r2sAssociationMapToken_; + edm::EDGetTokenT btlRecCluToken_; + edm::EDGetTokenT etlRecCluToken_; + + edm::EDGetTokenT> pathLengthToken_; + edm::EDGetTokenT> momentumToken_; + edm::EDGetTokenT> sigmatimeToken_; + edm::EDGetTokenT> t0SrcToken_; + edm::EDGetTokenT> Sigmat0SrcToken_; + edm::EDGetTokenT> t0PidToken_; + edm::EDGetTokenT> t0SafePidToken_; + edm::EDGetTokenT> sigmat0SafePidToken_; + edm::EDGetTokenT> trackMVAQualToken_; + edm::EDGetTokenT> sigmatofpiToken_; + edm::EDGetTokenT> sigmatofkToken_; + edm::EDGetTokenT> sigmatofpToken_; + edm::EDGetTokenT> tmtdToken_; + edm::EDGetTokenT> tofPiToken_; + edm::EDGetTokenT> tofKToken_; + edm::EDGetTokenT> tofPToken_; + edm::EDGetTokenT> probPiToken_; + edm::EDGetTokenT> probKToken_; + edm::EDGetTokenT> probPToken_; + +}; + + +MVATrainingNtuple::MVATrainingNtuple(const edm::ParameterSet& iConfig) + : theTTBToken(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + fileName_(iConfig.getUntrackedParameter("fileName")){ + RecTrackToken_ = consumes(iConfig.getParameter("inputTracks")); + RecMTDTrackToken_ = consumes(iConfig.getParameter("inputTagT")); + RecVertexToken_ = consumes>(iConfig.getParameter("inputTagV")); + tp2SimAssociationMapToken_ = consumes(iConfig.getParameter("tp2SimAssociationMapTag")); + r2sAssociationMapToken_ = consumes(iConfig.getParameter("r2sAssociationMapTag")); + trackAssocToken_ = consumes>(iConfig.getParameter("trackAssocSrc")); + RecBeamSpotToken_ = consumes(iConfig.getParameter("offlineBS")); + trackingParticleCollectionToken_ = consumes(iConfig.getParameter("SimTag")); + recoToSimAssociationToken_ = consumes(iConfig.getParameter("TPtoRecoTrackAssoc")); + simToRecoAssociationToken_ = consumes(iConfig.getParameter("TPtoRecoTrackAssoc")); + trackingVertexCollectionToken_ = consumes(iConfig.getParameter("SimTag")); + btlRecCluToken_ = consumes(iConfig.getParameter("recCluTagBTL")); + etlRecCluToken_ = consumes(iConfig.getParameter("recCluTagETL")); + pathLengthToken_ = consumes>(iConfig.getParameter("pathLengthSrc")); + momentumToken_ = consumes>(iConfig.getParameter("momentumSrc")); + sigmatimeToken_ = consumes>(iConfig.getParameter("sigmaSrc")); + t0SrcToken_ = consumes>(iConfig.getParameter("t0Src")); + Sigmat0SrcToken_ = consumes>(iConfig.getParameter("sigmat0Src")); + t0PidToken_ = consumes>(iConfig.getParameter("t0PID")); + t0SafePidToken_ = consumes>(iConfig.getParameter("t0SafePID")); + sigmat0SafePidToken_ = consumes>(iConfig.getParameter("sigmat0SafePID")); + trackMVAQualToken_ = consumes>(iConfig.getParameter("trackMVAQual")); + tmtdToken_ = consumes>(iConfig.getParameter("tmtd")); + tofPiToken_ = consumes>(iConfig.getParameter("tofPi")); + tofKToken_ = consumes>(iConfig.getParameter("tofK")); + tofPToken_ = consumes>(iConfig.getParameter("tofP")); + probPiToken_ = consumes>(iConfig.getParameter("probPi")); + probKToken_ = consumes>(iConfig.getParameter("probK")); + probPToken_ = consumes>(iConfig.getParameter("probP")); + sigmatofpiToken_ = consumes>(iConfig.getParameter("sigmatofpiSrc")); + sigmatofkToken_ = consumes>(iConfig.getParameter("sigmatofkSrc")); + sigmatofpToken_ = consumes>(iConfig.getParameter("sigmatofpSrc")); + btlMatchChi2Token_ = consumes>(iConfig.getParameter("btlMatchChi2Src")); + btlMatchTimeChi2Token_ = consumes>(iConfig.getParameter("btlMatchTimeChi2Src")); + etlMatchChi2Token_ = consumes>(iConfig.getParameter("etlMatchChi2Src")); + etlMatchTimeChi2Token_ = consumes>(iConfig.getParameter("etlMatchTimeChi2Src")); + npixBarrelToken_ = consumes>(iConfig.getParameter("npixBarrelSrc")); + npixEndcapToken_ = consumes>(iConfig.getParameter("npixEndcapSrc")); + outermostHitPositionToken_ = consumes>(iConfig.getParameter("outermostHitPositionSrc")); + saveNtupleforBDT_ = iConfig.getParameter("ntupleforBDT"); + saveNtupleforGNN_ = iConfig.getParameter("ntupleforGNN"); + // select and configure the track selection + std::string trackSelectionAlgorithm = + iConfig.getParameter("TkFilterParameters").getParameter("algorithm"); + if (trackSelectionAlgorithm == "filter") { + theTrackFilter = new TrackFilterForPVFinding(iConfig.getParameter("TkFilterParameters")); + } else if (trackSelectionAlgorithm == "filterWithThreshold") { + theTrackFilter = new HITrackFilterForPVFinding(iConfig.getParameter("TkFilterParameters")); + } else { + edm::LogWarning("MVATrainingNtuple: unknown track selection algorithm: " + trackSelectionAlgorithm); + } +} + +MVATrainingNtuple::~MVATrainingNtuple() { + if (theTrackFilter) + delete theTrackFilter; +} + +const edm::Ref>* MVATrainingNtuple::getAnyMatchedTP( + const reco::TrackBaseRef& recoTrack) { + auto found = r2s_->find(recoTrack); + + // reco track not matched to any TP + if (found == r2s_->end()) + return nullptr; + + //matched TP equal to any TP + for (const auto& tp : found->val) { + return &tp.first; + } + + // reco track not matched to any TP from vertex + return nullptr; +} + +double MVATrainingNtuple::timeFromTrueMass(double mass, double pathlength, double momentum, double time) { + if (time > 0 && pathlength > 0 && mass > 0) { + double gammasq = 1. + momentum * momentum / (mass * mass); + double v = c_ * std::sqrt(1. - 1. / gammasq); // cm / ns + double t_est = time - (pathlength / v); + + return t_est; + } else { + return -1; + } +} + +bool MVATrainingNtuple::isSameCluster(const FTLCluster& clu1, const FTLCluster& clu2) { + return clu1.id() == clu2.id() && clu1.size() == clu2.size() && clu1.x() == clu2.x() && clu1.y() == clu2.y() && + clu1.time() == clu2.time(); +} + + +std::vector MVATrainingNtuple::getSimPVs( + const edm::Handle& tVC) { + std::vector simpv; + std::set> processedEvents; // Set to store (event ID, bunch crossing) pairs + + int s = -1; + for (TrackingVertexCollection::const_iterator v = tVC->begin(); v != tVC->end(); ++v) { + + int eventId = v->eventId().event(); + int bunchCrossing = v->eventId().bunchCrossing(); + bool is_LV = true; + std::pair eventBunchPair = std::make_pair(eventId, bunchCrossing); + + // Skip the vertex if this event ID and bunch crossing pair has already been processed + if (processedEvents.find(eventBunchPair) != processedEvents.end()) { + is_LV = false; + } + + // Mark this event ID and bunch crossing pair as processed + processedEvents.insert(eventBunchPair); + s++; + + // could be a new vertex, check all primaries found so far to avoid multiple entries + int key = std::distance(tVC->begin(), v); + simPrimaryVertex sv(v->position().x(), v->position().y(), v->position().z(), v->position().t(), key); + sv.eventId = v->eventId().event(); + sv.bunchCrossing = v->eventId().bunchCrossing(); + sv.sim_vertex = TrackingVertexRef(tVC, key); + sv.OriginalIndex = s; + sv.is_LV = is_LV; + + simPrimaryVertex* vp = nullptr; // will become non-NULL if a vertex is found and then point to it + for (std::vector::iterator v0 = simpv.begin(); v0 != simpv.end(); v0++) { + if ((sv.eventId == v0->eventId) && (sv.bunchCrossing == v0->bunchCrossing) && (std::abs(sv.x - v0->x) < 1e-5) && (std::abs(sv.y - v0->y) < 1e-5) && + (std::abs(sv.z - v0->z) < 1e-5)) { + vp = &(*v0); + break; + } + } + if (!vp) { + // this is a new vertex, add it to the list of sim-vertices + simpv.push_back(sv); + vp = &simpv.back(); + } + + } // End of for loop on tracking vertices + + // In case of no simulated vertices, break here + if (simpv.empty()) + return simpv; + + // Calculate distance of vertices from LV of the same eventId and BX + for (unsigned int iev = 0; iev < simpv.size(); iev++) { + simpv.at(iev).LV_distance_z = std::abs(simpv.at(0).z - simpv.at(iev).z); + } + + return simpv; +} + +// ------------ method called for each event ------------ +void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { + using namespace edm; + using namespace std; + using edm::Handle; + using std::vector; + using namespace reco; + + edm::Handle tracksH; + iEvent.getByToken(RecTrackToken_, tracksH); + + const auto& theB = &iSetup.getData(theTTBToken); + std::vector t_tks; + + edm::Handle TPCollectionH; + iEvent.getByToken(trackingParticleCollectionToken_, TPCollectionH); + if (!TPCollectionH.isValid()) + edm::LogWarning("MVATrainingNtuple") << "TPCollectionH is not valid"; + + edm::Handle recoToSimH; + iEvent.getByToken(recoToSimAssociationToken_, recoToSimH); + if (recoToSimH.isValid()) + r2s_ = recoToSimH.product(); + else + edm::LogWarning("MVATrainingNtuple") << "recoToSimH is not valid"; + + reco::BeamSpot beamSpot; + edm::Handle BeamSpotH; + iEvent.getByToken(RecBeamSpotToken_, BeamSpotH); + if (!BeamSpotH.isValid()) + edm::LogWarning("MVATrainingNtuple") << "BeamSpotH is not valid"; + beamSpot = *BeamSpotH; + + edm::Handle TVCollectionH; + iEvent.getByToken(trackingVertexCollectionToken_, TVCollectionH); + if (!TVCollectionH.isValid()) + edm::LogWarning("MVATrainingNtuple") << "TVCollectionH is not valid"; + + std::vector simpv; + simpv = getSimPVs(TVCollectionH); + + const auto& trackAssoc = iEvent.get(trackAssocToken_); + + std::vector vertices; + edm::Handle> RecVertexHandle; + iEvent.getByToken(RecVertexToken_, RecVertexHandle); + vertices = *RecVertexHandle; + + const auto& tp2SimAssociationMap = iEvent.get(tp2SimAssociationMapToken_); + const auto& r2sAssociationMap = iEvent.get(r2sAssociationMapToken_); + + const auto& btlRecCluHandle = iEvent.getHandle(btlRecCluToken_); + const auto& etlRecCluHandle = iEvent.getHandle(etlRecCluToken_); + + const auto& pathLength = iEvent.get(pathLengthToken_); + const auto& momentum = iEvent.get(momentumToken_); + const auto& sigmatimemtd = iEvent.get(sigmatimeToken_); + const auto& t0Src = iEvent.get(t0SrcToken_); + const auto& Sigmat0Src = iEvent.get(Sigmat0SrcToken_); + const auto& t0Pid = iEvent.get(t0PidToken_); + const auto& t0Safe = iEvent.get(t0SafePidToken_); + const auto& sigmat0Safe = iEvent.get(sigmat0SafePidToken_); + const auto& mtdQualMVA = iEvent.get(trackMVAQualToken_); + const auto& tMtd = iEvent.get(tmtdToken_); + const auto& tofPi = iEvent.get(tofPiToken_); + const auto& tofK = iEvent.get(tofKToken_); + const auto& tofP = iEvent.get(tofPToken_); + const auto& probPi = iEvent.get(probPiToken_); + const auto& probK = iEvent.get(probKToken_); + const auto& probP = iEvent.get(probPToken_); + const auto& sigmatofpi = iEvent.get(sigmatofpiToken_); + const auto& sigmatofk = iEvent.get(sigmatofkToken_); + const auto& sigmatofp = iEvent.get(sigmatofpToken_); + const auto& btlMatchChi2 = iEvent.get(btlMatchChi2Token_); + const auto& btlMatchTimeChi2 = iEvent.get(btlMatchTimeChi2Token_); + const auto& etlMatchChi2 = iEvent.get(etlMatchChi2Token_); + const auto& etlMatchTimeChi2 = iEvent.get(etlMatchTimeChi2Token_); + const auto& npixBarrel = iEvent.get(npixBarrelToken_); + const auto& npixEndcap = iEvent.get(npixEndcapToken_); + const auto& outermostHitPosition = iEvent.get(outermostHitPositionToken_); + + + // Fill TTree with input variables for GNN + if(saveNtupleforGNN_){ + + std::string GNNtreeName = "GNNtree_" + std::to_string(iEvent.id().event()); + TTree* GNNtree = fs_->make(GNNtreeName.c_str(), "Tree for GNN tracks"); + + GNNtree->Branch("gnn_pt", &gnn_pt); + GNNtree->Branch("gnn_eta", &gnn_eta); + GNNtree->Branch("gnn_phi", &gnn_phi); + GNNtree->Branch("gnn_z_pca", &gnn_z_pca); + GNNtree->Branch("gnn_dz", &gnn_dz); + GNNtree->Branch("gnn_t_Pi", &gnn_t_Pi); + GNNtree->Branch("gnn_t_K", &gnn_t_K); + GNNtree->Branch("gnn_t_P", &gnn_t_P); + GNNtree->Branch("gnn_sigma_t0safe", &gnn_sigma_t0safe); + GNNtree->Branch("gnn_sigma_tmtd", &gnn_sigma_tmtd); + GNNtree->Branch("gnn_t0safe", &gnn_t0safe); + GNNtree->Branch("gnn_t0pid", &gnn_t0pid); + GNNtree->Branch("gnn_mva_qual", &gnn_mva_qual); + GNNtree->Branch("gnn_btlMatchChi2", &gnn_btlMatchChi2); + GNNtree->Branch("gnn_btlMatchTimeChi2", &gnn_btlMatchTimeChi2); + GNNtree->Branch("gnn_etlMatchChi2", &gnn_etlMatchChi2); + GNNtree->Branch("gnn_etlMatchTimeChi2", &gnn_etlMatchTimeChi2); + GNNtree->Branch("gnn_pathLength", &gnn_pathLength); + GNNtree->Branch("gnn_npixBarrel", &gnn_npixBarrel); + GNNtree->Branch("gnn_npixEndcap", &gnn_npixEndcap); + GNNtree->Branch("gnn_outermostHitPosition", &gnn_outermostHitPosition); + GNNtree->Branch("gnn_mtdTime", &gnn_mtdTime); + GNNtree->Branch("gnn_is_matched_tp", &gnn_is_matched_tp); + GNNtree->Branch("gnn_tp_tEst", &gnn_tp_tEst); + GNNtree->Branch("gnn_tp_pdgId", &gnn_tp_pdgId); + GNNtree->Branch("gnn_probPi", &gnn_probPi); + GNNtree->Branch("gnn_probK", &gnn_probK); + GNNtree->Branch("gnn_probP", &gnn_probP); + GNNtree->Branch("gnn_sigma_tof_Pi", &gnn_sigma_tof_Pi); + GNNtree->Branch("gnn_sigma_tof_K", &gnn_sigma_tof_K); + GNNtree->Branch("gnn_sigma_tof_P", &gnn_sigma_tof_P); + GNNtree->Branch("gnn_trk_chi2", &gnn_trk_chi2); + GNNtree->Branch("gnn_trk_ndof", &gnn_trk_ndof); + GNNtree->Branch("gnn_trk_validhits", &gnn_trk_validhits); + GNNtree->Branch("gnn_sim_vertex_evID", &gnn_sim_vertex_evID); + GNNtree->Branch("gnn_sim_vertex_BX", &gnn_sim_vertex_BX); + GNNtree->Branch("gnn_sim_vertex_index", &gnn_sim_vertex_index); + GNNtree->Branch("gnn_sim_vertex_z", &gnn_sim_vertex_z); + GNNtree->Branch("gnn_sim_vertex_t", &gnn_sim_vertex_t); + GNNtree->Branch("gnn_sim_vertex_LV_dz", &gnn_sim_vertex_LV_dz); + GNNtree->Branch("gnn_sim_vertex_isLV", &gnn_sim_vertex_isLV); + + gnn_pt.clear(); + gnn_eta.clear(); + gnn_phi.clear(); + gnn_z_pca.clear(); + gnn_dz.clear(); + gnn_t_Pi.clear(); + gnn_t_K.clear(); + gnn_t_P.clear(); + gnn_sigma_t0safe.clear(); + gnn_sigma_tmtd.clear(); + gnn_t0safe.clear(); + gnn_t0pid.clear(); + gnn_mva_qual.clear(); + gnn_btlMatchChi2.clear(); + gnn_btlMatchTimeChi2.clear(); + gnn_etlMatchChi2.clear(); + gnn_etlMatchTimeChi2.clear(); + gnn_pathLength.clear(); + gnn_npixBarrel.clear(); + gnn_npixEndcap.clear(); + gnn_outermostHitPosition.clear(); + gnn_mtdTime.clear(); + gnn_is_matched_tp.clear(); + gnn_tp_tEst.clear(); + gnn_tp_pdgId.clear(); + gnn_probPi.clear(); + gnn_probK.clear(); + gnn_probP.clear(); + gnn_sigma_tof_Pi.clear(); + gnn_sigma_tof_K.clear(); + gnn_sigma_tof_P.clear(); + gnn_trk_chi2.clear(); + gnn_trk_ndof.clear(); + gnn_trk_validhits.clear(); + gnn_sim_vertex_evID.clear(); + gnn_sim_vertex_BX.clear(); + gnn_sim_vertex_index.clear(); + gnn_sim_vertex_z.clear(); + gnn_sim_vertex_t.clear(); + gnn_sim_vertex_LV_dz.clear(); + gnn_sim_vertex_isLV.clear(); + + // build TransientTracks + t_tks = (*theB).build(tracksH, beamSpot, t0Safe, sigmat0Safe); + + // track filter + std::vector&& seltks = theTrackFilter->select(t_tks); + + for (std::vector::const_iterator itk = seltks.begin(); itk != seltks.end(); itk++) { + reco::TrackBaseRef trackref = (*itk).trackBaseRef(); + + gnn_pt.push_back((*itk).track().pt()); + gnn_eta.push_back((*itk).track().eta()); + gnn_phi.push_back((*itk).track().phi()); + gnn_z_pca.push_back((*itk).track().vz()); + gnn_dz.push_back((*itk).track().dzError()); + gnn_t_Pi.push_back(tMtd[trackref] - tofPi[trackref]); + gnn_t_K.push_back(tMtd[trackref] - tofK[trackref]); + gnn_t_P.push_back(tMtd[trackref] - tofP[trackref]); + gnn_sigma_t0safe.push_back(sigmat0Safe[trackref]); + gnn_sigma_tmtd.push_back(sigmatimemtd[trackref]); + gnn_t0safe.push_back(t0Safe[trackref]); + gnn_t0pid.push_back(t0Pid[trackref]); + gnn_mva_qual.push_back(mtdQualMVA[trackref]); + gnn_btlMatchChi2.push_back(btlMatchChi2[trackref]); + gnn_btlMatchTimeChi2.push_back(btlMatchTimeChi2[trackref]); + gnn_etlMatchChi2.push_back(etlMatchChi2[trackref]); + gnn_etlMatchTimeChi2.push_back(etlMatchTimeChi2[trackref]); + gnn_pathLength.push_back(pathLength[trackref]); + gnn_npixBarrel.push_back(npixBarrel[trackref]); + gnn_npixEndcap.push_back(npixEndcap[trackref]); + gnn_outermostHitPosition.push_back(outermostHitPosition[trackref]); + gnn_mtdTime.push_back(tMtd[trackref]); + gnn_probPi.push_back(probPi[trackref]); + gnn_probK.push_back(probK[trackref]); + gnn_probP.push_back(probP[trackref]); + gnn_sigma_tof_Pi.push_back(sigmatofpi[trackref]); + gnn_sigma_tof_K.push_back(sigmatofk[trackref]); + gnn_sigma_tof_P.push_back(sigmatofp[trackref]); + gnn_trk_chi2.push_back((*itk).track().chi2()); + gnn_trk_ndof.push_back((*itk).track().ndof()); + gnn_trk_validhits.push_back((*itk).track().numberOfValidHits()); + + + auto anytp_info = getAnyMatchedTP(trackref); + if (anytp_info != nullptr) { + gnn_is_matched_tp.push_back(true); + double anytp_mass = (*anytp_info)->mass(); + gnn_tp_tEst.push_back(timeFromTrueMass(anytp_mass, pathLength[trackref], momentum[trackref], tMtd[trackref])); + gnn_tp_pdgId.push_back(std::abs((*anytp_info)->pdgId())); + + TrackingVertexRef parentVertexRef = (*anytp_info)->parentVertex(); + + // Loop on TV Collection to retrive info on sim vertices + for (const auto& vsim : simpv) { + if (vsim.sim_vertex == parentVertexRef) { + // Found the matching simPrimaryVertex + gnn_sim_vertex_z.push_back(vsim.z); + gnn_sim_vertex_t.push_back(vsim.t * simUnit_); + gnn_sim_vertex_evID.push_back(vsim.eventId); + gnn_sim_vertex_BX.push_back(vsim.bunchCrossing); + gnn_sim_vertex_index.push_back(vsim.key); + gnn_sim_vertex_isLV.push_back(vsim.is_LV); + gnn_sim_vertex_LV_dz.push_back(vsim.LV_distance_z); + } + } + + }else{ + gnn_is_matched_tp.push_back(false); + } + + } // loop on sel tracks + + GNNtree->Fill(); + + } // ntuple for GNN + + + // Fill TTree with input variables for BDT + if(saveNtupleforBDT_){ + + std::string BDTtreeName = "BDTtree_" + std::to_string(iEvent.id().event()); + TTree* BDTtree = fs_->make(BDTtreeName.c_str(), "Tree for BDT tracks"); + + BDTtree->Branch("Track_pt", &Ttrack_pt); + BDTtree->Branch("Track_eta",&Ttrack_eta); + BDTtree->Branch("Track_phi",&Ttrack_phi); + BDTtree->Branch("Track_dz",&Ttrack_dz); + BDTtree->Branch("Track_dxy",&Ttrack_dxy); + BDTtree->Branch("Track_chi2",&Ttrack_chi2); + BDTtree->Branch("Track_ndof",&Ttrack_ndof); + BDTtree->Branch("Track_nValidHits",&Ttrack_nValidHits); + BDTtree->Branch("TrackTP_pt",&TtrackTP_pt); + BDTtree->Branch("TrackTP_eta",&TtrackTP_eta); + BDTtree->Branch("TrackTP_phi",&TtrackTP_phi); + BDTtree->Branch("TrackTP_nValidHits",&TtrackTP_nValidHits); + BDTtree->Branch("Track_npixBarrelValidHits",&Ttrack_npixBarrelValidHits); + BDTtree->Branch("Track_npixEndcapValidHits",&Ttrack_npixEndcapValidHits); + BDTtree->Branch("Track_Signal",&Ttrack_Signal); + BDTtree->Branch("Track_Associated",&Ttrack_Associated); + BDTtree->Branch("Track_BTLchi2",&Ttrack_BTLchi2); + BDTtree->Branch("Track_BTLtime_chi2",&Ttrack_BTLtime_chi2); + BDTtree->Branch("Track_ETLchi2",&Ttrack_ETLchi2); + BDTtree->Branch("Track_ETLtime_chi2",&Ttrack_ETLtime_chi2); + BDTtree->Branch("Track_t0",&Ttrack_t0); + BDTtree->Branch("Track_sigmat0",&Ttrack_sigmat0); + BDTtree->Branch("Track_Tmtd",&Ttrack_Tmtd); + BDTtree->Branch("Track_MtdMVA",&Ttrack_MtdMVA); + BDTtree->Branch("Track_sigmaTmtd",&Ttrack_sigmaTmtd); + BDTtree->Branch("Track_lenght",&Ttrack_lenght); + BDTtree->Branch("Track_HasTP",&Ttrack_HasTP); + BDTtree->Branch("Track_TPHasSimClu",&Ttrack_TPHasSimClu); + BDTtree->Branch("Track_TPSimCluDirect",&Ttrack_TPSimCluDirect); + BDTtree->Branch("Track_hitMTD",&Ttrack_hitMTD); + BDTtree->Branch("Track_hit",&Ttrack_hit); + BDTtree->Branch("Track_hitMatchMTD",&Ttrack_hitMatchMTD); + BDTtree->Branch("Track_hasRecoClu",&Ttrack_hasRecoClu); + BDTtree->Branch("Track_RecoSimLink",&Ttrack_RecoSimLink); + BDTtree->Branch("Track_FullMatch",&Ttrack_FullMatch); + BDTtree->Branch("Track_det",&Ttrack_det); + BDTtree->Branch("Track_subdet",&Ttrack_subdet); + BDTtree->Branch("Track_subdetmtd",&Ttrack_subdetmtd); + BDTtree->Branch("Track_nSimClust",&Ttrack_nSimClust); + BDTtree->Branch("Track_CluTime1",&Ttrack_CluTime1); + BDTtree->Branch("Track_CluTime2",&Ttrack_CluTime2); + + + Ttrack_pt.clear(); + Ttrack_eta.clear(); + Ttrack_phi.clear(); + Ttrack_dz.clear(); + Ttrack_dxy.clear(); + Ttrack_chi2.clear(); + Ttrack_ndof.clear(); + Ttrack_nValidHits.clear(); + TtrackTP_pt.clear(); + TtrackTP_eta.clear(); + TtrackTP_phi.clear(); + TtrackTP_nValidHits.clear(); + Ttrack_npixBarrelValidHits.clear(); + Ttrack_npixEndcapValidHits.clear(); + Ttrack_Signal.clear(); + Ttrack_Associated.clear(); + Ttrack_BTLchi2.clear(); + Ttrack_BTLtime_chi2.clear(); + Ttrack_ETLchi2.clear(); + Ttrack_ETLtime_chi2.clear(); + Ttrack_t0.clear(); + Ttrack_sigmat0.clear(); + Ttrack_Tmtd.clear(); + Ttrack_MtdMVA.clear(); + Ttrack_sigmaTmtd.clear(); + Ttrack_lenght.clear(); + Ttrack_HasTP.clear(); + Ttrack_TPHasSimClu.clear(); + Ttrack_TPSimCluDirect.clear(); + Ttrack_hitMTD.clear(); + Ttrack_hit.clear(); + Ttrack_hitMatchMTD.clear(); + Ttrack_hasRecoClu.clear(); + Ttrack_RecoSimLink.clear(); + Ttrack_FullMatch.clear(); + Ttrack_det.clear(); + Ttrack_subdet.clear(); + Ttrack_subdetmtd.clear(); + Ttrack_nSimClust.clear(); + Ttrack_CluTime1.clear(); + Ttrack_CluTime2.clear(); + + + // additional check for PV + reco::Vertex Vtx_chosen; + // ~1% of cases, the 1st vertex is the "good" one, instead of 0th. + for (int iVtx = 0; iVtx < (int)vertices.size(); iVtx++) { + const reco::Vertex& vertex = vertices.at(iVtx); + if (!vertex.isFake() && vertex.ndof() >= 4) { + Vtx_chosen = vertex; + break; + } + } + + unsigned int index = 0; + for (const auto& trackGen : *tracksH) { + const reco::TrackRef trackref(iEvent.getHandle(RecTrackToken_), index); + index++; + + if (trackAssoc[trackref] == -1) { + LogInfo("mtdTracks") << "Extended track not associated"; + continue; + } + + const reco::TrackRef mtdTrackref = reco::TrackRef(iEvent.getHandle(RecMTDTrackToken_), trackAssoc[trackref]); + const reco::Track& track = *mtdTrackref; + + double track_vtx_dz_check = std::abs(trackGen.dz(Vtx_chosen.position())); + if(std::abs(trackGen.eta()) < BDT_track_eta_cut && trackGen.pt() > BDT_track_pt_cut && track_vtx_dz_check < BDT_track_dz_cut){ + + bool good_association = false; + + const reco::TrackBaseRef trkrefb(trackref); + auto found = r2s_->find(trkrefb); // Find TP! + if (found != r2s_->end()){ + + Ttrack_HasTP.push_back(true); + + Ttrack_pt.push_back(trackGen.pt()); + Ttrack_phi.push_back(trackGen.phi()); + Ttrack_eta.push_back(trackGen.eta()); + Ttrack_dz.push_back(std::abs(trackGen.dz(Vtx_chosen.position()))); + Ttrack_dxy.push_back(std::abs(trackGen.dxy(Vtx_chosen.position()))); + Ttrack_chi2.push_back(trackGen.chi2()); + Ttrack_ndof.push_back(trackGen.ndof()); + Ttrack_nValidHits.push_back(trackGen.numberOfValidHits()); + + Ttrack_npixBarrelValidHits.push_back(npixBarrel[trackref]); + Ttrack_npixEndcapValidHits.push_back(npixEndcap[trackref]); + Ttrack_BTLchi2.push_back(btlMatchChi2[trackref]); + Ttrack_BTLtime_chi2.push_back(btlMatchTimeChi2[trackref]); + Ttrack_ETLchi2.push_back(etlMatchChi2[trackref]); + Ttrack_ETLtime_chi2.push_back(etlMatchTimeChi2[trackref]); + + Ttrack_t0.push_back(t0Src[trackref]); + Ttrack_sigmat0.push_back(Sigmat0Src[trackref]); + Ttrack_Tmtd.push_back(tMtd[trackref]); + Ttrack_sigmaTmtd.push_back(sigmatimemtd[trackref]); + Ttrack_lenght.push_back(pathLength[trackref]); + Ttrack_MtdMVA.push_back(mtdQualMVA[trackref]); + + const auto& tp = (found->val)[0]; // almost all tracks have just one TP, a few have 2. (can scan through with "for(const auto& tp : found->val)") + + TtrackTP_pt.push_back(tp.first->pt()); + TtrackTP_eta.push_back(tp.first->eta()); + TtrackTP_phi.push_back(tp.first->phi()); + TtrackTP_nValidHits.push_back(tp.first->numberOfHits()); + + auto simClustersRefs = tp2SimAssociationMap.find(tp.first); // finds a simClusterReference!! + const bool withMTD = (simClustersRefs != tp2SimAssociationMap.end()); + + // 1) Link track RecHit to MTdTrackingRecHit (I know which RecHits, hit MTD) + // 2) Get the MTD Reco Cluster from MTDTrackingRecHit info + // 3) Find the MTD sim cluster that is linked to MTD reco cluster in the previous step + // 4) Check if the MTD sim cluster found in previous step is the same as MTD Sim cluster that is linked to TP. + + if (withMTD){ // TP link to MTDsimCluster + + // In test file, all TPs had only 1 simCluster linked to them + Ttrack_TPHasSimClu.push_back(true); + const auto& SimCluRefs = (simClustersRefs->val)[0]; + if((*SimCluRefs).trackIdOffset() == 0){ // SimCluster linked to TP is from DirectHit!!! + Ttrack_TPSimCluDirect.push_back(true); + + for (const auto& hit : track.recHits()) { // Extended track with MTD + if (good_association) + continue; // if goodd assoc found, do not go through all the following checks. + if (hit->isValid() == false) + continue; + + Ttrack_hit.push_back(true); + + MTDDetId Hit = hit->geographicalId(); + Ttrack_det.push_back(Hit.det()); + Ttrack_subdet.push_back(Hit.subdetId()); + Ttrack_subdetmtd.push_back(Hit.mtdSubDetector()); + + if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 1 || Hit.mtdSubDetector() == 2)) { // trackingRecHit is a hit in MTD + Ttrack_hitMTD.push_back(true); + + const MTDTrackingRecHit* mtdhit1 = static_cast(hit); // Why I can't I access the mtdcluster info directly from TrackingRecHit? + const FTLCluster& hit_cluster_check = mtdhit1->mtdCluster(); + + + if (abs(track.eta()) < 1.5){ // Should be a BTL cluster + for (const auto& DetSetCluBTL : *btlRecCluHandle) { // BTL check + if (good_association) + break; + for (const auto& clusterBTL : DetSetCluBTL) { // Scan throguh btl reco clusters to find a match + if (good_association) + break; + if(isSameCluster(hit_cluster_check , clusterBTL)){ // find the reco Cluster inside the recoCluster collections + Ttrack_hasRecoClu.push_back(true); + + edm::Ref, FTLCluster> clusterRefBTL = edmNew::makeRefTo(btlRecCluHandle, &clusterBTL); // get the reference to reco cluster inside the collections + auto itp = r2sAssociationMap.equal_range(clusterRefBTL); // find the linked simCluster + if (itp.first != itp.second) { // find the linked simCluster + std::vector simClustersRefs_RecoMatchBTL = (*itp.first).second; // the range of itp.first, itp.second should be always 1 + Ttrack_RecoSimLink.push_back(true); + + for (unsigned int i = 0; i < simClustersRefs_RecoMatchBTL.size(); i++) { + auto simClusterRef_RecoMatchBTL = simClustersRefs_RecoMatchBTL[i]; + + Ttrack_CluTime1.push_back((*SimCluRefs).simLCTime()); + Ttrack_CluTime2.push_back((*simClusterRef_RecoMatchBTL).simLCTime()); + Ttrack_nSimClust.push_back(i); + + if((*simClusterRef_RecoMatchBTL).simLCTime() == (*SimCluRefs).simLCTime()){ // check if the sim cluster linked to reco cluster is the same as the one linked to TP. + good_association = true; + Ttrack_FullMatch.push_back(true); + break; + } + } + } + }else{ + continue; + } // mtd hit matched to btl reco cluster + } // loop through BTL reco clusters + } // loop thorugh set of BTL reco clusters + }else{ // Should be an ETL cluster + for (const auto& DetSetCluETL : *etlRecCluHandle) { // ETL check + if (good_association) + break; + for (const auto& clusterETL : DetSetCluETL) { // Scan throguh etl reco clusters to find a match + if (good_association) + break; + if(isSameCluster(hit_cluster_check , clusterETL)){ + Ttrack_hasRecoClu.push_back(true); + + edm::Ref, FTLCluster> clusterRefETL = edmNew::makeRefTo(etlRecCluHandle, &clusterETL); + auto itp = r2sAssociationMap.equal_range(clusterRefETL); + if (itp.first != itp.second) { + std::vector simClustersRefs_RecoMatchETL = (*itp.first).second; // the range of itp.first, itp.second should be always 1 + Ttrack_RecoSimLink.push_back(true); + + for (unsigned int i = 0; i < simClustersRefs_RecoMatchETL.size(); i++) { + auto simClusterRef_RecoMatchETL = simClustersRefs_RecoMatchETL[i]; + + Ttrack_CluTime1.push_back((*SimCluRefs).simLCTime()); + Ttrack_CluTime2.push_back((*simClusterRef_RecoMatchETL).simLCTime()); + Ttrack_nSimClust.push_back(i); + + if((*simClusterRef_RecoMatchETL).simLCTime() == (*SimCluRefs).simLCTime()){ + good_association = true; + Ttrack_FullMatch.push_back(true); + break; + } + } + } + }else{ + continue; + } // mtd hit matched to etl reco cluster + } // loop through ETL reco clusters + } // loop thorugh set of ETL reco clusters + } // BTL/ETL cluster search split + + }else{ // trackingRecHit is a hit in MTD + continue; + } // Hits in MTD + } // Loop through trackHits + } + } // TP link to MTDsimCluster + + if (tp.first->eventId().bunchCrossing() == 0 && tp.first->eventId().event() == 0){ // Signal vs PU seperation + Ttrack_Signal.push_back(true); // Signal track + }else{ + Ttrack_Signal.push_back(false); // PU track? + } + + Ttrack_Associated.push_back(good_association); + + } // Found TP that is matched to the GTrack + + } // basic track eta/pT/dz cuts + + } // Loop on reco tracks + + BDTtree->Fill(); + + } // ntuple for BDT + +} + +// ------------ method fills 'descriptions' with the allowed parameters for the module ------------ +void MVATrainingNtuple::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("inputTracks", edm::InputTag("generalTracks")); + desc.add("inputTagT", edm::InputTag("trackExtenderWithMTD")); + desc.add("inputTagV", edm::InputTag("offlinePrimaryVertices4D")); + desc.add("TPtoRecoTrackAssoc", edm::InputTag("trackingParticleRecoTrackAsssociation")); + desc.add("tp2SimAssociationMapTag", edm::InputTag("mtdSimLayerClusterToTPAssociation")); + desc.add("r2sAssociationMapTag", edm::InputTag("mtdRecoClusterToSimLayerClusterAssociation")); + desc.add("SimTag", edm::InputTag("mix", "MergedTrackTruth")); + desc.add("offlineBS", edm::InputTag("offlineBeamSpot")); + desc.add("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc"))->setComment("Association between General and MTD Extended tracks"); + desc.add("recCluTagBTL", edm::InputTag("mtdClusters", "FTLBarrel")); + desc.add("recCluTagETL", edm::InputTag("mtdClusters", "FTLEndcap")); + desc.add("pathLengthSrc", edm::InputTag("trackExtenderWithMTD:generalTrackPathLength")); + desc.add("momentumSrc", edm::InputTag("trackExtenderWithMTD:generalTrackp")); + desc.add("tmtd", edm::InputTag("trackExtenderWithMTD:generalTracktmtd")); + desc.add("sigmaSrc", edm::InputTag("trackExtenderWithMTD:generalTracksigmatmtd")); + desc.add("t0Src", edm::InputTag("trackExtenderWithMTD:generalTrackt0")); + desc.add("sigmat0Src", edm::InputTag("trackExtenderWithMTD:generalTracksigmat0")); + desc.add("t0PID", edm::InputTag("tofPID:t0")); + desc.add("sigmat0PID", edm::InputTag("tofPID:sigmat0")); + desc.add("t0SafePID", edm::InputTag("tofPID:t0safe")); + desc.add("sigmat0SafePID", edm::InputTag("tofPID:sigmat0safe")); + desc.add("trackMVAQual", edm::InputTag("mtdTrackQualityMVA:mtdQualMVA")); + desc.add("tofPi", edm::InputTag("trackExtenderWithMTD:generalTrackTofPi")); + desc.add("tofK", edm::InputTag("trackExtenderWithMTD:generalTrackTofK")); + desc.add("tofP", edm::InputTag("trackExtenderWithMTD:generalTrackTofP")); + desc.add("probPi", edm::InputTag("tofPID:probPi")); + desc.add("probK", edm::InputTag("tofPID:probK")); + desc.add("probP", edm::InputTag("tofPID:probP")); + desc.add("sigmatofpiSrc", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofPi")); + desc.add("sigmatofkSrc", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofK")); + desc.add("sigmatofpSrc", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofP")); + desc.add("btlMatchChi2Src", edm::InputTag("trackExtenderWithMTD", "btlMatchChi2")); + desc.add("btlMatchTimeChi2Src", edm::InputTag("trackExtenderWithMTD", "btlMatchTimeChi2")); + desc.add("etlMatchChi2Src", edm::InputTag("trackExtenderWithMTD", "etlMatchChi2")); + desc.add("etlMatchTimeChi2Src", edm::InputTag("trackExtenderWithMTD", "etlMatchTimeChi2")); + desc.add("npixBarrelSrc", edm::InputTag("trackExtenderWithMTD", "npixBarrel")); + desc.add("npixEndcapSrc", edm::InputTag("trackExtenderWithMTD", "npixEndcap")); + desc.add("outermostHitPositionSrc", edm::InputTag("trackExtenderWithMTD", "generalTrackOutermostHitPosition")); + desc.addUntracked("fileName","file.root"); + desc.add("ntupleforBDT", false); + desc.add("ntupleforGNN", true); + { + edm::ParameterSetDescription psd0; + HITrackFilterForPVFinding::fillPSetDescription(psd0); // extension of TrackFilterForPVFinding + desc.add("TkFilterParameters", psd0); + } + + descriptions.add("mvaTrainingNtuple",desc); + +} + +//define this as a plug-in +DEFINE_FWK_MODULE(MVATrainingNtuple); diff --git a/RecoMTD/TimingIDTools/test/mvaTrainingSaveNtuple_cfg.py b/RecoMTD/TimingIDTools/test/mvaTrainingSaveNtuple_cfg.py new file mode 100644 index 0000000000000..bab05a3767b8c --- /dev/null +++ b/RecoMTD/TimingIDTools/test/mvaTrainingSaveNtuple_cfg.py @@ -0,0 +1,36 @@ + +import FWCore.ParameterSet.Config as cms + +process = cms.Process("SaveNtuple") + +process.load('Configuration.StandardSequences.Services_cff') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mix_POISSON_average_cfi') +process.load('Configuration.Geometry.GeometryExtended2026D110Reco_cff') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.Reconstruction_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T33', '') + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) ) + +process.TFileService = cms.Service("TFileService", + fileName = cms.string("output_ntuple.root"), + closeFileFast = cms.untracked.bool(True) +) + +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring( + 'file:step3.root' + ) +) + +from RecoMTD.TimingIDTools.mvaTrainingNtuple_cfi import mvaTrainingNtuple + +process.mvaTrainingNtuple = mvaTrainingNtuple + +process.p = cms.Path(process.mvaTrainingNtuple) + From 49d4b30bcd93b394a27196bf50676365885720f2 Mon Sep 17 00:00:00 2001 From: Ivan Razumov Date: Fri, 4 Oct 2024 14:31:25 +0200 Subject: [PATCH 006/418] [LLVM Analyzer][GEN] Remove dead code --- .../ExhumeInterface/src/ExhumeHadronizer.cc | 1 - .../GenFilters/plugins/PythiaAllDauVFilter.cc | 2 +- .../LHEInterface/plugins/ExternalLHEProducer.cc | 3 +-- .../ReggeGribovPartonMCInterface/src/read.cc | 11 ++++++----- .../SherpaInterface/src/SherpackUtilities.cc | 2 -- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/GeneratorInterface/ExhumeInterface/src/ExhumeHadronizer.cc b/GeneratorInterface/ExhumeInterface/src/ExhumeHadronizer.cc index 13aecd2ce563d..19681e27ecb75 100644 --- a/GeneratorInterface/ExhumeInterface/src/ExhumeHadronizer.cc +++ b/GeneratorInterface/ExhumeInterface/src/ExhumeHadronizer.cc @@ -211,7 +211,6 @@ namespace gen { (static_cast(exhumeProcess_))->SetThetaMin(thetaMin); sigID = 400; } else { - sigID = -1; throw edm::Exception(edm::errors::Configuration, "ExhumeError") << " No valid Exhume Process"; } diff --git a/GeneratorInterface/GenFilters/plugins/PythiaAllDauVFilter.cc b/GeneratorInterface/GenFilters/plugins/PythiaAllDauVFilter.cc index 8904611b3822e..2fc476a6c5db8 100644 --- a/GeneratorInterface/GenFilters/plugins/PythiaAllDauVFilter.cc +++ b/GeneratorInterface/GenFilters/plugins/PythiaAllDauVFilter.cc @@ -89,7 +89,7 @@ bool PythiaAllDauVFilter::filter(edm::StreamID, edm::Event& iEvent, const edm::E int OK(1); vector vparticles; vector foundDaughter(dauIDs.size(), false); - auto dauCollection = &dauIDs; + const std::vector* dauCollection = nullptr; HepMC::GenEvent* myGenEvent = new HepMC::GenEvent(*(evt->GetEvent())); diff --git a/GeneratorInterface/LHEInterface/plugins/ExternalLHEProducer.cc b/GeneratorInterface/LHEInterface/plugins/ExternalLHEProducer.cc index 2b9d38c2c222b..c2704431d38b0 100644 --- a/GeneratorInterface/LHEInterface/plugins/ExternalLHEProducer.cc +++ b/GeneratorInterface/LHEInterface/plugins/ExternalLHEProducer.cc @@ -110,7 +110,7 @@ class ExternalLHEProducer : public edm::one::EDProducer beginRunPutToken_; class FileCloseSentry { public: - explicit FileCloseSentry(int fd) : fd_(fd){}; + explicit FileCloseSentry(int fd) : fd_(fd) {}; ~FileCloseSentry() { close(fd_); } @@ -505,7 +505,6 @@ void ExternalLHEProducer::executeScript(std::vector const& args, in close(filedes[1]); // If the exec succeeds, the read will fail. while (((rc2 = read(filedes[0], &rc, sizeof(int))) == -1) && (errno == EINTR)) { - rc2 = 0; } if ((rc2 == sizeof(int)) && rc) { throw cms::Exception("ExternalLHEProducer") diff --git a/GeneratorInterface/ReggeGribovPartonMCInterface/src/read.cc b/GeneratorInterface/ReggeGribovPartonMCInterface/src/read.cc index 5fc5cf97fdd97..cd6a717840157 100644 --- a/GeneratorInterface/ReggeGribovPartonMCInterface/src/read.cc +++ b/GeneratorInterface/ReggeGribovPartonMCInterface/src/read.cc @@ -5,7 +5,7 @@ #include int main(int numArgs, const char *args[]) { - int res; + // int res; if (numArgs != 2) { //PrintHelp(rs); @@ -21,10 +21,10 @@ int main(int numArgs, const char *args[]) { } LzmaFile lzma; - res = lzma.Open(args[1]); - res = lzma.DecodeAll(); - res = lzma.Close(); - + /*res =*/lzma.Open(args[1]); + /*res =*/lzma.DecodeAll(); + /*res =*/lzma.Close(); + /* if (res != SZ_OK) { if (res == SZ_ERROR_MEM) { return 0; //PrintError(rs, kCantAllocateMessage); @@ -37,5 +37,6 @@ int main(int numArgs, const char *args[]) { } return 0; //PrintErrorNumber(rs, res); } + */ return 0; } diff --git a/GeneratorInterface/SherpaInterface/src/SherpackUtilities.cc b/GeneratorInterface/SherpaInterface/src/SherpackUtilities.cc index 3247ff8037e03..d49edf480a0f2 100644 --- a/GeneratorInterface/SherpaInterface/src/SherpackUtilities.cc +++ b/GeneratorInterface/SherpaInterface/src/SherpackUtilities.cc @@ -417,7 +417,6 @@ namespace spu { printf("%c", buff[ll]); } printf("\n"); - bytes_read = fread(buff, 1, 512, a); for (int ll = 0; ll < 512; ll++) { printf("%c", buff[ll]); } @@ -431,7 +430,6 @@ namespace spu { } //~ printf("NEW LinkNAME: %s\n",newlonglinkname); } else if (buff[156] == 'L') { - bytes_read = fread(buff, 1, 512, a); for (int k = 0; k < filesize; k++) { newlongpathname[k] = buff[k]; } From e06f9aecefb28f319e5b362d5d5b80d33dadb46d Mon Sep 17 00:00:00 2001 From: Ivan Razumov Date: Wed, 16 Oct 2024 12:13:27 +0200 Subject: [PATCH 007/418] [LLVM Analyzer][Generators] Cleanup LLVM analyzer warnings --- .../EvtGenInterface/plugins/DataCardFileWriter.cc | 4 +++- .../EvtGenInterface/plugins/EvtGen/EvtGenInterface.cc | 7 +++++-- GeneratorInterface/RivetInterface/plugins/RivetAnalyzer.cc | 3 +++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/GeneratorInterface/EvtGenInterface/plugins/DataCardFileWriter.cc b/GeneratorInterface/EvtGenInterface/plugins/DataCardFileWriter.cc index 35c2cd899b3a2..a3a8a3828bb09 100644 --- a/GeneratorInterface/EvtGenInterface/plugins/DataCardFileWriter.cc +++ b/GeneratorInterface/EvtGenInterface/plugins/DataCardFileWriter.cc @@ -11,7 +11,9 @@ using namespace gen; DataCardFileWriter::DataCardFileWriter(const edm::ParameterSet& pset) { std::string FileName = pset.getParameter("FileName"); - std::string Base = std::getenv("CMSSW_BASE"); + char* tmp = std::getenv("CMSSW_BASE"); + assert(tmp); + std::string Base(tmp); Base += "/src/"; std::cout << "Writting file:" << Base + FileName << std::endl; std::ofstream outputFile(Base + FileName); diff --git a/GeneratorInterface/EvtGenInterface/plugins/EvtGen/EvtGenInterface.cc b/GeneratorInterface/EvtGenInterface/plugins/EvtGen/EvtGenInterface.cc index 26b5f1d437ae2..2da18efdeb580 100644 --- a/GeneratorInterface/EvtGenInterface/plugins/EvtGen/EvtGenInterface.cc +++ b/GeneratorInterface/EvtGenInterface/plugins/EvtGen/EvtGenInterface.cc @@ -301,13 +301,16 @@ void EvtGenInterface::init() { //Setup evtGen following instructions on http://evtgen.warwick.ac.uk/docs/external/ bool convertPythiaCodes = fPSet->getUntrackedParameter( "convertPythiaCodes", true); // Specify if we want to use Pythia 6 physics codes for decays - std::string pythiaDir = + char* tmp = std::getenv("PYTHIA8DATA"); // Specify the pythia xml data directory to use the default PYTHIA8DATA location - if (pythiaDir.empty()) { + + if (tmp == nullptr) { edm::LogError("EvtGenInterface::~EvtGenInterface") << "EvtGenInterface::init() PYTHIA8DATA not defined. Terminating program "; exit(0); } + + std::string pythiaDir(tmp); std::string photonType("gamma"); // Specify the photon type for Photos bool useEvtGenRandom(true); // Specify if we want to use the EvtGen random number engine for these generators diff --git a/GeneratorInterface/RivetInterface/plugins/RivetAnalyzer.cc b/GeneratorInterface/RivetInterface/plugins/RivetAnalyzer.cc index 82c172aa2e392..8af9cb4d27b21 100644 --- a/GeneratorInterface/RivetInterface/plugins/RivetAnalyzer.cc +++ b/GeneratorInterface/RivetInterface/plugins/RivetAnalyzer.cc @@ -54,6 +54,9 @@ void RivetAnalyzer::beginJob() { //set the environment, very ugly but rivet is monolithic when it comes to paths char* cmsswbase = std::getenv("CMSSW_BASE"); char* cmsswrelease = std::getenv("CMSSW_RELEASE_BASE"); + // These should never fail + assert(cmsswbase); + assert(cmsswrelease); if (!std::getenv("RIVET_REF_PATH")) { const std::string rivetref = string(cmsswbase) + "/src/GeneratorInterface/RivetInterface/data:" + string(cmsswrelease) + From 23702028dcf034af87023a4f29f175bfb9074b58 Mon Sep 17 00:00:00 2001 From: Patin Inkaew Date: Thu, 24 Oct 2024 16:26:50 +0200 Subject: [PATCH 008/418] improve ScoutingNano integration with autoNano with customisations and clean up code --- PhysicsTools/NanoAOD/python/autoNANO.py | 7 +- .../NanoAOD/python/custom_run3scouting_cff.py | 194 ++- .../NanoAOD/python/run3scouting_cff.py | 1057 +++++++++-------- 3 files changed, 742 insertions(+), 516 deletions(-) diff --git a/PhysicsTools/NanoAOD/python/autoNANO.py b/PhysicsTools/NanoAOD/python/autoNANO.py index ccc4ac843427a..d2cd884fb23f2 100644 --- a/PhysicsTools/NanoAOD/python/autoNANO.py +++ b/PhysicsTools/NanoAOD/python/autoNANO.py @@ -31,8 +31,11 @@ def expandNanoMapping(seqList, mapping, key): # L1 flavours: add tables through customize, supposed to be combined with PHYS 'L1': {'customize': 'PhysicsTools/NanoAOD/l1trig_cff.nanoL1TrigObjCustomize'}, 'L1FULL': {'customize': 'PhysicsTools/NanoAOD/l1trig_cff.nanoL1TrigObjCustomizeFull'}, - # scouting nano - 'Scout': {'sequence': 'PhysicsTools/NanoAOD/custom_run3scouting_cff'}, + # Scouting nano + 'Scout' : {'sequence': 'PhysicsTools/NanoAOD/custom_run3scouting_cff.scoutingNanoSequence', + 'customize': 'PhysicsTools/NanoAOD/custom_run3scouting_cff.customiseScoutingNano'}, + 'ScoutFromMini' : {'sequence': 'PhysicsTools/NanoAOD/custom_run3scouting_cff.scoutingNanoSequence', + 'customize': 'PhysicsTools/NanoAOD/custom_run3scouting_cff.customiseScoutingNanoFromMini'}, # JME nano 'JME': {'sequence': '@PHYS', 'customize': '@PHYS+PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD'}, diff --git a/PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py b/PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py index 08953279f25ab..9176771f2064d 100644 --- a/PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py +++ b/PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py @@ -1,62 +1,184 @@ import FWCore.ParameterSet.Config as cms from PhysicsTools.NanoAOD.run3scouting_cff import * -from PhysicsTools.NanoAOD.globals_cff import puTable -from PhysicsTools.NanoAOD.triggerObjects_cff import unpackedPatTrigger, triggerObjectTable, l1bits from L1Trigger.Configuration.L1TRawToDigi_cff import * from EventFilter.L1TRawToDigi.gtStage2Digis_cfi import gtStage2Digis -from PhysicsTools.PatAlgos.triggerLayer1.triggerProducer_cfi import patTrigger -from PhysicsTools.PatAlgos.slimming.selectedPatTrigger_cfi import selectedPatTrigger -from PhysicsTools.PatAlgos.slimming.slimmedPatTrigger_cfi import slimmedPatTrigger +from PhysicsTools.NanoAOD.triggerObjects_cff import l1bits +from PhysicsTools.NanoAOD.globals_cff import puTable + +############################ +### Sub Task Definitions ### +############################ -# common tasks -particleTask = cms.Task(scoutingPFCands) -ak4JetTableTask = cms.Task(ak4ScoutingJets,ak4ScoutingJetParticleNetJetTagInfos,ak4ScoutingJetParticleNetJetTags,ak4ScoutingJetTable) -ak8JetTableTask = cms.Task(ak8ScoutingJets,ak8ScoutingJetsSoftDrop,ak8ScoutingJetsSoftDropMass,ak8ScoutingJetEcfNbeta1,ak8ScoutingJetNjettiness,ak8ScoutingJetParticleNetJetTagInfos,ak8ScoutingJetParticleNetJetTags,ak8ScoutingJetParticleNetMassRegressionJetTags,ak8ScoutingJetTable) +# Task contains all dependent tasks +# ExtensionTask must be run on top of another Task -muonScoutingTableTask = cms.Task(muonScoutingTable) -displacedvertexScoutingTableTask = cms.Task(displacedvertexScoutingTable) +############################# +# Scouting Original Objects # +############################# -# from 2024, there are two scouting muon collections +# Scouting Muon +scoutingMuonTableTask = cms.Task(scoutingMuonTable) +scoutingMuonDisplacedVertexTableTask = cms.Task(scoutingMuonDisplacedVertexTable) + +# from 2024, there are two muon collections from Configuration.Eras.Modifier_run3_scouting_nanoAOD_post2023_cff import run3_scouting_nanoAOD_post2023 -run3_scouting_nanoAOD_post2023.toReplaceWith(muonScoutingTableTask, cms.Task(muonVtxScoutingTable, muonNoVtxScoutingTable))\ - .toReplaceWith(displacedvertexScoutingTableTask, cms.Task(displacedvertexVtxScoutingTable, displacedvertexNoVtxScoutingTable)) +run3_scouting_nanoAOD_post2023.toReplaceWith(scoutingMuonTableTask, cms.Task(scoutingMuonVtxTable, scoutingMuonNoVtxTable))\ + .toReplaceWith(scoutingMuonDisplacedVertexTableTask, cms.Task(scoutingMuonVtxDisplacedVertexTable, scoutingMuonNoVtxDisplacedVertexTable)) + +# other collections are directly from original Run3Scouting objects, so unnessary to define tasks + +############################ +# Scouting Derived Objects # +############################ + +scoutingPFCandidateTask = cms.Task(scoutingPFCandidate, scoutingPFCandidateTable) +scoutingPFJetReclusterTask = cms.Task( + scoutingPFCandidate, # translate to reco::PFCandidate, used as input + scoutingPFJetRecluster, # jet clustering + scoutingPFJetReclusterParticleNetJetTagInfos, scoutingPFJetReclusterParticleNetJetTags, # jet tagging + scoutingPFJetReclusterTable +) +scoutingPFJetReclusterMatchGenExtensionTask = cms.Task( + scoutingPFJetReclusterMatchGen, # gen jet matching + scoutingPFJetReclusterMatchGenExtensionTable +) + +scoutingFatPFJetReclusterTask = cms.Task( + scoutingPFCandidate, # translate to reco::PFCandidate, used as input + scoutingFatPFJetRecluster, # jet clustering + scoutingFatPFJetReclusterParticleNetJetTagInfos, scoutingFatPFJetReclusterParticleNetJetTags, # jet tagging + scoutingFatPFJetReclusterSoftDrop, scoutingFatPFJetReclusterSoftDropMass, # softdrop mass + scoutingFatPFJetReclusterParticleNetJetTagInfos, scoutingFatPFJetReclusterParticleNetMassRegressionJetTags, # regressed mass + scoutingFatPFJetReclusterEcfNbeta1, scoutingFatPFJetReclusterNjettiness, # substructure variables + scoutingFatPFJetReclusterTable +) +scoutingFatPFJetReclusterMatchGenExtensionTask = cms.Task( + scoutingFatPFJetReclusterMatchGen, # gen jet matching + scoutingFatPFJetReclusterMatchGenExtensionTable +) + +############################ +# Trigger Bits and Objects # +############################ ## L1 decisions gtStage2DigisScouting = gtStage2Digis.clone(InputLabel="hltFEDSelectorL1") -l1bitsScouting = l1bits.clone(src="gtStage2DigisScouting") +l1bitsScouting = l1bits.clone(src="gtStage2DigisScouting") ## L1 objects from PhysicsTools.NanoAOD.l1trig_cff import * -l1MuScoutingTable = l1MuTable.clone(src=cms.InputTag("gtStage2DigisScouting","Muon")) -l1JetScoutingTable = l1JetTable.clone(src=cms.InputTag("gtStage2DigisScouting","Jet")) -l1EGScoutingTable = l1EGTable.clone(src=cms.InputTag("gtStage2DigisScouting","EGamma")) -l1TauScoutingTable = l1TauTable.clone(src=cms.InputTag("gtStage2DigisScouting","Tau")) -l1EtSumScoutingTable = l1EtSumTable.clone(src=cms.InputTag("gtStage2DigisScouting","EtSum")) +l1MuScoutingTable = l1MuTable.clone(src=cms.InputTag("gtStage2DigisScouting", "Muon")) +l1EGScoutingTable = l1EGTable.clone(src=cms.InputTag("gtStage2DigisScouting", "EGamma")) +l1TauScoutingTable = l1TauTable.clone(src=cms.InputTag("gtStage2DigisScouting", "Tau")) +l1JetScoutingTable = l1JetTable.clone(src=cms.InputTag("gtStage2DigisScouting", "Jet")) +l1EtSumScoutingTable = l1EtSumTable.clone(src=cms.InputTag("gtStage2DigisScouting", "EtSum")) -#reduce the variables to the core variables as only these are available in gtStage2Digis -l1EGScoutingTable.variables = cms.PSet(l1EGReducedVars) +# reduce the variables to the core variables as only these are available in gtStage2Digis l1MuScoutingTable.variables = cms.PSet(l1MuonReducedVars) -l1JetScoutingTable.variables = cms.PSet(l1JetReducedVars) +l1EGScoutingTable.variables = cms.PSet(l1EGReducedVars) l1TauScoutingTable.variables = cms.PSet(l1TauReducedVars) +l1JetScoutingTable.variables = cms.PSet(l1JetReducedVars) l1EtSumScoutingTable.variables = cms.PSet(l1EtSumReducedVars) -triggerTask = cms.Task( - gtStage2DigisScouting, l1bitsScouting, - l1MuScoutingTable, l1EGScoutingTable, l1TauScoutingTable, l1JetScoutingTable, l1EtSumScoutingTable, -) -triggerSequence = cms.Sequence(L1TRawToDigi+cms.Sequence(triggerTask)) +############################## +### Main Tasks Definitions ### +############################## -# MC tasks -genJetTask = cms.Task(ak4ScoutingJetMatchGen,ak4ScoutingJetExtTable,ak8ScoutingJetMatchGen,ak8ScoutingJetExtTable) -puTask = cms.Task(puTable) +# default configuration for ScoutingNano common for both data and MC +def prepareScoutingNanoTaskCommon(): + # Scouting original objects + # all scouting objects are saved except PF Candidate and Track + scoutingNanoTaskCommon = cms.Task() + scoutingNanoTaskCommon.add(scoutingMuonTableTask, scoutingMuonDisplacedVertexTableTask) + scoutingNanoTaskCommon.add(scoutingElectronTable) + scoutingNanoTaskCommon.add(scoutingPhotonTable) + scoutingNanoTaskCommon.add(scoutingPrimaryVertexTable) + scoutingNanoTaskCommon.add(scoutingPFJetTable) + scoutingNanoTaskCommon.add(scoutingMETTable, scoutingRhoTable) + + # Scouting derived objects + scoutingNanoTaskCommon.add(scoutingPFJetReclusterTask) + scoutingNanoTaskCommon.add(scoutingFatPFJetReclusterTask) -nanoTableTaskCommon = cms.Task(photonScoutingTable,muonScoutingTableTask,electronScoutingTable,primaryvertexScoutingTable,displacedvertexScoutingTableTask,jetScoutingTable,rhoScoutingTable,metScoutingTable,particleTask,ak4JetTableTask,ak8JetTableTask) + return scoutingNanoTaskCommon -nanoSequenceCommon = cms.Sequence(triggerSequence,nanoTableTaskCommon) +# tasks related to trigger bits and objects +def prepareScoutingTriggerTask(): + scoutingTriggerTask = cms.Task(gtStage2DigisScouting, l1bitsScouting) + scoutingTriggerTask.add(cms.Task(l1MuScoutingTable, l1EGScoutingTable, l1TauScoutingTable, l1JetScoutingTable, l1EtSumScoutingTable)) + return scoutingTriggerTask -nanoSequence = cms.Sequence(nanoSequenceCommon) +# additional tasks for running on MC +def prepareScoutingNanoTaskMC(): + scoutingNanoTaskMC = cms.Task() + scoutingNanoTaskMC.add(scoutingPFJetReclusterMatchGenExtensionTask) + scoutingNanoTaskMC.add(scoutingFatPFJetReclusterMatchGenExtensionTask) -nanoSequenceMC = cms.Sequence(nanoSequenceCommon + cms.Sequence(cms.Task(genJetTask,puTask))) + scoutingNanoTaskMC.add(puTable) + return scoutingNanoTaskMC + +# Common tasks added to main scoutingNanoSequence +scoutingNanoTaskCommon = prepareScoutingNanoTaskCommon() +scoutingNanoSequence = cms.Sequence(scoutingNanoTaskCommon) + +# Specific tasks which will be added to sequence during customization +scoutingTriggerTask = prepareScoutingTriggerTask() +scoutingTriggerSequence = cms.Sequence(L1TRawToDigi+cms.Sequence(scoutingTriggerTask)) +scoutingNanoTaskMC = prepareScoutingNanoTaskMC() + +def customiseScoutingNano(process): + # if running with standard NanoAOD, triggerSequence is already added + # if running standalone, triggerSequence need to be added + if not ((hasattr(process, "nanoSequence") and process.schedule.contains(process.nanoSequence)) + or hasattr(process, "nanoSequenceMC") and process.schedule.contains(process.nanoSequenceMC)): + process.trigger_step = cms.Path(process.scoutingTriggerSequence) + process.schedule.extend([process.trigger_step]) + + # specific tasks when running on MC + runOnMC = hasattr(process,"NANOEDMAODSIMoutput") or hasattr(process,"NANOAODSIMoutput") + if runOnMC: + process.scoutingNanoSequence.associate(scoutingNanoTaskMC) + + return process + +def customiseScoutingNanoFromMini(process): + # normal customise for ScoutingNano + process = customiseScoutingNano(process) + + # remove L1TRawToDigi + process.scoutingTriggerSequence.remove(process.L1TRawToDigi) + + # remove gtStage2Digis since they are already run for Mini + process.scoutingTriggerTask.remove(process.gtStage2DigisScouting) + + # change src for l1 bits + process.l1bitsScouting.src = cms.InputTag("gtStage2Digis") + + # change src for l1 objects + process.l1MuScoutingTable.src = cms.InputTag("gmtStage2Digis", "Muon") + process.l1EGScoutingTable.src = cms.InputTag("caloStage2Digis", "EGamma") + process.l1TauScoutingTable.src = cms.InputTag("caloStage2Digis", "Tau") + process.l1JetScoutingTable.src = cms.InputTag("caloStage2Digis", "Jet") + process.l1EtSumScoutingTable.src = cms.InputTag("caloStage2Digis", "EtSum") + + return process + +##################### +### Customisation ### +##################### +# these function are designed to be used with --customise flag in cmsDriver.py +# e.g. --customise PhysicsTools/NanoAOD/python/custom_run3scouting_cff.addScoutingPFCandidate + +def addScoutingTrack(process): + process.scoutingNanoSequence.associate(cms.Task(scoutingTrackTable)) + return process + +def addScoutingParticle(process): + # original PF candidate without post-processing + process.scoutingNanoSequence.associate(cms.Task(scoutingParticleTable)) + return process -def nanoAOD_customizeCommon(process): +def addScoutingPFCandidate(process): + # PF candidate after translation to reco::PFCandidate + process.scoutingNanoSequence.associate(scoutingPFCandidateTask) return process diff --git a/PhysicsTools/NanoAOD/python/run3scouting_cff.py b/PhysicsTools/NanoAOD/python/run3scouting_cff.py index a95fec516b433..3c18e3056f00a 100644 --- a/PhysicsTools/NanoAOD/python/run3scouting_cff.py +++ b/PhysicsTools/NanoAOD/python/run3scouting_cff.py @@ -2,217 +2,296 @@ from PhysicsTools.NanoAOD.common_cff import * from PhysicsTools.NanoAOD.simpleCandidateFlatTableProducer_cfi import simpleCandidateFlatTableProducer -################ -# Scouting photons, electrons, muons, tracks, primary vertices, displaced vertices, jets (clustered at HLT), rho and MET - -photonScoutingTable = cms.EDProducer("SimpleRun3ScoutingPhotonFlatTableProducer", - src = cms.InputTag("hltScoutingEgammaPacker"), - cut = cms.string(""), - name = cms.string("ScoutingPhoton"), - doc = cms.string("Photon scouting information"), - singleton = cms.bool(False), - extension = cms.bool(False), - variables = cms.PSet( - pt = Var('pt', 'float', precision=10, doc='super-cluster (SC) pt'), - eta = Var('eta', 'float', precision=10, doc='SC eta'), - phi = Var('phi', 'float', precision=10, doc='SC phi'), - m = Var('m', 'float', precision=10, doc='SC mass'), - sigmaIetaIeta = Var('sigmaIetaIeta', 'float', precision=10, doc='sigmaIetaIeta of the SC, calculated with full 5x5 region, noise cleaned'), - hOverE = Var('hOverE', 'float', precision=10, doc='Energy in HCAL / Energy in ECAL'), - ecalIso = Var('ecalIso', 'float', precision=10, doc='Isolation of SC in the ECAL'), - hcalIso = Var('hcalIso', 'float', precision=10, doc='Isolation of SC in the HCAL'), - r9 = Var('r9', 'float', precision=10, doc='Photon SC r9 as defined in https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideEgammaShowerShape'), - sMin = Var('sMin', 'float', precision=10, doc='minor moment of the SC shower shape'), - sMaj = Var('sMaj', 'float', precision=10, doc='major moment of the SC shower shape'), - seedId = Var('seedId', 'int', doc='ECAL ID of the SC seed'), - ) +##################################### +##### Scouting Original Objects ##### +##################################### +# objects directly from Run3Scouting* formats + +# Scouting Muon +# https://github.com/cms-sw/cmssw/blob/CMSSW_14_0_X/DataFormats/Scouting/interface/Run3ScoutingMuon.h + +scoutingMuonTable = cms.EDProducer("SimpleRun3ScoutingMuonFlatTableProducer", + src = cms.InputTag("hltScoutingMuonPacker"), + cut = cms.string(""), + name = cms.string("ScoutingMuon"), + doc = cms.string("Scouting Muon"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + pt = Var('pt', 'float', precision=10, doc='pt'), + eta = Var('eta', 'float', precision=10, doc='eta'), + phi = Var('phi', 'float', precision=10, doc='phi'), + m = Var('m', 'float', precision=10, doc='mass'), + type = Var('type', 'int', doc='type of muon'), + charge = Var('charge', 'int', doc='track charge'), + normchi2 = Var('normalizedChi2', 'float', precision=10, doc='normalized chi squared'), + ecalIso = Var('ecalIso', 'float', precision=10, doc='PF ECAL isolation'), + hcalIso = Var('hcalIso', 'float', precision=10, doc='PF HCAL isolation'), + trackIso = Var('trackIso', 'float', precision=10, doc='track isolation'), + nValidStandAloneMuonHits = Var('nValidStandAloneMuonHits', 'int', doc='number of valid standalone muon hits'), + nStandAloneMuonMatchedStations = Var('nStandAloneMuonMatchedStations', 'int', doc='number of muon stations with valid hits'), + nValidRecoMuonHits = Var('nValidRecoMuonHits', 'int', doc='number of valid reco muon hits'), + nRecoMuonChambers = Var('nRecoMuonChambers', 'int', doc='number of reco muon chambers'), + nRecoMuonChambersCSCorDT = Var('nRecoMuonChambersCSCorDT', 'int', doc='number of reco muon chambers CSC or DT'), + nRecoMuonMatches = Var('nRecoMuonMatches', 'int', doc='number of reco muon matches'), + nRecoMuonMatchedStations = Var('nRecoMuonMatchedStations', 'int', doc='number of reco muon matched stations'), + nRecoMuonExpectedMatchedStations = Var('nRecoMuonExpectedMatchedStations', 'int', doc='number of reco muon expected matched stations'), + recoMuonStationMask = Var('recoMuonStationMask', 'int', doc='reco muon station mask'), + nRecoMuonMatchedRPCLayers = Var('nRecoMuonMatchedRPCLayers', 'int', doc='number of reco muon matched RPC layers'), + recoMuonRPClayerMask = Var('recoMuonRPClayerMask', 'int', doc='reco muon RPC layer mask'), + nValidPixelHits = Var('nValidPixelHits', 'int', doc='number of valid pixel hits'), + nValidStripHits = Var('nValidStripHits', 'int', doc='number of valid strip hits'), + nPixelLayersWithMeasurement = Var('nPixelLayersWithMeasurement', 'int', doc='number of pixel layers with measurement'), + nTrackerLayersWithMeasurement = Var('nTrackerLayersWithMeasurement', 'int', doc='number of tracker layer with measurements'), + trk_chi2 = Var('trk_chi2', 'float', precision=10, doc='track chi squared'), + trk_ndof = Var('trk_ndof', 'float', precision=10, doc='track number of degrees of freedom'), + trk_dxy = Var('trk_dxy', 'float', precision=10, doc='track dxy'), + trk_dz = Var('trk_dz', 'float', precision=10, doc='track dz'), + trk_qoverp = Var('trk_qoverp', 'float', precision=10, doc='track qoverp'), + trk_lambda = Var('trk_lambda', 'float', precision=10, doc='track lambda'), + trk_pt = Var('trk_pt', 'float', precision=10, doc='track pt'), + trk_phi = Var('trk_phi', 'float', precision=10, doc='track phi'), + trk_eta = Var('trk_eta', 'float', precision=10, doc='track eta'), + trk_dxyError = Var('trk_dxyError', 'float', precision=10, doc='track dxyError'), + trk_dzError = Var('trk_dzError', 'float', precision=10, doc='tracl dzError'), + trk_qoverpError = Var('trk_qoverpError', 'float', precision=10, doc='track qoverpError'), + trk_lambdaError = Var('trk_lambdaError', 'float', precision=10, doc='track lambdaError'), + trk_phiError = Var('trk_phiError', 'float', precision=10, doc='track phiError'), + trk_dsz = Var('trk_dsz', 'float', precision=10, doc='track dsz'), + trk_dszError = Var('trk_dszError', 'float', precision=10, doc='track dszError'), + trk_qoverp_lambda_cov = Var('trk_qoverp_lambda_cov', 'float', precision=10, doc='track qoverp lambda covariance ((0,1) element of covariance matrix)'), + trk_qoverp_phi_cov = Var('trk_qoverp_phi_cov', 'float', precision=10, doc='track qoverp phi covariance ((0,2) element of covariance matrix)'), + trk_qoverp_dxy_cov = Var('trk_qoverp_dxy_cov', 'float', precision=10, doc='track qoverp dxy covariance ((0,3) element of covariance matrix)'), + trk_qoverp_dsz_cov = Var('trk_qoverp_dsz_cov', 'float', precision=10, doc='track qoverp dsz covariance ((0,4) element of covariance matrix)'), + trk_lambda_phi_cov = Var('trk_lambda_phi_cov', 'float', precision=10, doc='track lambda phi covariance ((1,2) element of covariance matrix)'), + trk_lambda_dxy_cov = Var('trk_lambda_dxy_cov', 'float', precision=10, doc='track lambda dxy covariance ((1,3) element of covariance matrix)'), + trk_lambda_dsz_cov = Var('trk_lambda_dsz_cov', 'float', precision=10, doc='track lambda dsz covariance ((1,4) element of covariance matrix)'), + trk_phi_dxy_cov = Var('trk_phi_dxy_cov', 'float', precision=10, doc='track phi dxy covariance ((2,3) element of covariance matrix)'), + trk_phi_dsz_cov = Var('trk_phi_dsz_cov', 'float', precision=10, doc='track phi dsz covariance ((2,4) element of covariance matrix)'), + trk_dxy_dsz_cov = Var('trk_dxy_dsz_cov', 'float', precision=10, doc='track dxy dsz covariance ((3,4) element of covariance matrix)'), + trk_vx = Var('trk_vx', 'float', precision=10, doc='track vx'), + trk_vy = Var('trk_vy', 'float', precision=10, doc='track vy'), + trk_vz = Var('trk_vz', 'float', precision=10, doc='track vz'), + ), ) -electronScoutingTable = cms.EDProducer("SimpleRun3ScoutingElectronFlatTableProducer", - src = cms.InputTag("hltScoutingEgammaPacker"), - cut = cms.string(""), - name = cms.string("ScoutingElectron"), - doc = cms.string("Electron scouting information"), - singleton = cms.bool(False), - extension = cms.bool(False), - variables = cms.PSet( - pt = Var('pt', 'float', precision=10, doc='super-cluster (SC) pt'), - eta = Var('eta', 'float', precision=10, doc='SC eta'), - phi = Var('phi', 'float', precision=10, doc='SC phi'), - m = Var('m', 'float', precision=10, doc='SC mass'), - dEtaIn = Var('dEtaIn', 'float', precision=10, doc='#Delta#eta(SC seed, track pixel seed)'), - dPhiIn = Var('dPhiIn', 'float', precision=10, doc='#Delta#phi(SC seed, track pixel seed)'), - sigmaIetaIeta = Var('sigmaIetaIeta', 'float', precision=10, doc='sigmaIetaIeta of the SC, calculated with full 5x5 region, noise cleaned'), - hOverE = Var('hOverE', 'float', precision=10, doc='Energy in HCAL / Energy in ECAL'), - ooEMOop = Var('ooEMOop', 'float', precision=10, doc='1/E(SC) - 1/p(track momentum)'), - missingHits = Var('missingHits', 'int', doc='missing hits in the tracker'), - ecalIso = Var('ecalIso', 'float', precision=10, doc='Isolation of SC in the ECAL'), - hcalIso = Var('hcalIso', 'float', precision=10, doc='Isolation of SC in the HCAL'), - trackIso = Var('trackIso', 'float', precision=10, doc='Isolation of electron track in the tracker'), - r9 = Var('r9', 'float', precision=10, doc='ELectron SC r9 as defined in https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideEgammaShowerShape'), - sMin = Var('sMin', 'float', precision=10, doc='minor moment of the SC shower shape'), - sMaj = Var('sMaj', 'float', precision=10, doc='major moment of the SC shower shape'), - seedId = Var('seedId', 'int', doc='ECAL ID of the SC seed'), - ) +# Scouting Displaced Vertex (Muon) +# https://github.com/cms-sw/cmssw/blob/CMSSW_14_0_X/DataFormats/Scouting/interface/Run3ScoutingVertex.h + +scoutingMuonDisplacedVertexTable = cms.EDProducer("SimpleRun3ScoutingVertexFlatTableProducer", + src = cms.InputTag("hltScoutingMuonPacker","displacedVtx"), + cut = cms.string(""), + name = cms.string("ScoutingMuonDisplacedVertex"), + doc = cms.string("Scouting Muon Displaced Vertex"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + x = Var('x', 'float', precision=10, doc='position x coordinate'), + y = Var('y', 'float', precision=10, doc='position y coordinate'), + z = Var('z', 'float', precision=10, doc='position z coordinate'), + xError = Var('xError', 'float', precision=10, doc='x error'), + yError = Var('yError', 'float', precision=10, doc='y error'), + zError = Var('zError', 'float', precision=10, doc='z error'), + tracksSize = Var('tracksSize', 'int', doc='number of tracks'), + chi2 = Var('chi2', 'float', precision=10, doc='chi squared'), + ndof = Var('ndof', 'int', doc='number of degrees of freedom'), + isValidVtx = Var('isValidVtx', 'bool', doc='is valid'), + ), ) -muonScoutingTable = cms.EDProducer("SimpleRun3ScoutingMuonFlatTableProducer", - src = cms.InputTag("hltScoutingMuonPacker"), - cut = cms.string(""), - name = cms.string("ScoutingMuon"), - doc = cms.string("Muon scouting information"), - singleton = cms.bool(False), - extension = cms.bool(False), - variables = cms.PSet( - pt = Var('pt', 'float', precision=10, doc='pt'), - eta = Var('eta', 'float', precision=10, doc='eta'), - phi = Var('phi', 'float', precision=10, doc='phi'), - m = Var('m', 'float', precision=10, doc='mass'), - type = Var('type', 'int', doc='type of muon'), - charge = Var('charge', 'int', doc='track charge'), - normchi2 = Var('normalizedChi2', 'float', precision=10, doc='normalized chi squared'), - ecalIso = Var('ecalIso', 'float', precision=10, doc='PF ECAL isolation'), - hcalIso = Var('hcalIso', 'float', precision=10, doc='PF HCAL isolation'), - trackIso = Var('trackIso', 'float', precision=10, doc='track isolation'), - nValidStandAloneMuonHits = Var('nValidStandAloneMuonHits', 'int', doc='number of valid standalone muon hits'), - nStandAloneMuonMatchedStations = Var('nStandAloneMuonMatchedStations', 'int', doc='number of muon stations with valid hits'), - nValidRecoMuonHits = Var('nValidRecoMuonHits', 'int', doc='number of valid reco muon hits'), - nRecoMuonChambers = Var('nRecoMuonChambers', 'int', doc='number of reco muon chambers'), - nRecoMuonChambersCSCorDT = Var('nRecoMuonChambersCSCorDT', 'int', doc='number of reco muon chambers CSC or DT'), - nRecoMuonMatches = Var('nRecoMuonMatches', 'int', doc='number of reco muon matches'), - nRecoMuonMatchedStations = Var('nRecoMuonMatchedStations', 'int', doc='number of reco muon matched stations'), - nRecoMuonExpectedMatchedStations = Var('nRecoMuonExpectedMatchedStations', 'int', doc='number of reco muon expected matched stations'), - recoMuonStationMask = Var('recoMuonStationMask', 'int', doc='reco muon station mask'), - nRecoMuonMatchedRPCLayers = Var('nRecoMuonMatchedRPCLayers', 'int', doc='number of reco muon matched RPC layers'), - recoMuonRPClayerMask = Var('recoMuonRPClayerMask', 'int', doc='reco muon RPC layer mask'), - nValidPixelHits = Var('nValidPixelHits', 'int', doc='number of valid pixel hits'), - nValidStripHits = Var('nValidStripHits', 'int', doc='number of valid strip hits'), - nPixelLayersWithMeasurement = Var('nPixelLayersWithMeasurement', 'int', doc='number of pixel layers with measurement'), - nTrackerLayersWithMeasurement = Var('nTrackerLayersWithMeasurement', 'int', doc='number of tracker layer with measurements'), - trk_chi2 = Var('trk_chi2', 'float', precision=10, doc='track chi squared'), - trk_ndof = Var('trk_ndof', 'float', precision=10, doc='track number of degrees of freedom'), - trk_dxy = Var('trk_dxy', 'float', precision=10, doc='track dxy'), - trk_dz = Var('trk_dz', 'float', precision=10, doc='track dz'), - trk_qoverp = Var('trk_qoverp', 'float', precision=10, doc='track qoverp'), - trk_lambda = Var('trk_lambda', 'float', precision=10, doc='track lambda'), - trk_pt = Var('trk_pt', 'float', precision=10, doc='track pt'), - trk_phi = Var('trk_phi', 'float', precision=10, doc='track phi'), - trk_eta = Var('trk_eta', 'float', precision=10, doc='track eta'), - trk_dxyError = Var('trk_dxyError', 'float', precision=10, doc='track dxyError'), - trk_dzError = Var('trk_dzError', 'float', precision=10, doc='tracl dzError'), - trk_qoverpError = Var('trk_qoverpError', 'float', precision=10, doc='track qoverpError'), - trk_lambdaError = Var('trk_lambdaError', 'float', precision=10, doc='track lambdaError'), - trk_phiError = Var('trk_phiError', 'float', precision=10, doc='track phiError'), - trk_dsz = Var('trk_dsz', 'float', precision=10, doc='track dsz'), - trk_dszError = Var('trk_dszError', 'float', precision=10, doc='track dszError'), - trk_qoverp_lambda_cov = Var('trk_qoverp_lambda_cov', 'float', precision=10, doc='track qoverp lambda covariance ((0,1) element of covariance matrix)'), - trk_qoverp_phi_cov = Var('trk_qoverp_phi_cov', 'float', precision=10, doc='track qoverp phi covariance ((0,2) element of covariance matrix)'), - trk_qoverp_dxy_cov = Var('trk_qoverp_dxy_cov', 'float', precision=10, doc='track qoverp dxy covariance ((0,3) element of covariance matrix)'), - trk_qoverp_dsz_cov = Var('trk_qoverp_dsz_cov', 'float', precision=10, doc='track qoverp dsz covariance ((0,4) element of covariance matrix)'), - trk_lambda_phi_cov = Var('trk_lambda_phi_cov', 'float', precision=10, doc='track lambda phi covariance ((1,2) element of covariance matrix)'), - trk_lambda_dxy_cov = Var('trk_lambda_dxy_cov', 'float', precision=10, doc='track lambda dxy covariance ((1,3) element of covariance matrix)'), - trk_lambda_dsz_cov = Var('trk_lambda_dsz_cov', 'float', precision=10, doc='track lambda dsz covariance ((1,4) element of covariance matrix)'), - trk_phi_dxy_cov = Var('trk_phi_dxy_cov', 'float', precision=10, doc='track phi dxy covariance ((2,3) element of covariance matrix)'), - trk_phi_dsz_cov = Var('trk_phi_dsz_cov', 'float', precision=10, doc='track phi dsz covariance ((2,4) element of covariance matrix)'), - trk_dxy_dsz_cov = Var('trk_dxy_dsz_cov', 'float', precision=10, doc='track dxy dsz covariance ((3,4) element of covariance matrix)'), - trk_vx = Var('trk_vx', 'float', precision=10, doc='track vx'), - trk_vy = Var('trk_vy', 'float', precision=10, doc='track vy'), - trk_vz = Var('trk_vz', 'float', precision=10, doc='track vz'), - ) + +# from 2024, there are two scouting muon collections + +# muonVtx +scoutingMuonVtxTable = scoutingMuonTable.clone( + src = cms.InputTag("hltScoutingMuonPackerVtx"), + name = cms.string("ScoutingMuonVtx"), + doc = cms.string("Scouting Muon Vtx"), +) +scoutingMuonVtxDisplacedVertexTable = scoutingMuonDisplacedVertexTable.clone( + src = cms.InputTag("hltScoutingMuonPackerVtx", "displacedVtx"), + name = cms.string("ScoutingMuonVtxDisplacedVertex"), + doc = cms.string("Scouting Muon Vtx DisplacedVertex"), ) -trackScoutingTable = cms.EDProducer("SimpleRun3ScoutingTrackFlatTableProducer", - src = cms.InputTag("hltScoutingTrackPacker"), - cut = cms.string(""), - name = cms.string("ScoutingTrack"), - doc = cms.string("Track scouting information"), - singleton = cms.bool(False), - extension = cms.bool(False), - variables = cms.PSet( - pt = Var('tk_pt', 'float', precision=10, doc='pt'), - eta = Var('tk_eta', 'float', precision=10, doc='eta'), - phi = Var('tk_phi', 'float', precision=10, doc='phi'), - chi2 = Var('tk_chi2', 'float', precision=10, doc='chi squared'), - ndof = Var('tk_ndof', 'float', precision=10, doc='number of degrees of freedom'), - charge = Var('tk_charge', 'int', doc='charge'), - dxy = Var('tk_dxy', 'float', precision=10, doc='dxy'), - dz = Var('tk_dz', 'float', precision=10, doc='dz'), - nValidPixelHits = Var('tk_nValidPixelHits', 'int', doc='number of valid pixel hits'), - nValidStripHits = Var('tk_nValidStripHits', 'int', doc='number of valid strip hits'), - nTrackerLayersWithMeasurement = Var('tk_nTrackerLayersWithMeasurement', 'int', doc='number of tracker layers with measurements'), - qoverp = Var('tk_qoverp', 'float', precision=10, doc='qoverp'), - lambda_ = Var('tk_lambda', 'float', precision=10, doc='lambda'), - dxyError = Var('tk_dxy_Error', 'float', precision=10, doc='dxyError'), - dzError = Var('tk_dz_Error', 'float', precision=10, doc='dzError'), - qoverpError = Var('tk_qoverp_Error', 'float', precision=10, doc='qoverpError'), - lambdaError = Var('tk_lambda_Error', 'float', precision=10, doc='lambdaError'), - phiError = Var('tk_phi_Error', 'float', precision=10, doc='phiError'), - dsz = Var('tk_dsz', 'float', precision=10, doc='dsz'), - dszError = Var('tk_dsz_Error', 'float', precision=10, doc='dszError'), - qoverp_lambda_cov = Var('tk_qoverp_lambda_cov', 'float', precision=10, doc='qoverp lambda covariance ((0,1) element of covariance matrix)'), - qoverp_phi_cov = Var('tk_qoverp_phi_cov', 'float', precision=10, doc='qoverp phi covariance ((0,2) element of covariance matrix)'), - qoverp_dxy_cov = Var('tk_qoverp_dxy_cov', 'float', precision=10, doc='qoverp dxy covariance ((0,3) element of covariance matrix)'), - qoverp_dsz_cov = Var('tk_qoverp_dsz_cov', 'float', precision=10, doc='qoverp dsz covariance ((0,4) element of covariance matrix)'), - lambda_phi_cov = Var('tk_lambda_phi_cov', 'float', precision=10, doc='lambda phi covariance ((1,2) element of covariance matrix)'), - lambda_dxy_cov = Var('tk_lambda_dxy_cov', 'float', precision=10, doc='lambda dxy covariance ((1,3) element of covariance matrix)'), - lambda_dsz_cov = Var('tk_lambda_dsz_cov', 'float', precision=10, doc='lambd dsz covariance ((1,4) element of covariance matrix)'), - phi_dxy_cov = Var('tk_phi_dxy_cov', 'float', precision=10, doc='phi dxy covariance ((2,3) element of covariance matrix)'), - phi_dsz_cov = Var('tk_phi_dsz_cov', 'float', precision=10, doc='phi dsz covariance ((2,4) element of covariance matrix)'), - dxy_dsz_cov = Var('tk_dxy_dsz_cov', 'float', precision=10, doc='dxy dsz covariance ((3,4) element of covariance matrix)'), - vtxInd = Var('tk_vtxInd', 'int', doc='vertex index'), - vx = Var('tk_vx', 'float', precision=10, doc='vx'), - vy = Var('tk_vy', 'float', precision=10, doc='vy'), - vz = Var('tk_vz', 'float', precision=10, doc='vz'), - ) +# muonNoVtx +scoutingMuonNoVtxTable = scoutingMuonTable.clone( + src = cms.InputTag("hltScoutingMuonPackerNoVtx"), + name = cms.string("ScoutingMuonNoVtx"), + doc = cms.string("Scouting Muon NoVtx"), +) +scoutingMuonNoVtxDisplacedVertexTable = scoutingMuonDisplacedVertexTable.clone( + src = cms.InputTag("hltScoutingMuonPackerNoVtx", "displacedVtx"), + name = cms.string("ScoutingMuonNoVtxDisplacedVertex"), + doc = cms.string("Scouting Muon NoVtx DisplacedVertex"), ) -primaryvertexScoutingTable = cms.EDProducer("SimpleRun3ScoutingVertexFlatTableProducer", - src = cms.InputTag("hltScoutingPrimaryVertexPacker", "primaryVtx"), - cut = cms.string(""), - name = cms.string("ScoutingPrimaryVertex"), - doc = cms.string("PrimaryVertex scouting information"), - singleton = cms.bool(False), - extension = cms.bool(False), - variables = cms.PSet( - x = Var('x', 'float', precision=10, doc='position x coordinate'), - y = Var('y', 'float', precision=10, doc='position y coordinate'), - z = Var('z', 'float', precision=10, doc='position z coordinate'), - xError = Var('xError', 'float', precision=10, doc='x error'), - yError = Var('yError', 'float', precision=10, doc='y error'), - zError = Var('zError', 'float', precision=10, doc='z error'), - tracksSize = Var('tracksSize', 'int', doc='number of tracks'), - chi2 = Var('chi2', 'float', precision=10, doc='chi squared'), - ndof = Var('ndof', 'int', doc='number of degrees of freedom'), - isValidVtx = Var('isValidVtx', 'bool', doc='is valid'), - ) +# Scouting Electron +# https://github.com/cms-sw/cmssw/blob/CMSSW_14_0_X/DataFormats/Scouting/interface/Run3ScoutingElectron.h + +scoutingElectronTable = cms.EDProducer("SimpleRun3ScoutingElectronFlatTableProducer", + src = cms.InputTag("hltScoutingEgammaPacker"), + cut = cms.string(""), + name = cms.string("ScoutingElectron"), + doc = cms.string("Scouting Electron"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + pt = Var('pt', 'float', precision=10, doc='super-cluster (SC) pt'), + eta = Var('eta', 'float', precision=10, doc='SC eta'), + phi = Var('phi', 'float', precision=10, doc='SC phi'), + m = Var('m', 'float', precision=10, doc='SC mass'), + dEtaIn = Var('dEtaIn', 'float', precision=10, doc='#Delta#eta(SC seed, track pixel seed)'), + dPhiIn = Var('dPhiIn', 'float', precision=10, doc='#Delta#phi(SC seed, track pixel seed)'), + sigmaIetaIeta = Var('sigmaIetaIeta', 'float', precision=10, doc='sigmaIetaIeta of the SC, calculated with full 5x5 region, noise cleaned'), + hOverE = Var('hOverE', 'float', precision=10, doc='Energy in HCAL / Energy in ECAL'), + ooEMOop = Var('ooEMOop', 'float', precision=10, doc='1/E(SC) - 1/p(track momentum)'), + missingHits = Var('missingHits', 'int', doc='missing hits in the tracker'), + ecalIso = Var('ecalIso', 'float', precision=10, doc='Isolation of SC in the ECAL'), + hcalIso = Var('hcalIso', 'float', precision=10, doc='Isolation of SC in the HCAL'), + trackIso = Var('trackIso', 'float', precision=10, doc='Isolation of electron track in the tracker'), + r9 = Var('r9', 'float', precision=10, doc='ELectron SC r9 as defined in https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideEgammaShowerShape'), + sMin = Var('sMin', 'float', precision=10, doc='minor moment of the SC shower shape'), + sMaj = Var('sMaj', 'float', precision=10, doc='major moment of the SC shower shape'), + seedId = Var('seedId', 'int', doc='ECAL ID of the SC seed'), + ), ) -displacedvertexScoutingTable = cms.EDProducer("SimpleRun3ScoutingVertexFlatTableProducer", - src = cms.InputTag("hltScoutingMuonPacker","displacedVtx"), - cut = cms.string(""), - name = cms.string("ScoutingDisplacedVertex"), - doc = cms.string("DisplacedVertex scouting information"), - singleton = cms.bool(False), - extension = cms.bool(False), - variables = cms.PSet( - x = Var('x', 'float', precision=10, doc='position x coordinate'), - y = Var('y', 'float', precision=10, doc='position y coordinate'), - z = Var('z', 'float', precision=10, doc='position z coordinate'), - xError = Var('xError', 'float', precision=10, doc='x error'), - yError = Var('yError', 'float', precision=10, doc='y error'), - zError = Var('zError', 'float', precision=10, doc='z error'), - tracksSize = Var('tracksSize', 'int', doc='number of tracks'), - chi2 = Var('chi2', 'float', precision=10, doc='chi squared'), - ndof = Var('ndof', 'int', doc='number of degrees of freedom'), - isValidVtx = Var('isValidVtx', 'bool', doc='is valid'), - ) +# Scouting Photon +# https://github.com/cms-sw/cmssw/blob/CMSSW_14_0_X/DataFormats/Scouting/interface/Run3ScoutingPhoton.h + +scoutingPhotonTable = cms.EDProducer("SimpleRun3ScoutingPhotonFlatTableProducer", + src = cms.InputTag("hltScoutingEgammaPacker"), + cut = cms.string(""), + name = cms.string("ScoutingPhoton"), + doc = cms.string("Scouting Photon"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + pt = Var('pt', 'float', precision=10, doc='super-cluster (SC) pt'), + eta = Var('eta', 'float', precision=10, doc='SC eta'), + phi = Var('phi', 'float', precision=10, doc='SC phi'), + m = Var('m', 'float', precision=10, doc='SC mass'), + sigmaIetaIeta = Var('sigmaIetaIeta', 'float', precision=10, doc='sigmaIetaIeta of the SC, calculated with full 5x5 region, noise cleaned'), + hOverE = Var('hOverE', 'float', precision=10, doc='Energy in HCAL / Energy in ECAL'), + ecalIso = Var('ecalIso', 'float', precision=10, doc='Isolation of SC in the ECAL'), + hcalIso = Var('hcalIso', 'float', precision=10, doc='Isolation of SC in the HCAL'), + trkIso = Var('trkIso', 'float', precision=10, doc='Isolation of track in the tracker'), + r9 = Var('r9', 'float', precision=10, doc='Photon SC r9 as defined in https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideEgammaShowerShape'), + sMin = Var('sMin', 'float', precision=10, doc='minor moment of the SC shower shape'), + sMaj = Var('sMaj', 'float', precision=10, doc='major moment of the SC shower shape'), + seedId = Var('seedId', 'int', doc='ECAL ID of the SC seed'), + ), +) + +# Scouting Track +# https://github.com/cms-sw/cmssw/blob/CMSSW_14_0_X/DataFormats/Scouting/interface/Run3ScoutingTrack.h + +scoutingTrackTable = cms.EDProducer("SimpleRun3ScoutingTrackFlatTableProducer", + src = cms.InputTag("hltScoutingTrackPacker"), + cut = cms.string(""), + name = cms.string("ScoutingTrack"), + doc = cms.string("Scouting Track"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + pt = Var('tk_pt', 'float', precision=10, doc='pt'), + eta = Var('tk_eta', 'float', precision=10, doc='eta'), + phi = Var('tk_phi', 'float', precision=10, doc='phi'), + chi2 = Var('tk_chi2', 'float', precision=10, doc='chi squared'), + ndof = Var('tk_ndof', 'float', precision=10, doc='number of degrees of freedom'), + charge = Var('tk_charge', 'int', doc='charge'), + dxy = Var('tk_dxy', 'float', precision=10, doc='dxy'), + dz = Var('tk_dz', 'float', precision=10, doc='dz'), + nValidPixelHits = Var('tk_nValidPixelHits', 'int', doc='number of valid pixel hits'), + nValidStripHits = Var('tk_nValidStripHits', 'int', doc='number of valid strip hits'), + nTrackerLayersWithMeasurement = Var('tk_nTrackerLayersWithMeasurement', 'int', doc='number of tracker layers with measurements'), + qoverp = Var('tk_qoverp', 'float', precision=10, doc='qoverp'), + lambda_ = Var('tk_lambda', 'float', precision=10, doc='lambda'), + dxyError = Var('tk_dxy_Error', 'float', precision=10, doc='dxyError'), + dzError = Var('tk_dz_Error', 'float', precision=10, doc='dzError'), + qoverpError = Var('tk_qoverp_Error', 'float', precision=10, doc='qoverpError'), + lambdaError = Var('tk_lambda_Error', 'float', precision=10, doc='lambdaError'), + phiError = Var('tk_phi_Error', 'float', precision=10, doc='phiError'), + dsz = Var('tk_dsz', 'float', precision=10, doc='dsz'), + dszError = Var('tk_dsz_Error', 'float', precision=10, doc='dszError'), + qoverp_lambda_cov = Var('tk_qoverp_lambda_cov', 'float', precision=10, doc='qoverp lambda covariance ((0,1) element of covariance matrix)'), + qoverp_phi_cov = Var('tk_qoverp_phi_cov', 'float', precision=10, doc='qoverp phi covariance ((0,2) element of covariance matrix)'), + qoverp_dxy_cov = Var('tk_qoverp_dxy_cov', 'float', precision=10, doc='qoverp dxy covariance ((0,3) element of covariance matrix)'), + qoverp_dsz_cov = Var('tk_qoverp_dsz_cov', 'float', precision=10, doc='qoverp dsz covariance ((0,4) element of covariance matrix)'), + lambda_phi_cov = Var('tk_lambda_phi_cov', 'float', precision=10, doc='lambda phi covariance ((1,2) element of covariance matrix)'), + lambda_dxy_cov = Var('tk_lambda_dxy_cov', 'float', precision=10, doc='lambda dxy covariance ((1,3) element of covariance matrix)'), + lambda_dsz_cov = Var('tk_lambda_dsz_cov', 'float', precision=10, doc='lambd dsz covariance ((1,4) element of covariance matrix)'), + phi_dxy_cov = Var('tk_phi_dxy_cov', 'float', precision=10, doc='phi dxy covariance ((2,3) element of covariance matrix)'), + phi_dsz_cov = Var('tk_phi_dsz_cov', 'float', precision=10, doc='phi dsz covariance ((2,4) element of covariance matrix)'), + dxy_dsz_cov = Var('tk_dxy_dsz_cov', 'float', precision=10, doc='dxy dsz covariance ((3,4) element of covariance matrix)'), + vtxInd = Var('tk_vtxInd', 'int', doc='vertex index'), + vx = Var('tk_vx', 'float', precision=10, doc='vx'), + vy = Var('tk_vy', 'float', precision=10, doc='vy'), + vz = Var('tk_vz', 'float', precision=10, doc='vz'), + ), ) -jetScoutingTable = cms.EDProducer("SimpleRun3ScoutingPFJetFlatTableProducer", +# Scouting Primary Vertex +# https://github.com/cms-sw/cmssw/blob/CMSSW_14_0_X/DataFormats/Scouting/interface/Run3ScoutingVertex.h + +scoutingPrimaryVertexTable = cms.EDProducer("SimpleRun3ScoutingVertexFlatTableProducer", + src = cms.InputTag("hltScoutingPrimaryVertexPacker", "primaryVtx"), + cut = cms.string(""), + name = cms.string("ScoutingPrimaryVertex"), + doc = cms.string("Scouting Primary Vertex"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + x = Var('x', 'float', precision=10, doc='position x coordinate'), + y = Var('y', 'float', precision=10, doc='position y coordinate'), + z = Var('z', 'float', precision=10, doc='position z coordinate'), + xError = Var('xError', 'float', precision=10, doc='x error'), + yError = Var('yError', 'float', precision=10, doc='y error'), + zError = Var('zError', 'float', precision=10, doc='z error'), + tracksSize = Var('tracksSize', 'int', doc='number of tracks'), + chi2 = Var('chi2', 'float', precision=10, doc='chi squared'), + ndof = Var('ndof', 'int', doc='number of degrees of freedom'), + isValidVtx = Var('isValidVtx', 'bool', doc='is valid'), + ), +) + +# Scouting Particle (PF candidate) +# https://github.com/cms-sw/cmssw/blob/CMSSW_14_0_X/DataFormats/Scouting/interface/Run3ScoutingParticle.h + +scoutingParticleTable = cms.EDProducer("SimpleRun3ScoutingParticleFlatTableProducer", + src = cms.InputTag("hltScoutingPFPacker"), + name = cms.string("ScoutingParticle"), + cut = cms.string(""), + doc = cms.string("Scouting Particle"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + P3Vars, + pdgId = Var("pdgId", int, doc="PDG code assigned by the event reconstruction (not by MC truth)"), + vertex = Var("vertex()", int, doc="vertex index"), + normchi2 = Var("normchi2()", float, doc="normalized chi squared of best track"), + dz = Var("dz()", float, doc="dz of best track"), + dxy = Var("dxy()", float, doc="dxy of best track"), + dzsig = Var("dzsig()", float, doc="dzsig of best track"), + dxysig = Var("dxysig()", float, doc="dxysig of best track"), + lostInnerHits = Var("lostInnerHits()", "uint8", doc="lostInnerHits of best track"), + quality = Var("quality()", "uint8", doc="quality of best track"), + trk_pt = Var("trk_pt()", "float", doc="pt of best track"), + trk_eta = Var("trk_eta()", "float", doc="eta of best track"), + trk_phi = Var("trk_phi()", "float", doc="phi of best track"), + relative_trk_vars = Var("relative_trk_vars()", "bool", doc="relative_trk_vars"), + ), +) + +# Scouting PFJet +# https://github.com/cms-sw/cmssw/blob/CMSSW_14_0_X/DataFormats/Scouting/interface/Run3ScoutingPFJet.h + +scoutingPFJetTable = cms.EDProducer("SimpleRun3ScoutingPFJetFlatTableProducer", src = cms.InputTag("hltScoutingPFPacker"), cut = cms.string(""), name = cms.string("ScoutingPFJet"), - doc = cms.string("PFJet scouting information"), + doc = cms.string("Scouting PFJet"), singleton = cms.bool(False), extension = cms.bool(False), variables = cms.PSet( @@ -231,327 +310,349 @@ photonMultiplicity = Var('photonMultiplicity', 'int', doc='number of photons in the jet'), electronMultiplicity = Var('electronMultiplicity', 'int', doc='number of electrons in the jet'), muonMultiplicity = Var('muonMultiplicity', 'int', doc='number of muons in the jet'), - HFHadronMultiplicity = Var('HFHadronMultiplicity', 'int', doc='number of HF hadronic particles in the jet'), - HFEMMultiplicity = Var('HFEMMultiplicity', 'int', doc='number of HF electromagnetic particles in the jet'), + HFHadronMultiplicity = Var('HFHadronMultiplicity', 'int', doc='number of hadronic particles in the jet in HF'), + HFEMMultiplicity = Var('HFEMMultiplicity', 'int', doc='number of electromagnetic particles in the jet in HF'), HOEnergy = Var('HOEnergy', 'float', precision=10, doc='hadronic energy in HO'), - ) -) - -rhoScoutingTable = cms.EDProducer("GlobalVariablesTableProducer", - name = cms.string(""), - variables = cms.PSet( - ScoutingRho = ExtVar( cms.InputTag("hltScoutingPFPacker", "rho"), "double", doc = "rho from all scouting PF Candidates, used e.g. for JECs" ), - ) + ), ) -metScoutingTable = cms.EDProducer("GlobalVariablesTableProducer", +# Scouting MET +scoutingMETTable = cms.EDProducer("GlobalVariablesTableProducer", name = cms.string("ScoutingMET"), variables = cms.PSet( pt = ExtVar( cms.InputTag("hltScoutingPFPacker", "pfMetPt"), "double", doc = "scouting MET pt"), phi = ExtVar( cms.InputTag("hltScoutingPFPacker", "pfMetPhi"), "double", doc = "scouting MET phi"), - ) + ), ) -# from 2024, there are two scouting muon collections - -# muonVtx -muonVtxScoutingTable = muonScoutingTable.clone( - src = cms.InputTag("hltScoutingMuonPackerVtx"), - name = cms.string("ScoutingMuonVtx"), - doc = cms.string("Scouting Muon Vtx information"), +# Scouting Rho +scoutingRhoTable = cms.EDProducer("GlobalVariablesTableProducer", + name = cms.string("ScoutingRho"), + variables = cms.PSet( + fixedGridRhoFastjetAll = ExtVar(cms.InputTag("hltScoutingPFPacker", "rho"), "double", doc = "rho from all scouting PF Candidates, used e.g. for JECs" ), + ), ) -displacedvertexVtxScoutingTable = displacedvertexScoutingTable.clone( - src = cms.InputTag("hltScoutingMuonPackerVtx", "displacedVtx"), - name = cms.string("ScoutingMuonVtxDisplacedVertex"), - doc = cms.string("Scouting Muon Vtx DisplacedVertex information"), + +#################################### +##### Scouting Derived Objects ##### +#################################### +# objects built from scouting objects, e.g. reclustered jets + +######################### +# Scouting PF Candidate # +######################### +# translation from Run3ScoutingParticle to reco::PFCandidate +# used as input for standard algorithm, e.g. jet clustering + +scoutingPFCandidate = cms.EDProducer("Run3ScoutingParticleToRecoPFCandidateProducer", + scoutingparticle = cms.InputTag("hltScoutingPFPacker"), + CHS = cms.bool(False), ) -# muonNoVtx -muonNoVtxScoutingTable = muonScoutingTable.clone( - src = cms.InputTag("hltScoutingMuonPackerNoVtx"), - name = cms.string("ScoutingMuonNoVtx"), - doc = cms.string("Scouting Muon NoVtx information"), +# this table is similar to scoutingParticleTable +# except if relative_trk_vars is true, PF candidate variables will be already added to PF candidate's track variables +scoutingPFCandidateTable = cms.EDProducer("SimpleCandidateFlatTableProducer", + src = cms.InputTag("scoutingPFCandidate"), + name = cms.string("ScoutingPFCandidate"), + cut = cms.string(""), + doc = cms.string("Scouting Candidate"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + CandVars, + ), + externalVariables = cms.PSet( + vertexIndex = ExtVar(cms.InputTag("scoutingPFCandidate", "vertexIndex"), int, doc="vertex index"), + trkNormchi2 = ExtVar(cms.InputTag("scoutingPFCandidate", "normchi2"), float, doc="normalized chi squared of best track", precision=6), + trkDz = ExtVar(cms.InputTag("scoutingPFCandidate", "dz"), float, doc="dz of best track", precision=6), + trkDxy = ExtVar(cms.InputTag("scoutingPFCandidate", "dxy"), float, doc="dxy of best track", precision=6), + trkDzsig = ExtVar(cms.InputTag("scoutingPFCandidate", "dzsig"), float, doc="dzsig of best track", precision=6), + trkDxysig = ExtVar(cms.InputTag("scoutingPFCandidate", "dxysig"), float, doc="dxysig of best track", precision=6), + trkLostInnerHits = ExtVar(cms.InputTag("scoutingPFCandidate", "lostInnerHits"), int, doc="lostInnerHits of best track"), + trkQuality = ExtVar(cms.InputTag("scoutingPFCandidate", "quality"), int, doc="quality of best track"), + trkPt = ExtVar(cms.InputTag("scoutingPFCandidate", "trkPt"), float, doc="pt of best track", precision=6), + trkEta = ExtVar(cms.InputTag("scoutingPFCandidate", "trkEta"), float, doc="eta of best track", precision=6), + trkPhi = ExtVar(cms.InputTag("scoutingPFCandidate", "trkPhi"), float, doc="phi of best track", precision=6), + ), ) -displacedvertexNoVtxScoutingTable = displacedvertexScoutingTable.clone( - src = cms.InputTag("hltScoutingMuonPackerNoVtx", "displacedVtx"), - name = cms.string("ScoutingMuonNoVtxDisplacedVertex"), - doc = cms.string("Scouting Muon NoVtx DisplacedVertex information"), + +######################### +# AK4 PFJet Reclustered # +######################### +# AK4 jets from reclustering PF candidates + +# AK4 jet clustering + +from RecoJets.JetProducers.ak4PFJets_cfi import ak4PFJets +scoutingPFJetRecluster = ak4PFJets.clone( + src = ("scoutingPFCandidate"), + jetPtMin = 20, ) -################ -# Scouting particles +# AK4 jet tagging + +scoutingPFJetReclusterParticleNetJetTagInfos = cms.EDProducer("DeepBoostedJetTagInfoProducer", + jet_radius = cms.double(0.4), + min_jet_pt = cms.double(5.0), + max_jet_eta = cms.double(2.5), + min_pt_for_track_properties = cms.double(0.95), + min_pt_for_pfcandidates = cms.double(0.1), + use_puppiP4 = cms.bool(False), + include_neutrals = cms.bool(True), + sort_by_sip2dsig = cms.bool(False), + min_puppi_wgt = cms.double(-1.0), + flip_ip_sign = cms.bool(False), + sip3dSigMax = cms.double(-1.0), + use_hlt_features = cms.bool(False), + pf_candidates = cms.InputTag("scoutingPFCandidate"), + jets = cms.InputTag("scoutingPFJetRecluster"), + puppi_value_map = cms.InputTag(""), + use_scouting_features = cms.bool(True), + normchi2_value_map = cms.InputTag("scoutingPFCandidate", "normchi2"), + dz_value_map = cms.InputTag("scoutingPFCandidate", "dz"), + dxy_value_map = cms.InputTag("scoutingPFCandidate", "dxy"), + dzsig_value_map = cms.InputTag("scoutingPFCandidate", "dzsig"), + dxysig_value_map = cms.InputTag("scoutingPFCandidate", "dxysig"), + lostInnerHits_value_map = cms.InputTag("scoutingPFCandidate", "lostInnerHits"), + quality_value_map = cms.InputTag("scoutingPFCandidate", "quality"), + trkPt_value_map = cms.InputTag("scoutingPFCandidate", "trkPt"), + trkEta_value_map = cms.InputTag("scoutingPFCandidate", "trkEta"), + trkPhi_value_map = cms.InputTag("scoutingPFCandidate", "trkPhi"), +) -scoutingPFCands = cms.EDProducer( - "Run3ScoutingParticleToRecoPFCandidateProducer", - scoutingparticle=cms.InputTag("hltScoutingPFPacker"), +from RecoBTag.ONNXRuntime.boostedJetONNXJetTagsProducer_cfi import boostedJetONNXJetTagsProducer +scoutingPFJetReclusterParticleNetJetTags = cms.EDProducer("BoostedJetONNXJetTagsProducer", + jets = cms.InputTag("scoutingPFJetRecluster"), + produceValueMap = cms.untracked.bool(True), + src = cms.InputTag("scoutingPFJetReclusterParticleNetJetTagInfos"), + preprocess_json = cms.string("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK4/V00/preprocess.json"), + model_path = cms.FileInPath("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK4/V00/particle-net.onnx"), + flav_names = cms.vstring(["probb", "probbb","probc", "probcc", "probuds", "probg", "probundef"]), + debugMode = cms.untracked.bool(False), ) -particleScoutingTable = cms.EDProducer("SimpleCandidateFlatTableProducer", - src = cms.InputTag("scoutingPFCands"), - name = cms.string("ScoutingParticle"), +# output AK4 jet to nanoaod::flattable + +scoutingPFJetReclusterTable = cms.EDProducer("SimplePFJetFlatTableProducer", + src = cms.InputTag("scoutingPFJetRecluster"), + name = cms.string("ScoutingPFJetRecluster"), cut = cms.string(""), - doc = cms.string("ScoutingParticle"), + doc = cms.string("ak4 jet from reclustering scouting PF candidates"), singleton = cms.bool(False), - extension = cms.bool(False), # this is the main table + extension = cms.bool(False), + variables = cms.PSet( + P4Vars, + area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), + # energy fractions + chHEF = Var("chargedHadronEnergyFraction()", float, doc="charged Hadron Energy Fraction", precision= 6), + neHEF = Var("neutralHadronEnergyFraction()", float, doc="neutral Hadron Energy Fraction", precision= 6), + chEmEF = Var("chargedEmEnergyFraction()", float, doc="charged Electromagnetic Energy Fraction", precision= 6), + neEmEF = Var("neutralEmEnergyFraction()", float, doc="neutral Electromagnetic Energy Fraction", precision= 6), + muEF = Var("muonEnergyFraction()", float, doc="muon Energy Fraction", precision= 6), + hfHEF = Var("HFHadronEnergyFraction()",float,doc="hadronic Energy Fraction in HF",precision= 6), + hfEmEF = Var("HFEMEnergyFraction()",float,doc="electromagnetic Energy Fraction in HF",precision= 6), + # multiplicities + nCh = Var("chargedHadronMultiplicity()", int, doc="number of charged hadrons in the jet"), + nNh = Var("neutralHadronMultiplicity()", int, doc="number of neutral hadrons in the jet"), + nMuons = Var("muonMultiplicity()", int, doc="number of muons in the jet"), + nElectrons = Var("electronMultiplicity()", int, doc="number of electrons in the jet"), + nPhotons = Var("photonMultiplicity()", int, doc="number of photons in the jet"), + nConstituents = Var("numberOfDaughters()", "uint8", doc="number of particles in the jet") + ), externalVariables = cms.PSet( - vertexIndex = ExtVar(cms.InputTag("scoutingPFCands", "vertexIndex"), int, doc="vertex index"), - trkNormchi2 = ExtVar(cms.InputTag("scoutingPFCands", "normchi2"), float, doc="normalized chi squared of best track", precision=6), - trkDz = ExtVar(cms.InputTag("scoutingPFCands", "dz"), float, doc="dz of best track", precision=6), - trkDxy = ExtVar(cms.InputTag("scoutingPFCands", "dxy"), float, doc="dxy of best track", precision=6), - trkDzsig = ExtVar(cms.InputTag("scoutingPFCands", "dzsig"), float, doc="dzsig of best track", precision=6), - trkDxysig = ExtVar(cms.InputTag("scoutingPFCands", "dxysig"), float, doc="dxysig of best track", precision=6), - trkLostInnerHits = ExtVar(cms.InputTag("scoutingPFCands", "lostInnerHits"), int, doc="lostInnerHits of best track"), - trkQuality = ExtVar(cms.InputTag("scoutingPFCands", "quality"), int, doc="quality of best track"), - trkPt = ExtVar(cms.InputTag("scoutingPFCands", "trkPt"), float, doc="pt of best track", precision=6), - trkEta = ExtVar(cms.InputTag("scoutingPFCands", "trkEta"), float, doc="eta of best track", precision=6), - trkPhi = ExtVar(cms.InputTag("scoutingPFCands", "trkPhi"), float, doc="phi of best track", precision=6), + # jet tagging probabilities + particleNet_prob_b = ExtVar(cms.InputTag("scoutingPFJetReclusterParticleNetJetTags:probb"), float, doc="ParticleNet probability of b", precision=10), + particleNet_prob_bb = ExtVar(cms.InputTag("scoutingPFJetReclusterParticleNetJetTags:probbb"), float, doc="ParticleNet probability of bb", precision=10), + particleNet_prob_c = ExtVar(cms.InputTag("scoutingPFJetReclusterParticleNetJetTags:probc"), float, doc="ParticleNet probability of c", precision=10), + particleNet_prob_cc = ExtVar(cms.InputTag("scoutingPFJetReclusterParticleNetJetTags:probcc"), float, doc="ParticleNet probability of cc", precision=10), + particleNet_prob_uds = ExtVar(cms.InputTag("scoutingPFJetReclusterParticleNetJetTags:probuds"), float, doc="particlenet probability of uds", precision=10), + particleNet_prob_g = ExtVar(cms.InputTag("scoutingPFJetReclusterParticleNetJetTags:probg"), float, doc="ParticleNet probability of g", precision=10), + particleNet_prob_undef = ExtVar(cms.InputTag("scoutingPFJetReclusterParticleNetJetTags:probundef"), float, doc="ParticleNet probability of undef", precision=10), ), - variables = cms.PSet( - CandVars, +) + +# AK4 gen jet matching (only for MC) + +scoutingPFJetReclusterMatchGen = cms.EDProducer("RecoJetToGenJetDeltaRValueMapProducer", + src = cms.InputTag("scoutingPFJetRecluster"), + matched = cms.InputTag("slimmedGenJets"), + distMax = cms.double(0.4), + value = cms.string("index"), +) + +scoutingPFJetReclusterMatchGenExtensionTable = cms.EDProducer("SimplePFJetFlatTableProducer", + src = cms.InputTag("scoutingPFJetRecluster"), + name = cms.string("ScoutingPFJetRecluster"), + cut = cms.string(""), + singleton = cms.bool(False), + extension = cms.bool(True), + variables = cms.PSet(), + externalVariables = cms.PSet( + genJetIdx = ExtVar(cms.InputTag("scoutingPFJetReclusterMatchGen"), int, doc="gen jet idx"), ), - ) +) -################ -# Scouting AK4 jets +######################### +# AK8 PFJet Reclustered # +######################### -from RecoJets.JetProducers.ak4PFJets_cfi import ak4PFJets -ak4ScoutingJets = ak4PFJets.clone( - src = ("scoutingPFCands"), - jetPtMin = 20, +# AK8 jet clustering + +scoutingFatPFJetRecluster = ak4PFJets.clone( + src = ("scoutingPFCandidate"), + rParam = 0.8, + jetPtMin = 170.0, ) -ak4ScoutingJetParticleNetJetTagInfos = cms.EDProducer("DeepBoostedJetTagInfoProducer", - jet_radius = cms.double( 0.4 ), - min_jet_pt = cms.double( 5.0 ), - max_jet_eta = cms.double( 2.5 ), - min_pt_for_track_properties = cms.double( 0.95 ), - min_pt_for_pfcandidates = cms.double( 0.1 ), - use_puppiP4 = cms.bool( False ), - include_neutrals = cms.bool( True ), - sort_by_sip2dsig = cms.bool( False ), - min_puppi_wgt = cms.double( -1.0 ), - flip_ip_sign = cms.bool( False ), - sip3dSigMax = cms.double( -1.0 ), - use_hlt_features = cms.bool( False ), - pf_candidates = cms.InputTag( "scoutingPFCands" ), - jets = cms.InputTag( "ak4ScoutingJets" ), - puppi_value_map = cms.InputTag( "" ), - use_scouting_features = cms.bool( True ), - normchi2_value_map = cms.InputTag("scoutingPFCands", "normchi2"), - dz_value_map = cms.InputTag("scoutingPFCands", "dz"), - dxy_value_map = cms.InputTag("scoutingPFCands", "dxy"), - dzsig_value_map = cms.InputTag("scoutingPFCands", "dzsig"), - dxysig_value_map = cms.InputTag("scoutingPFCands", "dxysig"), - lostInnerHits_value_map = cms.InputTag("scoutingPFCands", "lostInnerHits"), - quality_value_map = cms.InputTag("scoutingPFCands", "quality"), - trkPt_value_map = cms.InputTag("scoutingPFCands", "trkPt"), - trkEta_value_map = cms.InputTag("scoutingPFCands", "trkEta"), - trkPhi_value_map = cms.InputTag("scoutingPFCands", "trkPhi"), +# AK8 jet tagging + +scoutingFatPFJetReclusterParticleNetJetTagInfos = cms.EDProducer("DeepBoostedJetTagInfoProducer", + jet_radius = cms.double(0.8), + min_jet_pt = cms.double(50), + max_jet_eta = cms.double(2.5), + min_pt_for_track_properties = cms.double(0.95), + min_pt_for_pfcandidates = cms.double(0.1), + use_puppiP4 = cms.bool(False), + include_neutrals = cms.bool(True), + sort_by_sip2dsig = cms.bool(False), + min_puppi_wgt = cms.double(-1.0), + flip_ip_sign = cms.bool(False), + sip3dSigMax = cms.double(-1.0), + use_hlt_features = cms.bool(False), + pf_candidates = cms.InputTag("scoutingPFCandidate"), + jets = cms.InputTag("scoutingFatPFJetRecluster"), + puppi_value_map = cms.InputTag(""), + use_scouting_features = cms.bool(True), + normchi2_value_map = cms.InputTag("scoutingPFCandidate", "normchi2"), + dz_value_map = cms.InputTag("scoutingPFCandidate", "dz"), + dxy_value_map = cms.InputTag("scoutingPFCandidate", "dxy"), + dzsig_value_map = cms.InputTag("scoutingPFCandidate", "dzsig"), + dxysig_value_map = cms.InputTag("scoutingPFCandidate", "dxysig"), + lostInnerHits_value_map = cms.InputTag("scoutingPFCandidate", "lostInnerHits"), + quality_value_map = cms.InputTag("scoutingPFCandidate", "quality"), + trkPt_value_map = cms.InputTag("scoutingPFCandidate", "trkPt"), + trkEta_value_map = cms.InputTag("scoutingPFCandidate", "trkEta"), + trkPhi_value_map = cms.InputTag("scoutingPFCandidate", "trkPhi"), ) from RecoBTag.ONNXRuntime.boostedJetONNXJetTagsProducer_cfi import boostedJetONNXJetTagsProducer +scoutingFatPFJetReclusterParticleNetJetTags = cms.EDProducer("BoostedJetONNXJetTagsProducer", + jets = cms.InputTag("scoutingFatPFJetRecluster"), + produceValueMap = cms.untracked.bool(True), + src = cms.InputTag("scoutingFatPFJetReclusterParticleNetJetTagInfos"), + preprocess_json = cms.string("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/General/V00/preprocess.json"), + model_path = cms.FileInPath("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/General/V00/particle-net.onnx"), + flav_names = cms.vstring(["probQCDall", "probHbb","probHcc", "probHqq"]), + debugMode = cms.untracked.bool(False), +) -ak4ScoutingJetParticleNetJetTags = cms.EDProducer("BoostedJetONNXJetTagsProducer", - jets = cms.InputTag("ak4ScoutingJets"), - produceValueMap = cms.untracked.bool(True), - src = cms.InputTag("ak4ScoutingJetParticleNetJetTagInfos"), - preprocess_json = cms.string("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK4/V00/preprocess.json"), - model_path = cms.FileInPath("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK4/V00/particle-net.onnx"), - flav_names = cms.vstring(["probb", "probbb","probc", "probcc", "probuds", "probg", "probundef"]), - debugMode = cms.untracked.bool(False), +# AK8 jet softdrop mass + +scoutingFatPFJetReclusterSoftDrop = ak4PFJets.clone( + src = ("scoutingPFCandidate"), + rParam = 0.8, + jetPtMin = 170.0, + useSoftDrop = cms.bool(True), + zcut = cms.double(0.1), + beta = cms.double(0.0), + R0 = cms.double(0.8), + useExplicitGhosts = cms.bool(True), + writeCompound = cms.bool(True), + jetCollInstanceName=cms.string("SubJets"), ) -ak4ScoutingJetTable = cms.EDProducer("SimplePFJetFlatTableProducer", - src = cms.InputTag("ak4ScoutingJets"), - name = cms.string("ScoutingPFJetRecluster"), - cut = cms.string(""), - doc = cms.string("ak4 jets from re-clustering scouting PF candidates"), - singleton = cms.bool(False), - extension = cms.bool(False), # this is the main table - externalVariables = cms.PSet( - particleNet_prob_b = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probb'), float, doc="ParticleNet probability of b", precision=10), - particleNet_prob_bb = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probbb'), float, doc="ParticleNet probability of bb", precision=10), - particleNet_prob_c = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probc'), float, doc="ParticleNet probability of c", precision=10), - particleNet_prob_cc = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probcc'), float, doc="ParticleNet probability of cc", precision=10), - particleNet_prob_uds = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probuds'), float, doc="particlenet probability of uds", precision=10), - particleNet_prob_g = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probg'), float, doc="ParticleNet probability of g", precision=10), - particleNet_prob_undef = ExtVar(cms.InputTag('ak4ScoutingJetParticleNetJetTags:probundef'), float, doc="ParticleNet probability of undef", precision=10), - ), - variables = cms.PSet( - P4Vars, - area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), - chHEF = Var("chargedHadronEnergy()/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="charged Hadron Energy Fraction", precision= 6), - neHEF = Var("neutralHadronEnergy()/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="neutral Hadron Energy Fraction", precision= 6), - chEmEF = Var("(electronEnergy()+muonEnergy())/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="charged Electromagnetic Energy Fraction", precision= 6), - neEmEF = Var("(photonEnergy())/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="neutral Electromagnetic Energy Fraction", precision= 6), - muEF = Var("(muonEnergy())/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="muon Energy Fraction", precision= 6), - nCh = Var("chargedHadronMultiplicity()", int, doc="number of charged hadrons in the jet"), - nNh = Var("neutralHadronMultiplicity()", int, doc="number of neutral hadrons in the jet"), - nMuons = Var("muonMultiplicity()", int, doc="number of muons in the jet"), - nElectrons = Var("electronMultiplicity()", int, doc="number of electrons in the jet"), - nPhotons = Var("photonMultiplicity()", int, doc="number of photons in the jet"), - nConstituents = Var("numberOfDaughters()", "uint8", doc="number of particles in the jet") - ), +scoutingFatPFJetReclusterSoftDropMass = cms.EDProducer("RecoJetDeltaRValueMapProducer", + src = cms.InputTag("scoutingFatPFJetRecluster"), + matched = cms.InputTag("scoutingFatPFJetReclusterSoftDrop"), + distMax = cms.double(0.8), + value = cms.string("mass") ) -ak4ScoutingJetMatchGen = cms.EDProducer("RecoJetToGenJetDeltaRValueMapProducer", - src = cms.InputTag("ak4ScoutingJets"), - matched = cms.InputTag("slimmedGenJets"), - distMax = cms.double(0.4), - value = cms.string("index"), - ) - -ak4ScoutingJetExtTable = cms.EDProducer("SimpleCandidateFlatTableProducer", - src = cms.InputTag("ak4ScoutingJets"), - name = cms.string("ScoutingPFJetRecluster"), - cut = cms.string(""), - singleton = cms.bool(False), - extension = cms.bool(True), - externalVariables = cms.PSet( - genJetIdx = ExtVar(cms.InputTag("ak4ScoutingJetMatchGen"), int, doc="gen jet idx"), - ), - variables = cms.PSet(), - ) - -################ -# Scouting AK8 jets - -ak8ScoutingJets = ak4PFJets.clone( - src = ("scoutingPFCands"), - rParam = 0.8, - jetPtMin = 170.0, +# AK8 jet regressed mass + +scoutingFatPFJetReclusterParticleNetMassRegressionJetTags = cms.EDProducer("BoostedJetONNXJetTagsProducer", + jets = cms.InputTag("scoutingFatPFJetRecluster"), + produceValueMap = cms.untracked.bool(True), + src = cms.InputTag("scoutingFatPFJetReclusterParticleNetJetTagInfos"), + preprocess_json = cms.string("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/MassRegression/V00/preprocess.json"), + model_path = cms.FileInPath("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/MassRegression/V00/particle-net.onnx"), + flav_names = cms.vstring(["mass"]), + debugMode = cms.untracked.bool(False), ) -ak8ScoutingJetsSoftDrop = ak4PFJets.clone( - src = ("scoutingPFCands"), - rParam = 0.8, - jetPtMin = 170.0, - useSoftDrop = cms.bool(True), - zcut = cms.double(0.1), - beta = cms.double(0.0), - R0 = cms.double(0.8), - useExplicitGhosts = cms.bool(True), - writeCompound = cms.bool(True), - jetCollInstanceName=cms.string("SubJets"), - ) - -ak8ScoutingJetsSoftDropMass = cms.EDProducer("RecoJetDeltaRValueMapProducer", - src = cms.InputTag("ak8ScoutingJets"), - matched = cms.InputTag("ak8ScoutingJetsSoftDrop"), - distMax = cms.double(0.8), - value = cms.string('mass') - ) +# AK8 jet substructure variables from RecoJets.JetProducers.ECF_cff import ecfNbeta1 -ak8ScoutingJetEcfNbeta1 = ecfNbeta1.clone(src = cms.InputTag("ak8ScoutingJets"), srcWeights="") +scoutingFatPFJetReclusterEcfNbeta1 = ecfNbeta1.clone(src = cms.InputTag("scoutingFatPFJetRecluster"), srcWeights="") from RecoJets.JetProducers.nJettinessAdder_cfi import Njettiness -ak8ScoutingJetNjettiness = Njettiness.clone(src = cms.InputTag("ak8ScoutingJets"), srcWeights="") - -ak8ScoutingJetParticleNetJetTagInfos = cms.EDProducer("DeepBoostedJetTagInfoProducer", - jet_radius = cms.double( 0.8 ), - min_jet_pt = cms.double( 50 ), - max_jet_eta = cms.double( 2.5 ), - min_pt_for_track_properties = cms.double( 0.95 ), - min_pt_for_pfcandidates = cms.double( 0.1 ), - use_puppiP4 = cms.bool( False ), - include_neutrals = cms.bool( True ), - sort_by_sip2dsig = cms.bool( False ), - min_puppi_wgt = cms.double( -1.0 ), - flip_ip_sign = cms.bool( False ), - sip3dSigMax = cms.double( -1.0 ), - use_hlt_features = cms.bool( False ), - pf_candidates = cms.InputTag( "scoutingPFCands" ), - jets = cms.InputTag( "ak8ScoutingJets" ), - puppi_value_map = cms.InputTag( "" ), - use_scouting_features = cms.bool( True ), - normchi2_value_map = cms.InputTag("scoutingPFCands", "normchi2"), - dz_value_map = cms.InputTag("scoutingPFCands", "dz"), - dxy_value_map = cms.InputTag("scoutingPFCands", "dxy"), - dzsig_value_map = cms.InputTag("scoutingPFCands", "dzsig"), - dxysig_value_map = cms.InputTag("scoutingPFCands", "dxysig"), - lostInnerHits_value_map = cms.InputTag("scoutingPFCands", "lostInnerHits"), - quality_value_map = cms.InputTag("scoutingPFCands", "quality"), - trkPt_value_map = cms.InputTag("scoutingPFCands", "trkPt"), - trkEta_value_map = cms.InputTag("scoutingPFCands", "trkEta"), - trkPhi_value_map = cms.InputTag("scoutingPFCands", "trkPhi"), - ) +scoutingFatPFJetReclusterNjettiness = Njettiness.clone(src = cms.InputTag("scoutingFatPFJetRecluster"), srcWeights="") -from RecoBTag.ONNXRuntime.boostedJetONNXJetTagsProducer_cfi import boostedJetONNXJetTagsProducer -ak8ScoutingJetParticleNetJetTags = cms.EDProducer("BoostedJetONNXJetTagsProducer", - jets = cms.InputTag("ak8ScoutingJets"), - produceValueMap = cms.untracked.bool(True), - src = cms.InputTag("ak8ScoutingJetParticleNetJetTagInfos"), - preprocess_json = cms.string("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/General/V00/preprocess.json"), - model_path = cms.FileInPath("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/General/V00/particle-net.onnx"), - flav_names = cms.vstring([ "probQCDall", "probHbb", "probHcc", "probHqq"]), - debugMode = cms.untracked.bool(False), - ) - -ak8ScoutingJetParticleNetMassRegressionJetTags = cms.EDProducer("BoostedJetONNXJetTagsProducer", - jets = cms.InputTag("ak8ScoutingJets"), - produceValueMap = cms.untracked.bool(True), - src = cms.InputTag("ak8ScoutingJetParticleNetJetTagInfos"), - preprocess_json = cms.string("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/MassRegression/V00/preprocess.json"), - model_path = cms.FileInPath("RecoBTag/Combined/data/Run3Scouting/ParticleNetAK8/MassRegression/V00/particle-net.onnx"), - flav_names = cms.vstring(["mass"]), - debugMode = cms.untracked.bool(False), - ) - -ak8ScoutingJetTable = cms.EDProducer("SimplePFJetFlatTableProducer", - src = cms.InputTag("ak8ScoutingJets"), - name = cms.string("ScoutingFatPFJetRecluster"), - cut = cms.string(""), - doc = cms.string("ak8 jets from re-clustering scouting PF candidates"), - singleton = cms.bool(False), - extension = cms.bool(False), # this is the main table - externalVariables = cms.PSet( - #genJetAK8Idx = ExtVar(cms.InputTag("ak8ScoutingJetMatchGen"), int, doc="gen jet idx"), - msoftdrop = ExtVar(cms.InputTag('ak8ScoutingJetsSoftDropMass'), float, doc="Softdrop mass", precision=10), - n2b1 = ExtVar(cms.InputTag('ak8ScoutingJetEcfNbeta1:ecfN2'), float, doc="N2 with beta=1", precision=10), - n3b1 = ExtVar(cms.InputTag('ak8ScoutingJetEcfNbeta1:ecfN3'), float, doc="N3 with beta=1", precision=10), - tau1 = ExtVar(cms.InputTag('ak8ScoutingJetNjettiness:tau1'), float, doc="Nsubjettiness (1 axis)", precision=10), - tau2 = ExtVar(cms.InputTag('ak8ScoutingJetNjettiness:tau2'), float, doc="Nsubjettiness (2 axis)", precision=10), - tau3 = ExtVar(cms.InputTag('ak8ScoutingJetNjettiness:tau3'), float, doc="Nsubjettiness (3 axis)", precision=10), - tau4 = ExtVar(cms.InputTag('ak8ScoutingJetNjettiness:tau4'), float, doc="Nsubjettiness (4 axis)", precision=10), - particleNet_mass = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetMassRegressionJetTags:mass'), float, doc="ParticleNet regressed mass", precision=10), - particleNet_prob_QCD = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probQCDall'), float, doc="ParticleNet probability of QCD", precision=10), - particleNet_prob_Hbb = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probHbb'), float, doc="ParticleNet probability of Hbb", precision=10), - particleNet_prob_Hcc = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probHcc'), float, doc="ParticleNet probability of Hcc", precision=10), - particleNet_prob_Hqq = ExtVar(cms.InputTag('ak8ScoutingJetParticleNetJetTags:probHqq'), float, doc="ParticleNet probability of Hqq", precision=10), - ), - variables = cms.PSet( - P4Vars, - area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), - chHEF = Var("chargedHadronEnergy()/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="charged Hadron Energy Fraction", precision= 6), - neHEF = Var("neutralHadronEnergy()/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="neutral Hadron Energy Fraction", precision= 6), - chEmEF = Var("(electronEnergy()+muonEnergy())/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="charged Electromagnetic Energy Fraction", precision= 6), - neEmEF = Var("(photonEnergy())/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="neutral Electromagnetic Energy Fraction", precision= 6), - muEF = Var("(muonEnergy())/(chargedHadronEnergy()+neutralHadronEnergy()+photonEnergy()+electronEnergy()+muonEnergy())", float, doc="muon Energy Fraction", precision= 6), - nCh = Var("chargedHadronMultiplicity()", int, doc="number of charged hadrons in the jet"), - nNh = Var("neutralHadronMultiplicity()", int, doc="number of neutral hadrons in the jet"), - nMuons = Var("muonMultiplicity()", int, doc="number of muons in the jet"), - nElectrons = Var("electronMultiplicity()", int, doc="number of electrons in the jet"), - nPhotons = Var("photonMultiplicity()", int, doc="number of photons in the jet"), - nConstituents = Var("numberOfDaughters()", "uint8", doc="number of particles in the jet") - ), - ) - -ak8ScoutingJetMatchGen = cms.EDProducer("RecoJetToGenJetDeltaRValueMapProducer", - src = cms.InputTag("ak8ScoutingJets"), - matched = cms.InputTag("slimmedGenJetsAK8"), - distMax = cms.double(0.8), - value = cms.string("index"), - ) - -ak8ScoutingJetExtTable = cms.EDProducer("SimpleCandidateFlatTableProducer", - src = cms.InputTag("ak8ScoutingJets"), - name = cms.string("ScoutingFatPFJetRecluster"), - cut = cms.string(""), - singleton = cms.bool(False), - extension = cms.bool(True), - externalVariables = cms.PSet( - genJetAK8Idx = ExtVar(cms.InputTag("ak8ScoutingJetMatchGen"), int, doc="gen jet idx"), - ), - variables = cms.PSet(), - ) +# output AK8 jet to nanoaod::flattable + +scoutingFatPFJetReclusterTable = cms.EDProducer("SimplePFJetFlatTableProducer", + src = cms.InputTag("scoutingFatPFJetRecluster"), + name = cms.string("ScoutingFatPFJetRecluster"), + cut = cms.string(""), + doc = cms.string("ak8 jet from re-clustering scouting PF Candidates"), + singleton = cms.bool(False), + extension = cms.bool(False), + variables = cms.PSet( + P4Vars, + area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), + # energy fractions + chHEF = Var("chargedHadronEnergyFraction()", float, doc="charged Hadron Energy Fraction", precision= 6), + neHEF = Var("neutralHadronEnergyFraction()", float, doc="neutral Hadron Energy Fraction", precision= 6), + chEmEF = Var("chargedEmEnergyFraction()", float, doc="charged Electromagnetic Energy Fraction", precision= 6), + neEmEF = Var("neutralEmEnergyFraction()", float, doc="neutral Electromagnetic Energy Fraction", precision= 6), + muEF = Var("muonEnergyFraction()", float, doc="muon Energy Fraction", precision= 6), + hfHEF = Var("HFHadronEnergyFraction()",float,doc="hadronic Energy Fraction in HF",precision= 6), + hfEmEF = Var("HFEMEnergyFraction()",float,doc="electromagnetic Energy Fraction in HF",precision= 6), + # multiplicities + nCh = Var("chargedHadronMultiplicity()", int, doc="number of charged hadrons in the jet"), + nNh = Var("neutralHadronMultiplicity()", int, doc="number of neutral hadrons in the jet"), + nMuons = Var("muonMultiplicity()", int, doc="number of muons in the jet"), + nElectrons = Var("electronMultiplicity()", int, doc="number of electrons in the jet"), + nPhotons = Var("photonMultiplicity()", int, doc="number of photons in the jet"), + nConstituents = Var("numberOfDaughters()", "uint8", doc="number of particles in the jet") + ), + externalVariables = cms.PSet( + # jet tagging probabilities + particleNet_prob_QCD = ExtVar(cms.InputTag("scoutingFatPFJetReclusterParticleNetJetTags:probQCDall"), float, doc="ParticleNet probability of QCD", precision=10), + particleNet_prob_Hbb = ExtVar(cms.InputTag("scoutingFatPFJetReclusterParticleNetJetTags:probHbb"), float, doc="ParticleNet probability of Hbb", precision=10), + particleNet_prob_Hcc = ExtVar(cms.InputTag("scoutingFatPFJetReclusterParticleNetJetTags:probHcc"), float, doc="ParticleNet probability of Hcc", precision=10), + particleNet_prob_Hqq = ExtVar(cms.InputTag("scoutingFatPFJetReclusterParticleNetJetTags:probHqq"), float, doc="ParticleNet probability of Hqq", precision=10), + # softdrop mass + msoftdrop = ExtVar(cms.InputTag("scoutingFatPFJetReclusterSoftDropMass"), float, doc="Softdrop mass", precision=10), + # regressed mass + particleNet_mass = ExtVar(cms.InputTag("scoutingFatPFJetReclusterParticleNetMassRegressionJetTags:mass"), float, doc="ParticleNet regressed mass", precision=10), + # substructure variables + n2b1 = ExtVar(cms.InputTag("scoutingFatPFJetReclusterEcfNbeta1:ecfN2"), float, doc="N2 with beta=1", precision=10), + n3b1 = ExtVar(cms.InputTag("scoutingFatPFJetReclusterEcfNbeta1:ecfN3"), float, doc="N3 with beta=1", precision=10), + tau1 = ExtVar(cms.InputTag("scoutingFatPFJetReclusterNjettiness:tau1"), float, doc="Nsubjettiness (1 axis)", precision=10), + tau2 = ExtVar(cms.InputTag("scoutingFatPFJetReclusterNjettiness:tau2"), float, doc="Nsubjettiness (2 axis)", precision=10), + tau3 = ExtVar(cms.InputTag("scoutingFatPFJetReclusterNjettiness:tau3"), float, doc="Nsubjettiness (3 axis)", precision=10), + tau4 = ExtVar(cms.InputTag("scoutingFatPFJetReclusterNjettiness:tau4"), float, doc="Nsubjettiness (4 axis)", precision=10), + ), +) + +# AK8 gen jet matching (only for MC) + +scoutingFatPFJetReclusterMatchGen = cms.EDProducer("RecoJetToGenJetDeltaRValueMapProducer", + src = cms.InputTag("scoutingFatPFJetRecluster"), + matched = cms.InputTag("slimmedGenJetsAK8"), + distMax = cms.double(0.8), + value = cms.string("index"), +) + +scoutingFatPFJetReclusterMatchGenExtensionTable = cms.EDProducer("SimplePFJetFlatTableProducer", + src = cms.InputTag("scoutingFatPFJetRecluster"), + name = cms.string("ScoutingFatPFJetRecluster"), + cut = cms.string(""), + singleton = cms.bool(False), + extension = cms.bool(True), + variables = cms.PSet(), + externalVariables = cms.PSet( + genJetAK8Idx = ExtVar(cms.InputTag("scoutingFatPFJetReclusterMatchGen"), int, doc="gen jet idx"), + ), +) From 8c7df63817c856b10082b232a4757b512f297913 Mon Sep 17 00:00:00 2001 From: Nick Manganelli Date: Fri, 25 Oct 2024 23:15:50 +0200 Subject: [PATCH 009/418] WIP GTT docs --- L1Trigger/L1TTrackMatch/Readme.md | 57 +++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 L1Trigger/L1TTrackMatch/Readme.md diff --git a/L1Trigger/L1TTrackMatch/Readme.md b/L1Trigger/L1TTrackMatch/Readme.md new file mode 100644 index 0000000000000..5749c5053b102 --- /dev/null +++ b/L1Trigger/L1TTrackMatch/Readme.md @@ -0,0 +1,57 @@ +# Global Track Trigger +This section describes several componenets of the Global Track Trigger, the CMS subsystem downstream of Level-1 Track Finding, which performs Level-1 vertex-finding for the L1 Correlator Layer 1 (for PF Candidate / PUPPI reconstruction) and globally builds track-only objects such as Jets, HT, MET, mesons (including phi and rho), etc. + +## Data Flow Overview + +The current design of the GTT involves several steps. Universally, a GTTInputConversion step which performs such conversions as $\frac{1}{R} to $p_T$ and $tan(\lambda)$ to $\eta$. Currently in emulation, this takes information from the 96-bit [TrackWord](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h) and overwrites the corresponding fields with the GTT converted values, leaving the Track in a non-canonical state. In [firmware](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/DataFormats/Track?ref_type=heads), the HLS code for the Track [struct](https://gitlab.cern.ch/GTT/LibHLS/-/blob/master/DataFormats/Track/interface/Track.h?ref_type=heads) represents this non-canonical state as separate fields, rather than a single 96-bit word. Afterwards, multiple TrackSelection (TS) modules are configured/instantiated, potentially 1 for each downstream algorithm, such as VertexFinding (VF), TrackJets (and thus TrackHT/TrackMissingHT), TrackMET, mesons, $W\rarrow~3\pi$, and so on. The VertexFinder takes selected tracks and uses (as baseline/extension) a histogramming method to identify the Primary Vertex (PV), weight either with track $p_T$ or a Neural Net score. Downstream, multiple modules of TrackVertexAssociation (TVA) are run, taking selected tracks from one of the TS modules, the PV from VF, and they output vertex-associated tracks. These are inputs to JetFinding (JF), meson finding, MET, and others. + +### GTT Input Conversion +FIXME +LibHLS [$\eta$ module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionEta?ref_type=heads) and [$p_T$ module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionPt?ref_type=heads) + +### Vertex Finder (VF) +#### FastHisto (FH) - Baseline Algorithm +FIXME +LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/Vertex?ref_type=heads) +#### End-to-end Neural Network (E2E) - Extended Algorithm +FIXME + +#### Status +The FastHisto algorithm has bit-level agreement with the firmware using several thousand events from $t\bar{t}$ simulation (200 PileUp). + +### Track Selection (TS) + +In CMSSW GTT emulation the plugin is defined [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackSelectionProducer.cc) and configured with default settings [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackSelectionProducer_cfi.py). In firmware, the HLS code is concentrated in this LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/TrackSelection?ref_type=heads) + +#### Status +The TrackSelection is mostly synchronized with the Firmware at HLS level. The firmware currently runs 3 duplicates of TS for VF, JF, and MET. The emulation default is not necessarily synchronized. + +### Track Vertex Association (TVA) +FIXME +LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/TrackVertexAssociation?ref_type=heads) + +### Jet Finding (JF) +FIXME + +### HT and Missing HT (HT) +FIXME + +### MET +FIXME +LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/MET?ref_type=heads) + +### Phi and Rho Meson Finding +FIXME + +### $W\rarrow 3\pi$ (W3pi) +FIXME +LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/WtoThreePi?ref_type=heads) + +## Emulation Pattern (Buffer) Files + +A git [submodule](https://gitlab.cern.ch/GTT/Data) stores fixed copies of the emulation buffer / pattern files for use in [LibHLS](https://gitlab.cern.ch/GTT/LibHLS/), using git [LFS](https://git-lfs.com/) + +### Generating pattern files +FIXME +### Loading tracks and vertices from pattern files +FIXME \ No newline at end of file From 83ebe1bfa9746aa9bd2270da878192dca949aac3 Mon Sep 17 00:00:00 2001 From: Rohit Kumar Singh Date: Sun, 3 Nov 2024 19:27:33 +0100 Subject: [PATCH 010/418] update centrality thresholds for 2024 HI run --- .../Configuration/python/customiseSettings.py | 4 + .../python/caloParamsHI_2024_v0_0_cfi.py | 128 ++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 L1Trigger/L1TCalorimeter/python/caloParamsHI_2024_v0_0_cfi.py diff --git a/L1Trigger/Configuration/python/customiseSettings.py b/L1Trigger/Configuration/python/customiseSettings.py index a5a79fa5d54d5..e2a38ecf08161 100644 --- a/L1Trigger/Configuration/python/customiseSettings.py +++ b/L1Trigger/Configuration/python/customiseSettings.py @@ -2,6 +2,10 @@ import os.path import FWCore.ParameterSet.Config as cms +def L1TSettingsToCaloParamsHI_2024_v0_0(process): + process.load("L1Trigger.L1TCalorimeter.caloParamsHI_2024_v0_0_cfi") + return process + def L1TSettingsToCaloParams_2024_v0_2(process): process.load("L1Trigger.L1TCalorimeter.caloParams_2024_v0_2_cfi") return process diff --git a/L1Trigger/L1TCalorimeter/python/caloParamsHI_2024_v0_0_cfi.py b/L1Trigger/L1TCalorimeter/python/caloParamsHI_2024_v0_0_cfi.py new file mode 100644 index 0000000000000..4eaa25359d61a --- /dev/null +++ b/L1Trigger/L1TCalorimeter/python/caloParamsHI_2024_v0_0_cfi.py @@ -0,0 +1,128 @@ +import FWCore.ParameterSet.Config as cms + +from L1Trigger.L1TCalorimeter.caloParams_cfi import caloParamsSource +import L1Trigger.L1TCalorimeter.caloParams_cfi +caloStage2Params = L1Trigger.L1TCalorimeter.caloParams_cfi.caloParams.clone( + + # EG + egEtaCut = 24, + egHcalThreshold = 0., + egTrimmingLUTFile = "L1Trigger/L1TCalorimeter/data/egTrimmingLUT_10_v16.01.19.txt", + egHOverEcutBarrel = 1, + egHOverEcutEndcap = 1, + egBypassExtHOverE = 1, + egBypassShape = 1, + egBypassECALFG = 1, + + egMaxHOverELUTFile = "L1Trigger/L1TCalorimeter/data/HoverEIdentification_0.995_v15.12.23.txt", + egCompressShapesLUTFile = "L1Trigger/L1TCalorimeter/data/egCompressLUT_v4.txt", + egShapeIdType = "compressed", + egShapeIdLUTFile = "L1Trigger/L1TCalorimeter/data/shapeIdentification_adapt0.99_compressedieta_compressedE_compressedshape_v15.12.08.txt", #Not used any more in the current emulator version, merged with calibration LUT + + egIsolationType = "compressed", + egIsoLUTFile = "L1Trigger/L1TCalorimeter/data/EG_Iso_LUT_Flat_WP_v2_Tight1358_20p0_0p7_40p0_v1_APR23.txt", + egIsoLUTFile2 = "L1Trigger/L1TCalorimeter/data/EG_Iso_LUT_Flat_WP_v2_Loose610_10p0_0p7_40p0_v1_APR23.txt", + + egIsoVetoNrTowersPhi = 2, + egPUSParams = cms.vdouble(1,4,32), #Isolation window in firmware goes up to abs(ieta)=32 for now + egCalibrationType = "compressed", + egCalibrationVersion = 0, + egCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/EG_Calibration_LUT_correctedEtCalibLUT_v1_APR2023.txt", + + # Tau + isoTauEtaMax = 25, + tauSeedThreshold = 0., + tauIsoLUTFile = "L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_2023_calibThr1p7_V2gs_effMin0p9_eMin16_eMax60.txt", + tauIsoLUTFile2 = "L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_2023_calibThr1p7_V2gs_effMin0p9_eMin16_eMax60.txt", + tauCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/Tau_Cal_LUT_2023_calibThr1p7_V2.txt", + tauCompressLUTFile = "L1Trigger/L1TCalorimeter/data/tauCompressAllLUT_12bit_v3.txt", + tauPUSParams = [1,4,32], + + # jets + jetSeedThreshold = 2.5, + jetPUSType = "PhiRing1", + jetPUSUsePhiRing = 1, + + # Calibration options + jetCalibrationType = "LUT", + jetCompressPtLUTFile = "L1Trigger/L1TCalorimeter/data/lut_pt_compress_2017v1.txt", + jetCompressEtaLUTFile = "L1Trigger/L1TCalorimeter/data/lut_eta_compress_2017v1.txt", + jetCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/lut_calib_2023v0_ECALZS_PhiRing.txt", + + + # sums: 0=ET, 1=HT, 2=MET, 3=MHT + etSumEtaMin = [1, 1, 1, 1, 1], + etSumEtaMax = [28, 26, 28, 26, 28], + etSumEtThreshold = [0., 30., 0., 30., 0.], # only 2nd (HT) and 4th (MHT) values applied + etSumMetPUSType = "LUT", # et threshold from this LUT supercedes et threshold in line above + etSumBypassEttPUS = 1, + etSumBypassEcalSumPUS = 1, + + etSumMetPUSLUTFile = "L1Trigger/L1TCalorimeter/data/metPumLUT_2023v0_puppiMet_fit.txt", + + etSumCentralityUpper = [12.0, 62.0, 313.0, 776.0, 1498.0, 7000.0, 7000.0, 65535.0], + etSumCentralityLower = [5.0, 12.0, 50.0, 257.0, 658.0, 5855.0, 6039.0, 65535.0], + + # Layer 1 SF + layer1ECalScaleETBins = cms.vint32([3, 6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1ECalScaleFactors = cms.vdouble([ + 1.12, 1.13, 1.13, 1.12, 1.12, 1.12, 1.13, 1.12, 1.13, 1.12, 1.13, 1.13, 1.14, 1.13, 1.13, 1.13, 1.14, 1.26, 1.11, 1.20, 1.21, 1.22, 1.19, 1.20, 1.19, 0.00, 0.00, 0.00, + 1.12, 1.13, 1.13, 1.12, 1.12, 1.12, 1.13, 1.12, 1.13, 1.12, 1.13, 1.13, 1.14, 1.13, 1.13, 1.13, 1.14, 1.26, 1.11, 1.20, 1.21, 1.22, 1.19, 1.20, 1.19, 1.22, 0.00, 0.00, + 1.08, 1.09, 1.08, 1.08, 1.11, 1.08, 1.09, 1.09, 1.09, 1.09, 1.15, 1.09, 1.10, 1.10, 1.10, 1.10, 1.10, 1.23, 1.07, 1.15, 1.14, 1.16, 1.14, 1.14, 1.15, 1.14, 1.14, 0.00, + 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.07, 1.07, 1.07, 1.07, 1.08, 1.07, 1.09, 1.08, 1.17, 1.06, 1.11, 1.10, 1.13, 1.10, 1.10, 1.11, 1.11, 1.11, 1.09, + 1.04, 1.05, 1.04, 1.05, 1.04, 1.05, 1.06, 1.06, 1.05, 1.05, 1.05, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.15, 1.04, 1.09, 1.09, 1.10, 1.09, 1.09, 1.10, 1.10, 1.10, 1.08, + 1.04, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.05, 1.06, 1.04, 1.05, 1.05, 1.13, 1.03, 1.07, 1.08, 1.08, 1.08, 1.07, 1.07, 1.09, 1.08, 1.07, + 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.05, 1.05, 1.05, 1.05, 1.05, 1.12, 1.03, 1.06, 1.06, 1.08, 1.07, 1.07, 1.06, 1.08, 1.07, 1.06, + 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.03, 1.10, 1.02, 1.05, 1.06, 1.06, 1.06, 1.06, 1.05, 1.06, 1.06, 1.06, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.03, 1.03, 1.02, 1.07, 1.02, 1.04, 1.04, 1.05, 1.06, 1.05, 1.05, 1.06, 1.06, 1.05, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.09, 1.02, 1.04, 1.05, 1.05, 1.05, 1.05, 1.04, 1.05, 1.06, 1.05, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.08, 1.01, 1.04, 1.04, 1.05, 1.05, 1.04, 1.04, 1.05, 1.06, 1.05, + 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.02, 1.01, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.06, 1.01, 1.04, 1.04, 1.05, 1.04, 1.03, 1.03, 1.04, 1.05, 1.04, + 1.01, 1.00, 1.01, 1.01, 1.01, 1.01, 1.01, 1.00, 1.01, 1.02, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.03, 1.04, 1.01, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.00, 1.01, + 1.02, 1.00, 1.00, 1.02, 1.00, 1.01, 1.01, 1.00, 1.00, 1.02, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.02, 1.04, 1.01, 1.03, 1.03, 1.03, 1.03, 1.02, 1.02, 1.02, 1.00, 1.01 + ]), + + layer1HCalScaleETBins = cms.vint32([1, 6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1HCalScaleFactors = cms.vdouble([ + 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, # ZERO-SUPPRESS <1GeV (i.e. 0.5GeV) IN THE BARREL ONLY (ieta<=15 == eta<=1.305) + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 + ]), + + layer1HFScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1HFScaleFactors = cms.vdouble([ + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 + ]), + + # HCal FB LUT + layer1HCalFBLUTUpper = cms.vuint32([ + 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, + ]), + + layer1HCalFBLUTLower = cms.vuint32([ + 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, + ]) +) From ba02fc9eee434ba9b2bd40235093e782fb76b88b Mon Sep 17 00:00:00 2001 From: kdeleo Date: Tue, 5 Nov 2024 13:52:46 +0100 Subject: [PATCH 011/418] updates for GNN and BDT root-ples --- .../plugins/MVATrainingNtuple.cc | 83 +++++++++---------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc index 81854591a4122..1038701103ade 100644 --- a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -34,8 +34,7 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer y(y1), z(z1), t(t1), - key(k1), - LV_distance_z(-1.){}; + key(k1){}; double x, y, z, t; int key; int eventId; @@ -43,7 +42,6 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer TrackingVertexRef sim_vertex; int OriginalIndex = -1; bool is_LV; - double LV_distance_z; }; @@ -80,18 +78,17 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer // cuts for BDT training input static constexpr double BDT_track_eta_cut = 3.0; static constexpr double BDT_track_pt_cut = 0.5; - static constexpr double BDT_track_dz_cut = 1.0; // 1cm cut for BDT training sample const reco::RecoToSimCollection* r2s_; const reco::SimToRecoCollection* s2r_; // GNN input variables - std::vector gnn_pt, gnn_eta, gnn_phi, gnn_z_pca, gnn_dz, gnn_t_Pi, gnn_t_K, gnn_t_P, gnn_t0safe, gnn_t0pid, gnn_sigma_t0safe, gnn_mtdTime, gnn_sigma_tmtd, gnn_mva_qual, gnn_btlMatchChi2, gnn_btlMatchTimeChi2, gnn_etlMatchChi2, gnn_etlMatchTimeChi2, gnn_pathLength, gnn_probPi, gnn_probK, gnn_probP, gnn_trk_chi2, gnn_trk_ndof, gnn_sigma_tof_Pi, gnn_sigma_tof_K, gnn_sigma_tof_P, gnn_sim_vertex_z, gnn_sim_vertex_t, gnn_sim_vertex_LV_dz, gnn_tp_tEst, gnn_outermostHitPosition; + std::vector gnn_pt, gnn_eta, gnn_phi, gnn_z_pca, gnn_dz, gnn_t_Pi, gnn_t_K, gnn_t_P, gnn_t0safe, gnn_t0pid, gnn_sigma_t0safe, gnn_mtdTime, gnn_sigma_tmtd, gnn_mva_qual, gnn_btlMatchChi2, gnn_btlMatchTimeChi2, gnn_etlMatchChi2, gnn_etlMatchTimeChi2, gnn_pathLength, gnn_probPi, gnn_probK, gnn_probP, gnn_trk_chi2, gnn_trk_ndof, gnn_sigma_tof_Pi, gnn_sigma_tof_K, gnn_sigma_tof_P, gnn_sim_vertex_z, gnn_sim_vertex_t, gnn_tp_tEst, gnn_outermostHitPosition; std::vector gnn_npixBarrel, gnn_npixEndcap, gnn_sim_vertex_evID, gnn_sim_vertex_BX, gnn_sim_vertex_index, gnn_tp_pdgId, gnn_trk_validhits; std::vector gnn_is_matched_tp, gnn_sim_vertex_isLV; // BDT input variables - std::vector Ttrack_pt, Ttrack_eta, Ttrack_phi, Ttrack_dz, Ttrack_dxy, Ttrack_chi2, Ttrack_BTLchi2, Ttrack_BTLtime_chi2, Ttrack_ETLchi2, Ttrack_ETLtime_chi2, Ttrack_t0, Ttrack_sigmat0, Ttrack_Tmtd, Ttrack_sigmaTmtd, Ttrack_lenght, Ttrack_MtdMVA, TtrackTP_pt, TtrackTP_eta, TtrackTP_phi, Ttrack_CluTime1, Ttrack_CluTime2; + std::vector Ttrack_pt, Ttrack_eta, Ttrack_phi, Ttrack_dz, Ttrack_dxy, Ttrack_chi2, Ttrack_BTLchi2, Ttrack_BTLtime_chi2, Ttrack_ETLchi2, Ttrack_ETLtime_chi2, Ttrack_t0, Ttrack_sigmat0, Ttrack_Tmtd, Ttrack_sigmaTmtd, Ttrack_lenght, Ttrack_MtdMVA, Ttrack_lHitPos, TtrackTP_pt, TtrackTP_eta, TtrackTP_phi, Ttrack_CluTime1, Ttrack_CluTime2; std::vector Ttrack_ndof, Ttrack_nValidHits, Ttrack_npixBarrelValidHits, Ttrack_npixEndcapValidHits, TtrackTP_nValidHits, Ttrack_det, Ttrack_subdet, Ttrack_subdetmtd,Ttrack_nSimClust; std::vector Ttrack_Signal, Ttrack_Associated, Ttrack_HasTP, Ttrack_TPHasSimClu, Ttrack_TPSimCluDirect, Ttrack_hitMTD, Ttrack_hit, Ttrack_hitMatchMTD, Ttrack_hasRecoClu, Ttrack_RecoSimLink, Ttrack_FullMatch; @@ -239,30 +236,32 @@ bool MVATrainingNtuple::isSameCluster(const FTLCluster& clu1, const FTLCluster& std::vector MVATrainingNtuple::getSimPVs( const edm::Handle& tVC) { std::vector simpv; - std::set> processedEvents; // Set to store (event ID, bunch crossing) pairs + int current_event = -1; int s = -1; for (TrackingVertexCollection::const_iterator v = tVC->begin(); v != tVC->end(); ++v) { + // LV is the first vertex in each event, keep only at BX=0 int eventId = v->eventId().event(); int bunchCrossing = v->eventId().bunchCrossing(); - bool is_LV = true; - std::pair eventBunchPair = std::make_pair(eventId, bunchCrossing); - // Skip the vertex if this event ID and bunch crossing pair has already been processed - if (processedEvents.find(eventBunchPair) != processedEvents.end()) { + if(bunchCrossing != 0) + continue; + + bool is_LV = true; + if(eventId != current_event){ + current_event = eventId; + }else{ is_LV = false; } - - // Mark this event ID and bunch crossing pair as processed - processedEvents.insert(eventBunchPair); s++; + // could be a new vertex, check all primaries found so far to avoid multiple entries int key = std::distance(tVC->begin(), v); simPrimaryVertex sv(v->position().x(), v->position().y(), v->position().z(), v->position().t(), key); - sv.eventId = v->eventId().event(); - sv.bunchCrossing = v->eventId().bunchCrossing(); + sv.eventId = eventId; + sv.bunchCrossing = bunchCrossing; sv.sim_vertex = TrackingVertexRef(tVC, key); sv.OriginalIndex = s; sv.is_LV = is_LV; @@ -278,7 +277,6 @@ std::vector MVATrainingNtuple::getSimPVs( if (!vp) { // this is a new vertex, add it to the list of sim-vertices simpv.push_back(sv); - vp = &simpv.back(); } } // End of for loop on tracking vertices @@ -287,11 +285,6 @@ std::vector MVATrainingNtuple::getSimPVs( if (simpv.empty()) return simpv; - // Calculate distance of vertices from LV of the same eventId and BX - for (unsigned int iev = 0; iev < simpv.size(); iev++) { - simpv.at(iev).LV_distance_z = std::abs(simpv.at(0).z - simpv.at(iev).z); - } - return simpv; } @@ -422,7 +415,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& GNNtree->Branch("gnn_sim_vertex_index", &gnn_sim_vertex_index); GNNtree->Branch("gnn_sim_vertex_z", &gnn_sim_vertex_z); GNNtree->Branch("gnn_sim_vertex_t", &gnn_sim_vertex_t); - GNNtree->Branch("gnn_sim_vertex_LV_dz", &gnn_sim_vertex_LV_dz); GNNtree->Branch("gnn_sim_vertex_isLV", &gnn_sim_vertex_isLV); gnn_pt.clear(); @@ -464,7 +456,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& gnn_sim_vertex_index.clear(); gnn_sim_vertex_z.clear(); gnn_sim_vertex_t.clear(); - gnn_sim_vertex_LV_dz.clear(); gnn_sim_vertex_isLV.clear(); // build TransientTracks @@ -475,7 +466,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& for (std::vector::const_iterator itk = seltks.begin(); itk != seltks.end(); itk++) { reco::TrackBaseRef trackref = (*itk).trackBaseRef(); - + gnn_pt.push_back((*itk).track().pt()); gnn_eta.push_back((*itk).track().eta()); gnn_phi.push_back((*itk).track().phi()); @@ -519,8 +510,10 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& TrackingVertexRef parentVertexRef = (*anytp_info)->parentVertex(); // Loop on TV Collection to retrive info on sim vertices + bool vertex_match = false; for (const auto& vsim : simpv) { if (vsim.sim_vertex == parentVertexRef) { + vertex_match = true; // Found the matching simPrimaryVertex gnn_sim_vertex_z.push_back(vsim.z); gnn_sim_vertex_t.push_back(vsim.t * simUnit_); @@ -528,12 +521,27 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& gnn_sim_vertex_BX.push_back(vsim.bunchCrossing); gnn_sim_vertex_index.push_back(vsim.key); gnn_sim_vertex_isLV.push_back(vsim.is_LV); - gnn_sim_vertex_LV_dz.push_back(vsim.LV_distance_z); } } + if(vertex_match == false){ + gnn_sim_vertex_z.push_back(-999.); + gnn_sim_vertex_t.push_back(-999.); + gnn_sim_vertex_evID.push_back(-999); + gnn_sim_vertex_BX.push_back(-999); + gnn_sim_vertex_index.push_back(-999); + gnn_sim_vertex_isLV.push_back(false); + } }else{ gnn_is_matched_tp.push_back(false); + gnn_tp_tEst.push_back(-999.); + gnn_tp_pdgId.push_back(-999); + gnn_sim_vertex_z.push_back(-999.); + gnn_sim_vertex_t.push_back(-999.); + gnn_sim_vertex_evID.push_back(-999); + gnn_sim_vertex_BX.push_back(-999); + gnn_sim_vertex_index.push_back(-999); + gnn_sim_vertex_isLV.push_back(false); } } // loop on sel tracks @@ -573,6 +581,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& BDTtree->Branch("Track_sigmat0",&Ttrack_sigmat0); BDTtree->Branch("Track_Tmtd",&Ttrack_Tmtd); BDTtree->Branch("Track_MtdMVA",&Ttrack_MtdMVA); + BDTtree->Branch("Track_lHitPos",&Ttrack_lHitPos); BDTtree->Branch("Track_sigmaTmtd",&Ttrack_sigmaTmtd); BDTtree->Branch("Track_lenght",&Ttrack_lenght); BDTtree->Branch("Track_HasTP",&Ttrack_HasTP); @@ -616,6 +625,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_sigmat0.clear(); Ttrack_Tmtd.clear(); Ttrack_MtdMVA.clear(); + Ttrack_lHitPos.clear(); Ttrack_sigmaTmtd.clear(); Ttrack_lenght.clear(); Ttrack_HasTP.clear(); @@ -635,17 +645,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_CluTime2.clear(); - // additional check for PV - reco::Vertex Vtx_chosen; - // ~1% of cases, the 1st vertex is the "good" one, instead of 0th. - for (int iVtx = 0; iVtx < (int)vertices.size(); iVtx++) { - const reco::Vertex& vertex = vertices.at(iVtx); - if (!vertex.isFake() && vertex.ndof() >= 4) { - Vtx_chosen = vertex; - break; - } - } - unsigned int index = 0; for (const auto& trackGen : *tracksH) { const reco::TrackRef trackref(iEvent.getHandle(RecTrackToken_), index); @@ -659,8 +658,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& const reco::TrackRef mtdTrackref = reco::TrackRef(iEvent.getHandle(RecMTDTrackToken_), trackAssoc[trackref]); const reco::Track& track = *mtdTrackref; - double track_vtx_dz_check = std::abs(trackGen.dz(Vtx_chosen.position())); - if(std::abs(trackGen.eta()) < BDT_track_eta_cut && trackGen.pt() > BDT_track_pt_cut && track_vtx_dz_check < BDT_track_dz_cut){ + if(std::abs(trackGen.eta()) < BDT_track_eta_cut && trackGen.pt() > BDT_track_pt_cut){ bool good_association = false; @@ -673,8 +671,8 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_pt.push_back(trackGen.pt()); Ttrack_phi.push_back(trackGen.phi()); Ttrack_eta.push_back(trackGen.eta()); - Ttrack_dz.push_back(std::abs(trackGen.dz(Vtx_chosen.position()))); - Ttrack_dxy.push_back(std::abs(trackGen.dxy(Vtx_chosen.position()))); + Ttrack_dz.push_back(std::abs(trackGen.dz())); + Ttrack_dxy.push_back(std::abs(trackGen.dxy(beamSpot.position()))); Ttrack_chi2.push_back(trackGen.chi2()); Ttrack_ndof.push_back(trackGen.ndof()); Ttrack_nValidHits.push_back(trackGen.numberOfValidHits()); @@ -692,6 +690,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_sigmaTmtd.push_back(sigmatimemtd[trackref]); Ttrack_lenght.push_back(pathLength[trackref]); Ttrack_MtdMVA.push_back(mtdQualMVA[trackref]); + Ttrack_lHitPos.push_back(outermostHitPosition[trackref]); const auto& tp = (found->val)[0]; // almost all tracks have just one TP, a few have 2. (can scan through with "for(const auto& tp : found->val)") @@ -825,7 +824,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& } // Found TP that is matched to the GTrack - } // basic track eta/pT/dz cuts + } // basic track eta/pT cuts } // Loop on reco tracks From 8966f5c66ba30d75e16f68e41eaeae4f3c9d8940 Mon Sep 17 00:00:00 2001 From: kdeleo Date: Tue, 5 Nov 2024 14:03:36 +0100 Subject: [PATCH 012/418] code-checks, code-format --- .../plugins/MVATrainingNtuple.cc | 546 +++++++++--------- 1 file changed, 275 insertions(+), 271 deletions(-) diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc index 1038701103ade..6b8434e491c63 100644 --- a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -20,21 +20,14 @@ #include "TrackingTools/Records/interface/TransientTrackRecord.h" #include "RecoVertex/PrimaryVertexProducer/interface/HITrackFilterForPVFinding.h" - using reco::TrackCollection; class MVATrainingNtuple : public edm::one::EDAnalyzer { - - typedef math::XYZTLorentzVector LorentzVector; + typedef math::XYZTLorentzVector LorentzVector; // auxiliary class holding simulated vertices (originally from Primary4DVertexValidation) struct simPrimaryVertex { - simPrimaryVertex(double x1, double y1, double z1, double t1, int k1) - : x(x1), - y(y1), - z(z1), - t(t1), - key(k1){}; + simPrimaryVertex(double x1, double y1, double z1, double t1, int k1) : x(x1), y(y1), z(z1), t(t1), key(k1){}; double x, y, z, t; int key; int eventId; @@ -42,9 +35,8 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer TrackingVertexRef sim_vertex; int OriginalIndex = -1; bool is_LV; + }; - }; - public: explicit MVATrainingNtuple(const edm::ParameterSet&); ~MVATrainingNtuple() override; @@ -83,14 +75,24 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer const reco::SimToRecoCollection* s2r_; // GNN input variables - std::vector gnn_pt, gnn_eta, gnn_phi, gnn_z_pca, gnn_dz, gnn_t_Pi, gnn_t_K, gnn_t_P, gnn_t0safe, gnn_t0pid, gnn_sigma_t0safe, gnn_mtdTime, gnn_sigma_tmtd, gnn_mva_qual, gnn_btlMatchChi2, gnn_btlMatchTimeChi2, gnn_etlMatchChi2, gnn_etlMatchTimeChi2, gnn_pathLength, gnn_probPi, gnn_probK, gnn_probP, gnn_trk_chi2, gnn_trk_ndof, gnn_sigma_tof_Pi, gnn_sigma_tof_K, gnn_sigma_tof_P, gnn_sim_vertex_z, gnn_sim_vertex_t, gnn_tp_tEst, gnn_outermostHitPosition; - std::vector gnn_npixBarrel, gnn_npixEndcap, gnn_sim_vertex_evID, gnn_sim_vertex_BX, gnn_sim_vertex_index, gnn_tp_pdgId, gnn_trk_validhits; - std::vector gnn_is_matched_tp, gnn_sim_vertex_isLV; + std::vector gnn_pt, gnn_eta, gnn_phi, gnn_z_pca, gnn_dz, gnn_t_Pi, gnn_t_K, gnn_t_P, gnn_t0safe, gnn_t0pid, + gnn_sigma_t0safe, gnn_mtdTime, gnn_sigma_tmtd, gnn_mva_qual, gnn_btlMatchChi2, gnn_btlMatchTimeChi2, + gnn_etlMatchChi2, gnn_etlMatchTimeChi2, gnn_pathLength, gnn_probPi, gnn_probK, gnn_probP, gnn_trk_chi2, + gnn_trk_ndof, gnn_sigma_tof_Pi, gnn_sigma_tof_K, gnn_sigma_tof_P, gnn_sim_vertex_z, gnn_sim_vertex_t, gnn_tp_tEst, + gnn_outermostHitPosition; + std::vector gnn_npixBarrel, gnn_npixEndcap, gnn_sim_vertex_evID, gnn_sim_vertex_BX, gnn_sim_vertex_index, + gnn_tp_pdgId, gnn_trk_validhits; + std::vector gnn_is_matched_tp, gnn_sim_vertex_isLV; // BDT input variables - std::vector Ttrack_pt, Ttrack_eta, Ttrack_phi, Ttrack_dz, Ttrack_dxy, Ttrack_chi2, Ttrack_BTLchi2, Ttrack_BTLtime_chi2, Ttrack_ETLchi2, Ttrack_ETLtime_chi2, Ttrack_t0, Ttrack_sigmat0, Ttrack_Tmtd, Ttrack_sigmaTmtd, Ttrack_lenght, Ttrack_MtdMVA, Ttrack_lHitPos, TtrackTP_pt, TtrackTP_eta, TtrackTP_phi, Ttrack_CluTime1, Ttrack_CluTime2; - std::vector Ttrack_ndof, Ttrack_nValidHits, Ttrack_npixBarrelValidHits, Ttrack_npixEndcapValidHits, TtrackTP_nValidHits, Ttrack_det, Ttrack_subdet, Ttrack_subdetmtd,Ttrack_nSimClust; - std::vector Ttrack_Signal, Ttrack_Associated, Ttrack_HasTP, Ttrack_TPHasSimClu, Ttrack_TPSimCluDirect, Ttrack_hitMTD, Ttrack_hit, Ttrack_hitMatchMTD, Ttrack_hasRecoClu, Ttrack_RecoSimLink, Ttrack_FullMatch; + std::vector Ttrack_pt, Ttrack_eta, Ttrack_phi, Ttrack_dz, Ttrack_dxy, Ttrack_chi2, Ttrack_BTLchi2, + Ttrack_BTLtime_chi2, Ttrack_ETLchi2, Ttrack_ETLtime_chi2, Ttrack_t0, Ttrack_sigmat0, Ttrack_Tmtd, + Ttrack_sigmaTmtd, Ttrack_lenght, Ttrack_MtdMVA, Ttrack_lHitPos, TtrackTP_pt, TtrackTP_eta, TtrackTP_phi, + Ttrack_CluTime1, Ttrack_CluTime2; + std::vector Ttrack_ndof, Ttrack_nValidHits, Ttrack_npixBarrelValidHits, Ttrack_npixEndcapValidHits, + TtrackTP_nValidHits, Ttrack_det, Ttrack_subdet, Ttrack_subdetmtd, Ttrack_nSimClust; + std::vector Ttrack_Signal, Ttrack_Associated, Ttrack_HasTP, Ttrack_TPHasSimClu, Ttrack_TPSimCluDirect, + Ttrack_hitMTD, Ttrack_hit, Ttrack_hitMatchMTD, Ttrack_hasRecoClu, Ttrack_RecoSimLink, Ttrack_FullMatch; edm::EDGetTokenT> btlMatchChi2Token_; edm::EDGetTokenT> btlMatchTimeChi2Token_; @@ -133,23 +135,26 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer edm::EDGetTokenT> probPiToken_; edm::EDGetTokenT> probKToken_; edm::EDGetTokenT> probPToken_; - }; - MVATrainingNtuple::MVATrainingNtuple(const edm::ParameterSet& iConfig) : theTTBToken(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), - fileName_(iConfig.getUntrackedParameter("fileName")){ + fileName_(iConfig.getUntrackedParameter("fileName")) { RecTrackToken_ = consumes(iConfig.getParameter("inputTracks")); RecMTDTrackToken_ = consumes(iConfig.getParameter("inputTagT")); RecVertexToken_ = consumes>(iConfig.getParameter("inputTagV")); - tp2SimAssociationMapToken_ = consumes(iConfig.getParameter("tp2SimAssociationMapTag")); - r2sAssociationMapToken_ = consumes(iConfig.getParameter("r2sAssociationMapTag")); + tp2SimAssociationMapToken_ = + consumes(iConfig.getParameter("tp2SimAssociationMapTag")); + r2sAssociationMapToken_ = consumes( + iConfig.getParameter("r2sAssociationMapTag")); trackAssocToken_ = consumes>(iConfig.getParameter("trackAssocSrc")); RecBeamSpotToken_ = consumes(iConfig.getParameter("offlineBS")); - trackingParticleCollectionToken_ = consumes(iConfig.getParameter("SimTag")); - recoToSimAssociationToken_ = consumes(iConfig.getParameter("TPtoRecoTrackAssoc")); - simToRecoAssociationToken_ = consumes(iConfig.getParameter("TPtoRecoTrackAssoc")); + trackingParticleCollectionToken_ = + consumes(iConfig.getParameter("SimTag")); + recoToSimAssociationToken_ = + consumes(iConfig.getParameter("TPtoRecoTrackAssoc")); + simToRecoAssociationToken_ = + consumes(iConfig.getParameter("TPtoRecoTrackAssoc")); trackingVertexCollectionToken_ = consumes(iConfig.getParameter("SimTag")); btlRecCluToken_ = consumes(iConfig.getParameter("recCluTagBTL")); etlRecCluToken_ = consumes(iConfig.getParameter("recCluTagETL")); @@ -178,7 +183,8 @@ MVATrainingNtuple::MVATrainingNtuple(const edm::ParameterSet& iConfig) etlMatchTimeChi2Token_ = consumes>(iConfig.getParameter("etlMatchTimeChi2Src")); npixBarrelToken_ = consumes>(iConfig.getParameter("npixBarrelSrc")); npixEndcapToken_ = consumes>(iConfig.getParameter("npixEndcapSrc")); - outermostHitPositionToken_ = consumes>(iConfig.getParameter("outermostHitPositionSrc")); + outermostHitPositionToken_ = + consumes>(iConfig.getParameter("outermostHitPositionSrc")); saveNtupleforBDT_ = iConfig.getParameter("ntupleforBDT"); saveNtupleforGNN_ = iConfig.getParameter("ntupleforGNN"); // select and configure the track selection @@ -198,8 +204,7 @@ MVATrainingNtuple::~MVATrainingNtuple() { delete theTrackFilter; } -const edm::Ref>* MVATrainingNtuple::getAnyMatchedTP( - const reco::TrackBaseRef& recoTrack) { +const edm::Ref>* MVATrainingNtuple::getAnyMatchedTP(const reco::TrackBaseRef& recoTrack) { auto found = r2s_->find(recoTrack); // reco track not matched to any TP @@ -232,7 +237,6 @@ bool MVATrainingNtuple::isSameCluster(const FTLCluster& clu1, const FTLCluster& clu1.time() == clu2.time(); } - std::vector MVATrainingNtuple::getSimPVs( const edm::Handle& tVC) { std::vector simpv; @@ -240,23 +244,21 @@ std::vector MVATrainingNtuple::getSimPVs( int current_event = -1; int s = -1; for (TrackingVertexCollection::const_iterator v = tVC->begin(); v != tVC->end(); ++v) { - // LV is the first vertex in each event, keep only at BX=0 int eventId = v->eventId().event(); int bunchCrossing = v->eventId().bunchCrossing(); - if(bunchCrossing != 0) + if (bunchCrossing != 0) continue; bool is_LV = true; - if(eventId != current_event){ + if (eventId != current_event) { current_event = eventId; - }else{ + } else { is_LV = false; } s++; - // could be a new vertex, check all primaries found so far to avoid multiple entries int key = std::distance(tVC->begin(), v); simPrimaryVertex sv(v->position().x(), v->position().y(), v->position().z(), v->position().t(), key); @@ -268,8 +270,8 @@ std::vector MVATrainingNtuple::getSimPVs( simPrimaryVertex* vp = nullptr; // will become non-NULL if a vertex is found and then point to it for (std::vector::iterator v0 = simpv.begin(); v0 != simpv.end(); v0++) { - if ((sv.eventId == v0->eventId) && (sv.bunchCrossing == v0->bunchCrossing) && (std::abs(sv.x - v0->x) < 1e-5) && (std::abs(sv.y - v0->y) < 1e-5) && - (std::abs(sv.z - v0->z) < 1e-5)) { + if ((sv.eventId == v0->eventId) && (sv.bunchCrossing == v0->bunchCrossing) && (std::abs(sv.x - v0->x) < 1e-5) && + (std::abs(sv.y - v0->y) < 1e-5) && (std::abs(sv.z - v0->z) < 1e-5)) { vp = &(*v0); break; } @@ -326,7 +328,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (!TVCollectionH.isValid()) edm::LogWarning("MVATrainingNtuple") << "TVCollectionH is not valid"; - std::vector simpv; + std::vector simpv; simpv = getSimPVs(TVCollectionH); const auto& trackAssoc = iEvent.get(trackAssocToken_); @@ -369,10 +371,8 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& const auto& npixEndcap = iEvent.get(npixEndcapToken_); const auto& outermostHitPosition = iEvent.get(outermostHitPositionToken_); - // Fill TTree with input variables for GNN - if(saveNtupleforGNN_){ - + if (saveNtupleforGNN_) { std::string GNNtreeName = "GNNtree_" + std::to_string(iEvent.id().event()); TTree* GNNtree = fs_->make(GNNtreeName.c_str(), "Tree for GNN tracks"); @@ -463,143 +463,139 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& // track filter std::vector&& seltks = theTrackFilter->select(t_tks); - + for (std::vector::const_iterator itk = seltks.begin(); itk != seltks.end(); itk++) { - reco::TrackBaseRef trackref = (*itk).trackBaseRef(); - - gnn_pt.push_back((*itk).track().pt()); - gnn_eta.push_back((*itk).track().eta()); - gnn_phi.push_back((*itk).track().phi()); - gnn_z_pca.push_back((*itk).track().vz()); - gnn_dz.push_back((*itk).track().dzError()); - gnn_t_Pi.push_back(tMtd[trackref] - tofPi[trackref]); - gnn_t_K.push_back(tMtd[trackref] - tofK[trackref]); - gnn_t_P.push_back(tMtd[trackref] - tofP[trackref]); - gnn_sigma_t0safe.push_back(sigmat0Safe[trackref]); - gnn_sigma_tmtd.push_back(sigmatimemtd[trackref]); - gnn_t0safe.push_back(t0Safe[trackref]); - gnn_t0pid.push_back(t0Pid[trackref]); - gnn_mva_qual.push_back(mtdQualMVA[trackref]); - gnn_btlMatchChi2.push_back(btlMatchChi2[trackref]); - gnn_btlMatchTimeChi2.push_back(btlMatchTimeChi2[trackref]); - gnn_etlMatchChi2.push_back(etlMatchChi2[trackref]); - gnn_etlMatchTimeChi2.push_back(etlMatchTimeChi2[trackref]); - gnn_pathLength.push_back(pathLength[trackref]); - gnn_npixBarrel.push_back(npixBarrel[trackref]); - gnn_npixEndcap.push_back(npixEndcap[trackref]); - gnn_outermostHitPosition.push_back(outermostHitPosition[trackref]); - gnn_mtdTime.push_back(tMtd[trackref]); - gnn_probPi.push_back(probPi[trackref]); - gnn_probK.push_back(probK[trackref]); - gnn_probP.push_back(probP[trackref]); - gnn_sigma_tof_Pi.push_back(sigmatofpi[trackref]); - gnn_sigma_tof_K.push_back(sigmatofk[trackref]); - gnn_sigma_tof_P.push_back(sigmatofp[trackref]); - gnn_trk_chi2.push_back((*itk).track().chi2()); - gnn_trk_ndof.push_back((*itk).track().ndof()); - gnn_trk_validhits.push_back((*itk).track().numberOfValidHits()); - - - auto anytp_info = getAnyMatchedTP(trackref); - if (anytp_info != nullptr) { - gnn_is_matched_tp.push_back(true); - double anytp_mass = (*anytp_info)->mass(); - gnn_tp_tEst.push_back(timeFromTrueMass(anytp_mass, pathLength[trackref], momentum[trackref], tMtd[trackref])); - gnn_tp_pdgId.push_back(std::abs((*anytp_info)->pdgId())); - - TrackingVertexRef parentVertexRef = (*anytp_info)->parentVertex(); - - // Loop on TV Collection to retrive info on sim vertices - bool vertex_match = false; - for (const auto& vsim : simpv) { - if (vsim.sim_vertex == parentVertexRef) { - vertex_match = true; - // Found the matching simPrimaryVertex - gnn_sim_vertex_z.push_back(vsim.z); - gnn_sim_vertex_t.push_back(vsim.t * simUnit_); - gnn_sim_vertex_evID.push_back(vsim.eventId); - gnn_sim_vertex_BX.push_back(vsim.bunchCrossing); - gnn_sim_vertex_index.push_back(vsim.key); - gnn_sim_vertex_isLV.push_back(vsim.is_LV); - } - } - if(vertex_match == false){ - gnn_sim_vertex_z.push_back(-999.); - gnn_sim_vertex_t.push_back(-999.); - gnn_sim_vertex_evID.push_back(-999); - gnn_sim_vertex_BX.push_back(-999); - gnn_sim_vertex_index.push_back(-999); - gnn_sim_vertex_isLV.push_back(false); - } - - }else{ - gnn_is_matched_tp.push_back(false); - gnn_tp_tEst.push_back(-999.); - gnn_tp_pdgId.push_back(-999); - gnn_sim_vertex_z.push_back(-999.); - gnn_sim_vertex_t.push_back(-999.); - gnn_sim_vertex_evID.push_back(-999); - gnn_sim_vertex_BX.push_back(-999); - gnn_sim_vertex_index.push_back(-999); - gnn_sim_vertex_isLV.push_back(false); + reco::TrackBaseRef trackref = (*itk).trackBaseRef(); + + gnn_pt.push_back((*itk).track().pt()); + gnn_eta.push_back((*itk).track().eta()); + gnn_phi.push_back((*itk).track().phi()); + gnn_z_pca.push_back((*itk).track().vz()); + gnn_dz.push_back((*itk).track().dzError()); + gnn_t_Pi.push_back(tMtd[trackref] - tofPi[trackref]); + gnn_t_K.push_back(tMtd[trackref] - tofK[trackref]); + gnn_t_P.push_back(tMtd[trackref] - tofP[trackref]); + gnn_sigma_t0safe.push_back(sigmat0Safe[trackref]); + gnn_sigma_tmtd.push_back(sigmatimemtd[trackref]); + gnn_t0safe.push_back(t0Safe[trackref]); + gnn_t0pid.push_back(t0Pid[trackref]); + gnn_mva_qual.push_back(mtdQualMVA[trackref]); + gnn_btlMatchChi2.push_back(btlMatchChi2[trackref]); + gnn_btlMatchTimeChi2.push_back(btlMatchTimeChi2[trackref]); + gnn_etlMatchChi2.push_back(etlMatchChi2[trackref]); + gnn_etlMatchTimeChi2.push_back(etlMatchTimeChi2[trackref]); + gnn_pathLength.push_back(pathLength[trackref]); + gnn_npixBarrel.push_back(npixBarrel[trackref]); + gnn_npixEndcap.push_back(npixEndcap[trackref]); + gnn_outermostHitPosition.push_back(outermostHitPosition[trackref]); + gnn_mtdTime.push_back(tMtd[trackref]); + gnn_probPi.push_back(probPi[trackref]); + gnn_probK.push_back(probK[trackref]); + gnn_probP.push_back(probP[trackref]); + gnn_sigma_tof_Pi.push_back(sigmatofpi[trackref]); + gnn_sigma_tof_K.push_back(sigmatofk[trackref]); + gnn_sigma_tof_P.push_back(sigmatofp[trackref]); + gnn_trk_chi2.push_back((*itk).track().chi2()); + gnn_trk_ndof.push_back((*itk).track().ndof()); + gnn_trk_validhits.push_back((*itk).track().numberOfValidHits()); + + auto anytp_info = getAnyMatchedTP(trackref); + if (anytp_info != nullptr) { + gnn_is_matched_tp.push_back(true); + double anytp_mass = (*anytp_info)->mass(); + gnn_tp_tEst.push_back(timeFromTrueMass(anytp_mass, pathLength[trackref], momentum[trackref], tMtd[trackref])); + gnn_tp_pdgId.push_back(std::abs((*anytp_info)->pdgId())); + + TrackingVertexRef parentVertexRef = (*anytp_info)->parentVertex(); + + // Loop on TV Collection to retrive info on sim vertices + bool vertex_match = false; + for (const auto& vsim : simpv) { + if (vsim.sim_vertex == parentVertexRef) { + vertex_match = true; + // Found the matching simPrimaryVertex + gnn_sim_vertex_z.push_back(vsim.z); + gnn_sim_vertex_t.push_back(vsim.t * simUnit_); + gnn_sim_vertex_evID.push_back(vsim.eventId); + gnn_sim_vertex_BX.push_back(vsim.bunchCrossing); + gnn_sim_vertex_index.push_back(vsim.key); + gnn_sim_vertex_isLV.push_back(vsim.is_LV); + } + } + if (vertex_match == false) { + gnn_sim_vertex_z.push_back(-999.); + gnn_sim_vertex_t.push_back(-999.); + gnn_sim_vertex_evID.push_back(-999); + gnn_sim_vertex_BX.push_back(-999); + gnn_sim_vertex_index.push_back(-999); + gnn_sim_vertex_isLV.push_back(false); } - } // loop on sel tracks + } else { + gnn_is_matched_tp.push_back(false); + gnn_tp_tEst.push_back(-999.); + gnn_tp_pdgId.push_back(-999); + gnn_sim_vertex_z.push_back(-999.); + gnn_sim_vertex_t.push_back(-999.); + gnn_sim_vertex_evID.push_back(-999); + gnn_sim_vertex_BX.push_back(-999); + gnn_sim_vertex_index.push_back(-999); + gnn_sim_vertex_isLV.push_back(false); + } - GNNtree->Fill(); + } // loop on sel tracks - } // ntuple for GNN + GNNtree->Fill(); + } // ntuple for GNN // Fill TTree with input variables for BDT - if(saveNtupleforBDT_){ - + if (saveNtupleforBDT_) { std::string BDTtreeName = "BDTtree_" + std::to_string(iEvent.id().event()); TTree* BDTtree = fs_->make(BDTtreeName.c_str(), "Tree for BDT tracks"); BDTtree->Branch("Track_pt", &Ttrack_pt); - BDTtree->Branch("Track_eta",&Ttrack_eta); - BDTtree->Branch("Track_phi",&Ttrack_phi); - BDTtree->Branch("Track_dz",&Ttrack_dz); - BDTtree->Branch("Track_dxy",&Ttrack_dxy); - BDTtree->Branch("Track_chi2",&Ttrack_chi2); - BDTtree->Branch("Track_ndof",&Ttrack_ndof); - BDTtree->Branch("Track_nValidHits",&Ttrack_nValidHits); - BDTtree->Branch("TrackTP_pt",&TtrackTP_pt); - BDTtree->Branch("TrackTP_eta",&TtrackTP_eta); - BDTtree->Branch("TrackTP_phi",&TtrackTP_phi); - BDTtree->Branch("TrackTP_nValidHits",&TtrackTP_nValidHits); - BDTtree->Branch("Track_npixBarrelValidHits",&Ttrack_npixBarrelValidHits); - BDTtree->Branch("Track_npixEndcapValidHits",&Ttrack_npixEndcapValidHits); - BDTtree->Branch("Track_Signal",&Ttrack_Signal); - BDTtree->Branch("Track_Associated",&Ttrack_Associated); - BDTtree->Branch("Track_BTLchi2",&Ttrack_BTLchi2); - BDTtree->Branch("Track_BTLtime_chi2",&Ttrack_BTLtime_chi2); - BDTtree->Branch("Track_ETLchi2",&Ttrack_ETLchi2); - BDTtree->Branch("Track_ETLtime_chi2",&Ttrack_ETLtime_chi2); - BDTtree->Branch("Track_t0",&Ttrack_t0); - BDTtree->Branch("Track_sigmat0",&Ttrack_sigmat0); - BDTtree->Branch("Track_Tmtd",&Ttrack_Tmtd); - BDTtree->Branch("Track_MtdMVA",&Ttrack_MtdMVA); - BDTtree->Branch("Track_lHitPos",&Ttrack_lHitPos); - BDTtree->Branch("Track_sigmaTmtd",&Ttrack_sigmaTmtd); - BDTtree->Branch("Track_lenght",&Ttrack_lenght); - BDTtree->Branch("Track_HasTP",&Ttrack_HasTP); - BDTtree->Branch("Track_TPHasSimClu",&Ttrack_TPHasSimClu); - BDTtree->Branch("Track_TPSimCluDirect",&Ttrack_TPSimCluDirect); - BDTtree->Branch("Track_hitMTD",&Ttrack_hitMTD); - BDTtree->Branch("Track_hit",&Ttrack_hit); - BDTtree->Branch("Track_hitMatchMTD",&Ttrack_hitMatchMTD); - BDTtree->Branch("Track_hasRecoClu",&Ttrack_hasRecoClu); - BDTtree->Branch("Track_RecoSimLink",&Ttrack_RecoSimLink); - BDTtree->Branch("Track_FullMatch",&Ttrack_FullMatch); - BDTtree->Branch("Track_det",&Ttrack_det); - BDTtree->Branch("Track_subdet",&Ttrack_subdet); - BDTtree->Branch("Track_subdetmtd",&Ttrack_subdetmtd); - BDTtree->Branch("Track_nSimClust",&Ttrack_nSimClust); - BDTtree->Branch("Track_CluTime1",&Ttrack_CluTime1); - BDTtree->Branch("Track_CluTime2",&Ttrack_CluTime2); - + BDTtree->Branch("Track_eta", &Ttrack_eta); + BDTtree->Branch("Track_phi", &Ttrack_phi); + BDTtree->Branch("Track_dz", &Ttrack_dz); + BDTtree->Branch("Track_dxy", &Ttrack_dxy); + BDTtree->Branch("Track_chi2", &Ttrack_chi2); + BDTtree->Branch("Track_ndof", &Ttrack_ndof); + BDTtree->Branch("Track_nValidHits", &Ttrack_nValidHits); + BDTtree->Branch("TrackTP_pt", &TtrackTP_pt); + BDTtree->Branch("TrackTP_eta", &TtrackTP_eta); + BDTtree->Branch("TrackTP_phi", &TtrackTP_phi); + BDTtree->Branch("TrackTP_nValidHits", &TtrackTP_nValidHits); + BDTtree->Branch("Track_npixBarrelValidHits", &Ttrack_npixBarrelValidHits); + BDTtree->Branch("Track_npixEndcapValidHits", &Ttrack_npixEndcapValidHits); + BDTtree->Branch("Track_Signal", &Ttrack_Signal); + BDTtree->Branch("Track_Associated", &Ttrack_Associated); + BDTtree->Branch("Track_BTLchi2", &Ttrack_BTLchi2); + BDTtree->Branch("Track_BTLtime_chi2", &Ttrack_BTLtime_chi2); + BDTtree->Branch("Track_ETLchi2", &Ttrack_ETLchi2); + BDTtree->Branch("Track_ETLtime_chi2", &Ttrack_ETLtime_chi2); + BDTtree->Branch("Track_t0", &Ttrack_t0); + BDTtree->Branch("Track_sigmat0", &Ttrack_sigmat0); + BDTtree->Branch("Track_Tmtd", &Ttrack_Tmtd); + BDTtree->Branch("Track_MtdMVA", &Ttrack_MtdMVA); + BDTtree->Branch("Track_lHitPos", &Ttrack_lHitPos); + BDTtree->Branch("Track_sigmaTmtd", &Ttrack_sigmaTmtd); + BDTtree->Branch("Track_lenght", &Ttrack_lenght); + BDTtree->Branch("Track_HasTP", &Ttrack_HasTP); + BDTtree->Branch("Track_TPHasSimClu", &Ttrack_TPHasSimClu); + BDTtree->Branch("Track_TPSimCluDirect", &Ttrack_TPSimCluDirect); + BDTtree->Branch("Track_hitMTD", &Ttrack_hitMTD); + BDTtree->Branch("Track_hit", &Ttrack_hit); + BDTtree->Branch("Track_hitMatchMTD", &Ttrack_hitMatchMTD); + BDTtree->Branch("Track_hasRecoClu", &Ttrack_hasRecoClu); + BDTtree->Branch("Track_RecoSimLink", &Ttrack_RecoSimLink); + BDTtree->Branch("Track_FullMatch", &Ttrack_FullMatch); + BDTtree->Branch("Track_det", &Ttrack_det); + BDTtree->Branch("Track_subdet", &Ttrack_subdet); + BDTtree->Branch("Track_subdetmtd", &Ttrack_subdetmtd); + BDTtree->Branch("Track_nSimClust", &Ttrack_nSimClust); + BDTtree->Branch("Track_CluTime1", &Ttrack_CluTime1); + BDTtree->Branch("Track_CluTime2", &Ttrack_CluTime2); Ttrack_pt.clear(); Ttrack_eta.clear(); @@ -636,14 +632,13 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_hitMatchMTD.clear(); Ttrack_hasRecoClu.clear(); Ttrack_RecoSimLink.clear(); - Ttrack_FullMatch.clear(); + Ttrack_FullMatch.clear(); Ttrack_det.clear(); Ttrack_subdet.clear(); Ttrack_subdetmtd.clear(); Ttrack_nSimClust.clear(); Ttrack_CluTime1.clear(); Ttrack_CluTime2.clear(); - unsigned int index = 0; for (const auto& trackGen : *tracksH) { @@ -658,18 +653,16 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& const reco::TrackRef mtdTrackref = reco::TrackRef(iEvent.getHandle(RecMTDTrackToken_), trackAssoc[trackref]); const reco::Track& track = *mtdTrackref; - if(std::abs(trackGen.eta()) < BDT_track_eta_cut && trackGen.pt() > BDT_track_pt_cut){ - + if (std::abs(trackGen.eta()) < BDT_track_eta_cut && trackGen.pt() > BDT_track_pt_cut) { bool good_association = false; const reco::TrackBaseRef trkrefb(trackref); - auto found = r2s_->find(trkrefb); // Find TP! - if (found != r2s_->end()){ - - Ttrack_HasTP.push_back(true); + auto found = r2s_->find(trkrefb); // Find TP! + if (found != r2s_->end()) { + Ttrack_HasTP.push_back(true); - Ttrack_pt.push_back(trackGen.pt()); - Ttrack_phi.push_back(trackGen.phi()); + Ttrack_pt.push_back(trackGen.pt()); + Ttrack_phi.push_back(trackGen.phi()); Ttrack_eta.push_back(trackGen.eta()); Ttrack_dz.push_back(std::abs(trackGen.dz())); Ttrack_dxy.push_back(std::abs(trackGen.dxy(beamSpot.position()))); @@ -692,146 +685,156 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_MtdMVA.push_back(mtdQualMVA[trackref]); Ttrack_lHitPos.push_back(outermostHitPosition[trackref]); - const auto& tp = (found->val)[0]; // almost all tracks have just one TP, a few have 2. (can scan through with "for(const auto& tp : found->val)") + const auto& tp = (found->val) + [0]; // almost all tracks have just one TP, a few have 2. (can scan through with "for(const auto& tp : found->val)") TtrackTP_pt.push_back(tp.first->pt()); TtrackTP_eta.push_back(tp.first->eta()); TtrackTP_phi.push_back(tp.first->phi()); TtrackTP_nValidHits.push_back(tp.first->numberOfHits()); - auto simClustersRefs = tp2SimAssociationMap.find(tp.first); // finds a simClusterReference!! - const bool withMTD = (simClustersRefs != tp2SimAssociationMap.end()); + auto simClustersRefs = tp2SimAssociationMap.find(tp.first); // finds a simClusterReference!! + const bool withMTD = (simClustersRefs != tp2SimAssociationMap.end()); - // 1) Link track RecHit to MTdTrackingRecHit (I know which RecHits, hit MTD) + // 1) Link track RecHit to MTdTrackingRecHit (I know which RecHits, hit MTD) // 2) Get the MTD Reco Cluster from MTDTrackingRecHit info // 3) Find the MTD sim cluster that is linked to MTD reco cluster in the previous step // 4) Check if the MTD sim cluster found in previous step is the same as MTD Sim cluster that is linked to TP. - if (withMTD){ // TP link to MTDsimCluster + if (withMTD) { // TP link to MTDsimCluster // In test file, all TPs had only 1 simCluster linked to them Ttrack_TPHasSimClu.push_back(true); const auto& SimCluRefs = (simClustersRefs->val)[0]; - if((*SimCluRefs).trackIdOffset() == 0){ // SimCluster linked to TP is from DirectHit!!! + if ((*SimCluRefs).trackIdOffset() == 0) { // SimCluster linked to TP is from DirectHit!!! Ttrack_TPSimCluDirect.push_back(true); - for (const auto& hit : track.recHits()) { // Extended track with MTD + for (const auto& hit : track.recHits()) { // Extended track with MTD if (good_association) - continue; // if goodd assoc found, do not go through all the following checks. + continue; // if goodd assoc found, do not go through all the following checks. if (hit->isValid() == false) continue; - Ttrack_hit.push_back(true); + Ttrack_hit.push_back(true); MTDDetId Hit = hit->geographicalId(); Ttrack_det.push_back(Hit.det()); Ttrack_subdet.push_back(Hit.subdetId()); Ttrack_subdetmtd.push_back(Hit.mtdSubDetector()); - if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 1 || Hit.mtdSubDetector() == 2)) { // trackingRecHit is a hit in MTD + if ((Hit.det() == 6) && (Hit.subdetId() == 1) && + (Hit.mtdSubDetector() == 1 || Hit.mtdSubDetector() == 2)) { // trackingRecHit is a hit in MTD Ttrack_hitMTD.push_back(true); - const MTDTrackingRecHit* mtdhit1 = static_cast(hit); // Why I can't I access the mtdcluster info directly from TrackingRecHit? + const MTDTrackingRecHit* mtdhit1 = static_cast( + hit); // Why I can't I access the mtdcluster info directly from TrackingRecHit? const FTLCluster& hit_cluster_check = mtdhit1->mtdCluster(); - - if (abs(track.eta()) < 1.5){ // Should be a BTL cluster - for (const auto& DetSetCluBTL : *btlRecCluHandle) { // BTL check + if (abs(track.eta()) < 1.5) { // Should be a BTL cluster + for (const auto& DetSetCluBTL : *btlRecCluHandle) { // BTL check + if (good_association) + break; + for (const auto& clusterBTL : DetSetCluBTL) { // Scan throguh btl reco clusters to find a match if (good_association) break; - for (const auto& clusterBTL : DetSetCluBTL) { // Scan throguh btl reco clusters to find a match - if (good_association) - break; - if(isSameCluster(hit_cluster_check , clusterBTL)){ // find the reco Cluster inside the recoCluster collections - Ttrack_hasRecoClu.push_back(true); - - edm::Ref, FTLCluster> clusterRefBTL = edmNew::makeRefTo(btlRecCluHandle, &clusterBTL); // get the reference to reco cluster inside the collections - auto itp = r2sAssociationMap.equal_range(clusterRefBTL); // find the linked simCluster - if (itp.first != itp.second) { // find the linked simCluster - std::vector simClustersRefs_RecoMatchBTL = (*itp.first).second; // the range of itp.first, itp.second should be always 1 - Ttrack_RecoSimLink.push_back(true); - - for (unsigned int i = 0; i < simClustersRefs_RecoMatchBTL.size(); i++) { - auto simClusterRef_RecoMatchBTL = simClustersRefs_RecoMatchBTL[i]; - - Ttrack_CluTime1.push_back((*SimCluRefs).simLCTime()); - Ttrack_CluTime2.push_back((*simClusterRef_RecoMatchBTL).simLCTime()); - Ttrack_nSimClust.push_back(i); - - if((*simClusterRef_RecoMatchBTL).simLCTime() == (*SimCluRefs).simLCTime()){ // check if the sim cluster linked to reco cluster is the same as the one linked to TP. - good_association = true; - Ttrack_FullMatch.push_back(true); - break; - } + if (isSameCluster(hit_cluster_check, + clusterBTL)) { // find the reco Cluster inside the recoCluster collections + Ttrack_hasRecoClu.push_back(true); + + edm::Ref, FTLCluster> clusterRefBTL = edmNew::makeRefTo( + btlRecCluHandle, + &clusterBTL); // get the reference to reco cluster inside the collections + auto itp = r2sAssociationMap.equal_range(clusterRefBTL); // find the linked simCluster + if (itp.first != itp.second) { // find the linked simCluster + std::vector simClustersRefs_RecoMatchBTL = + (*itp.first).second; // the range of itp.first, itp.second should be always 1 + Ttrack_RecoSimLink.push_back(true); + + for (unsigned int i = 0; i < simClustersRefs_RecoMatchBTL.size(); i++) { + auto simClusterRef_RecoMatchBTL = simClustersRefs_RecoMatchBTL[i]; + + Ttrack_CluTime1.push_back((*SimCluRefs).simLCTime()); + Ttrack_CluTime2.push_back((*simClusterRef_RecoMatchBTL).simLCTime()); + Ttrack_nSimClust.push_back(i); + + if ((*simClusterRef_RecoMatchBTL).simLCTime() == + (*SimCluRefs) + .simLCTime()) { // check if the sim cluster linked to reco cluster is the same as the one linked to TP. + good_association = true; + Ttrack_FullMatch.push_back(true); + break; } } - }else{ - continue; - } // mtd hit matched to btl reco cluster - } // loop through BTL reco clusters - } // loop thorugh set of BTL reco clusters - }else{ // Should be an ETL cluster - for (const auto& DetSetCluETL : *etlRecCluHandle) { // ETL check + } + } else { + continue; + } // mtd hit matched to btl reco cluster + } // loop through BTL reco clusters + } // loop thorugh set of BTL reco clusters + } else { // Should be an ETL cluster + for (const auto& DetSetCluETL : *etlRecCluHandle) { // ETL check + if (good_association) + break; + for (const auto& clusterETL : DetSetCluETL) { // Scan throguh etl reco clusters to find a match if (good_association) break; - for (const auto& clusterETL : DetSetCluETL) { // Scan throguh etl reco clusters to find a match - if (good_association) - break; - if(isSameCluster(hit_cluster_check , clusterETL)){ - Ttrack_hasRecoClu.push_back(true); - - edm::Ref, FTLCluster> clusterRefETL = edmNew::makeRefTo(etlRecCluHandle, &clusterETL); - auto itp = r2sAssociationMap.equal_range(clusterRefETL); - if (itp.first != itp.second) { - std::vector simClustersRefs_RecoMatchETL = (*itp.first).second; // the range of itp.first, itp.second should be always 1 - Ttrack_RecoSimLink.push_back(true); - - for (unsigned int i = 0; i < simClustersRefs_RecoMatchETL.size(); i++) { - auto simClusterRef_RecoMatchETL = simClustersRefs_RecoMatchETL[i]; - - Ttrack_CluTime1.push_back((*SimCluRefs).simLCTime()); - Ttrack_CluTime2.push_back((*simClusterRef_RecoMatchETL).simLCTime()); - Ttrack_nSimClust.push_back(i); - - if((*simClusterRef_RecoMatchETL).simLCTime() == (*SimCluRefs).simLCTime()){ - good_association = true; - Ttrack_FullMatch.push_back(true); - break; - } + if (isSameCluster(hit_cluster_check, clusterETL)) { + Ttrack_hasRecoClu.push_back(true); + + edm::Ref, FTLCluster> clusterRefETL = + edmNew::makeRefTo(etlRecCluHandle, &clusterETL); + auto itp = r2sAssociationMap.equal_range(clusterRefETL); + if (itp.first != itp.second) { + std::vector simClustersRefs_RecoMatchETL = + (*itp.first).second; // the range of itp.first, itp.second should be always 1 + Ttrack_RecoSimLink.push_back(true); + + for (unsigned int i = 0; i < simClustersRefs_RecoMatchETL.size(); i++) { + auto simClusterRef_RecoMatchETL = simClustersRefs_RecoMatchETL[i]; + + Ttrack_CluTime1.push_back((*SimCluRefs).simLCTime()); + Ttrack_CluTime2.push_back((*simClusterRef_RecoMatchETL).simLCTime()); + Ttrack_nSimClust.push_back(i); + + if ((*simClusterRef_RecoMatchETL).simLCTime() == (*SimCluRefs).simLCTime()) { + good_association = true; + Ttrack_FullMatch.push_back(true); + break; } } - }else{ - continue; - } // mtd hit matched to etl reco cluster - } // loop through ETL reco clusters - } // loop thorugh set of ETL reco clusters - } // BTL/ETL cluster search split - - }else{ // trackingRecHit is a hit in MTD + } + } else { + continue; + } // mtd hit matched to etl reco cluster + } // loop through ETL reco clusters + } // loop thorugh set of ETL reco clusters + } // BTL/ETL cluster search split + + } else { // trackingRecHit is a hit in MTD continue; - } // Hits in MTD - } // Loop through trackHits - } - } // TP link to MTDsimCluster - - if (tp.first->eventId().bunchCrossing() == 0 && tp.first->eventId().event() == 0){ // Signal vs PU seperation - Ttrack_Signal.push_back(true); // Signal track - }else{ - Ttrack_Signal.push_back(false); // PU track? + } // Hits in MTD + } // Loop through trackHits + } + } // TP link to MTDsimCluster + + if (tp.first->eventId().bunchCrossing() == 0 && + tp.first->eventId().event() == 0) { // Signal vs PU seperation + Ttrack_Signal.push_back(true); // Signal track + } else { + Ttrack_Signal.push_back(false); // PU track? } Ttrack_Associated.push_back(good_association); - } // Found TP that is matched to the GTrack + } // Found TP that is matched to the GTrack - } // basic track eta/pT cuts + } // basic track eta/pT cuts - } // Loop on reco tracks + } // Loop on reco tracks BDTtree->Fill(); - - } // ntuple for BDT + } // ntuple for BDT } // ------------ method fills 'descriptions' with the allowed parameters for the module ------------ @@ -845,7 +848,8 @@ void MVATrainingNtuple::fillDescriptions(edm::ConfigurationDescriptions& descrip desc.add("r2sAssociationMapTag", edm::InputTag("mtdRecoClusterToSimLayerClusterAssociation")); desc.add("SimTag", edm::InputTag("mix", "MergedTrackTruth")); desc.add("offlineBS", edm::InputTag("offlineBeamSpot")); - desc.add("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc"))->setComment("Association between General and MTD Extended tracks"); + desc.add("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc")) + ->setComment("Association between General and MTD Extended tracks"); desc.add("recCluTagBTL", edm::InputTag("mtdClusters", "FTLBarrel")); desc.add("recCluTagETL", edm::InputTag("mtdClusters", "FTLEndcap")); desc.add("pathLengthSrc", edm::InputTag("trackExtenderWithMTD:generalTrackPathLength")); @@ -874,8 +878,9 @@ void MVATrainingNtuple::fillDescriptions(edm::ConfigurationDescriptions& descrip desc.add("etlMatchTimeChi2Src", edm::InputTag("trackExtenderWithMTD", "etlMatchTimeChi2")); desc.add("npixBarrelSrc", edm::InputTag("trackExtenderWithMTD", "npixBarrel")); desc.add("npixEndcapSrc", edm::InputTag("trackExtenderWithMTD", "npixEndcap")); - desc.add("outermostHitPositionSrc", edm::InputTag("trackExtenderWithMTD", "generalTrackOutermostHitPosition")); - desc.addUntracked("fileName","file.root"); + desc.add("outermostHitPositionSrc", + edm::InputTag("trackExtenderWithMTD", "generalTrackOutermostHitPosition")); + desc.addUntracked("fileName", "file.root"); desc.add("ntupleforBDT", false); desc.add("ntupleforGNN", true); { @@ -884,8 +889,7 @@ void MVATrainingNtuple::fillDescriptions(edm::ConfigurationDescriptions& descrip desc.add("TkFilterParameters", psd0); } - descriptions.add("mvaTrainingNtuple",desc); - + descriptions.add("mvaTrainingNtuple", desc); } //define this as a plug-in From 90fc0382d615220474ee6809ea7e60d3ed7fd42a Mon Sep 17 00:00:00 2001 From: kdeleo Date: Tue, 5 Nov 2024 14:11:25 +0100 Subject: [PATCH 013/418] remove unused variable --- RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc index 6b8434e491c63..5fcb4a040e86a 100644 --- a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -59,7 +59,6 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer const edm::ESGetToken theTTBToken; TrackFilterForPVFindingBase* theTrackFilter; - static constexpr unsigned int NOT_MATCHED = 66666; static constexpr double simUnit_ = 1e9; //sim time in s while reco time in ns static constexpr double c_ = 2.99792458e1; //c in cm/ns std::string fileName_; From 483079988081c4e36373510e16a0d26ba9b9b416 Mon Sep 17 00:00:00 2001 From: kdeleo Date: Tue, 5 Nov 2024 16:39:56 +0100 Subject: [PATCH 014/418] for BDT: dz wrt beamspot --- RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc index 5fcb4a040e86a..bdffbe97ccaec 100644 --- a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -663,7 +663,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_pt.push_back(trackGen.pt()); Ttrack_phi.push_back(trackGen.phi()); Ttrack_eta.push_back(trackGen.eta()); - Ttrack_dz.push_back(std::abs(trackGen.dz())); + Ttrack_dz.push_back(std::abs(trackGen.dz(beamSpot.position()))); Ttrack_dxy.push_back(std::abs(trackGen.dxy(beamSpot.position()))); Ttrack_chi2.push_back(trackGen.chi2()); Ttrack_ndof.push_back(trackGen.ndof()); From 9050f4c395582ed1151bb72ac1f7d00807343822 Mon Sep 17 00:00:00 2001 From: Wahid Redjeb Date: Mon, 16 Sep 2024 17:17:17 +0200 Subject: [PATCH 015/418] TICLv5.1 : Improve skeleton linking and parameters tuning --- .../hltTiclTracksterLinksUnseeded_cfi.py | 60 ++- .../modules/hltTiclTracksterLinks_cfi.py | 60 ++- RecoHGCal/TICL/plugins/TICLDumper.cc | 18 +- RecoHGCal/TICL/plugins/TICLGraph.cc | 57 ++- RecoHGCal/TICL/plugins/TICLGraph.h | 17 +- .../plugins/TracksterLinkingbySkeletons.cc | 433 ++++++++++++------ .../plugins/TracksterLinkingbySkeletons.h | 54 ++- .../TICL/python/customiseTICLFromReco.py | 4 +- RecoHGCal/TICL/python/iterativeTICL_cff.py | 67 ++- RecoHGCal/TICL/python/ticlDumper_cff.py | 4 +- 10 files changed, 547 insertions(+), 227 deletions(-) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksUnseeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksUnseeded_cfi.py index 4d90a837a4a48..b2130542a506f 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksUnseeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksUnseeded_cfi.py @@ -6,19 +6,53 @@ layer_clustersTime = cms.InputTag("hltHgcalMergeLayerClusters","timeLayerCluster"), inferenceAlgo = cms.string('TracksterInferenceByDNN'), linkingPSet = cms.PSet( - algo_verbosity = cms.int32(0), - cylinder_radius_sqr = cms.vdouble(9, 9), - dot_prod_th = cms.double(0.97), - max_distance_projective_sqr = cms.vdouble(60, 60), - max_distance_projective_sqr_closest_points = cms.vdouble(60, 60), - max_z_distance_closest_points = cms.vdouble(35, 35), - min_distance_z = cms.vdouble(30, 30), - min_num_lcs = cms.uint32(7), - min_trackster_energy = cms.double(10), - pca_quality_th = cms.double(0.85), - track_time_quality_threshold = cms.double(0.5), - type = cms.string('Skeletons'), - wind = cms.double(0.036) + cylinder_radius_sqr_split = cms.double(9), + proj_distance_split = cms.double(5), + track_time_quality_threshold = cms.double(0.5), + wind = cms.double(0.072), + min_num_lcs = cms.uint32(15), + min_trackster_energy = cms.double(20), + pca_quality_th = cms.double(0.85), + dot_prod_th = cms.double(0.97), + deltaRxy = cms.double(4), + lower_boundary = cms.vdouble( + 20, + 10 + ), + upper_boundary = cms.vdouble( + 150, + 100 + ), + upper_distance_projective_sqr = cms.vdouble( + 30, + 60 + ), + lower_distance_projective_sqr = cms.vdouble( + 30, + 30 + ), + min_distance_z = cms.vdouble( + 35, + 35 + ), + upper_distance_projective_sqr_closest_points = cms.vdouble( + 10, + 30 + ), + lower_distance_projective_sqr_closest_points = cms.vdouble( + 10, + 50 + ), + max_z_distance_closest_points = cms.vdouble( + 35, + 35 + ), + cylinder_radius_sqr = cms.vdouble( + 9, + 15 + ), + algo_verbosity = cms.int32(0), + type = cms.string('Skeletons') ), pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( algo_verbosity = cms.int32(0), diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py index 3bf8faa4f4190..2b66f991961ca 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py @@ -6,19 +6,53 @@ layer_clustersTime = cms.InputTag("hltHgcalMergeLayerClusters","timeLayerCluster"), inferenceAlgo = cms.string('TracksterInferenceByDNN'), linkingPSet = cms.PSet( - algo_verbosity = cms.int32(0), - cylinder_radius_sqr = cms.vdouble(9, 9), - dot_prod_th = cms.double(0.97), - max_distance_projective_sqr = cms.vdouble(60, 60), - max_distance_projective_sqr_closest_points = cms.vdouble(60, 60), - max_z_distance_closest_points = cms.vdouble(35, 35), - min_distance_z = cms.vdouble(30, 30), - min_num_lcs = cms.uint32(7), - min_trackster_energy = cms.double(10), - pca_quality_th = cms.double(0.85), - track_time_quality_threshold = cms.double(0.5), - type = cms.string('Skeletons'), - wind = cms.double(0.036) + cylinder_radius_sqr_split = cms.double(9), + proj_distance_split = cms.double(5), + track_time_quality_threshold = cms.double(0.5), + wind = cms.double(0.072), + min_num_lcs = cms.uint32(15), + min_trackster_energy = cms.double(20), + pca_quality_th = cms.double(0.85), + dot_prod_th = cms.double(0.97), + deltaRxy = cms.double(4), + lower_boundary = cms.vdouble( + 20, + 10 + ), + upper_boundary = cms.vdouble( + 150, + 100 + ), + upper_distance_projective_sqr = cms.vdouble( + 30, + 60 + ), + lower_distance_projective_sqr = cms.vdouble( + 30, + 30 + ), + min_distance_z = cms.vdouble( + 35, + 35 + ), + upper_distance_projective_sqr_closest_points = cms.vdouble( + 10, + 30 + ), + lower_distance_projective_sqr_closest_points = cms.vdouble( + 10, + 50 + ), + max_z_distance_closest_points = cms.vdouble( + 35, + 35 + ), + cylinder_radius_sqr = cms.vdouble( + 9, + 15 + ), + algo_verbosity = cms.int32(0), + type = cms.string('Skeletons') ), pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( algo_verbosity = cms.int32(0), diff --git a/RecoHGCal/TICL/plugins/TICLDumper.cc b/RecoHGCal/TICL/plugins/TICLDumper.cc index c40142bf655cd..5a76532f36afe 100644 --- a/RecoHGCal/TICL/plugins/TICLDumper.cc +++ b/RecoHGCal/TICL/plugins/TICLDumper.cc @@ -595,10 +595,10 @@ class TICLDumper : public edm::one::EDAnalyzer> muons_token_; const edm::EDGetTokenT>> clustersTime_token_; const edm::EDGetTokenT> tracksterSeeds_token_; - const edm::EDGetTokenT>> superclustering_linkedResultTracksters_token; - const edm::EDGetTokenT recoSuperClusters_token; - const edm::EDGetTokenT recoSuperClusters_caloClusters_token; - const edm::EDGetTokenT> recoSuperClusters_sourceTracksters_token; + edm::EDGetTokenT>> superclustering_linkedResultTracksters_token; + edm::EDGetTokenT recoSuperClusters_token; + edm::EDGetTokenT recoSuperClusters_caloClusters_token; + edm::EDGetTokenT> recoSuperClusters_sourceTracksters_token; edm::ESGetToken caloGeometry_token_; const edm::EDGetTokenT> simTracksters_SC_token_; // needed for simticlcandidate const edm::EDGetTokenT> simTICLCandidate_token_; @@ -884,6 +884,16 @@ TICLDumper::TICLDumper(const edm::ParameterSet& ps) saveTICLCandidate_(ps.getParameter("saveSimTICLCandidate")), saveSimTICLCandidate_(ps.getParameter("saveSimTICLCandidate")), saveTracks_(ps.getParameter("saveTracks")) { + if (saveSuperclustering_) { + superclustering_linkedResultTracksters_token = + consumes>>(ps.getParameter("superclustering")); + recoSuperClusters_token = + consumes(ps.getParameter("recoSuperClusters")); + recoSuperClusters_caloClusters_token = + consumes(ps.getParameter("recoSuperClusters")); + recoSuperClusters_sourceTracksters_token = consumes>( + ps.getParameter("recoSuperClusters_sourceTracksterCollection")); + } std::string detectorName_ = (detector_ == "HFNose") ? "HGCalHFNoseSensitive" : "HGCalEESensitive"; hdc_token_ = esConsumes(edm::ESInputTag("", detectorName_)); diff --git a/RecoHGCal/TICL/plugins/TICLGraph.cc b/RecoHGCal/TICL/plugins/TICLGraph.cc index f51e7ab086d05..32b5aae61a2aa 100644 --- a/RecoHGCal/TICL/plugins/TICLGraph.cc +++ b/RecoHGCal/TICL/plugins/TICLGraph.cc @@ -17,6 +17,13 @@ namespace ticl { } } // namespace ticl +TICLGraph::TICLGraph(std::vector& nodes) { + nodes_ = nodes; + rootNodes_.reserve(nodes_.size()); + findRootNodes(); + rootNodes_.shrink_to_fit(); +} + std::vector> TICLGraph::findSubComponents() { std::vector> components; for (auto const& node : nodes_) { @@ -29,32 +36,46 @@ std::vector> TICLGraph::findSubComponents() { components.push_back(tmpSubComponents); } } + // Second loop: DFS for non-root nodes that haven't been visited + for (auto const& node : nodes_) { + auto const id = node.getId(); + if (!node.alreadyVisited()) { // Use the alreadyVisited() method + // Node not visited yet, so perform DFS + std::string tabs = "\t"; + std::vector tmpSubComponents; + nodes_[id].findSubComponents(nodes_, tmpSubComponents, tabs); + components.push_back(tmpSubComponents); + } + } return components; } -void TICLGraph::dfsForCC(unsigned int nodeIndex, - std::unordered_set& visited, - std::vector& component) const { - visited.insert(nodeIndex); - component.push_back(nodeIndex); +std::vector> TICLGraph::findSubComponents(std::vector& rootNodes) { + std::vector> components; + for (auto const& node : rootNodes) { + auto const id = node.getId(); + //LogDebug("TICLGraph") << "DFS Starting From " << id << std::endl; + std::string tabs = "\t"; + std::vector tmpSubComponents; + nodes_[id].findSubComponents(nodes_, tmpSubComponents, tabs); + components.push_back(tmpSubComponents); + } + return components; +} - for (auto const& neighbourIndex : nodes_[nodeIndex].getOuterNeighbours()) { - if (visited.find(neighbourIndex) == visited.end()) { - dfsForCC(neighbourIndex, visited, component); +inline void TICLGraph::findRootNodes() { + for (auto const& n : nodes_) { + if (n.getInnerNeighbours().size() == 0) { + rootNodes_.push_back(n); } } } -std::vector> TICLGraph::getConnectedComponents() const { - std::unordered_set visited; - std::vector> components; - - for (unsigned int i = 0; i < nodes_.size(); ++i) { - if (visited.find(i) == visited.end()) { - std::vector component; - dfsForCC(i, visited, component); - components.push_back(component); +bool TICLGraph::isGraphOk() { + for (auto n : nodes_) { + if (n.getInnerNeighbours().size() > 1) { + return false; } } - return components; + return true; } diff --git a/RecoHGCal/TICL/plugins/TICLGraph.h b/RecoHGCal/TICL/plugins/TICLGraph.h index 36e09bb87a384..8787ad11c2496 100644 --- a/RecoHGCal/TICL/plugins/TICLGraph.h +++ b/RecoHGCal/TICL/plugins/TICLGraph.h @@ -24,11 +24,12 @@ namespace ticl { auto findInner = std::find(innerNeighboursId_.begin(), innerNeighboursId_.end(), tid); return findInner != innerNeighboursId_.end(); } + inline bool alreadyVisited() const { return alreadyVisited_; } ~Node() = default; private: - unsigned index_; + unsigned int index_; bool isTrackster_; std::vector outerNeighboursId_; @@ -44,25 +45,23 @@ class TICLGraph { // can i remove default constructor ?? edm::Wrapper problem // without default constructor i could initialize connectedComponents when building the Graph TICLGraph() = default; - TICLGraph(std::vector& n, std::vector isRootNode) { - nodes_ = n; - isRootNode_ = isRootNode; - }; + TICLGraph(std::vector& nodes); inline const std::vector& getNodes() const { return nodes_; } inline const ticl::Node& getNode(int i) const { return nodes_[i]; } + inline std::vector getRootNodes() const { return rootNodes_; } + inline void findRootNodes(); std::vector> findSubComponents(); + std::vector> findSubComponents(std::vector& rootNodes); ~TICLGraph() = default; - void dfsForCC(unsigned int nodeIndex, - std::unordered_set& visited, - std::vector& component) const; - std::vector> getConnectedComponents() const; + bool isGraphOk(); private: std::vector nodes_; + std::vector rootNodes_; std::vector isRootNode_; }; diff --git a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc index 885d66d2f2bf6..90721eca424dd 100644 --- a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc +++ b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc @@ -11,7 +11,7 @@ #include "TICLGraph.h" namespace { - bool isRoundTrackster(std::array const &skeleton) { return (skeleton[0].Z() == skeleton[2].Z()); } + bool isRoundTrackster(std::array skeleton) { return (skeleton[0].Z() == skeleton[2].Z()); } bool isGoodTrackster(const ticl::Trackster &trackster, const std::array &skeleton, @@ -20,9 +20,15 @@ namespace { const float pca_quality_th) { bool isGood = false; - if (isRoundTrackster(skeleton) or trackster.vertices().size() < min_num_lcs or - trackster.raw_energy() < min_trackster_energy) { - isGood = false; + if (isRoundTrackster(skeleton) or trackster.vertices().size() < min_num_lcs) { + if (trackster.raw_energy() > min_trackster_energy) { + auto const &eigenvalues = trackster.eigenvalues(); + auto const sum = std::accumulate(std::begin(eigenvalues), std::end(eigenvalues), 0.f); + float pcaQuality = eigenvalues[0] / sum; + if (pcaQuality > pca_quality_th) { + isGood = true; + } + } } else { auto const &eigenvalues = trackster.eigenvalues(); auto const sum = std::accumulate(std::begin(eigenvalues), std::end(eigenvalues), 0.f); @@ -35,7 +41,7 @@ namespace { } //distance between skeletons - float projective_distance(const ticl::Vector &point1, const ticl::Vector &point2) { + inline float projective_distance(const ticl::Vector &point1, const ticl::Vector &point2) { // squared projective distance float r1 = std::sqrt(point1.x() * point1.x() + point1.y() * point1.y()); float r2_at_z1 = @@ -54,18 +60,26 @@ TracksterLinkingbySkeletons::TracksterLinkingbySkeletons(const edm::ParameterSet edm::ConsumesCollector iC, cms::Ort::ONNXRuntime const *onnxRuntime) : TracksterLinkingAlgoBase(conf, iC), + lower_boundary_(conf.getParameter>("lower_boundary")), + upper_boundary_(conf.getParameter>("upper_boundary")), + upper_distance_projective_sqr_(conf.getParameter>("upper_distance_projective_sqr")), + lower_distance_projective_sqr_(conf.getParameter>("lower_distance_projective_sqr")), + min_distance_z_(conf.getParameter>("min_distance_z")), + upper_distance_projective_sqr_closest_points_( + conf.getParameter>("upper_distance_projective_sqr_closest_points")), + lower_distance_projective_sqr_closest_points_( + conf.getParameter>("lower_distance_projective_sqr_closest_points")), + max_z_distance_closest_points_(conf.getParameter>("max_z_distance_closest_points")), + cylinder_radius_sqr_(conf.getParameter>("cylinder_radius_sqr")), + cylinder_radius_sqr_split_(conf.getParameter("cylinder_radius_sqr_split")), + proj_distance_split_(conf.getParameter("proj_distance_split")), timing_quality_threshold_(conf.getParameter("track_time_quality_threshold")), del_(conf.getParameter("wind")), - min_num_lcs_(conf.getParameter("min_num_lcs")), min_trackster_energy_(conf.getParameter("min_trackster_energy")), pca_quality_th_(conf.getParameter("pca_quality_th")), dot_prod_th_(conf.getParameter("dot_prod_th")), - max_distance_projective_sqr_(conf.getParameter>("max_distance_projective_sqr")), - min_distance_z_(conf.getParameter>("min_distance_z")), - max_distance_projective_sqr_closest_points_( - conf.getParameter>("max_distance_projective_sqr_closest_points")), - max_z_distance_closest_points_(conf.getParameter>("max_z_distance_closest_points")), - cylinder_radius_sqr_(conf.getParameter>("cylinder_radius_sqr")) + deltaRxy_(conf.getParameter("deltaRxy")), + min_num_lcs_(conf.getParameter("min_num_lcs")) {} @@ -105,6 +119,14 @@ void TracksterLinkingbySkeletons::initialize(const HGCalDDDConstants *hgcons, bfield_ = bfieldH; propagator_ = propH; + + //define LUT for eta windows + // eta windows obtained with a deltaR of 4cm at z = 400 cm + for (int i = 0; i < TileConstants::nEtaBins; ++i) { + float eta = TileConstants::minEta + i * (TileConstants::maxEta - TileConstants::minEta) / TileConstants::nEtaBins; + float R = z_surface * 2.f * std::exp(-eta) / (1.f - std::exp(-2.f * eta)); + eta_windows_[i] = abs(atan(deltaRxy_ / R)); + } } std::array TracksterLinkingbySkeletons::findSkeletonNodes( @@ -116,6 +138,14 @@ std::array TracksterLinkingbySkeletons::findSkeletonNodes( auto const &vertices = trackster.vertices(); auto const trackster_raw_energy = trackster.raw_energy(); // sort vertices by layerId + std::array skeleton; + if (trackster.vertices().size() < 3) { + auto v = layerClusters[trackster.vertices()[0]]; + const Vector intersection(v.x(), v.y(), v.z()); + skeleton = {{intersection, intersection, intersection}}; + return skeleton; + } + std::vector sortedVertices(vertices); std::sort(sortedVertices.begin(), sortedVertices.end(), [&layerClusters](unsigned int i, unsigned int j) { return std::abs(layerClusters[i].z()) < std::abs(layerClusters[j].z()); @@ -145,7 +175,6 @@ std::array TracksterLinkingbySkeletons::findSkeletonNodes( foundOuterLayer = true; } } - std::array skeleton; int minimumDistanceInLayers = 4; if (outerLayerId - innerLayerId < minimumDistanceInLayers) { skeleton = {{trackster.barycenter(), trackster.barycenter(), trackster.barycenter()}}; @@ -169,9 +198,9 @@ std::array TracksterLinkingbySkeletons::findSkeletonNodes( return skeleton; } -bool isInCylinder(const std::array &mySkeleton, - const std::array &otherSkeleton, - const float radius_sqr) { +inline bool isInCylinder(const std::array &mySkeleton, + const std::array &otherSkeleton, + const float radius_sqr) { const auto &first = mySkeleton[0]; const auto &last = mySkeleton[2]; const auto &pointToCheck = otherSkeleton[0]; @@ -192,84 +221,97 @@ bool isInCylinder(const std::array &mySkeleton, const auto &distance = pointToCheck - pointOnAxis; auto distance2 = distance.Dot(distance); - + LogDebug("TracksterLinkingbySkeletons") << "is within lenght " << distance2 << " radius " << radius_sqr << std::endl; bool isWithinRadius = distance2 <= radius_sqr; return isWithinRadius; } +inline float computeParameter(float energy, float en_th_low, float cut1, float en_th_high, float cut2) { + if (energy < en_th_low) { + return cut1; + } else if (energy >= en_th_low && energy <= en_th_high) { + return ((cut2 - cut1) / (en_th_high - en_th_low)) * (energy - en_th_low) + cut1; + } else { + return cut2; + } +} + +// function to check if otherTrackster is a splitted component of myTrackster, meaning that otherTrackster is very close to myTrackster and seems to be generated by splitting of 2D layer clusters +inline bool TracksterLinkingbySkeletons::isSplitComponent(const ticl::Trackster &myTrackster, + const ticl::Trackster &otherTrackster, + const std::array &mySkeleton, + const std::array &otherSkeleton, + float proj_distance) { + //check if otherSKeleton z is within the z range of mySkeleton + if (otherSkeleton[1].z() < mySkeleton[2].z() && otherSkeleton[1].z() > mySkeleton[0].z()) { + if (proj_distance < proj_distance_split_) { + return true; + } else { + // check if barycenter of otherTrackster is within the cirlce of 3cm of myTrackster barycenter + //compute XY distance between barycenters + float distance2 = (myTrackster.barycenter().x() - otherTrackster.barycenter().x()) * + (myTrackster.barycenter().x() - otherTrackster.barycenter().x()) + + (myTrackster.barycenter().y() - otherTrackster.barycenter().y()) * + (myTrackster.barycenter().y() - otherTrackster.barycenter().y()); + if (distance2 < cylinder_radius_sqr_split_) { + return true; + } + } + } + return false; +} + bool TracksterLinkingbySkeletons::areCompatible(const ticl::Trackster &myTrackster, const ticl::Trackster &otherTrackster, const std::array &mySkeleton, const std::array &otherSkeleton) { - //do not start links from small/bad tracksters float zVal_interface = rhtools_.getPositionLayer(rhtools_.lastLayerEE()).z(); + if (!isGoodTrackster(myTrackster, mySkeleton, min_num_lcs_, min_trackster_energy_, pca_quality_th_)) { LogDebug("TracksterLinkingbySkeletons") << "Inner Trackster with energy " << myTrackster.raw_energy() << " Num LCs " << myTrackster.vertices().size() << " NOT GOOD " << std::endl; return false; - } else { - LogDebug("TracksterLinkingbySkeletons") << "Inner Trackster wi energy " << myTrackster.raw_energy() << " Num LCs " - << myTrackster.vertices().size() << " IS GOOD " << std::endl; - float proj_distance = projective_distance(mySkeleton[1], otherSkeleton[1]); - auto isEE = mySkeleton[1].z() <= zVal_interface ? 0 : 1; - bool areAlignedInProjectiveSpace = proj_distance < max_distance_projective_sqr_[isEE]; - LogDebug("TracksterLinkingbySkeletons") - << "\t Trying to compare with outer Trackster with energy " << otherTrackster.raw_energy() << " Num LCS " - << otherTrackster.vertices().size() << " Projective distance " << proj_distance << " areAlignedProjective " - << areAlignedInProjectiveSpace << " TH " << max_distance_projective_sqr_[isEE] << std::endl; - //check if otherTrackster is good - if (isGoodTrackster(otherTrackster, otherSkeleton, min_num_lcs_, min_trackster_energy_, pca_quality_th_)) { - // if both tracksters are good, then we can check the projective distance between the barycenters. - // if the barycenters are aligned, then we check that the two skeletons are aligned - if (areAlignedInProjectiveSpace) { - auto dotProdSkeletons = - ((mySkeleton[2] - mySkeleton[0]).Unit()).Dot((otherSkeleton[2] - otherSkeleton[0]).Unit()); - bool alignedSkeletons = dotProdSkeletons > dot_prod_th_; - LogDebug("TracksterLinkingbySkeletons") - << "\t Outer Trackster is Good, checking for skeleton alignment " << alignedSkeletons << " dotProd " - << dotProdSkeletons << " Threshold " << dot_prod_th_ << std::endl; - if (alignedSkeletons) - LogDebug("TracksterLinkingbySkeletons") << "\t\t Linked! " << std::endl; - return alignedSkeletons; - } else { - // we measure the distance between the two closest nodes in the two skeletons - LogDebug("TracksterLinkingbySkeletons") - << "\t Outer Trackster is not aligned, check skeletons distances " << std::endl; - int myClosestPoint = -1; - int otherClosestPoint = -1; - float minDistance_z = std::numeric_limits::max(); - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 3; j++) { - float dist_z = std::abs(mySkeleton[i].Z() - otherSkeleton[j].Z()); - if (dist_z < minDistance_z) { - myClosestPoint = i; - otherClosestPoint = j; - minDistance_z = dist_z; - } - } - } - if (minDistance_z < min_distance_z_[isEE]) { - LogDebug("TracksterLinkingbySkeletons") - << "\t Trackster have distance in Z " << minDistance_z - << "Checking if they are aligned in projective space " - << projective_distance(mySkeleton[myClosestPoint], otherSkeleton[otherClosestPoint]) << " TH " - << max_distance_projective_sqr_[isEE] << std::endl; - if (projective_distance(mySkeleton[myClosestPoint], otherSkeleton[otherClosestPoint]) < - max_distance_projective_sqr_[isEE]) { - LogDebug("TracksterLinkingbySkeletons") << "\t\t Linked! " << std::endl; - } - return projective_distance(mySkeleton[myClosestPoint], otherSkeleton[otherClosestPoint]) < - max_distance_projective_sqr_[isEE]; - } else { - LogDebug("TracksterLinkingbySkeletons") << "\t\t Not Linked Distance Z " << minDistance_z << std::endl; - return false; - } - } + } + + LogDebug("TracksterLinkingbySkeletons") << "Inner Trackster with energy " << myTrackster.raw_energy() << " Num LCs " + << myTrackster.vertices().size() << " IS GOOD " << std::endl; + + float proj_distance = projective_distance(mySkeleton[1], otherSkeleton[1]); + auto isEE = mySkeleton[1].z() <= zVal_interface ? 0 : 1; + auto const max_distance_proj_sqr = computeParameter(myTrackster.raw_energy(), + lower_boundary_[isEE], + lower_distance_projective_sqr_[isEE], + upper_boundary_[isEE], + upper_distance_projective_sqr_[isEE]); + bool areAlignedInProjectiveSpace = proj_distance < max_distance_proj_sqr; + + LogDebug("TracksterLinkingbySkeletons") + << "\t Trying to compare with outer Trackster with energy " << otherTrackster.raw_energy() << " Num LCS " + << otherTrackster.vertices().size() << " Projective distance " << proj_distance << " areAlignedProjective " + << areAlignedInProjectiveSpace << " TH " << max_distance_proj_sqr << std::endl; + + if (isGoodTrackster(otherTrackster, otherSkeleton, min_num_lcs_, min_trackster_energy_, pca_quality_th_)) { + if (areAlignedInProjectiveSpace) { + LogDebug("TracksterLinkingbySkeletons") << "\t\t Linked! " << std::endl; + return true; } else { - LogDebug("TracksterLinkingbySkeletons") - << "\t Outer Trackster is NOT GOOD, check projective space alignment " << areAlignedInProjectiveSpace - << " proj_distance " << max_distance_projective_sqr_[isEE] << std::endl; + //if the tracksters are not aligned in Projective distance, check if otherTrackster is within the cylinder of 3cm radius + //this is used to recover LC splittings + if (isSplitComponent(myTrackster, otherTrackster, mySkeleton, otherSkeleton, proj_distance)) { + LogDebug("TracksterLinkingbySkeletons") << "\t\t Linked! Splitted components!" << std::endl; + return true; + } + //if is EE do not try to link more, PU occupancy is too high in this region + if (isEE) { + return false; + } + //if instead we are in the CE-H part of the detector, we can try to link more + // we measure the distance between the two closest nodes in the two skeletons + return checkClosestPoints(myTrackster, otherTrackster, mySkeleton, otherSkeleton, isEE); + } + } else { + if (otherTrackster.vertices().size() >= 3) { if (areAlignedInProjectiveSpace) { LogDebug("TracksterLinkingbySkeletons") << "\t\t Linked! " << std::endl; return true; @@ -277,44 +319,86 @@ bool TracksterLinkingbySkeletons::areCompatible(const ticl::Trackster &myTrackst LogDebug("TracksterLinkingbySkeletons") << "\t Not aligned in projective space, check distance between closest points in the two skeletons " << std::endl; - // we measure the distance between the two closest nodes in the two skeletons - int myClosestPoint = -1; - int otherClosestPoint = -1; - float minDistance_z = std::numeric_limits::max(); - // we skip the innermost node of mySkeleton - for (int i = 1; i < 3; i++) { - for (int j = 0; j < 3; j++) { - float dist_z = std::abs(mySkeleton[i].Z() - otherSkeleton[j].Z()); - if (dist_z < minDistance_z) { - myClosestPoint = i; - otherClosestPoint = j; - minDistance_z = dist_z; - } - } - } - float d = projective_distance(mySkeleton[myClosestPoint], otherSkeleton[otherClosestPoint]); - LogDebug("TracksterLinkingbySkeletons") - << "\t\t Distance between closest points " << d << " TH " << 10.f << " Z Distance " << minDistance_z - << " TH " << max_distance_projective_sqr_closest_points_[isEE] << std::endl; - if (d < max_distance_projective_sqr_closest_points_[isEE] and - minDistance_z < max_z_distance_closest_points_[isEE]) { - LogDebug("TracksterLinkingbySkeletons") << "\t\t\t Linked! " << d << std::endl; + if (checkClosestPoints(myTrackster, otherTrackster, mySkeleton, otherSkeleton, isEE)) { return true; } else { - LogDebug("TracksterLinkingbySkeletons") << "Distance between closest point " << d << " Distance in z " - << max_z_distance_closest_points_[isEE] << std::endl; - bool isInCyl = isInCylinder(mySkeleton, otherSkeleton, cylinder_radius_sqr_[isEE]); - LogDebug("TracksterLinkingbySkeletons") << "Two Points are in Cylinder " << isInCyl << std::endl; - if (isInCyl) { - LogDebug("TracksterLinkingbySkeletons") << "\t\t\t Linked! " << d << std::endl; - } - return isInCyl; + return checkCylinderAlignment(mySkeleton, otherSkeleton, isEE); } } + } else { + return checkCylinderAlignment(mySkeleton, otherSkeleton, isEE); } } } +bool TracksterLinkingbySkeletons::checkCylinderAlignment(const std::array &mySkeleton, + const std::array &otherSkeleton, + int isEE) { + bool isInCyl = isInCylinder(mySkeleton, otherSkeleton, cylinder_radius_sqr_[isEE]); + if (isInCyl) { + LogDebug("TracksterLinkingbySkeletons") << "Two Points are in Cylinder " << isInCyl << " Linked! " << std::endl; + } + return isInCyl; +} + +bool TracksterLinkingbySkeletons::checkSkeletonAlignment(const ticl::Trackster &myTrackster, + const ticl::Trackster &otherTrackster) { + auto dotProdSkeletons = myTrackster.eigenvectors(0).Dot(otherTrackster.eigenvectors(0)); + bool alignedSkeletons = dotProdSkeletons > dot_prod_th_; + + LogDebug("TracksterLinkingbySkeletons") + << "\t Outer Trackster is Good, checking for skeleton alignment " << alignedSkeletons << " dotProd " + << dotProdSkeletons << " Threshold " << dot_prod_th_ << std::endl; + + if (alignedSkeletons) { + LogDebug("TracksterLinkingbySkeletons") << "\t\t Linked! " << std::endl; + } + + return alignedSkeletons; +} + +bool TracksterLinkingbySkeletons::checkClosestPoints(const ticl::Trackster &myTrackster, + const ticl::Trackster &otherTrackster, + const std::array &mySkeleton, + const std::array &otherSkeleton, + int isEE) { + int myClosestPoint = -1; + int otherClosestPoint = -1; + float minDistance_z = std::numeric_limits::max(); + + for (int i = 1; i < 3; i++) { + for (int j = 0; j < 3; j++) { + float dist_z = std::abs(mySkeleton[i].Z() - otherSkeleton[j].Z()); + if (dist_z < minDistance_z) { + myClosestPoint = i; + otherClosestPoint = j; + minDistance_z = dist_z; + } + } + } + + float d = projective_distance(mySkeleton[myClosestPoint], otherSkeleton[otherClosestPoint]); + auto const max_distance_proj_sqr_closest = computeParameter(myTrackster.raw_energy(), + lower_boundary_[isEE], + lower_distance_projective_sqr_closest_points_[isEE], + upper_boundary_[isEE], + upper_distance_projective_sqr_closest_points_[isEE]); + + LogDebug("TracksterLinkingbySkeletons") + << "\t\t Distance between closest points " << d << " TH " << 10.f << " Z Distance " << minDistance_z << " TH " + << max_distance_proj_sqr_closest << std::endl; + + if (d < max_distance_proj_sqr_closest && minDistance_z < max_z_distance_closest_points_[isEE]) { + LogDebug("TracksterLinkingbySkeletons") << "\t\t\t Linked! " << d << std::endl; + return true; + } + + LogDebug("TracksterLinkingbySkeletons") << "Distance between closest point " << d << " Distance in z " + << max_z_distance_closest_points_[isEE] << std::endl; + + return checkCylinderAlignment(mySkeleton, otherSkeleton, isEE); +} + void TracksterLinkingbySkeletons::linkTracksters( const Inputs &input, std::vector &resultTracksters, @@ -345,7 +429,7 @@ void TracksterLinkingbySkeletons::linkTracksters( std::vector maskReceivedLink(tracksters.size(), 1); std::vector isRootTracksters(tracksters.size(), 1); - std::vector allNodes; + std::vector allNodes; for (size_t it = 0; it < tracksters.size(); ++it) { allNodes.emplace_back(it); } @@ -355,12 +439,14 @@ void TracksterLinkingbySkeletons::linkTracksters( auto const &trackster = tracksters[t_idx]; auto const &skeleton = skeletons[t_idx]; - auto const bary = trackster.barycenter(); - float eta_min = std::max(abs(bary.eta()) - del_, TileConstants::minEta); - float eta_max = std::min(abs(bary.eta()) + del_, TileConstants::maxEta); + auto const &bary = trackster.barycenter(); int tileIndex = bary.eta() > 0.f; const auto &tiles = tracksterTile[tileIndex]; - std::array search_box = tiles.searchBoxEtaPhi(eta_min, eta_max, bary.phi() - del_, bary.phi() + del_); + auto const window = eta_windows_[tiles.etaBin(bary.eta())]; + float eta_min = std::max(abs(bary.eta()) - window, TileConstants::minEta); + float eta_max = std::min(abs(bary.eta()) + window, TileConstants::maxEta); + std::array search_box = tiles.searchBoxEtaPhi(eta_min, eta_max, bary.phi() - window, bary.phi() + window); + if (search_box[2] > search_box[3]) { search_box[3] += TileConstants::nPhiBins; } @@ -371,18 +457,70 @@ void TracksterLinkingbySkeletons::linkTracksters( for (auto n : neighbours) { if (t_idx == n) continue; - if (maskReceivedLink[n] == 0 or allNodes[t_idx].isInnerNeighbour(n)) - continue; - if (isGoodTrackster(trackster, skeleton, min_num_lcs_, min_trackster_energy_, pca_quality_th_)) { - LogDebug("TracksterLinkingbySkeletons") - << "Trying to Link Trackster " << t_idx << " With Trackster " << n << std::endl; - if (areCompatible(trackster, tracksters[n], skeleton, skeletons[n])) { + + auto const &tracksterOut = tracksters[n]; + auto const &skeletonOut = skeletons[n]; + auto const deltaphi = reco::deltaPhi(trackster.barycenter().phi(), tracksterOut.barycenter().phi()); + if (abs(trackster.barycenter().eta() - tracksterOut.barycenter().eta()) <= window && deltaphi <= window) { + bool isInGood = isGoodTrackster(trackster, skeleton, min_num_lcs_, min_trackster_energy_, pca_quality_th_); + bool isOutGood = + isGoodTrackster(tracksterOut, skeletonOut, min_num_lcs_, min_trackster_energy_, pca_quality_th_); + if (isInGood) { LogDebug("TracksterLinkingbySkeletons") - << "\t==== LINK: Trackster " << t_idx << " Linked with Trackster " << n << std::endl; - maskReceivedLink[n] = 0; - allNodes[t_idx].addOuterNeighbour(n); - allNodes[n].addInnerNeighbour(t_idx); - isRootTracksters[n] = 0; + << "Trying to Link Trackster " << t_idx << " With Trackster " << n << std::endl; + if (areCompatible(trackster, tracksters[n], skeleton, skeletonOut)) { + LogDebug("TracksterLinkingbySkeletons") + << "\t==== LINK: Trackster " << t_idx << " Linked with Trackster " << n << std::endl; + // maskReceivedLink[n] = 0; + if (isOutGood) { + if (abs(skeleton[0].z()) < abs(skeletonOut[0].z())) { + LogDebug("TracksterLinkingbySkeletons") << "Trackster in energy " << trackster.raw_energy() + << " Out is good " << tracksterOut.raw_energy() << " Sk In " + << skeleton[0] << " Sk out " << skeletonOut[0] << std::endl; + LogDebug("TracksterLinkingbySkeletons") << "\t " << t_idx << " --> " << n << std::endl; + allNodes[t_idx].addOuterNeighbour(n); + allNodes[n].addInnerNeighbour(t_idx); + isRootTracksters[n] = 0; + } else if (abs(skeleton[0].z()) > abs(skeletonOut[0].z())) { + LogDebug("TracksterLinkingbySkeletons") << "Trackster in energy " << trackster.raw_energy() + << " Out is good " << tracksterOut.raw_energy() << " Sk In " + << skeleton[0] << " Sk out " << skeletonOut[0] << std::endl; + LogDebug("TracksterLinkingbySkeletons") << "\t " << n << " --> " << t_idx << std::endl; + allNodes[n].addOuterNeighbour(t_idx); + allNodes[t_idx].addInnerNeighbour(n); + isRootTracksters[t_idx] = 0; + } else { + if (trackster.raw_energy() >= tracksterOut.raw_energy()) { + LogDebug("TracksterLinkingbySkeletons") + << "Trackster in energy " << trackster.raw_energy() << " Out is good " + << tracksterOut.raw_energy() << " Sk In " << skeleton[0] << " Sk out " << skeletonOut[0] + << std::endl; + LogDebug("TracksterLinkingbySkeletons") << "\t " << t_idx << " --> " << n << std::endl; + allNodes[t_idx].addOuterNeighbour(n); + allNodes[n].addInnerNeighbour(t_idx); + isRootTracksters[n] = 0; + } else { + LogDebug("TracksterLinkingbySkeletons") + << "Trackster in energy " << trackster.raw_energy() << " Out is good " + << tracksterOut.raw_energy() << " Sk In " << skeleton[0] << " Sk out " << skeletonOut[0] + << std::endl; + LogDebug("TracksterLinkingbySkeletons") << "\t " << n << " --> " << t_idx << std::endl; + allNodes[n].addOuterNeighbour(t_idx); + allNodes[t_idx].addInnerNeighbour(n); + isRootTracksters[t_idx] = 0; + } + } + } else { + LogDebug("TracksterLinkingbySkeletons") + << "Trackster in energy " << trackster.raw_energy() << " Out is NOT good " + << tracksterOut.raw_energy() << " Sk In " << skeleton[0] << " Sk out " << skeletonOut[0] + << std::endl; + LogDebug("TracksterLinkingbySkeletons") << "\t " << t_idx << " --> " << n << std::endl; + allNodes[t_idx].addOuterNeighbour(n); + allNodes[n].addInnerNeighbour(t_idx); + isRootTracksters[n] = 0; + } + } } } } @@ -391,31 +529,43 @@ void TracksterLinkingbySkeletons::linkTracksters( } LogDebug("TracksterLinkingbySkeletons") << "**************** FINAL GRAPH **********************" << std::endl; - for (auto const &node : allNodes) { - if (isRootTracksters[node.getId()]) { - LogDebug("TracksterLinkingbySkeletons") - << "ISROOT " - << " Node " << node.getId() << " position " << tracksters[node.getId()].barycenter() << " energy " - << tracksters[node.getId()].raw_energy() << std::endl; - } else { - LogDebug("TracksterLinkingbySkeletons") - << "Node " << node.getId() << " position " << tracksters[node.getId()].barycenter() << " energy " - << tracksters[node.getId()].raw_energy() << std::endl; - } - } + // for (auto const &node : allNodes) { + // if (isRootTracksters[node.getId()]) { + // LogDebug("TracksterLinkingbySkeletons") + // << "ISROOT " + // << " Node " << node.getId() << " position " << tracksters[node.getId()].barycenter() << " energy " + // << tracksters[node.getId()].raw_energy() << std::endl; + // } else { + // LogDebug("TracksterLinkingbySkeletons") + // << "Node " << node.getId() << " position " << tracksters[node.getId()].barycenter() << " energy " + // << tracksters[node.getId()].raw_energy() << std::endl; + // } + // } LogDebug("TracksterLinkingbySkeletons") << "********************************************************" << std::endl; + TICLGraph graph(allNodes); + auto sortedRootNodes = graph.getRootNodes(); + std::sort(sortedRootNodes.begin(), sortedRootNodes.end(), [&tracksters](const ticl::Node &n1, const ticl::Node &n2) { + unsigned int n1Id = n1.getId(); + unsigned int n2Id = n2.getId(); + return tracksters[n1Id].raw_energy() > tracksters[n2Id].raw_energy(); + }); + // for(auto const& n : sortedRootNodes) { + // if(n.getOuterNeighbours().size() > 0){ + // LogDebug("TracksterLinkingbySkeletons") << "Sorted " << n.getId() << " " << tracksters[n.getId()].raw_energy() << std::endl; + // } + // } - TICLGraph graph(allNodes, isRootTracksters); + //assert(graph.isGraphOk() == true && "Graph is not ok"); int ic = 0; - auto const &components = graph.findSubComponents(); + auto const &components = graph.findSubComponents(sortedRootNodes); linkedTracksterIdToInputTracksterId.resize(components.size()); for (auto const &comp : components) { LogDebug("TracksterLinkingbySkeletons") << "Component " << ic << " Node: "; std::vector linkedTracksters; Trackster outTrackster; if (comp.size() == 1) { - if (input.tracksters[comp[0]].vertices().size() <= 3) { + if (input.tracksters[comp[0]].vertices().size() <= 3 && input.tracksters[comp[0]].raw_energy() < 5.f) { continue; } } @@ -425,9 +575,12 @@ void TracksterLinkingbySkeletons::linkTracksters( outTrackster.mergeTracksters(input.tracksters[node]); } linkedTracksters.push_back(resultTracksters.size()); + LogDebug("TracksterLinkingbySkeletons") << "\nOut Trackster " << outTrackster.raw_energy() << std::endl; resultTracksters.push_back(outTrackster); linkedResultTracksters.push_back(linkedTracksters); LogDebug("TracksterLinkingbySkeletons") << "\n"; ++ic; } + LogDebug("TracksterLinkingbySkeletons") << "\n"; + } // linkTracksters diff --git a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.h b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.h index 600d86f9ada21..515325818e7f6 100644 --- a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.h +++ b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.h @@ -45,23 +45,47 @@ namespace ticl { const std::array& mySkeleton, const std::array& otherSkeleton); + bool checkCylinderAlignment(const std::array& mySkeleton, + const std::array& otherSkeleton, + int isEE); + bool checkSkeletonAlignment(const ticl::Trackster& myTrackster, const ticl::Trackster& otherTrackster); + + bool checkClosestPoints(const ticl::Trackster& myTrackster, + const ticl::Trackster& otherTrackster, + const std::array& mySkeleton, + const std::array& otherSkeleton, + int isEE); + bool isSplitComponent(const ticl::Trackster& myTrackster, + const ticl::Trackster& otherTrackster, + const std::array& mySkeleton, + const std::array& otherSkeleton, + float proj_distance); + void initialize(const HGCalDDDConstants* hgcons, const hgcal::RecHitTools rhtools, const edm::ESHandle bfieldH, const edm::ESHandle propH) override; static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("cylinder_radius_sqr_split", 9.); + iDesc.add("proj_distance_split", 5.); iDesc.add("track_time_quality_threshold", 0.5); iDesc.add("wind", 0.036); iDesc.add("min_num_lcs", 7); iDesc.add("min_trackster_energy", 10.); iDesc.add("pca_quality_th", 0.85); iDesc.add("dot_prod_th", 0.97); - iDesc.add>("max_distance_projective_sqr", {60., 60.}); - iDesc.add>("min_distance_z", {30., 30.}); - iDesc.add>("max_distance_projective_sqr_closest_points", {60., 60.}); + iDesc.add("deltaRxy", 4.f); + iDesc.add>("lower_boundary", {10., 150.}); + iDesc.add>("upper_boundary", {3, 70.}); + iDesc.add>("upper_distance_projective_sqr", {40., 60.}); + iDesc.add>("lower_distance_projective_sqr", {10., 30.}); + iDesc.add>("min_distance_z", {35., 35.}); + iDesc.add>("upper_distance_projective_sqr_closest_points", {10., 30.}); + iDesc.add>("lower_distance_projective_sqr_closest_points", {10., 30.}); iDesc.add>("max_z_distance_closest_points", {35., 35.}); - iDesc.add>("cylinder_radius_sqr", {9., 9.}); + iDesc.add>("cylinder_radius_sqr", {10, 20}); + TracksterLinkingAlgoBase::fillPSetDescription(iDesc); } @@ -72,17 +96,26 @@ namespace ticl { void dumpLinksFound(std::vector>& resultCollection, const char* label) const; + static constexpr float z_surface = 400.f; + std::vector lower_boundary_; + std::vector upper_boundary_; + std::vector upper_distance_projective_sqr_; + std::vector lower_distance_projective_sqr_; + std::vector min_distance_z_; + std::vector upper_distance_projective_sqr_closest_points_; + std::vector lower_distance_projective_sqr_closest_points_; + std::vector max_z_distance_closest_points_; + std::vector cylinder_radius_sqr_; + + float cylinder_radius_sqr_split_; + float proj_distance_split_; float timing_quality_threshold_; float del_; - unsigned int min_num_lcs_; float min_trackster_energy_; float pca_quality_th_; float dot_prod_th_; - std::vector max_distance_projective_sqr_; - std::vector min_distance_z_; - std::vector max_distance_projective_sqr_closest_points_; - std::vector max_z_distance_closest_points_; - std::vector cylinder_radius_sqr_; + float deltaRxy_; + unsigned int min_num_lcs_; const HGCalDDDConstants* hgcons_; @@ -93,6 +126,7 @@ namespace ticl { edm::ESHandle bfield_; edm::ESHandle propagator_; + std::array eta_windows_; }; } // namespace ticl diff --git a/RecoHGCal/TICL/python/customiseTICLFromReco.py b/RecoHGCal/TICL/python/customiseTICLFromReco.py index c22dea5fc9738..90679d67a8675 100644 --- a/RecoHGCal/TICL/python/customiseTICLFromReco.py +++ b/RecoHGCal/TICL/python/customiseTICLFromReco.py @@ -65,12 +65,12 @@ def customiseTICLFromReco(process): return process -def customiseTICLForDumper(process): +def customiseTICLForDumper(process, histoName="histo.root"): process.ticlDumper = ticlDumper.clone() process.TFileService = cms.Service("TFileService", - fileName=cms.string("histo.root") + fileName=cms.string(histoName) ) process.FEVTDEBUGHLToutput_step = cms.EndPath( process.FEVTDEBUGHLToutput + process.ticlDumper) diff --git a/RecoHGCal/TICL/python/iterativeTICL_cff.py b/RecoHGCal/TICL/python/iterativeTICL_cff.py index aa43df36379a2..2e4353fc96cf9 100644 --- a/RecoHGCal/TICL/python/iterativeTICL_cff.py +++ b/RecoHGCal/TICL/python/iterativeTICL_cff.py @@ -35,24 +35,57 @@ 'ticlTrackstersCLUE3DHigh', 'ticlTrackstersRecovery' ), - regressionAndPid = cms.bool(True), - inferenceAlgo = cms.string('TracksterInferenceByDNN'), - pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( - algo_verbosity = cms.int32(0), - doPID = cms.int32(1), - doRegression = cms.int32(1), - inputNames = cms.vstring('input'), - output_en = cms.vstring('enreg_output'), - output_id = cms.vstring('pid_output'), - eid_min_cluster_energy = cms.double(1), - eid_n_clusters = cms.int32(10), - eid_n_layers = cms.int32(50), - onnxEnergyModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/linking/energy_v0.onnx'), - onnxPIDModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/linking/id_v0.onnx'), - type = cms.string('TracksterInferenceByDNN') - ) + linkingPSet = cms.PSet( + track_time_quality_threshold = cms.double(0.5), + wind = cms.double(0.072), + min_num_lcs = cms.uint32(15), + min_trackster_energy = cms.double(20), + pca_quality_th = cms.double(0.85), + dot_prod_th = cms.double(0.97), + lower_boundary = cms.vdouble( + 20, + 10 + ), + upper_boundary = cms.vdouble( + 150, + 100 + ), + upper_distance_projective_sqr = cms.vdouble( + 30, + 60 + ), + lower_distance_projective_sqr = cms.vdouble( + 30, + 60 + ), + min_distance_z = cms.vdouble( + 35, + 35 + ), + upper_distance_projective_sqr_closest_points = cms.vdouble( + 5, + 30 + ), + lower_distance_projective_sqr_closest_points = cms.vdouble( + 10, + 50 + ), + max_z_distance_closest_points = cms.vdouble( + 35, + 35 + ), + cylinder_radius_sqr = cms.vdouble( + 9, + 15 + ), + deltaRxy = cms.double(4.), + algo_verbosity = cms.int32(0), + type = cms.string('Skeletons') + + ), + + regressionAndPid = cms.bool(True) ) - ticlCandidate = _ticlCandidateProducer.clone() mtdSoA = _mtdSoAProducer.clone() diff --git a/RecoHGCal/TICL/python/ticlDumper_cff.py b/RecoHGCal/TICL/python/ticlDumper_cff.py index e50ac07a1f799..32b876f7099e1 100644 --- a/RecoHGCal/TICL/python/ticlDumper_cff.py +++ b/RecoHGCal/TICL/python/ticlDumper_cff.py @@ -40,10 +40,12 @@ ), ], - associators=dumperAssociators.copy() + associators=dumperAssociators.copy(), + saveSuperclustering = cms.bool(False) ) ticl_v5.toModify(ticlDumper, ticlcandidates = cms.InputTag("ticlCandidate"), recoSuperClusters_sourceTracksterCollection=cms.InputTag("ticlCandidate")) +ticl_v5.toModify(ticlDumper, saveSuperclustering = cms.bool(True)) From 727d7bf61e5efe76445a14b79962f9d1c037047f Mon Sep 17 00:00:00 2001 From: Wahid Redjeb Date: Wed, 6 Nov 2024 11:51:12 +0100 Subject: [PATCH 016/418] fix HLT configuration for Skeleton Linking, remove Unseeded label --- .../hltTiclTracksterLinksL1Seeded_cfi.py | 61 +++++++++++---- .../hltTiclTracksterLinksUnseeded_cfi.py | 78 ------------------- .../modules/hltTiclTracksterLinks_cfi.py | 5 +- ...ClusteringForEgammaUnseededSequence_cfi.py | 6 +- .../plugins/TracksterLinkingbySkeletons.cc | 1 - .../plugins/TracksterLinkingbySkeletons.h | 2 - RecoHGCal/TICL/python/iterativeTICL_cff.py | 21 ++++- 7 files changed, 70 insertions(+), 104 deletions(-) delete mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksUnseeded_cfi.py diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksL1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksL1Seeded_cfi.py index d4b4940ea7f05..a5c9f73b188d9 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksL1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksL1Seeded_cfi.py @@ -6,19 +6,52 @@ layer_clustersTime = cms.InputTag("hltHgcalMergeLayerClustersL1Seeded","timeLayerCluster"), inferenceAlgo = cms.string('TracksterInferenceByDNN'), linkingPSet = cms.PSet( - algo_verbosity = cms.int32(0), - cylinder_radius_sqr = cms.vdouble(9, 9), - dot_prod_th = cms.double(0.97), - max_distance_projective_sqr = cms.vdouble(60, 60), - max_distance_projective_sqr_closest_points = cms.vdouble(60, 60), - max_z_distance_closest_points = cms.vdouble(35, 35), - min_distance_z = cms.vdouble(30, 30), - min_num_lcs = cms.uint32(7), - min_trackster_energy = cms.double(10), - pca_quality_th = cms.double(0.85), - track_time_quality_threshold = cms.double(0.5), - type = cms.string('Skeletons'), - wind = cms.double(0.036) + cylinder_radius_sqr_split = cms.double(9), + proj_distance_split = cms.double(5), + track_time_quality_threshold = cms.double(0.5), + min_num_lcs = cms.uint32(15), + min_trackster_energy = cms.double(20), + pca_quality_th = cms.double(0.85), + dot_prod_th = cms.double(0.97), + deltaRxy = cms.double(4), + lower_boundary = cms.vdouble( + 20, + 10 + ), + upper_boundary = cms.vdouble( + 150, + 100 + ), + upper_distance_projective_sqr = cms.vdouble( + 30, + 60 + ), + lower_distance_projective_sqr = cms.vdouble( + 30, + 60 + ), + min_distance_z = cms.vdouble( + 35, + 35 + ), + upper_distance_projective_sqr_closest_points = cms.vdouble( + 5, + 30 + ), + lower_distance_projective_sqr_closest_points = cms.vdouble( + 10, + 50 + ), + max_z_distance_closest_points = cms.vdouble( + 35, + 35 + ), + cylinder_radius_sqr = cms.vdouble( + 9, + 15 + ), + algo_verbosity = cms.int32(0), + type = cms.string('Skeletons') ), pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( algo_verbosity = cms.int32(0), @@ -38,7 +71,7 @@ original_masks = cms.VInputTag("hltHgcalMergeLayerClustersL1Seeded:InitialLayerClustersMask"), propagator = cms.string('PropagatorWithMaterial'), regressionAndPid = cms.bool(True), - tracksters_collections = cms.VInputTag("hltTiclTrackstersCLUE3DHighL1Seeded", "hltTiclTrackstersPassthrough") + tracksters_collections = cms.VInputTag("hltTiclTrackstersCLUE3DHighL1Seeded", "hltTiclTrackstersRecoveryL1Seeded") ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksUnseeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksUnseeded_cfi.py deleted file mode 100644 index b2130542a506f..0000000000000 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksUnseeded_cfi.py +++ /dev/null @@ -1,78 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -hltTiclTracksterLinksUnseeded = cms.EDProducer("TracksterLinksProducer", - detector = cms.string('HGCAL'), - layer_clusters = cms.InputTag("hltHgcalMergeLayerClusters"), - layer_clustersTime = cms.InputTag("hltHgcalMergeLayerClusters","timeLayerCluster"), - inferenceAlgo = cms.string('TracksterInferenceByDNN'), - linkingPSet = cms.PSet( - cylinder_radius_sqr_split = cms.double(9), - proj_distance_split = cms.double(5), - track_time_quality_threshold = cms.double(0.5), - wind = cms.double(0.072), - min_num_lcs = cms.uint32(15), - min_trackster_energy = cms.double(20), - pca_quality_th = cms.double(0.85), - dot_prod_th = cms.double(0.97), - deltaRxy = cms.double(4), - lower_boundary = cms.vdouble( - 20, - 10 - ), - upper_boundary = cms.vdouble( - 150, - 100 - ), - upper_distance_projective_sqr = cms.vdouble( - 30, - 60 - ), - lower_distance_projective_sqr = cms.vdouble( - 30, - 30 - ), - min_distance_z = cms.vdouble( - 35, - 35 - ), - upper_distance_projective_sqr_closest_points = cms.vdouble( - 10, - 30 - ), - lower_distance_projective_sqr_closest_points = cms.vdouble( - 10, - 50 - ), - max_z_distance_closest_points = cms.vdouble( - 35, - 35 - ), - cylinder_radius_sqr = cms.vdouble( - 9, - 15 - ), - algo_verbosity = cms.int32(0), - type = cms.string('Skeletons') - ), - pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( - algo_verbosity = cms.int32(0), - onnxPIDModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/linking/id_v0.onnx'), - onnxEnergyModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/linking/energy_v0.onnx'), - inputNames = cms.vstring('input'), - output_en = cms.vstring('enreg_output'), - output_id = cms.vstring('pid_output'), - eid_min_cluster_energy = cms.double(1), - eid_n_layers = cms.int32(50), - eid_n_clusters = cms.int32(10), - doPID = cms.int32(1), - doRegression = cms.int32(1), - type = cms.string('TracksterInferenceByDNN') - ), - mightGet = cms.optional.untracked.vstring, - original_masks = cms.VInputTag("hltHgcalMergeLayerClusters:InitialLayerClustersMask"), - propagator = cms.string('PropagatorWithMaterial'), - regressionAndPid = cms.bool(True), - tracksters_collections = cms.VInputTag("hltTiclTrackstersCLUE3DHigh", "hltTiclTrackstersPassthrough") -) - - diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py index 2b66f991961ca..641244a3d24ef 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py @@ -9,7 +9,6 @@ cylinder_radius_sqr_split = cms.double(9), proj_distance_split = cms.double(5), track_time_quality_threshold = cms.double(0.5), - wind = cms.double(0.072), min_num_lcs = cms.uint32(15), min_trackster_energy = cms.double(20), pca_quality_th = cms.double(0.85), @@ -29,14 +28,14 @@ ), lower_distance_projective_sqr = cms.vdouble( 30, - 30 + 60 ), min_distance_z = cms.vdouble( 35, 35 ), upper_distance_projective_sqr_closest_points = cms.vdouble( - 10, + 5, 30 ), lower_distance_projective_sqr_closest_points = cms.vdouble( diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHgcalTiclPFClusteringForEgammaUnseededSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHgcalTiclPFClusteringForEgammaUnseededSequence_cfi.py index f79c08e8721e9..d07102952c60c 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHgcalTiclPFClusteringForEgammaUnseededSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHgcalTiclPFClusteringForEgammaUnseededSequence_cfi.py @@ -18,7 +18,7 @@ from ..modules.hltHgcalSoARecHitsLayerClustersProducer_cfi import * from ..modules.hltHgcalSoALayerClustersProducer_cfi import * from ..modules.hltHgcalLayerClustersFromSoAProducer_cfi import * -from ..modules.hltTiclTracksterLinksUnseeded_cfi import * +from ..modules.hltTiclTracksterLinks_cfi import * _HgcalLocalRecoUnseededSequence = cms.Sequence(hltHgcalDigis+hltHGCalUncalibRecHit+hltHGCalRecHit+hltParticleFlowRecHitHGC+hltHgcalLayerClustersEE+hltHgcalLayerClustersHSci+hltHgcalLayerClustersHSi+hltHgcalMergeLayerClusters) _HgcalTICLPatternRecognitionUnseededSequence = cms.Sequence(hltFilteredLayerClustersCLUE3DHigh+hltTiclSeedingGlobal+hltTiclLayerTileProducer+hltTiclTrackstersCLUE3DHigh) @@ -49,7 +49,7 @@ ) # Use EGammaSuperClusterProducer at HLT in ticl v5 -hltTiclTracksterLinksSuperclusteringDNNUnseeded = hltTiclTracksterLinksUnseeded.clone( +hltTiclTracksterLinksSuperclusteringDNNUnseeded = hltTiclTracksterLinks.clone( linkingPSet = cms.PSet( type=cms.string("SuperClusteringDNN"), algo_verbosity=cms.int32(0), @@ -59,7 +59,7 @@ tracksters_collections = [cms.InputTag("hltTiclTrackstersCLUE3DHigh")], # to be changed to ticlTrackstersCLUE3DEM once separate CLUE3D iterations are introduced ) -hltTiclTracksterLinksSuperclusteringMustacheUnseeded = hltTiclTracksterLinksUnseeded.clone( +hltTiclTracksterLinksSuperclusteringMustacheUnseeded = hltTiclTracksterLinks.clone( linkingPSet = cms.PSet( type=cms.string("SuperClusteringMustache"), algo_verbosity=cms.int32(0) diff --git a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc index 90721eca424dd..1130e1a83a4c7 100644 --- a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc +++ b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc @@ -74,7 +74,6 @@ TracksterLinkingbySkeletons::TracksterLinkingbySkeletons(const edm::ParameterSet cylinder_radius_sqr_split_(conf.getParameter("cylinder_radius_sqr_split")), proj_distance_split_(conf.getParameter("proj_distance_split")), timing_quality_threshold_(conf.getParameter("track_time_quality_threshold")), - del_(conf.getParameter("wind")), min_trackster_energy_(conf.getParameter("min_trackster_energy")), pca_quality_th_(conf.getParameter("pca_quality_th")), dot_prod_th_(conf.getParameter("dot_prod_th")), diff --git a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.h b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.h index 515325818e7f6..6a09f7297d611 100644 --- a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.h +++ b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.h @@ -70,7 +70,6 @@ namespace ticl { iDesc.add("cylinder_radius_sqr_split", 9.); iDesc.add("proj_distance_split", 5.); iDesc.add("track_time_quality_threshold", 0.5); - iDesc.add("wind", 0.036); iDesc.add("min_num_lcs", 7); iDesc.add("min_trackster_energy", 10.); iDesc.add("pca_quality_th", 0.85); @@ -110,7 +109,6 @@ namespace ticl { float cylinder_radius_sqr_split_; float proj_distance_split_; float timing_quality_threshold_; - float del_; float min_trackster_energy_; float pca_quality_th_; float dot_prod_th_; diff --git a/RecoHGCal/TICL/python/iterativeTICL_cff.py b/RecoHGCal/TICL/python/iterativeTICL_cff.py index 2e4353fc96cf9..baec9c294c6c1 100644 --- a/RecoHGCal/TICL/python/iterativeTICL_cff.py +++ b/RecoHGCal/TICL/python/iterativeTICL_cff.py @@ -36,8 +36,9 @@ 'ticlTrackstersRecovery' ), linkingPSet = cms.PSet( + cylinder_radius_sqr_split = cms.double(9), + proj_distance_split = cms.double(5), track_time_quality_threshold = cms.double(0.5), - wind = cms.double(0.072), min_num_lcs = cms.uint32(15), min_trackster_energy = cms.double(20), pca_quality_th = cms.double(0.85), @@ -83,8 +84,22 @@ type = cms.string('Skeletons') ), - - regressionAndPid = cms.bool(True) + regressionAndPid = cms.bool(True), + inferenceAlgo = cms.string('TracksterInferenceByDNN'), + pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( + algo_verbosity = cms.int32(0), + doPID = cms.int32(1), + doRegression = cms.int32(1), + inputNames = cms.vstring('input'), + output_en = cms.vstring('enreg_output'), + output_id = cms.vstring('pid_output'), + eid_min_cluster_energy = cms.double(1), + eid_n_clusters = cms.int32(10), + eid_n_layers = cms.int32(50), + onnxEnergyModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/linking/energy_v0.onnx'), + onnxPIDModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/linking/id_v0.onnx'), + type = cms.string('TracksterInferenceByDNN') + ) ) ticlCandidate = _ticlCandidateProducer.clone() mtdSoA = _mtdSoAProducer.clone() From f94a39e6d803481fdf0c6c39515c7d1d80fbb59b Mon Sep 17 00:00:00 2001 From: Rohit Kumar Singh Date: Wed, 6 Nov 2024 18:31:53 +0100 Subject: [PATCH 017/418] update centrality thresholds --- .../Configuration/python/customiseSettings.py | 4 + .../python/caloParamsHI_2024_v0_1_cfi.py | 127 ++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 L1Trigger/L1TCalorimeter/python/caloParamsHI_2024_v0_1_cfi.py diff --git a/L1Trigger/Configuration/python/customiseSettings.py b/L1Trigger/Configuration/python/customiseSettings.py index a5a79fa5d54d5..b449baf4f0e1d 100644 --- a/L1Trigger/Configuration/python/customiseSettings.py +++ b/L1Trigger/Configuration/python/customiseSettings.py @@ -2,6 +2,10 @@ import os.path import FWCore.ParameterSet.Config as cms +def L1TSettingsToCaloParamsHI_2024_v0_1(process): + process.load("L1Trigger.L1TCalorimeter.caloParamsHI_2024_v0_1_cfi") + return process + def L1TSettingsToCaloParams_2024_v0_2(process): process.load("L1Trigger.L1TCalorimeter.caloParams_2024_v0_2_cfi") return process diff --git a/L1Trigger/L1TCalorimeter/python/caloParamsHI_2024_v0_1_cfi.py b/L1Trigger/L1TCalorimeter/python/caloParamsHI_2024_v0_1_cfi.py new file mode 100644 index 0000000000000..8605409759b01 --- /dev/null +++ b/L1Trigger/L1TCalorimeter/python/caloParamsHI_2024_v0_1_cfi.py @@ -0,0 +1,127 @@ +import FWCore.ParameterSet.Config as cms + +from L1Trigger.L1TCalorimeter.caloParams_cfi import caloParamsSource +import L1Trigger.L1TCalorimeter.caloParams_cfi +caloStage2Params = L1Trigger.L1TCalorimeter.caloParams_cfi.caloParams.clone( + + # EG + egEtaCut = 24, + egHcalThreshold = 0., + egTrimmingLUTFile = "L1Trigger/L1TCalorimeter/data/egTrimmingLUT_10_v16.01.19.txt", + egHOverEcutBarrel = 1, + egHOverEcutEndcap = 1, + egBypassExtHOverE = 1, + egBypassShape = 1, + egBypassECALFG = 1, + + egMaxHOverELUTFile = "L1Trigger/L1TCalorimeter/data/HoverEIdentification_0.995_v15.12.23.txt", + egCompressShapesLUTFile = "L1Trigger/L1TCalorimeter/data/egCompressLUT_v4.txt", + egShapeIdType = "compressed", + egShapeIdLUTFile = "L1Trigger/L1TCalorimeter/data/shapeIdentification_adapt0.99_compressedieta_compressedE_compressedshape_v15.12.08.txt", #Not used any more in the current emulator version, merged with calibration LUT + + egIsolationType = "compressed", + egIsoLUTFile = "L1Trigger/L1TCalorimeter/data/EG_Iso_LUT_Flat_WP_v2_Tight1358_20p0_0p7_40p0_v1_APR23.txt", + egIsoLUTFile2 = "L1Trigger/L1TCalorimeter/data/EG_Iso_LUT_Flat_WP_v2_Loose610_10p0_0p7_40p0_v1_APR23.txt", + + egIsoVetoNrTowersPhi = 2, + egPUSParams = cms.vdouble(1,4,32), #Isolation window in firmware goes up to abs(ieta)=32 for now + egCalibrationType = "compressed", + egCalibrationVersion = 0, + egCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/EG_Calibration_LUT_correctedEtCalibLUT_v1_APR2023.txt", + + # Tau + isoTauEtaMax = 25, + tauSeedThreshold = 0., + tauIsoLUTFile = "L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_2023_calibThr1p7_V2gs_effMin0p9_eMin16_eMax60.txt", + tauIsoLUTFile2 = "L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_2023_calibThr1p7_V2gs_effMin0p9_eMin16_eMax60.txt", + tauCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/Tau_Cal_LUT_2023_calibThr1p7_V2.txt", + tauCompressLUTFile = "L1Trigger/L1TCalorimeter/data/tauCompressAllLUT_12bit_v3.txt", + tauPUSParams = [1,4,32], + + # jets + jetSeedThreshold = 2.5, + jetPUSType = "PhiRing1", + jetPUSUsePhiRing = 1, + + # Calibration options + jetCalibrationType = "LUT", + jetCompressPtLUTFile = "L1Trigger/L1TCalorimeter/data/lut_pt_compress_2017v1.txt", + jetCompressEtaLUTFile = "L1Trigger/L1TCalorimeter/data/lut_eta_compress_2017v1.txt", + jetCalibrationLUTFile = "L1Trigger/L1TCalorimeter/data/lut_calib_2023v0_ECALZS_PhiRing.txt", + + + # sums: 0=ET, 1=HT, 2=MET, 3=MHT + etSumEtaMin = [1, 1, 1, 1, 1], + etSumEtaMax = [28, 26, 28, 26, 28], + etSumEtThreshold = [0., 30., 0., 30., 0.], # only 2nd (HT) and 4th (MHT) values applied + etSumMetPUSType = "LUT", # et threshold from this LUT supercedes et threshold in line above + etSumBypassEttPUS = 1, + etSumBypassEcalSumPUS = 1, + + etSumMetPUSLUTFile = "L1Trigger/L1TCalorimeter/data/metPumLUT_2023v0_puppiMet_fit.txt", + + etSumCentralityUpper = [13.0, 72.0, 357.0, 824.0, 1503.0, 7000.0, 7000.0, 65535.0], + etSumCentralityLower = [6.0, 13.0, 58.0, 295.0, 703.0, 5373.0, 5648.0, 65535.0], + # Layer 1 SF + layer1ECalScaleETBins = cms.vint32([3, 6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1ECalScaleFactors = cms.vdouble([ + 1.12, 1.13, 1.13, 1.12, 1.12, 1.12, 1.13, 1.12, 1.13, 1.12, 1.13, 1.13, 1.14, 1.13, 1.13, 1.13, 1.14, 1.26, 1.11, 1.20, 1.21, 1.22, 1.19, 1.20, 1.19, 0.00, 0.00, 0.00, + 1.12, 1.13, 1.13, 1.12, 1.12, 1.12, 1.13, 1.12, 1.13, 1.12, 1.13, 1.13, 1.14, 1.13, 1.13, 1.13, 1.14, 1.26, 1.11, 1.20, 1.21, 1.22, 1.19, 1.20, 1.19, 1.22, 0.00, 0.00, + 1.08, 1.09, 1.08, 1.08, 1.11, 1.08, 1.09, 1.09, 1.09, 1.09, 1.15, 1.09, 1.10, 1.10, 1.10, 1.10, 1.10, 1.23, 1.07, 1.15, 1.14, 1.16, 1.14, 1.14, 1.15, 1.14, 1.14, 0.00, + 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.07, 1.07, 1.07, 1.07, 1.08, 1.07, 1.09, 1.08, 1.17, 1.06, 1.11, 1.10, 1.13, 1.10, 1.10, 1.11, 1.11, 1.11, 1.09, + 1.04, 1.05, 1.04, 1.05, 1.04, 1.05, 1.06, 1.06, 1.05, 1.05, 1.05, 1.06, 1.06, 1.06, 1.06, 1.06, 1.07, 1.15, 1.04, 1.09, 1.09, 1.10, 1.09, 1.09, 1.10, 1.10, 1.10, 1.08, + 1.04, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.04, 1.05, 1.06, 1.04, 1.05, 1.05, 1.13, 1.03, 1.07, 1.08, 1.08, 1.08, 1.07, 1.07, 1.09, 1.08, 1.07, + 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.05, 1.05, 1.05, 1.05, 1.05, 1.12, 1.03, 1.06, 1.06, 1.08, 1.07, 1.07, 1.06, 1.08, 1.07, 1.06, + 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.04, 1.04, 1.04, 1.04, 1.03, 1.10, 1.02, 1.05, 1.06, 1.06, 1.06, 1.06, 1.05, 1.06, 1.06, 1.06, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.04, 1.03, 1.03, 1.02, 1.07, 1.02, 1.04, 1.04, 1.05, 1.06, 1.05, 1.05, 1.06, 1.06, 1.05, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.09, 1.02, 1.04, 1.05, 1.05, 1.05, 1.05, 1.04, 1.05, 1.06, 1.05, + 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.08, 1.01, 1.04, 1.04, 1.05, 1.05, 1.04, 1.04, 1.05, 1.06, 1.05, + 1.01, 1.01, 1.01, 1.01, 1.01, 1.01, 1.02, 1.01, 1.02, 1.02, 1.02, 1.02, 1.03, 1.03, 1.03, 1.03, 1.03, 1.06, 1.01, 1.04, 1.04, 1.05, 1.04, 1.03, 1.03, 1.04, 1.05, 1.04, + 1.01, 1.00, 1.01, 1.01, 1.01, 1.01, 1.01, 1.00, 1.01, 1.02, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.03, 1.04, 1.01, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.03, 1.00, 1.01, + 1.02, 1.00, 1.00, 1.02, 1.00, 1.01, 1.01, 1.00, 1.00, 1.02, 1.01, 1.01, 1.02, 1.02, 1.02, 1.02, 1.02, 1.04, 1.01, 1.03, 1.03, 1.03, 1.03, 1.02, 1.02, 1.02, 1.00, 1.01 + ]), + + layer1HCalScaleETBins = cms.vint32([1, 6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1HCalScaleFactors = cms.vdouble([ + 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, # ZERO-SUPPRESS <1GeV (i.e. 0.5GeV) IN THE BARREL ONLY (ieta<=15 == eta<=1.305) + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 + ]), + + layer1HFScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]), + layer1HFScaleFactors = cms.vdouble([ + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, + 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00 + ]), + + # HCal FB LUT + layer1HCalFBLUTUpper = cms.vuint32([ + 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, + ]), + + layer1HCalFBLUTLower = cms.vuint32([ + 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, 0xBBBABBBA, + ]) +) From 0ade249ea849d38d9ae2fe4e51392d89dae4b54a Mon Sep 17 00:00:00 2001 From: Colby Thompson <52970623+ctdax@users.noreply.github.com> Date: Fri, 8 Nov 2024 11:38:08 -0500 Subject: [PATCH 018/418] Fixed FullModelHadronicProcess.cc energy deposit model A 2015 commit to FullModelHadronicProcess.cc (https://github.com/cms-sw/cmssw/commit/0f7fe9f2e7b0d63c51c023862a2eeb75d9898e1e#diff-d97c0182cf0b0204534930064c29ace096341c2b2a33ede9d1f1aac75be22d91) introduced a bug to the energy deposit model. This bug incorrectly deposited energy values close to the BSM particles mass into the simulated detector. --- SimG4Core/CustomPhysics/src/FullModelHadronicProcess.cc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/SimG4Core/CustomPhysics/src/FullModelHadronicProcess.cc b/SimG4Core/CustomPhysics/src/FullModelHadronicProcess.cc index 61412807f58e5..2a58441a5c5c9 100644 --- a/SimG4Core/CustomPhysics/src/FullModelHadronicProcess.cc +++ b/SimG4Core/CustomPhysics/src/FullModelHadronicProcess.cc @@ -354,10 +354,7 @@ G4VParticleChange* FullModelHadronicProcess::PostStepDoIt(const G4Track& aTrack, G4LorentzVector p_g_cms = gluinoMomentum; //gluino in CMS BEFORE collision p_g_cms.boost(trafo_full_cms); - double e = cloud_p4_new.e() + gluinoMomentum.e(); - if (outgoingRhadron) - e += outgoingRhadron->GetPDGMass(); - G4LorentzVector p4_new(cloud_p4_new.v() + gluinoMomentum.v(), e); + G4LorentzVector p4_new(cloud_p4_new.v() + gluinoMomentum.v(), outgoingRhadron->GetPDGMass()); // G4cout<<"P4-diff: "<<(p4_new-cloud_p4_new-gluinoMomentum)/GeV<<", magnitude: " // <<(p4_new-cloud_p4_new-gluinoMomentum).m()/MeV<<" MeV" < Date: Mon, 11 Nov 2024 10:12:10 +0100 Subject: [PATCH 019/418] Rename 2021 wfs with 2022 --- .../python/upgradeWorkflowComponents.py | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index fbfd6b28801aa..d191f2c7d3525 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -18,18 +18,18 @@ '2018PU', '2018Design', '2018DesignPU', - '2021', - '2021PU', - '2021Design', - '2021DesignPU', + '2022', + '2022PU', + '2022Design', + '2022DesignPU', '2023', '2023PU', '2024', '2024PU', - '2021FS', - '2021FSPU', - '2021postEE', - '2021postEEPU', + '2022FS', + '2022FSPU', + '2022postEE', + '2022postEEPU', '2023FS', '2023FSPU', '2022HI', @@ -270,9 +270,9 @@ def setup_(self, step, stepName, stepDict, k, properties): if 'Digi' in step and 'NoHLT' not in step: stepDict[stepName][k] = merge([{'-s': re.sub(',HLT.*', '', stepDict[step][k]['-s'])}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - if ('TTbar_14TeV' in fragment and '2021' == key): - stepList.insert(stepList.index('Digi_DigiNoHLT_2021')+1, 'HLTRun3_2021') - return ('TTbar_14TeV' in fragment and '2021' == key) + if ('TTbar_14TeV' in fragment and '2022' == key): + stepList.insert(stepList.index('Digi_DigiNoHLT_2022')+1, 'HLTRun3_2022') + return ('TTbar_14TeV' in fragment and '2022' == key) upgradeWFs['DigiNoHLT'] = UpgradeWorkflow_DigiNoHLT( steps = [ 'Digi', @@ -445,7 +445,7 @@ def setup__(self, step, stepName, stepDict, k, properties): if ('Digi' in step and 'NoHLT' not in step) or ('HLTOnly' in step): stepDict[stepName][k] = merge([self.step2, stepDict[step][k]]) if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) def condition_(self, fragment, stepList, key, hasHarvest): - return any(y in key for y in ['2017','2021','2023','2024','2025']) and ('FS' not in key) + return any(y in key for y in ['2017','2022','2023','2024','2025']) and ('FS' not in key) upgradeWFs['trackingMkFit'] = UpgradeWorkflow_trackingMkFit( steps = [ 'Digi', @@ -498,7 +498,7 @@ def setup_(self, step, stepName, stepDict, k, properties): stepDict[stepName][k] = None elif 'Reco' in step or 'HARVEST' in step: stepDict[stepName][k] = merge([{'--procModifiers': 'seedingDeepCore'}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - result = (fragment=="QCD_Pt_1800_2400_14" or fragment=="TTbar_14TeV" ) and any(y in key for y in ['2021','2024','2025']) and hasHarvest + result = (fragment=="QCD_Pt_1800_2400_14" or fragment=="TTbar_14TeV" ) and any(y in key for y in ['2022','2024','2025']) and hasHarvest return result upgradeWFs['seedingDeepCore'] = UpgradeWorkflow_seedingDeepCore( steps = [ @@ -534,7 +534,7 @@ class UpgradeWorkflow_displacedRegional(UpgradeWorkflowTracking): def setup__(self, step, stepName, stepDict, k, properties): if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) def condition_(self, fragment, stepList, key, hasHarvest): - return any(y in key for y in ['2021','2023','2024','2025']) + return any(y in key for y in ['2022','2023','2024','2025']) upgradeWFs['displacedRegional'] = UpgradeWorkflow_displacedRegional( steps = [ 'Reco', @@ -613,7 +613,7 @@ def setup_(self, step, stepName, stepDict, k, properties): def condition(self, fragment, stepList, key, hasHarvest): # select only a subset of the workflows selected = (fragment == "TTbar_14TeV") and ('FS' not in key) and hasHarvest - result = selected and any(y in key for y in ['2021','2024','2025','Run4']) + result = selected and any(y in key for y in ['2022','2024','2025','Run4']) return result @@ -770,7 +770,7 @@ def setup_(self, step, stepName, stepDict, k, properties): stepDict[stepName][k] = merge([{'--procModifiers': 'trackdnn'}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - return fragment=="TTbar_14TeV" and '2021' in key + return fragment=="TTbar_14TeV" and '2022' in key upgradeWFs['trackdnn'] = UpgradeWorkflow_trackdnn( steps = [ 'Reco', @@ -795,7 +795,7 @@ def setup_(self, step, stepName, stepDict, k, properties): if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - return (fragment=="TTbar_14TeV" or fragment=="QCD_FlatPt_15_3000HS_14") and '2021PU' in key + return (fragment=="TTbar_14TeV" or fragment=="QCD_FlatPt_15_3000HS_14") and '2022PU' in key upgradeWFs['mlpf'] = UpgradeWorkflow_mlpf( steps = [ @@ -879,7 +879,7 @@ def condition(self, fragment, stepList, key, hasHarvest): # Patatrack workflows (NoPU and PU): # - TTbar_14, ZMM_14", ZEE_14, ZTT_14, NuGun, SingleMu, QCD_Pt15To7000_Flat for -# > 2021, 2022, 2023, 2024 and Run4 conditions, TTbar +# > 2022, 2023, 2024, 2025 and Run4 conditions, TTbar # - Hydjet for HI conditions class PatatrackWorkflow(UpgradeWorkflow): def __init__(self, digi = {}, reco = {}, mini = {}, harvest = {}, **kwargs): @@ -936,7 +936,7 @@ def __init__(self, digi = {}, reco = {}, mini = {}, harvest = {}, **kwargs): def condition(self, fragment, stepList, key, hasHarvest): # select only a subset of the workflows - years = ['2021','2023','2024','2025','Run4'] + years = ['2022','2023','2024','2025','Run4'] fragments = ["TTbar_14","ZMM_14","ZEE_14","ZTT_14","NuGun","SingleMu","QCD_Pt15To7000_Flat"] selected = [ (any(y in key for y in years) and ('FS' not in key) and any( f in fragment for f in fragments)), @@ -1848,7 +1848,7 @@ def setupPU_(self, step, stepName, stepDict, k, properties): stepDict[stepName][k].pop('--pileup', None) stepDict[stepName][k].pop('--pileup_input', None) def condition(self, fragment, stepList, key, hasHarvest): - years = ['2021','2023','2024','2025','Run4'] + years = ['2022','2023','2024','2025','Run4'] return fragment=="TTbar_14TeV" and any(y in key for y in years) upgradeWFs['ProdLike'] = UpgradeWorkflow_ProdLike( steps = [ @@ -1923,7 +1923,7 @@ def setupPU_(self, step, stepName, stepDict, k, properties): stepDict[stepName][k]['--pileup'] = 'AVE_' + str(self.__fixedPU) + '_BX_25ns' def condition(self, fragment, stepList, key, hasHarvest): # lower PUs for Run3 - return (fragment=="TTbar_14TeV") and (('Run4' in key) or ('2021' in key and self.__fixedPU<=100)) + return (fragment=="TTbar_14TeV") and (('Run4' in key) or ('2022' in key and self.__fixedPU<=100)) # The numbering below is following the 0.21 for ProdLike wfs # 0.21N would have been a more natural choice but the @@ -2281,7 +2281,7 @@ def setup_(self, step, stepName, stepDict, k, properties): stepDict[stepName][k] = None def condition(self, fragment, stepList, key, hasHarvest): - return fragment=="TTbar_14TeV" and ('2021' in key or '2023' in key or 'Run4' in key) + return fragment=="TTbar_14TeV" and ('2022' in key or '2023' in key or 'Run4' in key) upgradeWFs['ECALComponent'] = UpgradeWorkflow_ECalComponent( suffix = '_ecalComponent', @@ -2327,7 +2327,7 @@ def setupPU_(self, step, stepName, stepDict, k, properties): # override '-n' setting from PUDataSets in relval_steps.py stepDict[stepName][k] = merge([{'-n':'1'}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - return (fragment=="TTbar_13" or fragment=="TTbar_14TeV") and ('2017' in key or '2018' in key or '2021' in key or '2024' in key) and ('FS' not in key) + return (fragment=="TTbar_13" or fragment=="TTbar_14TeV") and ('2017' in key or '2018' in key or '2022' in key or '2024' in key) and ('FS' not in key) upgradeWFs['0T'] = UpgradeWorkflow_0T( steps = [ 'GenSim', @@ -2407,7 +2407,7 @@ def setup_(self, step, stepName, stepDict, k, properties): if 'Nano' in step: stepDict[stepName][k] = merge([{'--customise': 'PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD'}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - return (fragment=="TTbar_13" or fragment=="TTbar_14TeV") and ('2017' in key or '2018' in key or '2021' in key) and ('FS' not in key) + return (fragment=="TTbar_13" or fragment=="TTbar_14TeV") and ('2017' in key or '2018' in key or '2022' in key) and ('FS' not in key) upgradeWFs['JMENano'] = UpgradeWorkflow_JMENano( steps = [ 'Nano', @@ -2683,7 +2683,7 @@ def setupPU_(self, step, stepName, stepDict, k, properties): def condition(self, fragment, stepList, key, hasHarvest): if not 'PU' in key: return False - if not any(y in key for y in ['2021', '2023', '2024', '2025', 'Run4']): + if not any(y in key for y in ['2022', '2023', '2024', '2025', 'Run4']): return False if self.suffix.endswith("S1"): return "NuGun" in fragment @@ -2942,7 +2942,7 @@ def setup_(self, step, stepName, stepDict, k, properties): if 'Run3' in stepDict[step][k]['--era'] and 'Fast' not in stepDict[step][k]['--era']: stepDict[stepName][k] = merge([{'--conditions': 'auto:phase1_2022_realistic', '--geometry': 'DB:Extended'}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - return fragment=="TTbar_14TeV" and '2021' in key and 'FS' not in key + return fragment=="TTbar_14TeV" and '2022' in key and 'FS' not in key upgradeWFs['DD4hepDB'] = UpgradeWorkflow_DD4hepDB( steps = [ 'GenSim', @@ -2979,7 +2979,7 @@ def setup_(self, step, stepName, stepDict, k, properties): tmp_eras = ','.join(tmp_eras) stepDict[stepName][k] = merge([{'--conditions': 'auto:phase1_2022_realistic_ddd', '--geometry': 'DB:Extended', '--era': tmp_eras}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - return fragment=="TTbar_14TeV" and '2021' in key and 'FS' not in key + return fragment=="TTbar_14TeV" and '2022' in key and 'FS' not in key and "HI" not in key upgradeWFs['DDDDB'] = UpgradeWorkflow_DDDDB( steps = [ 'GenSim', @@ -3009,7 +3009,7 @@ class UpgradeWorkflow_SonicTriton(UpgradeWorkflow): def setup_(self, step, stepName, stepDict, k, properties): stepDict[stepName][k] = merge([{'--procModifiers': 'allSonicTriton'}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): - return ((fragment=='TTbar_13' or fragment=='TTbar_14TeV') and '2021' in key) \ + return ((fragment=='TTbar_13' or fragment=='TTbar_14TeV') and '2022' in key) \ or (fragment=='TTbar_14TeV' and 'Run4' in key) upgradeWFs['SonicTriton'] = UpgradeWorkflow_SonicTriton( steps = [ @@ -3121,7 +3121,7 @@ def condition(self, fragment, stepList, key, hasHarvest): 'BeamSpot': 'DBdesign', 'ScenToRun' : ['GenSim','Digi','RecoFakeHLT','HARVESTFakeHLT'], }, - '2021' : { + '2022' : { 'Geom' : 'DB:Extended', 'GT' : 'auto:phase1_2022_realistic', 'HLTmenu': '@relval2022', @@ -3129,7 +3129,7 @@ def condition(self, fragment, stepList, key, hasHarvest): 'BeamSpot': 'DBrealistic', 'ScenToRun' : ['GenSim','Digi','RecoNanoFakeHLT','HARVESTNanoFakeHLT','ALCA'], }, - '2021Design' : { + '2022Design' : { 'Geom' : 'DB:Extended', 'GT' : 'auto:phase1_2022_design', 'HLTmenu': '@relval2022', @@ -3161,7 +3161,7 @@ def condition(self, fragment, stepList, key, hasHarvest): 'BeamSpot': 'DBrealistic', 'ScenToRun' : ['GenSim','DigiNoHLT','HLTOnly','RecoNanoFakeHLT','HARVESTNanoFakeHLT','ALCA'], }, - '2021FS' : { + '2022FS' : { 'Geom' : 'DB:Extended', 'GT' : 'auto:phase1_2022_realistic', 'HLTmenu': '@relval2022', @@ -3169,7 +3169,7 @@ def condition(self, fragment, stepList, key, hasHarvest): 'BeamSpot': 'DBrealistic', 'ScenToRun' : ['Gen','FastSimRun3','HARVESTFastRun3'], }, - '2021postEE' : { + '2022postEE' : { 'Geom' : 'DB:Extended', 'GT' : 'auto:phase1_2022_realistic_postEE', 'HLTmenu': '@relval2022', From 75b3afc51ab153cbf1b143dfcee1bf476cf28cc7 Mon Sep 17 00:00:00 2001 From: Wahid Redjeb Date: Wed, 6 Nov 2024 11:51:40 +0100 Subject: [PATCH 020/418] add L1Seeded modules and sequecence for recovery tracksters --- ...lteredLayerClustersRecoveryL1Seeded_cfi.py | 14 +++ .../hltTiclTrackstersRecoveryL1Seeded_cfi.py | 93 +++++++++++++++++++ ...lTrackstersRecoverySequenceL1Seeded_cfi.py | 6 ++ RecoHGCal/TICL/plugins/TICLGraph.cc | 17 +--- RecoHGCal/TICL/plugins/TICLGraph.h | 2 +- .../plugins/TracksterLinkingbySkeletons.cc | 40 +++----- 6 files changed, 133 insertions(+), 39 deletions(-) create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltFilteredLayerClustersRecoveryL1Seeded_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTrackstersRecoveryL1Seeded_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/sequences/HLTTiclTrackstersRecoverySequenceL1Seeded_cfi.py diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltFilteredLayerClustersRecoveryL1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltFilteredLayerClustersRecoveryL1Seeded_cfi.py new file mode 100644 index 0000000000000..399eb6076eabc --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltFilteredLayerClustersRecoveryL1Seeded_cfi.py @@ -0,0 +1,14 @@ +import FWCore.ParameterSet.Config as cms + +hltFilteredLayerClustersRecoveryL1Seeded = cms.EDProducer("FilteredLayerClustersProducer", + LayerClusters = cms.InputTag("hltHgcalMergeLayerClustersL1Seeded"), + LayerClustersInputMask = cms.InputTag("hltTiclTrackstersCLUE3DHighL1Seeded"), + algo_number = cms.vint32(6, 7, 8), + clusterFilter = cms.string('ClusterFilterBySize'), + iteration_label = cms.string('Recovery'), + max_cluster_size = cms.int32(9999), + max_layerId = cms.int32(9999), + mightGet = cms.optional.untracked.vstring, + min_cluster_size = cms.int32(2), + min_layerId = cms.int32(0) +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTrackstersRecoveryL1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTrackstersRecoveryL1Seeded_cfi.py new file mode 100644 index 0000000000000..43146ea1580bc --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTrackstersRecoveryL1Seeded_cfi.py @@ -0,0 +1,93 @@ +import FWCore.ParameterSet.Config as cms + +hltTiclTrackstersRecoveryL1Seeded = cms.EDProducer("TrackstersProducer", + detector = cms.string('HGCAL'), + filtered_mask = cms.InputTag("hltFilteredLayerClustersRecoveryL1Seeded","Recovery"), + itername = cms.string('Recovery'), + layer_clusters = cms.InputTag("hltHgcalMergeLayerClustersL1Seeded"), + layer_clusters_hfnose_tiles = cms.InputTag("ticlLayerTileHFNose"), + layer_clusters_tiles = cms.InputTag("hltTiclLayerTileProducerL1Seeded"), + mightGet = cms.optional.untracked.vstring, + original_mask = cms.InputTag("hltTiclTrackstersCLUE3DHighL1Seeded"), + patternRecognitionBy = cms.string('Recovery'), + inferenceAlgo = cms.string('TracksterInferenceByDNN'), + pluginPatternRecognitionByCA = cms.PSet( + algo_verbosity = cms.int32(0), + computeLocalTime = cms.bool(True), + energy_em_over_total_threshold = cms.double(-1), + etaLimitIncreaseWindow = cms.double(2.1), + filter_on_categories = cms.vint32(0), + max_delta_time = cms.double(3), + max_longitudinal_sigmaPCA = cms.double(9999), + max_missing_layers_in_trackster = cms.int32(9999), + max_out_in_hops = cms.int32(10), + min_cos_pointing = cms.double(-1), + min_cos_theta = cms.double(0.915), + min_layers_per_trackster = cms.int32(10), + oneTracksterPerTrackSeed = cms.bool(False), + out_in_dfs = cms.bool(True), + pid_threshold = cms.double(0), + promoteEmptyRegionToTrackster = cms.bool(False), + root_doublet_max_distance_from_seed_squared = cms.double(9999), + shower_start_max_layer = cms.int32(9999), + siblings_maxRSquared = cms.vdouble(0.0006, 0.0006, 0.0006), + skip_layers = cms.int32(0), + type = cms.string('CA') + ), + pluginPatternRecognitionByCLUE3D = cms.PSet( + algo_verbosity = cms.int32(0), + computeLocalTime = cms.bool(True), + criticalDensity = cms.vdouble(4, 4, 4), + criticalEtaPhiDistance = cms.vdouble(0.025, 0.025, 0.025), + criticalSelfDensity = cms.vdouble(0.15, 0.15, 0.15), + criticalXYDistance = cms.vdouble(1.8, 1.8, 1.8), + criticalZDistanceLyr = cms.vint32(5, 5, 5), + cutHadProb = cms.double(0.5), + densityEtaPhiDistanceSqr = cms.vdouble(0.0008, 0.0008, 0.0008), + densityOnSameLayer = cms.bool(False), + densitySiblingLayers = cms.vint32(3, 3, 3), + densityXYDistanceSqr = cms.vdouble(3.24, 3.24, 3.24), + doPidCut = cms.bool(False), + kernelDensityFactor = cms.vdouble(0.2, 0.2, 0.2), + minNumLayerCluster = cms.vint32(2, 2, 2), + nearestHigherOnSameLayer = cms.bool(False), + outlierMultiplier = cms.vdouble(2, 2, 2), + rescaleDensityByZ = cms.bool(False), + type = cms.string('CLUE3D'), + useAbsoluteProjectiveScale = cms.bool(True), + useClusterDimensionXY = cms.bool(False) + ), + pluginPatternRecognitionByFastJet = cms.PSet( + algo_verbosity = cms.int32(0), + antikt_radius = cms.double(0.09), + computeLocalTime = cms.bool(True), + minNumLayerCluster = cms.int32(5), + type = cms.string('FastJet') + ), + pluginPatternRecognitionByRecovery = cms.PSet( + algo_verbosity = cms.int32(0), + type = cms.string('Recovery') + ), + + pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( + algo_verbosity = cms.int32(0), + onnxPIDModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/patternrecognition/id_v0.onnx'), + onnxEnergyModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/patternrecognition/energy_v0.onnx'), + inputNames = cms.vstring('input'), + output_en = cms.vstring('enreg_output'), + output_id = cms.vstring('pid_output'), + eid_min_cluster_energy = cms.double(1), + eid_n_layers = cms.int32(50), + eid_n_clusters = cms.int32(10), + doPID = cms.int32(0), + doRegression = cms.int32(0), + type = cms.string('TracksterInferenceByDNN') + ), + pluginInferenceAlgoTracksterInferenceByANN = cms.PSet( + algo_verbosity = cms.int32(0), + type = cms.string('TracksterInferenceByANN') + + ), + seeding_regions = cms.InputTag("hltTiclSeedingL1"), + time_layerclusters = cms.InputTag("hltHgcalMergeLayerClustersL1Seeded","timeLayerCluster") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTTiclTrackstersRecoverySequenceL1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTTiclTrackstersRecoverySequenceL1Seeded_cfi.py new file mode 100644 index 0000000000000..81cd3d157f059 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTTiclTrackstersRecoverySequenceL1Seeded_cfi.py @@ -0,0 +1,6 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltFilteredLayerClustersRecoveryL1Seeded_cfi import * +from ..modules.hltTiclTrackstersRecoveryL1Seeded_cfi import * + +HLTTiclTrackstersRecoverySequence = cms.Sequence(hltFilteredLayerClustersRecovery+hltTiclTrackstersRecovery) diff --git a/RecoHGCal/TICL/plugins/TICLGraph.cc b/RecoHGCal/TICL/plugins/TICLGraph.cc index 32b5aae61a2aa..50fecf98cd16c 100644 --- a/RecoHGCal/TICL/plugins/TICLGraph.cc +++ b/RecoHGCal/TICL/plugins/TICLGraph.cc @@ -3,15 +3,12 @@ namespace ticl { - void Node::findSubComponents(std::vector& graph, std::vector& subComponent, std::string tabs) { - tabs += "\t"; + void Node::findSubComponents(std::vector& graph, std::vector& subComponent) { if (!alreadyVisited_) { - LogDebug("TICLGraph") << tabs << " Visiting node " << index_ << std::endl; alreadyVisited_ = true; subComponent.push_back(index_); for (auto const& neighbour : outerNeighboursId_) { - LogDebug("TICLGraph") << tabs << " Trying to visit " << neighbour << std::endl; - graph[neighbour].findSubComponents(graph, subComponent, tabs); + graph[neighbour].findSubComponents(graph, subComponent); } } } @@ -29,10 +26,8 @@ std::vector> TICLGraph::findSubComponents() { for (auto const& node : nodes_) { auto const id = node.getId(); if (isRootNode_[id]) { - //LogDebug("TICLGraph") << "DFS Starting From " << id << std::endl; - std::string tabs = "\t"; std::vector tmpSubComponents; - nodes_[id].findSubComponents(nodes_, tmpSubComponents, tabs); + nodes_[id].findSubComponents(nodes_, tmpSubComponents); components.push_back(tmpSubComponents); } } @@ -41,9 +36,8 @@ std::vector> TICLGraph::findSubComponents() { auto const id = node.getId(); if (!node.alreadyVisited()) { // Use the alreadyVisited() method // Node not visited yet, so perform DFS - std::string tabs = "\t"; std::vector tmpSubComponents; - nodes_[id].findSubComponents(nodes_, tmpSubComponents, tabs); + nodes_[id].findSubComponents(nodes_, tmpSubComponents); components.push_back(tmpSubComponents); } } @@ -55,9 +49,8 @@ std::vector> TICLGraph::findSubComponents(std::vector< for (auto const& node : rootNodes) { auto const id = node.getId(); //LogDebug("TICLGraph") << "DFS Starting From " << id << std::endl; - std::string tabs = "\t"; std::vector tmpSubComponents; - nodes_[id].findSubComponents(nodes_, tmpSubComponents, tabs); + nodes_[id].findSubComponents(nodes_, tmpSubComponents); components.push_back(tmpSubComponents); } return components; diff --git a/RecoHGCal/TICL/plugins/TICLGraph.h b/RecoHGCal/TICL/plugins/TICLGraph.h index 8787ad11c2496..c78123bdf6577 100644 --- a/RecoHGCal/TICL/plugins/TICLGraph.h +++ b/RecoHGCal/TICL/plugins/TICLGraph.h @@ -18,7 +18,7 @@ namespace ticl { inline const unsigned int getId() const { return index_; } const std::vector& getOuterNeighbours() const { return outerNeighboursId_; } const std::vector& getInnerNeighbours() const { return innerNeighboursId_; } - void findSubComponents(std::vector& graph, std::vector& subComponent, std::string tabs); + void findSubComponents(std::vector& graph, std::vector& subComponent); inline bool isInnerNeighbour(const unsigned int tid) { auto findInner = std::find(innerNeighboursId_.begin(), innerNeighboursId_.end(), tid); diff --git a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc index 1130e1a83a4c7..c9712c52e8868 100644 --- a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc +++ b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc @@ -24,7 +24,7 @@ namespace { if (trackster.raw_energy() > min_trackster_energy) { auto const &eigenvalues = trackster.eigenvalues(); auto const sum = std::accumulate(std::begin(eigenvalues), std::end(eigenvalues), 0.f); - float pcaQuality = eigenvalues[0] / sum; + float pcaQuality = sum > 0.f ? eigenvalues[0] / sum : 0.f; if (pcaQuality > pca_quality_th) { isGood = true; } @@ -32,7 +32,7 @@ namespace { } else { auto const &eigenvalues = trackster.eigenvalues(); auto const sum = std::accumulate(std::begin(eigenvalues), std::end(eigenvalues), 0.f); - float pcaQuality = eigenvalues[0] / sum; + float pcaQuality = sum > 0.f ? eigenvalues[0] / sum : 0.f; if (pcaQuality > pca_quality_th) { isGood = true; } @@ -121,10 +121,16 @@ void TracksterLinkingbySkeletons::initialize(const HGCalDDDConstants *hgcons, //define LUT for eta windows // eta windows obtained with a deltaR of 4cm at z = 400 cm + float etaStep = (TileConstants::maxEta - TileConstants::minEta) / TileConstants::nEtaBins; + float expNeg2DeltaRxy = deltaRxy_ * std::exp(-2.f); + for (int i = 0; i < TileConstants::nEtaBins; ++i) { - float eta = TileConstants::minEta + i * (TileConstants::maxEta - TileConstants::minEta) / TileConstants::nEtaBins; - float R = z_surface * 2.f * std::exp(-eta) / (1.f - std::exp(-2.f * eta)); - eta_windows_[i] = abs(atan(deltaRxy_ / R)); + float eta = TileConstants::minEta + i * etaStep; + + float expNegEta = std::exp(-eta); + float R = z_surface * 2.f * expNegEta / (1.f - expNeg2DeltaRxy * expNegEta); + + eta_windows_[i] = std::abs(atan(deltaRxy_ / R)); } } @@ -227,6 +233,9 @@ inline bool isInCylinder(const std::array &mySkeleton, } inline float computeParameter(float energy, float en_th_low, float cut1, float en_th_high, float cut2) { + if (en_th_low == en_th_high) { //protect if the thresholds are equal + return (energy <= en_th_low) ? cut1 : cut2; + } if (energy < en_th_low) { return cut1; } else if (energy >= en_th_low && energy <= en_th_high) { @@ -527,20 +536,6 @@ void TracksterLinkingbySkeletons::linkTracksters( } } - LogDebug("TracksterLinkingbySkeletons") << "**************** FINAL GRAPH **********************" << std::endl; - // for (auto const &node : allNodes) { - // if (isRootTracksters[node.getId()]) { - // LogDebug("TracksterLinkingbySkeletons") - // << "ISROOT " - // << " Node " << node.getId() << " position " << tracksters[node.getId()].barycenter() << " energy " - // << tracksters[node.getId()].raw_energy() << std::endl; - // } else { - // LogDebug("TracksterLinkingbySkeletons") - // << "Node " << node.getId() << " position " << tracksters[node.getId()].barycenter() << " energy " - // << tracksters[node.getId()].raw_energy() << std::endl; - // } - // } - LogDebug("TracksterLinkingbySkeletons") << "********************************************************" << std::endl; TICLGraph graph(allNodes); auto sortedRootNodes = graph.getRootNodes(); std::sort(sortedRootNodes.begin(), sortedRootNodes.end(), [&tracksters](const ticl::Node &n1, const ticl::Node &n2) { @@ -548,13 +543,6 @@ void TracksterLinkingbySkeletons::linkTracksters( unsigned int n2Id = n2.getId(); return tracksters[n1Id].raw_energy() > tracksters[n2Id].raw_energy(); }); - // for(auto const& n : sortedRootNodes) { - // if(n.getOuterNeighbours().size() > 0){ - // LogDebug("TracksterLinkingbySkeletons") << "Sorted " << n.getId() << " " << tracksters[n.getId()].raw_energy() << std::endl; - // } - // } - - //assert(graph.isGraphOk() == true && "Graph is not ok"); int ic = 0; auto const &components = graph.findSubComponents(sortedRootNodes); From 22246a6567688228476da6fa57a6dd9cb62255f7 Mon Sep 17 00:00:00 2001 From: Davide Valsecchi Date: Mon, 11 Nov 2024 11:59:44 +0100 Subject: [PATCH 021/418] Moved TF sessions used in Egamma PFID to global cache EgammaDNNHelper was storing TF graphs globally by job, but TF sessions were owned my the GSFElectronProducer and GEDPhotonProducers. This commit moves the TFSessions in the EgammaDNNHelper, making them global by job. --- .../plugins/GsfElectronProducer.cc | 20 +++---------- .../src/GEDPhotonProducer.cc | 12 ++------ .../EgammaTools/interface/EgammaDNNHelper.h | 8 +++-- RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc | 30 ++++++++++++------- .../interface/ElectronDNNEstimator.h | 6 +--- .../src/ElectronDNNEstimator.cc | 6 ++-- .../interface/PhotonDNNEstimator.h | 6 +--- .../src/PhotonDNNEstimator.cc | 6 ++-- 8 files changed, 37 insertions(+), 57 deletions(-) diff --git a/RecoEgamma/EgammaElectronProducers/plugins/GsfElectronProducer.cc b/RecoEgamma/EgammaElectronProducers/plugins/GsfElectronProducer.cc index 8fae5afe50d92..1cea490a6b23b 100644 --- a/RecoEgamma/EgammaElectronProducers/plugins/GsfElectronProducer.cc +++ b/RecoEgamma/EgammaElectronProducers/plugins/GsfElectronProducer.cc @@ -35,8 +35,7 @@ namespace { const GsfElectronAlgo::HeavyObjectCache* hoc, reco::VertexCollection const& vertices, bool dnnPFidEnabled, - float extetaboundary, - const std::vector& tfSessions) { + float extetaboundary) { std::vector mva_outputs(electrons.size()); size_t iele = 0; for (auto& el : electrons) { @@ -53,7 +52,7 @@ namespace { if (dnnPFidEnabled) { // Here send the list of electrons to the ElectronDNNEstimator and get back the values for all the electrons in one go LogDebug("GsfElectronProducer") << "Getting DNN PFId for ele"; - const auto& dnn_ele_pfid = hoc->iElectronDNNEstimator->evaluate(electrons, tfSessions); + const auto& dnn_ele_pfid = hoc->iElectronDNNEstimator->evaluate(electrons); int jele = 0; for (auto& el : electrons) { const auto& [iModel, values] = dnn_ele_pfid[jele]; @@ -165,8 +164,6 @@ class GsfElectronProducer : public edm::stream::EDProducer tfSessions_; - edm::ESGetToken hcalCutsToken_; bool cutsFromDB_; }; @@ -572,17 +569,9 @@ GsfElectronProducer::GsfElectronProducer(const edm::ParameterSet& cfg, const Gsf cfg.getParameter("trkIsolHEEP03Cfg"), cfg.getParameter("trkIsolHEEP04Cfg"), consumesCollector()); - - if (dnnPFidEnabled_) { - tfSessions_ = gcache->iElectronDNNEstimator->getSessions(); - } } -void GsfElectronProducer::endStream() { - for (auto session : tfSessions_) { - tensorflow::closeSession(session); - } -} +void GsfElectronProducer::endStream() {} void GsfElectronProducer::checkEcalSeedingParameters(edm::ParameterSet const& pset) { if (!pset.exists("SeedConfiguration")) { @@ -761,8 +750,7 @@ void GsfElectronProducer::produce(edm::Event& event, const edm::EventSetup& setu for (auto& el : electrons) { el.setMvaInput(gsfMVAInputMap.find(el.gsfTrack())->second); // set Run2 MVA inputs } - setMVAOutputs( - electrons, globalCache(), event.get(inputCfg_.vtxCollectionTag), dnnPFidEnabled_, extetaboundary_, tfSessions_); + setMVAOutputs(electrons, globalCache(), event.get(inputCfg_.vtxCollectionTag), dnnPFidEnabled_, extetaboundary_); } // all electrons diff --git a/RecoEgamma/EgammaPhotonProducers/src/GEDPhotonProducer.cc b/RecoEgamma/EgammaPhotonProducers/src/GEDPhotonProducer.cc index 009467ec07b4d..594d3e8be0813 100644 --- a/RecoEgamma/EgammaPhotonProducers/src/GEDPhotonProducer.cc +++ b/RecoEgamma/EgammaPhotonProducers/src/GEDPhotonProducer.cc @@ -222,7 +222,6 @@ class GEDPhotonProducer : public edm::stream::EDProducer tfSessions_; double ecaldrMax_; double ecaldrVetoBarrel_; @@ -477,9 +476,6 @@ GEDPhotonProducer::GEDPhotonProducer(const edm::ParameterSet& config, const Cach const auto& pset_dnn = config.getParameter("PhotonDNNPFid"); dnnPFidEnabled_ = pset_dnn.getParameter("enabled"); - if (dnnPFidEnabled_) { - tfSessions_ = gcache->photonDNNEstimator->getSessions(); - } } std::unique_ptr GEDPhotonProducer::initializeGlobalCache(const edm::ParameterSet& config) { @@ -487,11 +483,7 @@ std::unique_ptr GEDPhotonProducer::initializeGlobalCache(const edm::P return std::make_unique(config); } -void GEDPhotonProducer::endStream() { - for (auto session : tfSessions_) { - tensorflow::closeSession(session); - } -} +void GEDPhotonProducer::endStream() {} void GEDPhotonProducer::produce(edm::Event& theEvent, const edm::EventSetup& eventSetup) { using namespace edm; @@ -1041,7 +1033,7 @@ void GEDPhotonProducer::fillPhotonCollection(edm::Event& evt, if (dnnPFidEnabled_) { // Here send the list of photons to the PhotonDNNEstimator and get back the values for all the photons in one go LogDebug("GEDPhotonProducer") << "Getting DNN PFId for photons"; - const auto& dnn_photon_pfid = globalCache()->photonDNNEstimator->evaluate(outputPhotonCollection, tfSessions_); + const auto& dnn_photon_pfid = globalCache()->photonDNNEstimator->evaluate(outputPhotonCollection); size_t ipho = 0; for (auto& photon : outputPhotonCollection) { const auto& [iModel, values] = dnn_photon_pfid[ipho]; diff --git a/RecoEgamma/EgammaTools/interface/EgammaDNNHelper.h b/RecoEgamma/EgammaTools/interface/EgammaDNNHelper.h index 86e4be7734c4a..a899c7ee45f9f 100644 --- a/RecoEgamma/EgammaTools/interface/EgammaDNNHelper.h +++ b/RecoEgamma/EgammaTools/interface/EgammaDNNHelper.h @@ -41,8 +41,9 @@ namespace egammaTools { class EgammaDNNHelper { public: EgammaDNNHelper(const DNNConfiguration&, const ModelSelector& sel, const std::vector& availableVars); + //Destructor to close TF sessions + ~EgammaDNNHelper(); - std::vector getSessions() const; // Function getting the input vector for a specific electron, already scaled // together with the model index it has to be used. // The model index is determined by the ModelSelector functor passed in the constructor @@ -50,11 +51,11 @@ namespace egammaTools { std::pair> getScaledInputs(const std::map& variables) const; std::vector>> evaluate( - const std::vector>& candidates, - const std::vector& sessions) const; + const std::vector>& candidates) const; private: void initTensorFlowGraphs(); + void initTensorFlowSessions(); void initScalerFiles(const std::vector& availableVars); const DNNConfiguration cfg_; @@ -65,6 +66,7 @@ namespace egammaTools { std::vector nInputs_; std::vector> graphDefs_; + std::vector> sessions_; // List of input variables for each of the model; std::vector> featuresMap_; diff --git a/RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc b/RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc index a404dd75d8add..dd125e884f6a7 100644 --- a/RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc +++ b/RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc @@ -9,31 +9,42 @@ using namespace egammaTools; EgammaDNNHelper::EgammaDNNHelper(const DNNConfiguration& cfg, const ModelSelector& modelSelector, const std::vector& availableVars) - : cfg_(cfg), modelSelector_(modelSelector), nModels_(cfg_.modelsFiles.size()), graphDefs_(cfg_.modelsFiles.size()) { + : cfg_(cfg), + modelSelector_(modelSelector), + nModels_(cfg_.modelsFiles.size()), + graphDefs_(cfg_.modelsFiles.size()), + sessions_(cfg_.modelsFiles.size()) { initTensorFlowGraphs(); + initTensorFlowSessions(); initScalerFiles(availableVars); } +EgammaDNNHelper::~EgammaDNNHelper() { + // Closing the sessions when the helper is destroyed at the end of the job. + for (const auto& session : sessions_) { + auto status = session->Close(); + } +} + void EgammaDNNHelper::initTensorFlowGraphs() { // load the graph definition LogDebug("EgammaDNNHelper") << "Loading " << nModels_ << " graphs"; size_t i = 0; - for (const auto& model_file : cfg_.modelsFiles) { + for (auto& model_file : cfg_.modelsFiles) { graphDefs_[i] = std::unique_ptr(tensorflow::loadGraphDef(edm::FileInPath(model_file).fullPath())); i++; } } -std::vector EgammaDNNHelper::getSessions() const { - std::vector sessions; +void EgammaDNNHelper::initTensorFlowSessions() { LogDebug("EgammaDNNHelper") << "Starting " << nModels_ << " TF sessions"; - sessions.reserve(graphDefs_.size()); + size_t i = 0; for (const auto& graphDef : graphDefs_) { - sessions.push_back(tensorflow::createSession(graphDef.get())); + sessions_[i] = std::unique_ptr(tensorflow::createSession(graphDef.get())); + i++; } LogDebug("EgammaDNNHelper") << "TF sessions started"; - return sessions; } void EgammaDNNHelper::initScalerFiles(const std::vector& availableVars) { @@ -99,8 +110,7 @@ std::pair> EgammaDNNHelper::getScaledInputs( } std::vector>> EgammaDNNHelper::evaluate( - const std::vector>& candidates, - const std::vector& sessions) const { + const std::vector>& candidates) const { /* Evaluate the PFID DNN for all the electrons/photons. nModels_ are defined depending on modelIndex --> we need to build N input tensors to evaluate @@ -162,7 +172,7 @@ std::vector>> EgammaDNNHelper::evaluate( continue; //Skip model witout inputs std::vector output; LogDebug("EgammaDNNHelper") << "Run model: " << m << " with " << counts[m] << "objects"; - tensorflow::run(sessions[m], {{cfg_.inputTensorName, input_tensors[m]}}, {cfg_.outputTensorName}, &output); + tensorflow::run(sessions_[m].get(), {{cfg_.inputTensorName, input_tensors[m]}}, {cfg_.outputTensorName}, &output); // Get the output and save the ElectronDNNEstimator::outputDim numbers along with the ele index const auto& r = output[0].tensor(); // Iterate on the list of elements in the batch --> many electrons diff --git a/RecoEgamma/ElectronIdentification/interface/ElectronDNNEstimator.h b/RecoEgamma/ElectronIdentification/interface/ElectronDNNEstimator.h index 2779cb3dee577..3d94b4319fd31 100644 --- a/RecoEgamma/ElectronIdentification/interface/ElectronDNNEstimator.h +++ b/RecoEgamma/ElectronIdentification/interface/ElectronDNNEstimator.h @@ -13,15 +13,11 @@ class ElectronDNNEstimator { public: ElectronDNNEstimator(const egammaTools::DNNConfiguration&, const bool useEBModelInGap); - std::vector getSessions() const; - ; - // Function returning a map with all the possible variables and their name std::map getInputsVars(const reco::GsfElectron& ele) const; // Evaluate the DNN on all the electrons with the correct model - std::vector>> evaluate(const reco::GsfElectronCollection& ele, - const std::vector& sessions) const; + std::vector>> evaluate(const reco::GsfElectronCollection& ele) const; // List of input variables names used to check the variables request as // inputs in a dynamic way from configuration file. diff --git a/RecoEgamma/ElectronIdentification/src/ElectronDNNEstimator.cc b/RecoEgamma/ElectronIdentification/src/ElectronDNNEstimator.cc index 269c41477292b..02694c2b4f4ac 100644 --- a/RecoEgamma/ElectronIdentification/src/ElectronDNNEstimator.cc +++ b/RecoEgamma/ElectronIdentification/src/ElectronDNNEstimator.cc @@ -47,8 +47,6 @@ ElectronDNNEstimator::ElectronDNNEstimator(const egammaTools::DNNConfiguration& ElectronDNNEstimator::dnnAvaibleInputs), useEBModelInGap_(useEBModelInGap) {} -std::vector ElectronDNNEstimator::getSessions() const { return dnnHelper_.getSessions(); }; - const std::vector ElectronDNNEstimator::dnnAvaibleInputs = { {"pt", "eta", @@ -157,12 +155,12 @@ std::map ElectronDNNEstimator::getInputsVars(const reco::Gsf } std::vector>> ElectronDNNEstimator::evaluate( - const reco::GsfElectronCollection& electrons, const std::vector& sessions) const { + const reco::GsfElectronCollection& electrons) const { // Collect the map of variables for each candidate and call the dnnHelper // Scaling, model selection and running is performed in the helper std::vector> inputs; for (const auto& ele : electrons) { inputs.push_back(getInputsVars(ele)); } - return dnnHelper_.evaluate(inputs, sessions); + return dnnHelper_.evaluate(inputs); } diff --git a/RecoEgamma/PhotonIdentification/interface/PhotonDNNEstimator.h b/RecoEgamma/PhotonIdentification/interface/PhotonDNNEstimator.h index 220e2e2517451..9b9fcb9ec1840 100644 --- a/RecoEgamma/PhotonIdentification/interface/PhotonDNNEstimator.h +++ b/RecoEgamma/PhotonIdentification/interface/PhotonDNNEstimator.h @@ -14,15 +14,11 @@ class PhotonDNNEstimator { public: PhotonDNNEstimator(const egammaTools::DNNConfiguration&, const bool useEBModelInGap); - std::vector getSessions() const; - ; - // Function returning a map with all the possible variables and their name std::map getInputsVars(const reco::Photon& ele) const; // Evaluate the DNN on all the electrons with the correct model - std::vector>> evaluate(const reco::PhotonCollection& ele, - const std::vector& sessions) const; + std::vector>> evaluate(const reco::PhotonCollection& ele) const; // List of input variables names used to check the variables request as // inputs in a dynamic way from configuration file. diff --git a/RecoEgamma/PhotonIdentification/src/PhotonDNNEstimator.cc b/RecoEgamma/PhotonIdentification/src/PhotonDNNEstimator.cc index 524c836b6a301..6b15367c5025d 100644 --- a/RecoEgamma/PhotonIdentification/src/PhotonDNNEstimator.cc +++ b/RecoEgamma/PhotonIdentification/src/PhotonDNNEstimator.cc @@ -29,8 +29,6 @@ PhotonDNNEstimator::PhotonDNNEstimator(const egammaTools::DNNConfiguration& cfg, PhotonDNNEstimator::dnnAvaibleInputs), useEBModelInGap_(useEBModelInGap) {} -std::vector PhotonDNNEstimator::getSessions() const { return dnnHelper_.getSessions(); }; - const std::vector PhotonDNNEstimator::dnnAvaibleInputs = {{"pt", "eta", "hadTowOverEm", @@ -67,12 +65,12 @@ std::map PhotonDNNEstimator::getInputsVars(const reco::Photo } std::vector>> PhotonDNNEstimator::evaluate( - const reco::PhotonCollection& photons, const std::vector& sessions) const { + const reco::PhotonCollection& photons) const { // Collect the map of variables for each candidate and call the dnnHelper // Scaling, model selection and running is performed in the helper std::vector> inputs; for (const auto& photon : photons) { inputs.push_back(getInputsVars(photon)); } - return dnnHelper_.evaluate(inputs, sessions); + return dnnHelper_.evaluate(inputs); } From 5f3983a8e7ebbe69e235cccdc0aac4751653bff5 Mon Sep 17 00:00:00 2001 From: Patin Inkaew Date: Tue, 12 Nov 2024 17:28:12 +0100 Subject: [PATCH 022/418] refactor customisation function for @ScoutFromMini flavour --- PhysicsTools/NanoAOD/python/autoNANO.py | 4 ++-- .../NanoAOD/python/custom_run3scouting_cff.py | 17 ++++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/PhysicsTools/NanoAOD/python/autoNANO.py b/PhysicsTools/NanoAOD/python/autoNANO.py index d2cd884fb23f2..571c8359ddecc 100644 --- a/PhysicsTools/NanoAOD/python/autoNANO.py +++ b/PhysicsTools/NanoAOD/python/autoNANO.py @@ -34,8 +34,8 @@ def expandNanoMapping(seqList, mapping, key): # Scouting nano 'Scout' : {'sequence': 'PhysicsTools/NanoAOD/custom_run3scouting_cff.scoutingNanoSequence', 'customize': 'PhysicsTools/NanoAOD/custom_run3scouting_cff.customiseScoutingNano'}, - 'ScoutFromMini' : {'sequence': 'PhysicsTools/NanoAOD/custom_run3scouting_cff.scoutingNanoSequence', - 'customize': 'PhysicsTools/NanoAOD/custom_run3scouting_cff.customiseScoutingNanoFromMini'}, + 'ScoutFromMini' : {'sequence': '@Scout', + 'customize': '@Scout+PhysicsTools/NanoAOD/custom_run3scouting_cff.customiseScoutingNanoFromMini'}, # JME nano 'JME': {'sequence': '@PHYS', 'customize': '@PHYS+PhysicsTools/NanoAOD/custom_jme_cff.PrepJMECustomNanoAOD'}, diff --git a/PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py b/PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py index 9176771f2064d..860b60ed9b492 100644 --- a/PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py +++ b/PhysicsTools/NanoAOD/python/custom_run3scouting_cff.py @@ -141,10 +141,15 @@ def customiseScoutingNano(process): return process -def customiseScoutingNanoFromMini(process): - # normal customise for ScoutingNano - process = customiseScoutingNano(process) +##################### +### Customisation ### +##################### +# these function are designed to be used with --customise flag in cmsDriver.py +# e.g. --customise PhysicsTools/NanoAOD/python/custom_run3scouting_cff.addScoutingPFCandidate +# reconfigure for running with ScoutingPFMonitor/MiniAOD inputs alone +# should be used with default customiseScoutingNano +def customiseScoutingNanoFromMini(process): # remove L1TRawToDigi process.scoutingTriggerSequence.remove(process.L1TRawToDigi) @@ -163,12 +168,6 @@ def customiseScoutingNanoFromMini(process): return process -##################### -### Customisation ### -##################### -# these function are designed to be used with --customise flag in cmsDriver.py -# e.g. --customise PhysicsTools/NanoAOD/python/custom_run3scouting_cff.addScoutingPFCandidate - def addScoutingTrack(process): process.scoutingNanoSequence.associate(cms.Task(scoutingTrackTable)) return process From db2346d1a92446905ec3a139aa0658777376cb16 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 12 Nov 2024 17:57:40 +0100 Subject: [PATCH 023/418] Update MTDGeometry test, use only DD4hep backend, add ETL pixel position test --- .../MTDGeometryBuilder/test/BuildFile.xml | 15 +- .../test/DD4hep_TestBTLPixelTopology.cc | 344 ------------ .../test/DD4hep_TestPixelTopology.cc | 517 ++++++++++++++++++ .../test/MTDDigiGeometryAnalyzer.cc | 158 +----- .../MTDGeometryBuilder/test/dd4hep_mtd_cfg.py | 64 --- Geometry/MTDGeometryBuilder/test/mtd_cfg.py | 34 +- Geometry/MTDGeometryBuilder/test/runTest.sh | 12 +- 7 files changed, 563 insertions(+), 581 deletions(-) delete mode 100644 Geometry/MTDGeometryBuilder/test/DD4hep_TestBTLPixelTopology.cc create mode 100644 Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc delete mode 100644 Geometry/MTDGeometryBuilder/test/dd4hep_mtd_cfg.py diff --git a/Geometry/MTDGeometryBuilder/test/BuildFile.xml b/Geometry/MTDGeometryBuilder/test/BuildFile.xml index a4e689eabb3c7..e9d7d8d29d77f 100644 --- a/Geometry/MTDGeometryBuilder/test/BuildFile.xml +++ b/Geometry/MTDGeometryBuilder/test/BuildFile.xml @@ -1,17 +1,4 @@ - - - - - - - - - - - - - - + diff --git a/Geometry/MTDGeometryBuilder/test/DD4hep_TestBTLPixelTopology.cc b/Geometry/MTDGeometryBuilder/test/DD4hep_TestBTLPixelTopology.cc deleted file mode 100644 index 5ec8d2157cb76..0000000000000 --- a/Geometry/MTDGeometryBuilder/test/DD4hep_TestBTLPixelTopology.cc +++ /dev/null @@ -1,344 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESTransientHandle.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/Exception.h" - -#include "Geometry/Records/interface/IdealGeometryRecord.h" -#include "Geometry/Records/interface/DDSpecParRegistryRcd.h" - -#include "DetectorDescription/DDCMS/interface/DDDetector.h" -#include "DetectorDescription/DDCMS/interface/DDSolidShapes.h" -#include "DetectorDescription/DDCMS/interface/DDFilteredView.h" -#include "DetectorDescription/DDCMS/interface/DDSpecParRegistry.h" - -#include "Geometry/MTDCommonData/interface/MTDTopologyMode.h" -#include "Geometry/MTDCommonData/interface/MTDBaseNumber.h" -#include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" -#include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h" - -#include "DataFormats/ForwardDetId/interface/BTLDetId.h" -#include "DataFormats/ForwardDetId/interface/ETLDetId.h" - -#include "Geometry/Records/interface/MTDTopologyRcd.h" -#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" -#include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" -#include "Geometry/Records/interface/MTDDigiGeometryRecord.h" -#include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" -#include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" - -#include "DataFormats/Math/interface/GeantUnits.h" -#include "DataFormats/Math/interface/Rounding.h" -#include - -using namespace cms; -using namespace geant_units::operators; - -class DD4hep_TestBTLPixelTopology : public edm::one::EDAnalyzer<> { -public: - explicit DD4hep_TestBTLPixelTopology(const edm::ParameterSet&); - ~DD4hep_TestBTLPixelTopology() = default; - - void beginJob() override {} - void analyze(edm::Event const&, edm::EventSetup const&) override; - void endJob() override {} - - void theBaseNumber(cms::DDFilteredView& fv); - -private: - const edm::ESInputTag tag_; - - MTDBaseNumber thisN_; - BTLNumberingScheme btlNS_; - - edm::ESGetToken dddetToken_; - edm::ESGetToken dspecToken_; - edm::ESGetToken mtdtopoToken_; - edm::ESGetToken mtdgeoToken_; - - std::stringstream sunitt; - constexpr static double tolerance{0.5e-3_mm}; -}; - -using DD3Vector = ROOT::Math::DisplacementVector3D>; -using cms_rounding::roundIfNear0; - -DD4hep_TestBTLPixelTopology::DD4hep_TestBTLPixelTopology(const edm::ParameterSet& iConfig) - : tag_(iConfig.getParameter("DDDetector")), thisN_(), btlNS_() { - dddetToken_ = esConsumes(tag_); - dspecToken_ = esConsumes(tag_); - mtdtopoToken_ = esConsumes(tag_); - mtdgeoToken_ = esConsumes(tag_); -} - -void DD4hep_TestBTLPixelTopology::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - auto pDD = iSetup.getTransientHandle(dddetToken_); - - auto pSP = iSetup.getTransientHandle(dspecToken_); - - if (!pDD.isValid()) { - edm::LogError("DD4hep_TestBTLPixelTopology") << "ESTransientHandle pDD is not valid!"; - return; - } - if (pDD.description()) { - edm::LogInfo("DD4hep_TestBTLPixelTopology") << pDD.description()->type_ << " label: " << pDD.description()->label_; - } else { - edm::LogWarning("DD4hep_TestBTLPixelTopology") << "NO label found pDD.description() returned false."; - } - - if (!pSP.isValid()) { - edm::LogError("DD4hep_TestBTLPixelTopology") << "ESTransientHandle pSP is not valid!"; - return; - } - - auto pTP = iSetup.getTransientHandle(mtdtopoToken_); - if (!pTP.isValid()) { - edm::LogError("DD4hep_TestBTLPixelTopology") << "ESTransientHandle pTP is not valid!"; - return; - } else { - edm::LogInfo("DD4hep_TestBTLPixelTopology") - << "MTD topology mode = " << pTP.product()->getMTDTopologyMode() << " BTLDetId:CrysLayout = " - << static_cast(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); - } - - auto pDG = iSetup.getTransientHandle(mtdgeoToken_); - if (!pDG.isValid()) { - edm::LogError("DD4hep_TestBTLPixelTopology") << "ESTransientHandle pDG is not valid!"; - return; - } else { - edm::LogInfo("DD4hep_TestBTLPixelTopology") - << "Geometry node for MTDGeom is " << &(*pDG) << "\n" - << " # detectors = " << pDG.product()->detUnits().size() << "\n" - << " # types = " << pDG.product()->detTypes().size() << "\n" - << " # BTL dets = " << pDG.product()->detsBTL().size() << "\n" - << " # ETL dets = " << pDG.product()->detsETL().size() << "\n" - << " # layers " << pDG.product()->geomDetSubDetector(1) << " = " << pDG.product()->numberOfLayers(1) << "\n" - << " # layers " << pDG.product()->geomDetSubDetector(2) << " = " << pDG.product()->numberOfLayers(2) << "\n"; - } - - DDFilteredView fv(pDD.product(), pDD.product()->description()->worldVolume()); - fv.next(0); - - DDSpecParRefs specs; - std::string attribute("ReadOutName"), name("FastTimerHitsBarrel"); - pSP.product()->filter(specs, attribute, name); - - edm::LogVerbatim("DD4hep_TestBTLPixelTopology").log([&specs](auto& log) { - log << "Filtered DD SpecPar Registry size: " << specs.size() << "\n"; - for (const auto& t : specs) { - log << "\nSpecPar " << t.first << ":\nRegExps { "; - for (const auto& ki : t.second->paths) - log << ki << " "; - log << "};\n "; - for (const auto& kl : t.second->spars) { - log << kl.first << " = "; - for (const auto& kil : kl.second) { - log << kil << " "; - } - log << "\n "; - } - } - }); - - bool isBarrel = true; - bool exitLoop = false; - uint32_t level(0); - - do { - if (dd4hep::dd::noNamespace(fv.name()) == "BarrelTimingLayer") { - isBarrel = true; - edm::LogInfo("DD4hep_TestBTLPixelTopology") << "isBarrel = " << isBarrel; - } else if (dd4hep::dd::noNamespace(fv.name()) == "EndcapTimingLayer") { - isBarrel = false; - edm::LogInfo("DD4hep_TestBTLPixelTopology") << "isBarrel = " << isBarrel; - } - - theBaseNumber(fv); - - auto print_path = [&]() { - std::stringstream ss; - ss << " - OCMS[0]/"; - for (int ii = thisN_.getLevels() - 1; ii-- > 0;) { - ss << thisN_.getLevelName(ii); - ss << "["; - ss << thisN_.getCopyNumber(ii); - ss << "]/"; - } - return ss.str(); - }; - - if (level > 0 && fv.navPos().size() < level) { - level = 0; - exitLoop = true; - } - if (dd4hep::dd::noNamespace(fv.name()) == "BarrelTimingLayer") { - level = fv.navPos().size(); - } - - // Test only the desired subdetector - - if (exitLoop && isBarrel) { - break; - } - - // Actions for MTD volumes: search for sensitive detectors - - bool isSens = false; - - for (auto const& t : specs) { - for (auto const& it : t.second->paths) { - if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(fv.name()), dd4hep::dd::realTopName(it))) { - isSens = true; - break; - } - } - } - - if (isSens && isBarrel) { - std::stringstream spix; - spix << print_path() << "\n\n"; - - BTLDetId theId(btlNS_.getUnitID(thisN_)); - - DetId geoId = theId.geographicalId(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); - const MTDGeomDet* thedet = pDG.product()->idToDet(geoId); - - if (thedet == nullptr) { - throw cms::Exception("BTLDeviceSim") << "GeographicalID: " << std::hex << geoId.rawId() << " (" << theId.rawId() - << ") is invalid!" << std::dec << std::endl; - } - const ProxyMTDTopology& topoproxy = static_cast(thedet->topology()); - const RectangularMTDTopology& topo = static_cast(topoproxy.specificTopology()); - - int origRow = theId.row(topo.nrows()); - int origCol = theId.column(topo.nrows()); - spix << "rawId= " << theId.rawId() << " geoId= " << geoId.rawId() << " side/rod= " << theId.mtdSide() << " / " - << theId.mtdRR() << " type/RU= " << theId.modType() << " / " << theId.runit() - << " module/geomodule= " << theId.module() << " / " << static_cast(geoId).module() - << " crys= " << theId.crystal() << " BTLDetId row/col= " << origRow << " / " << origCol; - spix << "\n"; - - // - // Test of positions for sensitive detectors - // - - auto fround = [&](double in) { - std::stringstream ss; - ss << std::fixed << std::setw(14) << roundIfNear0(in); - return ss.str(); - }; - - if (!dd4hep::isA(fv.solid())) { - throw cms::Exception("DD4hep_TestBTLPixelTopology") << "MTD sensitive element not a DDBox"; - break; - } - dd4hep::Box mySens(fv.solid()); - - DD3Vector zeroLocal(0., 0., 0.); - DD3Vector cn1Local(mySens.x(), mySens.y(), mySens.z()); - DD3Vector cn2Local(-mySens.x(), -mySens.y(), -mySens.z()); - DD3Vector zeroGlobal = (fv.rotation())(zeroLocal) + fv.translation(); - DD3Vector cn1Global = (fv.rotation())(cn1Local) + fv.translation(); - DD3Vector cn2Global = (fv.rotation())(cn2Local) + fv.translation(); - - const size_t nTest(3); - std::array refLocalPoints{{Local3DPoint(zeroLocal.x(), zeroLocal.y(), zeroLocal.z()), - Local3DPoint(cn1Local.x(), cn1Local.y(), cn1Local.z()), - Local3DPoint(cn2Local.x(), cn2Local.y(), cn2Local.z())}}; - std::array refGlobalPoints{{zeroGlobal, cn1Global, cn2Global}}; - - for (size_t iloop = 0; iloop < nTest; iloop++) { - // translate from crystal-local coordinates to module-local coordinates to get the row and column - - Local3DPoint cmRefLocal(convertMmToCm(refLocalPoints[iloop].x() / dd4hep::mm), - convertMmToCm(refLocalPoints[iloop].y() / dd4hep::mm), - convertMmToCm(refLocalPoints[iloop].z() / dd4hep::mm)); - Local3DPoint modLocal = topo.pixelToModuleLocalPoint(cmRefLocal, origRow, origCol); - const auto& thepixel = topo.pixelIndex(modLocal); - uint8_t recoRow = static_cast(thepixel.first); - uint8_t recoCol = static_cast(thepixel.second); - - if (origRow != recoRow || origCol != recoCol) { - std::stringstream warnmsg; - warnmsg << "DIFFERENCE row/col, orig= " << origRow << " " << origCol - << " reco= " << static_cast(recoRow) << " " << static_cast(recoCol) << "\n"; - spix << warnmsg.str(); - sunitt << warnmsg.str(); - recoRow = origRow; - recoCol = origCol; - } - - Local3DPoint recoRefLocal = topo.moduleToPixelLocalPoint(modLocal); - - // reconstructed global position from reco geometry and rectangluar MTD topology - - const auto& modGlobal = thedet->toGlobal(modLocal); - - const double deltax = convertCmToMm(modGlobal.x()) - (refGlobalPoints[iloop].x() / dd4hep::mm); - const double deltay = convertCmToMm(modGlobal.y()) - (refGlobalPoints[iloop].y() / dd4hep::mm); - const double deltaz = convertCmToMm(modGlobal.z()) - (refGlobalPoints[iloop].z() / dd4hep::mm); - - const double local_deltax = recoRefLocal.x() - cmRefLocal.x(); - const double local_deltay = recoRefLocal.y() - cmRefLocal.y(); - const double local_deltaz = recoRefLocal.z() - cmRefLocal.z(); - - spix << "Ref#" << iloop << " local= " << fround(refLocalPoints[iloop].x() / dd4hep::mm) - << fround(refLocalPoints[iloop].y() / dd4hep::mm) << fround(refLocalPoints[iloop].z() / dd4hep::mm) - << " Orig global= " << fround(refGlobalPoints[iloop].x() / dd4hep::mm) - << fround(refGlobalPoints[iloop].y() / dd4hep::mm) << fround(refGlobalPoints[iloop].z() / dd4hep::mm) - << " Reco global= " << fround(convertCmToMm(modGlobal.x())) << fround(convertCmToMm(modGlobal.y())) - << fround(convertCmToMm(modGlobal.z())) << " Delta= " << fround(deltax) << fround(deltay) << fround(deltaz) - << " Local Delta= " << fround(local_deltax) << fround(local_deltay) << fround(local_deltaz) << "\n"; - if (std::abs(deltax) > tolerance || std::abs(deltay) > tolerance || std::abs(deltaz) > tolerance) { - std::stringstream warnmsg; - warnmsg << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop << " dx/dy/dz= " << fround(deltax) - << fround(deltay) << fround(deltaz) << "\n"; - spix << warnmsg.str(); - sunitt << warnmsg.str(); - } - if (std::abs(local_deltax) > tolerance || std::abs(local_deltay) > tolerance || - std::abs(local_deltaz) > tolerance) { - std::stringstream warnmsg; - warnmsg << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop - << " local dx/dy/dz= " << fround(local_deltax) << fround(local_deltay) << fround(local_deltaz) - << "\n"; - spix << warnmsg.str(); - sunitt << warnmsg.str(); - } - } - - spix << "\n"; - edm::LogVerbatim("DD4hep_TestBTLPixelTopology") << spix.str(); - } - } while (fv.next(0)); - - if (!sunitt.str().empty()) { - edm::LogVerbatim("MTDUnitTest") << sunitt.str(); - } -} - -void DD4hep_TestBTLPixelTopology::theBaseNumber(cms::DDFilteredView& fv) { - thisN_.reset(); - thisN_.setSize(fv.navPos().size()); - - for (uint ii = 0; ii < fv.navPos().size(); ii++) { - std::string_view name((fv.geoHistory()[ii])->GetName()); - size_t ipos = name.rfind('_'); - thisN_.addLevel(name.substr(0, ipos), fv.copyNos()[ii]); -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("DD4hep_TestBTLPixelTopology") << ii << " " << name.substr(0, ipos) << " " << fv.copyNos()[ii]; -#endif - } -} - -DEFINE_FWK_MODULE(DD4hep_TestBTLPixelTopology); diff --git a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc new file mode 100644 index 0000000000000..3cbd0f3adbd36 --- /dev/null +++ b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc @@ -0,0 +1,517 @@ +#include +#include +#include +#include +#include +#include + +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/Exception.h" + +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/DDSpecParRegistryRcd.h" + +#include "DetectorDescription/DDCMS/interface/DDDetector.h" +#include "DetectorDescription/DDCMS/interface/DDSolidShapes.h" +#include "DetectorDescription/DDCMS/interface/DDFilteredView.h" +#include "DetectorDescription/DDCMS/interface/DDSpecParRegistry.h" + +#include "Geometry/MTDCommonData/interface/MTDTopologyMode.h" +#include "Geometry/MTDCommonData/interface/MTDBaseNumber.h" +#include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" +#include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h" + +#include "DataFormats/ForwardDetId/interface/BTLDetId.h" +#include "DataFormats/ForwardDetId/interface/ETLDetId.h" +#include "DataFormats/GeometrySurface/interface/MediumProperties.h" +#include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h" + +#include "Geometry/Records/interface/MTDTopologyRcd.h" +#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" +#include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" +#include "Geometry/MTDGeometryBuilder/interface/MTDGeomDetUnit.h" +#include "Geometry/Records/interface/MTDDigiGeometryRecord.h" +#include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" +#include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" + +#include "DataFormats/Math/interface/GeantUnits.h" +#include "DataFormats/Math/interface/Rounding.h" +#include "DataFormats/Math/interface/angle_units.h" +#include + +using namespace cms; +using namespace geant_units::operators; + +class DD4hep_TestPixelTopology : public edm::one::EDAnalyzer<> { +public: + explicit DD4hep_TestPixelTopology(const edm::ParameterSet&); + ~DD4hep_TestPixelTopology() = default; + + void beginJob() override {} + void analyze(edm::Event const&, edm::EventSetup const&) override; + void endJob() override {} + + void theBaseNumber(cms::DDFilteredView& fv); + +private: + void analyseRectangle(const GeomDetUnit& det); + void checkRotation(const GeomDetUnit& det); + + const edm::ESInputTag tag_; + std::string ddTopNodeName_; + + MTDBaseNumber thisN_; + BTLNumberingScheme btlNS_; + ETLNumberingScheme etlNS_; + + edm::ESGetToken dddetToken_; + edm::ESGetToken dspecToken_; + edm::ESGetToken mtdtopoToken_; + edm::ESGetToken mtdgeoToken_; + + std::stringstream sunitt; + constexpr static double tolerance{0.5e-3_mm}; +}; + +using DD3Vector = ROOT::Math::DisplacementVector3D>; +using angle_units::operators::convertRadToDeg; +using cms_rounding::roundIfNear0, cms_rounding::roundVecIfNear0; + +DD4hep_TestPixelTopology::DD4hep_TestPixelTopology(const edm::ParameterSet& iConfig) + : tag_(iConfig.getParameter("DDDetector")), + ddTopNodeName_(iConfig.getUntrackedParameter("ddTopNodeName", "BarrelTimingLayer")), + thisN_(), + btlNS_(), + etlNS_() { + dddetToken_ = esConsumes(tag_); + dspecToken_ = esConsumes(tag_); + mtdtopoToken_ = esConsumes(tag_); + mtdgeoToken_ = esConsumes(tag_); +} + +void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { + auto pDD = iSetup.getTransientHandle(dddetToken_); + + auto pSP = iSetup.getTransientHandle(dspecToken_); + + if (ddTopNodeName_ != "BarrelTimingLayer" && ddTopNodeName_ != "EndcapTimingLayer") { + edm::LogWarning("DD4hep_TestPixelTopology") << ddTopNodeName_ << "Not valid top MTD volume"; + return; + } + + if (!pDD.isValid()) { + edm::LogError("DD4hep_TestPixelTopology") << "ESTransientHandle pDD is not valid!"; + return; + } + if (pDD.description()) { + edm::LogVerbatim("DD4hep_TestPixelTopology") << pDD.description()->type_ << " label: " << pDD.description()->label_; + } else { + edm::LogPrint("DD4hep_TestPixelTopology") << "NO label found pDD.description() returned false."; + } + + if (!pSP.isValid()) { + edm::LogError("DD4hep_TestPixelTopology") << "ESTransientHandle pSP is not valid!"; + return; + } + + auto pTP = iSetup.getTransientHandle(mtdtopoToken_); + if (!pTP.isValid()) { + edm::LogError("DD4hep_TestPixelTopology") << "ESTransientHandle pTP is not valid!"; + return; + } else { + sunitt << "MTD topology mode = " << pTP.product()->getMTDTopologyMode() << " BtlLayout = " + << static_cast(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())) + << " EtlLayout = " + << static_cast(MTDTopologyMode::etlLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); + } + + auto pDG = iSetup.getTransientHandle(mtdgeoToken_); + if (!pDG.isValid()) { + edm::LogError("DD4hep_TestPixelTopology") << "ESTransientHandle pDG is not valid!"; + return; + } + + DDSpecParRefs specs; + std::string attribute("MtdDDStructure"), name; + bool isBarrel = false; + if (ddTopNodeName_ == "BarrelTimingLayer") { + sunitt << " BTL MTDGeometry:\n"; + name = "FastTimerHitsBarrel"; + isBarrel = true; + } else if (ddTopNodeName_ == "EndcapTimingLayer") { + sunitt << " ETL MTDGeometry:\n"; + name = "FastTimerHitsEndcap"; + } else { + edm::LogError("DD4hep_TestPixelTopology") << "No correct sensitive detector provided, abort" << ddTopNodeName_; + return; + } + pSP.product()->filter(specs, attribute, ddTopNodeName_); + attribute = "ReadOutName"; + pSP.product()->filter(specs, attribute, name); + + edm::LogVerbatim("DD4hep_TestPixelTopology").log([&specs](auto& log) { + log << "Filtered DD SpecPar Registry size: " << specs.size() << "\n"; + for (const auto& t : specs) { + log << "\nSpecPar " << t.first << ":\nRegExps { "; + for (const auto& ki : t.second->paths) + log << ki << " "; + log << "};\n "; + for (const auto& kl : t.second->spars) { + log << kl.first << " = "; + for (const auto& kil : kl.second) { + log << kil << " "; + } + log << "\n "; + } + } + }); + + DDFilteredView fv(pDD.product(), pDD.product()->description()->worldVolume()); + fv.mergedSpecifics(specs); + fv.firstChild(); + + bool write = false; + bool exitLoop = false; + uint32_t level(0); + uint32_t count(0); + uint32_t nSensBTL(0); + uint32_t nSensETL(0); + uint32_t oldgeoId(0); + + do { + theBaseNumber(fv); + + auto print_path = [&]() { + std::stringstream ss; + ss << " - OCMS[0]/"; + for (int ii = thisN_.getLevels() - 1; ii-- > 0;) { + ss << thisN_.getLevelName(ii); + ss << "["; + ss << thisN_.getCopyNumber(ii); + ss << "]/"; + } + return ss.str(); + }; + + if (level > 0 && fv.navPos().size() < level && count == 2) { + exitLoop = true; + } + if (dd4hep::dd::noNamespace(fv.name()) == ddTopNodeName_) { + write = true; + level = fv.navPos().size(); + count++; + } + + // Test only the desired subdetector + + if (exitLoop) { + break; + } + + if (write) { + // Actions for MTD volumes: search for sensitive detectors + + bool isSens = false; + + for (auto const& t : specs) { + for (auto const& kl : t.second->spars) { + if (kl.first == attribute) { + for (auto const& it : t.second->paths) { + if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(fv.name()), dd4hep::dd::realTopName(it))) { + isSens = true; + break; + } + } + } + } + } + + if (isSens) { + DetId theId, geoId; + BTLDetId theIdBTL, modIdBTL; + ETLDetId theIdETL, modIdETL; + if (isBarrel) { + theIdBTL = btlNS_.getUnitID(thisN_); + theId = theIdBTL; + geoId = theIdBTL.geographicalId(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); + modIdBTL = geoId; + } else { + theIdETL = etlNS_.getUnitID(thisN_); + theId = theIdETL; + geoId = theIdETL.geographicalId(); + modIdETL = geoId; + } + + const MTDGeomDet* thedet = pDG.product()->idToDet(geoId); + + if (dynamic_cast((thedet)) == nullptr) { + throw cms::Exception("DD4hep_TestPixelTopology") + << "GeographicalID: " << std::hex << geoId.rawId() << " (" << theId.rawId() + << ") with invalid MTDGeomDetUnit!" << std::dec << std::endl; + } + + bool isNewId(false); + if (geoId != oldgeoId) { + oldgeoId = geoId; + isNewId = true; + if (isBarrel) { + nSensBTL++; + } else { + nSensETL++; + } + const GeomDetUnit theDetUnit = *(dynamic_cast(thedet)); + + if (isBarrel) { + sunitt << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() + << " RU/mod= " << modIdBTL.globalRunit() << " / " << modIdBTL.module(); + } else { + sunitt << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() + << " disc/face/sec= " << modIdETL.nDisc() << " / " << modIdETL.discSide() << " / " + << modIdETL.sector() << " mod/typ/sens= " << modIdETL.module() << " / " << modIdETL.modType() + << " / " << modIdETL.sensor(); + } + analyseRectangle(theDetUnit); + } + + if (thedet == nullptr) { + throw cms::Exception("DD4hep_TestPixelTopology") << "GeographicalID: " << std::hex << geoId.rawId() << " (" + << theId.rawId() << ") is invalid!" << std::dec << std::endl; + } + const ProxyMTDTopology& topoproxy = static_cast(thedet->topology()); + const RectangularMTDTopology& topo = static_cast(topoproxy.specificTopology()); + + int origRow(-1), origCol(-1), recoRow(-1), recoCol(-1); + if (isBarrel) { + origRow = theIdBTL.row(topo.nrows()); + origCol = theIdBTL.column(topo.nrows()); + } + + // + // Test of positions for sensitive detectors + // + + auto fround = [&](double in) { + std::stringstream ss; + ss << std::fixed << std::setw(14) << roundIfNear0(in); + return ss.str(); + }; + + if (!dd4hep::isA(fv.solid())) { + throw cms::Exception("DD4hep_TestPixelTopology") << "MTD sensitive element not a DDBox"; + break; + } + dd4hep::Box mySens(fv.solid()); + + double xoffset(0.); + double yoffset(0.); + if (!isBarrel) { + xoffset = topo.gapxBorder() + 0.5 * topo.pitch().first; + yoffset = topo.gapyBorder() + 0.5 * topo.pitch().second; + } + DD3Vector zeroLocal(0., 0., 0.); + DD3Vector cn1Local(mySens.x() - xoffset, mySens.y() - yoffset, mySens.z()); + DD3Vector cn2Local(-mySens.x() + xoffset, -mySens.y() + yoffset, -mySens.z()); + DD3Vector zeroGlobal = (fv.rotation())(zeroLocal) + fv.translation(); + DD3Vector cn1Global = (fv.rotation())(cn1Local) + fv.translation(); + DD3Vector cn2Global = (fv.rotation())(cn2Local) + fv.translation(); + + const size_t nTest(3); + std::array refLocalPoints{{Local3DPoint(zeroLocal.x(), zeroLocal.y(), zeroLocal.z()), + Local3DPoint(cn1Local.x(), cn1Local.y(), cn1Local.z()), + Local3DPoint(cn2Local.x(), cn2Local.y(), cn2Local.z())}}; + std::array refGlobalPoints{{zeroGlobal, cn1Global, cn2Global}}; + + for (size_t iloop = 0; iloop < nTest; iloop++) { + Local3DPoint cmRefLocal(convertMmToCm(refLocalPoints[iloop].x() / dd4hep::mm), + convertMmToCm(refLocalPoints[iloop].y() / dd4hep::mm), + convertMmToCm(refLocalPoints[iloop].z() / dd4hep::mm)); + + Local3DPoint modLocal, recoRefLocal; + if (isBarrel) { + // if BTL translate from crystal-local coordinates to module-local coordinates to get the row and column + modLocal = topo.pixelToModuleLocalPoint(cmRefLocal, origRow, origCol); + recoRefLocal = topo.moduleToPixelLocalPoint(modLocal); + const auto& thepixel = topo.pixelIndex(modLocal); + recoRow = thepixel.first; + recoCol = thepixel.second; + + if (origRow != recoRow || origCol != recoCol) { + sunitt << "DIFFERENCE row/col, orig= " << origRow << " " << origCol << " reco= " << recoRow << " " + << recoCol << "\n"; + recoRow = origRow; + recoCol = origCol; + } + } else { + // if ETL find the pixel corresponding to the referemce point, compute the pixel coordinate and convert back for check + modLocal = cmRefLocal; + const auto& thepixel = topo.pixelIndex(modLocal); + Local3DPoint pixLocal = topo.moduleToPixelLocalPoint(modLocal); + recoRefLocal = topo.pixelToModuleLocalPoint(pixLocal, thepixel.first, thepixel.second); + recoRow = thepixel.first; + recoCol = thepixel.second; + } + + // reconstructed global position from reco geometry and rectangluar MTD topology + + const auto& modGlobal = thedet->toGlobal(modLocal); + + if (isNewId && iloop == nTest - 1) { + sunitt << "row/col= " << recoRow << " / " << recoCol << " local pos= " << std::fixed << std::setw(14) + << roundVecIfNear0(modLocal) << " global pos= " << std::setw(14) << roundVecIfNear0(modGlobal) + << "\n"; + } + + const double deltax = convertCmToMm(modGlobal.x()) - (refGlobalPoints[iloop].x() / dd4hep::mm); + const double deltay = convertCmToMm(modGlobal.y()) - (refGlobalPoints[iloop].y() / dd4hep::mm); + const double deltaz = convertCmToMm(modGlobal.z()) - (refGlobalPoints[iloop].z() / dd4hep::mm); + + const double local_deltax = recoRefLocal.x() - cmRefLocal.x(); + const double local_deltay = recoRefLocal.y() - cmRefLocal.y(); + const double local_deltaz = recoRefLocal.z() - cmRefLocal.z(); + + if (std::abs(deltax) > tolerance || std::abs(deltay) > tolerance || std::abs(deltaz) > tolerance || + std::abs(local_deltax) > tolerance || std::abs(local_deltay) > tolerance || + std::abs(local_deltaz) > tolerance) { + sunitt << print_path() << "\n"; + if (isBarrel) { + sunitt << "rawId= " << theIdBTL.rawId() << " geoId= " << geoId.rawId() + << " side/rod= " << theIdBTL.mtdSide() << " / " << theIdBTL.mtdRR() + << " RU= " << theIdBTL.globalRunit() << " module/geomodule= " << theIdBTL.module() << " / " + << static_cast(geoId).module() << " crys= " << theIdBTL.crystal() + << " BTLDetId row/col= " << origRow << " / " << origCol << "\n"; + } else { + sunitt << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() + << " disc/face/sec= " << modIdETL.nDisc() << " / " << modIdETL.discSide() << " / " + << modIdETL.sector() << " mod/typ/sens= " << modIdETL.module() << " / " << modIdETL.modType() + << " / " << modIdETL.sensor() << "\n"; + } + + sunitt << "Ref#" << iloop << " local= " << fround(refLocalPoints[iloop].x() / dd4hep::mm) + << fround(refLocalPoints[iloop].y() / dd4hep::mm) << fround(refLocalPoints[iloop].z() / dd4hep::mm) + << " Orig global= " << fround(refGlobalPoints[iloop].x() / dd4hep::mm) + << fround(refGlobalPoints[iloop].y() / dd4hep::mm) << fround(refGlobalPoints[iloop].z() / dd4hep::mm) + << " Reco global= " << fround(convertCmToMm(modGlobal.x())) << fround(convertCmToMm(modGlobal.y())) + << fround(convertCmToMm(modGlobal.z())) << " Delta= " << fround(deltax) << fround(deltay) + << fround(deltaz) << " Local Delta= " << fround(local_deltax) << fround(local_deltay) + << fround(local_deltaz) << "\n"; + + if (std::abs(deltax) > tolerance || std::abs(deltay) > tolerance || std::abs(deltaz) > tolerance) { + sunitt << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop << " dx/dy/dz= " << fround(deltax) + << fround(deltay) << fround(deltaz) << "\n"; + } + if (std::abs(local_deltax) > tolerance || std::abs(local_deltay) > tolerance || + std::abs(local_deltaz) > tolerance) { + sunitt << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop + << " local dx/dy/dz= " << fround(local_deltax) << fround(local_deltay) << fround(local_deltaz) + << "\n"; + } + } + } + } + } + } while (fv.next(0)); + + if (isBarrel && nSensBTL != pDG.product()->detsBTL().size()) { + sunitt << "DIFFERENCE #ideal = " << nSensBTL << " #reco = " << pDG.product()->detsBTL().size() + << " BTL module numbers are not matching!"; + } + + if (!isBarrel && nSensETL != pDG.product()->detsETL().size()) { + sunitt << "DIFFERENCE #ideal = " << nSensETL << " #reco = " << pDG.product()->detsBTL().size() + << " ETL module numbers are not matching!"; + } + + if (!sunitt.str().empty()) { + edm::LogVerbatim("DD4hep_TestPixelTopology") << sunitt.str(); + edm::LogVerbatim("MTDUnitTest") << sunitt.str(); + } +} + +void DD4hep_TestPixelTopology::theBaseNumber(cms::DDFilteredView& fv) { + thisN_.reset(); + thisN_.setSize(fv.navPos().size()); + + for (uint ii = 0; ii < fv.navPos().size(); ii++) { + std::string_view name((fv.geoHistory()[ii])->GetName()); + size_t ipos = name.rfind('_'); + thisN_.addLevel(name.substr(0, ipos), fv.copyNos()[ii]); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("DD4hep_TestPixelTopology") << ii << " " << name.substr(0, ipos) << " " << fv.copyNos()[ii]; +#endif + } +} + +void DD4hep_TestPixelTopology::analyseRectangle(const GeomDetUnit& det) { + const double safety = 0.9999; + + const BoundPlane& p = det.specificSurface(); + const Bounds& bounds = det.surface().bounds(); + const RectangularPlaneBounds* tb = dynamic_cast(&bounds); + if (tb == nullptr) + return; // not trapezoidal + + const GlobalPoint& pos = det.position(); + double length = tb->length(); + double width = tb->width(); + double thickness = tb->thickness(); + + GlobalVector yShift = det.surface().toGlobal(LocalVector(0, 0, safety * length / 2.)); + GlobalPoint outerMiddle = pos + yShift; + GlobalPoint innerMiddle = pos + (-1. * yShift); + if (outerMiddle.perp() < innerMiddle.perp()) + std::swap(outerMiddle, innerMiddle); + + auto fround = [&](double in) { + std::stringstream ss; + ss << std::fixed << std::setw(14) << roundIfNear0(in); + return ss.str(); + }; + + auto fvecround = [&](GlobalPoint vecin) { + std::stringstream ss; + ss << std::fixed << std::setw(14) << roundVecIfNear0(vecin); + return ss.str(); + }; + + sunitt << " " << fvecround(pos) << " R= " << fround(std::sqrt(pos.x() * pos.x() + pos.y() * pos.y())) + << " phi= " << fround(convertRadToDeg(pos.phi())) << " outerMiddle " << fvecround(outerMiddle) << "\n" + << " l/w/t " << fround(length) << " / " << fround(width) << " / " << fround(thickness) + << " RadLeng= " << p.mediumProperties().radLen() << " Xi= " << p.mediumProperties().xi() + << " det center inside bounds? " << tb->inside(det.surface().toLocal(pos)) << "\n"; + + checkRotation(det); +} + +void DD4hep_TestPixelTopology::checkRotation(const GeomDetUnit& det) { + const double eps = std::numeric_limits::epsilon(); + static int first = 0; + if (first == 0) { + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "numeric_limits::epsilon() " << std::numeric_limits::epsilon(); + first = 1; + } + + const Surface::RotationType& rot(det.surface().rotation()); + GlobalVector a(rot.xx(), rot.xy(), rot.xz()); + GlobalVector b(rot.yx(), rot.yy(), rot.yz()); + GlobalVector c(rot.zx(), rot.zy(), rot.zz()); + GlobalVector cref = a.cross(b); + GlobalVector aref = b.cross(c); + GlobalVector bref = c.cross(a); + if ((a - aref).mag() > eps || (b - bref).mag() > eps || (c - cref).mag() > eps) { + sunitt << " Rotation not good by cross product: " << (a - aref).mag() << ", " << (b - bref).mag() << ", " + << (c - cref).mag() << " for det at pos " << det.surface().position() << "\n"; + } + if (fabs(a.mag() - 1.) > eps || fabs(b.mag() - 1.) > eps || fabs(c.mag() - 1.) > eps) { + sunitt << " Rotation not good by bector mag: " << (a).mag() << ", " << (b).mag() << ", " << (c).mag() + << " for det at pos " << det.surface().position() << "\n"; + } +} + +DEFINE_FWK_MODULE(DD4hep_TestPixelTopology); diff --git a/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc b/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc index dc80d7eeb85d7..cc5852034ac6d 100644 --- a/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc +++ b/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc @@ -40,8 +40,6 @@ class MTDDigiGeometryAnalyzer : public edm::one::EDAnalyzer<> { void endJob() override {} private: - void analyseRectangle(const GeomDetUnit& det); - void checkRotation(const GeomDetUnit& det); void checkRectangularMTDTopology(const RectangularMTDTopology&); void checkPixelsAcceptance(const GeomDetUnit& det); @@ -62,161 +60,51 @@ void MTDDigiGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::Event // get the MTDGeometry // auto pDD = iSetup.getTransientHandle(mtdgeoToken_); - edm::LogInfo("MTDDigiGeometryAnalyzer") - << "Geometry node for MTDGeom is " << &(*pDD) << "\n" - << " # detectors = " << pDD->detUnits().size() << "\n" - << " # types = " << pDD->detTypes().size() << "\n" - << " # BTL dets = " << pDD->detsBTL().size() << "\n" - << " # ETL dets = " << pDD->detsETL().size() << "\n" - << " # layers " << pDD->geomDetSubDetector(1) << " = " << pDD->numberOfLayers(1) << "\n" - << " # layers " << pDD->geomDetSubDetector(2) << " = " << pDD->numberOfLayers(2) << "\n"; - sunitt << std::fixed << std::setw(7) << pDD->detUnits().size() << std::setw(7) << pDD->detTypes().size() << "\n"; - for (auto const& it : pDD->detUnits()) { - if (dynamic_cast((it)) != nullptr) { - const BoundPlane& p = (dynamic_cast((it)))->specificSurface(); - const MTDDetId mtdId(it->geographicalId()); - std::stringstream moduleLabel; - if (mtdId.mtdSubDetector() == 1) { - const BTLDetId btlId(it->geographicalId()); - moduleLabel << " BTL side " << btlId.mtdSide() << " Rod " << btlId.mtdRR() << " type/RU " << btlId.modType() - << "/" << btlId.runit() << " mod " << btlId.module(); - } else if (mtdId.mtdSubDetector() == 2) { - const ETLDetId etlId(it->geographicalId()); - moduleLabel << " ETL side " << mtdId.mtdSide() << " Disc/Side/Sector " << etlId.nDisc() << " " - << etlId.discSide() << " " << etlId.sector(); - } else { - edm::LogWarning("MTDDigiGeometryanalyzer") << (it->geographicalId()).rawId() << " unknown MTD subdetector!"; - } - edm::LogVerbatim("MTDDigiGeometryAnalyzer") - << "---------------------------------------------------------- \n" - << it->geographicalId().rawId() << moduleLabel.str() << " RadLeng Pixel " << p.mediumProperties().radLen() - << " Xi Pixel " << p.mediumProperties().xi(); - - const GeomDetUnit theDet = *(dynamic_cast(it)); - analyseRectangle(theDet); - } - } + sunitt << "MTDGeometry:\n" + << " # detectors = " << pDD->detUnits().size() << "\n" + << " # types = " << pDD->detTypes().size() << "\n" + << " # BTL dets = " << pDD->detsBTL().size() << "\n" + << " # ETL dets = " << pDD->detsETL().size() << "\n" + << " # layers " << pDD->geomDetSubDetector(1) << " = " << pDD->numberOfLayers(1) << "\n" + << " # layers " << pDD->geomDetSubDetector(2) << " = " << pDD->numberOfLayers(2) << "\n" + << " # dets = " << pDD->dets().size() << "\n" + << " # detUnitIds = " << pDD->detUnitIds().size() << "\n" + << " # detIds = " << pDD->detIds().size() << "\n"; for (auto const& it : pDD->detTypes()) { if (dynamic_cast((it)) != nullptr) { const PixelTopology& p = (dynamic_cast((it)))->specificTopology(); const RectangularMTDTopology& topo = static_cast(p); auto pitchval = topo.pitch(); - edm::LogVerbatim("MTDDigiGeometryAnalyzer") - << "\n Subdetector " << it->subDetector() << " MTD Det " << it->name() << "\n" - << " Rows " << topo.nrows() << " Columns " << topo.ncolumns() << " ROCS X " << topo.rocsX() - << " ROCS Y " << topo.rocsY() << " Rows/ROC " << topo.rowsperroc() << " Cols/ROC " << topo.colsperroc() - << " Pitch X " << pitchval.first << " Pitch Y " << pitchval.second << " Sensor Interpad X " - << topo.gapxInterpad() << " Sensor Interpad Y " << topo.gapyInterpad() << " Sensor Border X " - << topo.gapxBorder() << " Sensor Border Y " << topo.gapyBorder(); - sunitt << std::fixed << std::setw(7) << it->subDetector() << std::setw(4) << topo.nrows() << std::setw(4) - << topo.ncolumns() << std::setw(4) << std::setw(4) << topo.rocsX() << std::setw(4) << topo.rocsY() - << std::setw(4) << topo.rowsperroc() << std::setw(4) << topo.colsperroc() << std::setw(10) - << pitchval.first << std::setw(10) << pitchval.second << std::setw(10) << topo.gapxInterpad() - << std::setw(10) << topo.gapyInterpad() << std::setw(10) << topo.gapxBorder() << std::setw(10) - << topo.gapyBorder() << "\n"; + sunitt << "\n Subdetector " << it->subDetector() << " MTD Det " << it->name() << "\n" + << " Rows " << topo.nrows() << " Columns " << topo.ncolumns() << " ROCS X " << topo.rocsX() + << " ROCS Y " << topo.rocsY() << " Rows/ROC " << topo.rowsperroc() << " Cols/ROC " << topo.colsperroc() + << " Pitch X " << pitchval.first << " Pitch Y " << pitchval.second << " Sensor Interpad X " + << topo.gapxInterpad() << " Sensor Interpad Y " << topo.gapyInterpad() << " Sensor Border X " + << topo.gapxBorder() << " Sensor Border Y " << topo.gapyBorder() << "\n"; checkRectangularMTDTopology(topo); } } - edm::LogInfo("MTDDigiGeometryAnalyzer") << "Acceptance of BTL module:"; + sunitt << "\nAcceptance of BTL module:"; auto const& btldet = *(dynamic_cast(pDD->detsBTL().front())); checkPixelsAcceptance(btldet); - edm::LogInfo("MTDDigiGeometryAnalyzer") << "Acceptance of ETL module:"; + sunitt << "\nAcceptance of ETL module:"; auto const& etldet = *(dynamic_cast(pDD->detsETL().front())); checkPixelsAcceptance(etldet); - edm::LogInfo("MTDDigiGeometryAnalyzer") << "Additional MTD geometry content:" - << "\n" - << " # dets = " << pDD->dets().size() << "\n" - << " # detUnitIds = " << pDD->detUnitIds().size() << "\n" - << " # detIds = " << pDD->detIds().size() << "\n"; - sunitt << std::fixed << std::setw(7) << pDD->dets().size() << std::setw(7) << pDD->detUnitIds().size() << std::setw(7) - << pDD->detIds().size() << "\n"; - + edm::LogVerbatim("MTDDigiGeometryAnalyzer") << sunitt.str(); edm::LogVerbatim("MTDUnitTest") << sunitt.str(); } void MTDDigiGeometryAnalyzer::checkRectangularMTDTopology(const RectangularMTDTopology& topo) { - std::stringstream pixelinfo; - pixelinfo << "Pixel center location:\n"; + sunitt << "Pixel center location:\n"; LocalPoint center(0, 0, 0); for (int r = 0; r < topo.nrows(); r++) { for (int c = 0; c < topo.ncolumns(); c++) { - sunitt << r << " " << c << " " << topo.pixelToModuleLocalPoint(center, r, c) << "\n"; - pixelinfo << r << " " << c << " " << topo.pixelToModuleLocalPoint(center, r, c) << "\n"; + sunitt << std::setw(7) << r << std::setw(7) << c << " " << topo.pixelToModuleLocalPoint(center, r, c) << "\n"; } } - edm::LogVerbatim("MTDDigiGeometryAnalyzer") << pixelinfo.str(); -} - -void MTDDigiGeometryAnalyzer::analyseRectangle(const GeomDetUnit& det) { - const double safety = 0.9999; - - const Bounds& bounds = det.surface().bounds(); - const RectangularPlaneBounds* tb = dynamic_cast(&bounds); - if (tb == nullptr) - return; // not trapezoidal - - const GlobalPoint& pos = det.position(); - double length = tb->length(); - double width = tb->width(); - double thickness = tb->thickness(); - - GlobalVector yShift = det.surface().toGlobal(LocalVector(0, 0, safety * length / 2.)); - GlobalPoint outerMiddle = pos + yShift; - GlobalPoint innerMiddle = pos + (-1. * yShift); - if (outerMiddle.perp() < innerMiddle.perp()) - std::swap(outerMiddle, innerMiddle); - - auto fround = [&](double in) { - std::stringstream ss; - ss << std::fixed << std::setw(14) << roundIfNear0(in); - return ss.str(); - }; - - auto fvecround = [&](GlobalPoint vecin) { - std::stringstream ss; - ss << std::fixed << std::setw(14) << roundVecIfNear0(vecin); - return ss.str(); - }; - - edm::LogVerbatim("MTDDigiGeometryAnalyzer") - << "Det at pos " << fvecround(pos) << " radius " << fround(std::sqrt(pos.x() * pos.x() + pos.y() * pos.y())) - << " has length " << fround(length) << " width " << fround(width) << " thickness " << fround(thickness) << "\n" - << "det center inside bounds? " << tb->inside(det.surface().toLocal(pos)) << "\n" - << "outerMiddle " << fvecround(outerMiddle); - sunitt << det.geographicalId().rawId() << fvecround(pos) << fround(length) << fround(width) << fround(thickness) - << tb->inside(det.surface().toLocal(pos)) << fvecround(outerMiddle) << "\n"; - - checkRotation(det); -} - -void MTDDigiGeometryAnalyzer::checkRotation(const GeomDetUnit& det) { - const double eps = std::numeric_limits::epsilon(); - static int first = 0; - if (first == 0) { - edm::LogVerbatim("MTDDigiGeometryAnalyzer") - << "numeric_limits::epsilon() " << std::numeric_limits::epsilon(); - first = 1; - } - - const Surface::RotationType& rot(det.surface().rotation()); - GlobalVector a(rot.xx(), rot.xy(), rot.xz()); - GlobalVector b(rot.yx(), rot.yy(), rot.yz()); - GlobalVector c(rot.zx(), rot.zy(), rot.zz()); - GlobalVector cref = a.cross(b); - GlobalVector aref = b.cross(c); - GlobalVector bref = c.cross(a); - if ((a - aref).mag() > eps || (b - bref).mag() > eps || (c - cref).mag() > eps) { - edm::LogWarning("MTDDigiGeometryAnalyzer") - << " Rotation not good by cross product: " << (a - aref).mag() << ", " << (b - bref).mag() << ", " - << (c - cref).mag() << " for det at pos " << det.surface().position(); - } - if (fabs(a.mag() - 1.) > eps || fabs(b.mag() - 1.) > eps || fabs(c.mag() - 1.) > eps) { - edm::LogWarning("MTDDigiGeometryAnalyzer") << " Rotation not good by bector mag: " << (a).mag() << ", " << (b).mag() - << ", " << (c).mag() << " for det at pos " << det.surface().position(); - } } void MTDDigiGeometryAnalyzer::checkPixelsAcceptance(const GeomDetUnit& det) { @@ -227,7 +115,7 @@ void MTDDigiGeometryAnalyzer::checkPixelsAcceptance(const GeomDetUnit& det) { double length = tb->length(); double width = tb->width(); - edm::LogVerbatim("MTDDigiGeometryAnalyzer") << "X (width) = " << width << " Y (length) = " << length; + sunitt << " X (width) = " << width << " Y (length) = " << length; const ProxyMTDTopology& topoproxy = static_cast(det.topology()); const RectangularMTDTopology& topo = static_cast(topoproxy.specificTopology()); @@ -246,7 +134,7 @@ void MTDDigiGeometryAnalyzer::checkPixelsAcceptance(const GeomDetUnit& det) { } double acc = (double)inpixel / (double)maxindex; double accerr = std::sqrt(acc * (1. - acc) / (double)maxindex); - edm::LogVerbatim("MTDDigiGeometryAnalyzer") << "Acceptance: " << acc << " +/- " << accerr; + sunitt << " Acceptance: " << acc << " +/- " << accerr; } //define this as a plug-in diff --git a/Geometry/MTDGeometryBuilder/test/dd4hep_mtd_cfg.py b/Geometry/MTDGeometryBuilder/test/dd4hep_mtd_cfg.py deleted file mode 100644 index 42df806bdad16..0000000000000 --- a/Geometry/MTDGeometryBuilder/test/dd4hep_mtd_cfg.py +++ /dev/null @@ -1,64 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -import Configuration.Geometry.defaultPhase2ConditionsEra_cff as _settings -_PH2_GLOBAL_TAG, _PH2_ERA = _settings.get_era_and_conditions(_settings.DEFAULT_VERSION) - -from Configuration.ProcessModifiers.dd4hep_cff import dd4hep - -process = cms.Process("GeometryTest",_PH2_ERA,dd4hep) - -process.source = cms.Source("EmptyIOVSource", - lastValue = cms.uint64(1), - timetype = cms.string('runnumber'), - firstValue = cms.uint64(1), - interval = cms.uint64(1) - ) - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(1) -) - -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.MessageLogger.cerr.threshold = cms.untracked.string('INFO') -process.MessageLogger.cerr.INFO = cms.untracked.PSet( - limit = cms.untracked.int32(0) -) -process.MessageLogger.cerr.MTDDigiGeometryAnalyzer = cms.untracked.PSet( - limit = cms.untracked.int32(-1) -) -process.MessageLogger.cerr.DD4hep_TestBTLPixelTopology = cms.untracked.PSet( - limit = cms.untracked.int32(-1) -) -process.MessageLogger.files.mtdGeometryDD4hep = cms.untracked.PSet( - DEBUG = cms.untracked.PSet( - limit = cms.untracked.int32(0) - ), - ERROR = cms.untracked.PSet( - limit = cms.untracked.int32(0) - ), - FWKINFO = cms.untracked.PSet( - limit = cms.untracked.int32(0) - ), - INFO = cms.untracked.PSet( - limit = cms.untracked.int32(0) - ), - MTDUnitTest = cms.untracked.PSet( - limit = cms.untracked.int32(-1) - ), - WARNING = cms.untracked.PSet( - limit = cms.untracked.int32(0) - ), - noLineBreaks = cms.untracked.bool(True), - threshold = cms.untracked.string('INFO') -) - -process.load("Configuration.Geometry.GeometryDD4hepExtendedRun4DefaultReco_cff") - -process.Timing = cms.Service("Timing") - -process.prod = cms.EDAnalyzer("MTDDigiGeometryAnalyzer") -process.prod1 = cms.EDAnalyzer("DD4hep_TestBTLPixelTopology", - DDDetector = cms.ESInputTag('',''), -) - -process.p1 = cms.Path(process.prod+process.prod1) diff --git a/Geometry/MTDGeometryBuilder/test/mtd_cfg.py b/Geometry/MTDGeometryBuilder/test/mtd_cfg.py index 59e7243471ceb..54cb0715bc0d5 100644 --- a/Geometry/MTDGeometryBuilder/test/mtd_cfg.py +++ b/Geometry/MTDGeometryBuilder/test/mtd_cfg.py @@ -3,7 +3,9 @@ import Configuration.Geometry.defaultPhase2ConditionsEra_cff as _settings _PH2_GLOBAL_TAG, _PH2_ERA = _settings.get_era_and_conditions(_settings.DEFAULT_VERSION) -process = cms.Process("GeometryTest", _PH2_ERA) +from Configuration.ProcessModifiers.dd4hep_cff import dd4hep + +process = cms.Process("GeometryTest",_PH2_ERA,dd4hep) process.source = cms.Source("EmptyIOVSource", lastValue = cms.uint64(1), @@ -22,9 +24,15 @@ limit = cms.untracked.int32(0) ) process.MessageLogger.cerr.MTDDigiGeometryAnalyzer = cms.untracked.PSet( - limit = cms.untracked.int32(-1) + limit = cms.untracked.int32(0) +) +process.MessageLogger.cerr.DD4hep_TestPixelTopology = cms.untracked.PSet( + limit = cms.untracked.int32(0) +) +process.MessageLogger.cerr.MTDUnitTest = cms.untracked.PSet( + limit = cms.untracked.int32(0) ) -process.MessageLogger.files.mtdGeometryDDD = cms.untracked.PSet( +process.MessageLogger.files.mtdGeometryDD4hep = cms.untracked.PSet( DEBUG = cms.untracked.PSet( limit = cms.untracked.int32(0) ), @@ -47,18 +55,18 @@ threshold = cms.untracked.string('INFO') ) -process.load("Configuration.Geometry.GeometryExtendedRun4Default_cff") - -process.load("Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff") - -process.load("Geometry.MTDNumberingBuilder.mtdTopology_cfi") -process.load("Geometry.MTDGeometryBuilder.mtdParameters_cff") - -process.load("Geometry.MTDGeometryBuilder.mtdGeometry_cfi") -process.mtdGeometry.applyAlignment = cms.bool(False) +process.load("Configuration.Geometry.GeometryDD4hepExtendedRun4DefaultReco_cff") process.Timing = cms.Service("Timing") process.prod = cms.EDAnalyzer("MTDDigiGeometryAnalyzer") +process.prod1 = cms.EDAnalyzer("DD4hep_TestPixelTopology", + DDDetector = cms.ESInputTag('',''), + ddTopNodeName = cms.untracked.string('BarrelTimingLayer') +) +process.prod2 = cms.EDAnalyzer("DD4hep_TestPixelTopology", + DDDetector = cms.ESInputTag('',''), + ddTopNodeName = cms.untracked.string('EndcapTimingLayer') +) -process.p1 = cms.Path(process.prod) +process.p1 = cms.Path(cms.wait(process.prod)+cms.wait(process.prod1)+process.prod2) diff --git a/Geometry/MTDGeometryBuilder/test/runTest.sh b/Geometry/MTDGeometryBuilder/test/runTest.sh index bc2127a23aed7..825b1813daa39 100755 --- a/Geometry/MTDGeometryBuilder/test/runTest.sh +++ b/Geometry/MTDGeometryBuilder/test/runTest.sh @@ -14,7 +14,6 @@ function checkDiff { TEST_DIR=$CMSSW_BASE/src/Geometry/MTDGeometryBuilder/test F1=${TEST_DIR}/mtd_cfg.py -F2=${TEST_DIR}/dd4hep_mtd_cfg.py REF_FILE="Geometry/TestReference/data/mtdGeometryRef.log.gz" REF="" @@ -26,8 +25,7 @@ for d in $(echo $CMSSW_SEARCH_PATH | tr ':' '\n') ; do done [ -z $REF ] && exit 1 -FILE1=mtdGeometryDDD.log -FILE2=mtdGeometryDD4hep.log +FILE1=mtdGeometryDD4hep.log LOG=mtdgblog DIF=mtdgbdif @@ -39,11 +37,3 @@ rm -f $LOG $DIF $FILE1 cmsRun $F1 >& $LOG || die "Failure using cmsRun $F1" $? gzip -f $FILE1 || die "$FILE1 compression fail" $? (zdiff $FILE1.gz $REF >& $DIF || [ -s $DIF ] && checkDiff $DIF || echo "OK") || die "Failure in comparison for $FILE1" $? - -rm -f $LOG $DIF $FILE2 -echo "===== Test \"cmsRun dd4hep_mtd_cfg.py\" ====" - -cmsRun $F2 >& $LOG || die "Failure using cmsRun $F2" $? -gzip -f $FILE2 || die "$FILE2 compression fail" $? -(zdiff $FILE2.gz $REF >& $DIF || [ -s $DIF ] && checkDiff $DIF || echo "OK") || die "Failure in comparison for $FILE2" $? - From 9ce34fe8fe1a0d17ccb52b97bc7c9c43d04c1619 Mon Sep 17 00:00:00 2001 From: Patin Inkaew Date: Tue, 12 Nov 2024 18:36:19 +0100 Subject: [PATCH 024/418] add relval_nano workflows for @Prompt+@Scout --- .../PyReleaseValidation/python/relval_nano.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Configuration/PyReleaseValidation/python/relval_nano.py b/Configuration/PyReleaseValidation/python/relval_nano.py index 2a263de0607a0..4ee1f5e2242d9 100644 --- a/Configuration/PyReleaseValidation/python/relval_nano.py +++ b/Configuration/PyReleaseValidation/python/relval_nano.py @@ -200,6 +200,9 @@ def subnext(self): steps['scoutingNANO_mc14.0'] = merge([{'-s': 'NANO:@Scout'}, steps['NANO_mc14.0']]) +steps['scoutingNANO_withPrompt_mc14.0'] = merge([{'-s': 'NANO:@Prompt+@Scout'}, + steps['NANO_mc14.0']]) + # 14.0 workflows -- data lumis_Run2024D = {380306: [[28, 273]]} steps['MuonEG2024MINIAOD14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D, @@ -208,6 +211,9 @@ def subnext(self): steps['ScoutingPFRun32024RAW14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D, dataSet='/ScoutingPFRun3/Run2024D-v1/HLTSCOUT')} +steps['ScoutingPFMonitor2024MINIAOD14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D, + dataSet='/ScoutingPFMonitor/Run2024D-PromptReco-v1/MINIAOD')} + steps['ZMuSkim2024RAWRECO14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D, dataSet='/Muon0/Run2024D-ZMu-PromptReco-v1/RAW-RECO')} @@ -244,6 +250,9 @@ def subnext(self): steps['scoutingNANO_data14.0'] = merge([{'-s': 'NANO:@Scout'}, steps['NANO_data14.0']]) +steps['scoutingNANO_withPrompt_data14.0'] = merge([{'-s': 'NANO:@Prompt+@Scout', '--customise_commands': '"process.options.TryToContinue = cms.untracked.vstring(\'ProductNotFound\')"'}, + steps['NANO_data14.0']]) + # DPG custom NANO steps['muDPGNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,NANO:@MUDPG', '-n': '100'}, steps['NANO_data14.0']]) @@ -336,6 +345,7 @@ def subnext(self): workflows[_wfn()] = ['jmeNANOrePuppimc140X', ['TTbarMINIAOD14.0', 'jmeNANO_rePuppi_mc14.0']] workflows[_wfn()] = ['lepTrackInfoNANOmc140X', ['TTbarMINIAOD14.0', 'lepTrackInfoNANO_mc14.0']] workflows[_wfn()] = ['ScoutingNANOmc140X', ['TTbarMINIAOD14.0', 'scoutingNANO_mc14.0']] +workflows[_wfn()] = ['ScoutingNANOwithPromptmc140X', ['TTbarMINIAOD14.0', 'scoutingNANO_withPrompt_mc14.0']] # POG/PAG custom NANOs, data _wfn.subnext() @@ -346,6 +356,7 @@ def subnext(self): workflows[_wfn()] = ['jmeNANOrePuppidata140Xrun3', ['MuonEG2024MINIAOD14.0', 'jmeNANO_rePuppi_data14.0']] workflows[_wfn()] = ['lepTrackInfoNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'lepTrackInfoNANO_data14.0']] workflows[_wfn()] = ['ScoutingNANOdata140Xrun3', ['ScoutingPFRun32024RAW14.0', 'scoutingNANO_data14.0']] +workflows[_wfn()] = ['ScoutingNANOwithPromptdata140Xrun3', ['ScoutingPFMonitor2024MINIAOD14.0', 'scoutingNANO_withPrompt_data14.0']] # DPG custom NANOs, data _wfn.subnext() From a07ea53e1386725b09a250d3aea94022041102e3 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 12 Nov 2024 23:23:38 +0100 Subject: [PATCH 025/418] Speed up filtering of sensitive volume --- .../test/DD4hep_TestPixelTopology.cc | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc index 3cbd0f3adbd36..156503f34650d 100644 --- a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc +++ b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc @@ -172,6 +172,17 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even } }); + std::vector filterName; + for (auto const& t : specs) { + for (auto const& kl : t.second->spars) { + if (kl.first == attribute) { + for (auto const& it : t.second->paths) { + filterName.emplace_back(it); + } + } + } + } + DDFilteredView fv(pDD.product(), pDD.product()->description()->worldVolume()); fv.mergedSpecifics(specs); fv.firstChild(); @@ -219,16 +230,10 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even bool isSens = false; - for (auto const& t : specs) { - for (auto const& kl : t.second->spars) { - if (kl.first == attribute) { - for (auto const& it : t.second->paths) { - if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(fv.name()), dd4hep::dd::realTopName(it))) { - isSens = true; - break; - } - } - } + for (auto const& it : filterName) { + if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(fv.name()), dd4hep::dd::realTopName(it))) { + isSens = true; + break; } } From d112936fcfae380c526fd207013d5cdf5b4606f1 Mon Sep 17 00:00:00 2001 From: Wahid Redjeb Date: Wed, 13 Nov 2024 11:23:21 +0100 Subject: [PATCH 026/418] add GlobalPSet for Linking plugin --- .../hltTiclTracksterLinksL1Seeded_cfi.py | 50 +------------------ .../modules/hltTiclTracksterLinks_cfi.py | 50 +------------------ .../psets/hltTiclTracksterLinksPSet_cfi.py | 50 +++++++++++++++++++ 3 files changed, 54 insertions(+), 96 deletions(-) create mode 100644 HLTrigger/Configuration/python/HLT_75e33/psets/hltTiclTracksterLinksPSet_cfi.py diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksL1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksL1Seeded_cfi.py index a5c9f73b188d9..d89b5ea6233a4 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksL1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinksL1Seeded_cfi.py @@ -1,58 +1,12 @@ import FWCore.ParameterSet.Config as cms +from ..psets.hltTiclTracksterLinksPSet_cfi import hltTiclTracksterLinksPSet hltTiclTracksterLinksL1Seeded = cms.EDProducer("TracksterLinksProducer", detector = cms.string('HGCAL'), layer_clusters = cms.InputTag("hltHgcalMergeLayerClustersL1Seeded"), layer_clustersTime = cms.InputTag("hltHgcalMergeLayerClustersL1Seeded","timeLayerCluster"), inferenceAlgo = cms.string('TracksterInferenceByDNN'), - linkingPSet = cms.PSet( - cylinder_radius_sqr_split = cms.double(9), - proj_distance_split = cms.double(5), - track_time_quality_threshold = cms.double(0.5), - min_num_lcs = cms.uint32(15), - min_trackster_energy = cms.double(20), - pca_quality_th = cms.double(0.85), - dot_prod_th = cms.double(0.97), - deltaRxy = cms.double(4), - lower_boundary = cms.vdouble( - 20, - 10 - ), - upper_boundary = cms.vdouble( - 150, - 100 - ), - upper_distance_projective_sqr = cms.vdouble( - 30, - 60 - ), - lower_distance_projective_sqr = cms.vdouble( - 30, - 60 - ), - min_distance_z = cms.vdouble( - 35, - 35 - ), - upper_distance_projective_sqr_closest_points = cms.vdouble( - 5, - 30 - ), - lower_distance_projective_sqr_closest_points = cms.vdouble( - 10, - 50 - ), - max_z_distance_closest_points = cms.vdouble( - 35, - 35 - ), - cylinder_radius_sqr = cms.vdouble( - 9, - 15 - ), - algo_verbosity = cms.int32(0), - type = cms.string('Skeletons') - ), + linkingPSet = hltTiclTracksterLinksPSet, pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( algo_verbosity = cms.int32(0), onnxPIDModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/linking/id_v0.onnx'), diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py index 641244a3d24ef..ec40871157f21 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltTiclTracksterLinks_cfi.py @@ -1,58 +1,12 @@ import FWCore.ParameterSet.Config as cms +from ..psets.hltTiclTracksterLinksPSet_cfi import hltTiclTracksterLinksPSet hltTiclTracksterLinks = cms.EDProducer("TracksterLinksProducer", detector = cms.string('HGCAL'), layer_clusters = cms.InputTag("hltHgcalMergeLayerClusters"), layer_clustersTime = cms.InputTag("hltHgcalMergeLayerClusters","timeLayerCluster"), inferenceAlgo = cms.string('TracksterInferenceByDNN'), - linkingPSet = cms.PSet( - cylinder_radius_sqr_split = cms.double(9), - proj_distance_split = cms.double(5), - track_time_quality_threshold = cms.double(0.5), - min_num_lcs = cms.uint32(15), - min_trackster_energy = cms.double(20), - pca_quality_th = cms.double(0.85), - dot_prod_th = cms.double(0.97), - deltaRxy = cms.double(4), - lower_boundary = cms.vdouble( - 20, - 10 - ), - upper_boundary = cms.vdouble( - 150, - 100 - ), - upper_distance_projective_sqr = cms.vdouble( - 30, - 60 - ), - lower_distance_projective_sqr = cms.vdouble( - 30, - 60 - ), - min_distance_z = cms.vdouble( - 35, - 35 - ), - upper_distance_projective_sqr_closest_points = cms.vdouble( - 5, - 30 - ), - lower_distance_projective_sqr_closest_points = cms.vdouble( - 10, - 50 - ), - max_z_distance_closest_points = cms.vdouble( - 35, - 35 - ), - cylinder_radius_sqr = cms.vdouble( - 9, - 15 - ), - algo_verbosity = cms.int32(0), - type = cms.string('Skeletons') - ), + linkingPSet = hltTiclTracksterLinksPSet, pluginInferenceAlgoTracksterInferenceByDNN = cms.PSet( algo_verbosity = cms.int32(0), onnxPIDModelPath = cms.FileInPath('RecoHGCal/TICL/data/ticlv5/onnx_models/linking/id_v0.onnx'), diff --git a/HLTrigger/Configuration/python/HLT_75e33/psets/hltTiclTracksterLinksPSet_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/psets/hltTiclTracksterLinksPSet_cfi.py new file mode 100644 index 0000000000000..78f553e3d5871 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/psets/hltTiclTracksterLinksPSet_cfi.py @@ -0,0 +1,50 @@ +import FWCore.ParameterSet.Config as cms + +hltTiclTracksterLinksPSet = cms.PSet( + cylinder_radius_sqr_split = cms.double(9), + proj_distance_split = cms.double(5), + track_time_quality_threshold = cms.double(0.5), + min_num_lcs = cms.uint32(15), + min_trackster_energy = cms.double(20), + pca_quality_th = cms.double(0.85), + dot_prod_th = cms.double(0.97), + deltaRxy = cms.double(4), + lower_boundary = cms.vdouble( + 20, + 10 + ), + upper_boundary = cms.vdouble( + 150, + 100 + ), + upper_distance_projective_sqr = cms.vdouble( + 30, + 60 + ), + lower_distance_projective_sqr = cms.vdouble( + 30, + 60 + ), + min_distance_z = cms.vdouble( + 35, + 35 + ), + upper_distance_projective_sqr_closest_points = cms.vdouble( + 5, + 30 + ), + lower_distance_projective_sqr_closest_points = cms.vdouble( + 10, + 50 + ), + max_z_distance_closest_points = cms.vdouble( + 35, + 35 + ), + cylinder_radius_sqr = cms.vdouble( + 9, + 15 + ), + algo_verbosity = cms.int32(0), + type = cms.string('Skeletons') + ) From 1f3f956962d8d29159c759c57e732e2a758c3c32 Mon Sep 17 00:00:00 2001 From: AuroraPerego Date: Tue, 12 Nov 2024 17:59:08 +0100 Subject: [PATCH 027/418] add time to HGCAL CaloParticles --- .../TICL/plugins/SimTrackstersProducer.cc | 20 +++++++++---------- .../CaloAnalysis/interface/CaloParticle.h | 7 +++++++ .../CaloAnalysis/interface/MtdCaloParticle.h | 6 ------ .../plugins/CaloTruthAccumulator.cc | 13 ++++++++++++ 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/RecoHGCal/TICL/plugins/SimTrackstersProducer.cc b/RecoHGCal/TICL/plugins/SimTrackstersProducer.cc index d79a76185189c..2457a53d4007e 100644 --- a/RecoHGCal/TICL/plugins/SimTrackstersProducer.cc +++ b/RecoHGCal/TICL/plugins/SimTrackstersProducer.cc @@ -32,8 +32,6 @@ #include "SimDataFormats/CaloAnalysis/interface/MtdSimTracksterFwd.h" #include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" - #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h" #include "SimDataFormats/TrackingAnalysis/interface/UniqueSimTrackId.h" @@ -41,6 +39,8 @@ #include "DataFormats/HGCalReco/interface/Common.h" +#include + #include "TrackstersPCA.h" #include #include @@ -96,7 +96,6 @@ class SimTrackstersProducer : public edm::stream::EDProducer<> { const float fractionCut_; const float qualityCutTrack_; const edm::EDGetTokenT> trackingParticleToken_; - const edm::EDGetTokenT> simVerticesToken_; const edm::EDGetTokenT> recoTracksToken_; const StringCutObjectSelector cutTk_; @@ -127,7 +126,6 @@ SimTrackstersProducer::SimTrackstersProducer(const edm::ParameterSet& ps) qualityCutTrack_(ps.getParameter("qualityCutTrack")), trackingParticleToken_( consumes>(ps.getParameter("trackingParticles"))), - simVerticesToken_(consumes>(ps.getParameter("simVertices"))), recoTracksToken_(consumes>(ps.getParameter("recoTracks"))), cutTk_(ps.getParameter("cutTk")), associatormapStRsToken_(consumes(ps.getParameter("tpToTrack"))), @@ -162,7 +160,6 @@ void SimTrackstersProducer::fillDescriptions(edm::ConfigurationDescriptions& des desc.add("tpToTrack", edm::InputTag("trackingParticleRecoTrackAsssociation")); desc.add("trackingParticles", edm::InputTag("mix", "MergedTrackTruth")); - desc.add("simVertices", edm::InputTag("g4SimHits")); desc.add("simTrackToTPMap", edm::InputTag("simHitTPAssocProducer", "simTrackToTP")); desc.add("fractionCut", 0.); @@ -225,7 +222,7 @@ void SimTrackstersProducer::addTrackster( tmpTrackster.setRegressedEnergy(energy); tmpTrackster.setIteration(iter); tmpTrackster.setSeed(seed, index); - tmpTrackster.setBoundaryTime(time * 1e9); + tmpTrackster.setBoundaryTime(time); if (add) { result[index] = tmpTrackster; loop_index += 1; @@ -259,7 +256,6 @@ void SimTrackstersProducer::produce(edm::Event& evt, const edm::EventSetup& es) const auto& simClustersToRecoColl = evt.get(associatorMapSimClusterToReco_token_); const auto& caloParticlesToRecoColl = evt.get(associatorMapCaloParticleToReco_token_); - const auto& simVertices = evt.get(simVerticesToken_); edm::Handle> trackingParticles_h; evt.getByToken(trackingParticleToken_, trackingParticles_h); @@ -293,7 +289,8 @@ void SimTrackstersProducer::produce(edm::Event& evt, const edm::EventSetup& es) // Create a Trackster from the object entering HGCal if (cp.g4Tracks()[0].crossedBoundary()) { regr_energy = cp.g4Tracks()[0].getMomentumAtBoundary().energy(); - float time = cp.g4Tracks()[0].getPositionAtBoundary().t(); + float time = cp.g4Tracks()[0].getPositionAtBoundary().t() * + CLHEP::s; // Geant4 time is in seconds, convert to ns (CLHEP::s = 1e9) addTrackster(cpIndex, lcVec, inputClusterMask, @@ -323,7 +320,8 @@ void SimTrackstersProducer::produce(edm::Event& evt, const edm::EventSetup& es) sc.g4Tracks()[0].getMomentumAtBoundary().energy(), sc.pdgId(), sc.charge(), - sc.g4Tracks()[0].getPositionAtBoundary().t(), + sc.g4Tracks()[0].getPositionAtBoundary().t() * + CLHEP::s, // Geant4 time is in seconds, convert to ns (CLHEP::s = 1e9) scRef.id(), ticl::Trackster::SIM, *output_mask, @@ -339,7 +337,7 @@ void SimTrackstersProducer::produce(edm::Event& evt, const edm::EventSetup& es) } scSimTracksterIdx.shrink_to_fit(); } - float time = simVertices[cp.g4Tracks()[0].vertIndex()].position().t(); + float time = cp.simTime(); // Create a Trackster from any CP addTrackster(cpIndex, lcVec, @@ -482,7 +480,7 @@ void SimTrackstersProducer::produce(edm::Event& evt, const edm::EventSetup& es) cand.setMTDTime(MTDst->time(), 0); } - cand.setTime(simVertices[cp.g4Tracks()[0].vertIndex()].position().t() * pow(10, 9), 0); + cand.setTime(cp.simTime(), 0); for (const auto& trackster : cand.tracksters()) { rawEnergy += trackster->raw_energy(); diff --git a/SimDataFormats/CaloAnalysis/interface/CaloParticle.h b/SimDataFormats/CaloAnalysis/interface/CaloParticle.h index 02abb97ed987f..7c05497686d4a 100644 --- a/SimDataFormats/CaloAnalysis/interface/CaloParticle.h +++ b/SimDataFormats/CaloAnalysis/interface/CaloParticle.h @@ -165,6 +165,9 @@ class CaloParticle { /** @brief Gives the total number of SimHits, in the cluster */ int numberOfRecHits() const { return hits_.size(); } + /** @brief returns the time in ns of the caloparticle */ + float simTime() const { return time_; } + /** @brief add rechit with fraction */ void addRecHitAndFraction(uint32_t hit, float fraction) { hits_.emplace_back(hit); @@ -189,12 +192,16 @@ class CaloParticle { ++nsimhits_; } + /** @brief add vertex time to the caloparticle */ + void addSimTime(const float time) { time_ = time; } + protected: uint64_t nsimhits_{0}; EncodedEventId event_; uint32_t particleId_{0}; float simhit_energy_{0.f}; + float time_{std::numeric_limits::lowest()}; std::vector hits_; std::vector fractions_; diff --git a/SimDataFormats/CaloAnalysis/interface/MtdCaloParticle.h b/SimDataFormats/CaloAnalysis/interface/MtdCaloParticle.h index e826db9d178bd..1ffb3063ac821 100644 --- a/SimDataFormats/CaloAnalysis/interface/MtdCaloParticle.h +++ b/SimDataFormats/CaloAnalysis/interface/MtdCaloParticle.h @@ -33,11 +33,6 @@ class MtdCaloParticle : public CaloParticle { const MtdSimClusterRefVector &simClusters() const { return mtdsimClusters_; } void clearSimClusters() { mtdsimClusters_.clear(); } - /** @brief returns the time of the caloparticle */ - float simTime() const { return simhit_time_; } - - void addSimTime(const float time) { simhit_time_ = time; } - /** @brief add simhit's energy to cluster */ void addSimHit(PSimHit &hit) { simhit_energy_ += hit.energyLoss(); @@ -45,7 +40,6 @@ class MtdCaloParticle : public CaloParticle { } private: - float simhit_time_{-99.f}; MtdSimClusterRefVector mtdsimClusters_; }; diff --git a/SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc b/SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc index 17e6b19333daf..52941e3970f7a 100644 --- a/SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc +++ b/SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc @@ -47,6 +47,8 @@ #include "Geometry/HcalTowerAlgo/interface/HcalGeometry.h" #include "Geometry/Records/interface/CaloGeometryRecord.h" +#include + namespace { using Index_t = unsigned; using Barcode_t = int; @@ -151,11 +153,13 @@ namespace { CaloTruthAccumulator::calo_particles &caloParticles, std::unordered_multimap &simHitBarcodeToIndex, std::unordered_map> &simTrackDetIdEnergyMap, + std::unordered_map &vertex_time_map, Selector selector) : output_(output), caloParticles_(caloParticles), simHitBarcodeToIndex_(simHitBarcodeToIndex), simTrackDetIdEnergyMap_(simTrackDetIdEnergyMap), + vertex_time_map_(vertex_time_map), selector_(selector) {} template void discover_vertex(Vertex u, const Graph &g) { @@ -191,6 +195,7 @@ namespace { if (selector_(edge_property)) { IfLogDebug(DEBUG, messageCategoryGraph_) << "Adding CaloParticle: " << edge_property.simTrack->trackId(); output_.pCaloParticles->emplace_back(*(edge_property.simTrack)); + output_.pCaloParticles->back().addSimTime(vertex_time_map_[(edge_property.simTrack)->vertIndex()]); caloParticles_.sc_start_.push_back(output_.pSimClusters->size()); } } @@ -213,6 +218,7 @@ namespace { CaloTruthAccumulator::calo_particles &caloParticles_; std::unordered_multimap &simHitBarcodeToIndex_; std::unordered_map> &simTrackDetIdEnergyMap_; + std::unordered_map &vertex_time_map_; Selector selector_; }; } // namespace @@ -425,6 +431,12 @@ void CaloTruthAccumulator::accumulateEvent(const T &event, idx++; } + std::unordered_map vertex_time_map; + for (uint32_t i = 0; i < vertices.size(); i++) { + // Geant4 time is in seconds, convert to ns (CLHEP::s = 1e9) + vertex_time_map[i] = vertices[i].position().t() * CLHEP::s; + } + /** Build the main decay graph and assign the SimTrack to each edge. The graph built here will only contain the particles that have a decay vertex @@ -512,6 +524,7 @@ void CaloTruthAccumulator::accumulateEvent(const T &event, m_caloParticles, m_simHitBarcodeToIndex, simTrackDetIdEnergyMap, + vertex_time_map, [&](EdgeProperty &edge_property) -> bool { // Apply selection on SimTracks in order to promote them to be // CaloParticles. The function returns TRUE if the particle satisfies From b65dcc9884bb127dc9bb324d20576b5a3b22da72 Mon Sep 17 00:00:00 2001 From: AuroraPerego Date: Fri, 8 Nov 2024 15:06:49 +0100 Subject: [PATCH 028/418] fix time for MTD CaloParticle --- SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc | 8 ++++---- SimGeneral/MixingModule/python/mtdTruthProducer_cfi.py | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc index 2c810aac14e17..5bb6490968b80 100644 --- a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc +++ b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc @@ -58,6 +58,8 @@ #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" +#include + namespace { using Index_t = unsigned; using Barcode_t = int; @@ -106,8 +108,6 @@ class MtdTruthAccumulator : public DigiAccumulatorMixMod { */ const unsigned int maximumSubsequentBunchCrossing_; - const unsigned int bunchSpacing_; - const edm::InputTag simTrackLabel_; const edm::InputTag simVertexLabel_; edm::Handle> hSimTracks; @@ -257,7 +257,6 @@ MtdTruthAccumulator::MtdTruthAccumulator(const edm::ParameterSet &config, : messageCategory_("MtdTruthAccumulator"), maximumPreviousBunchCrossing_(config.getParameter("maximumPreviousBunchCrossing")), maximumSubsequentBunchCrossing_(config.getParameter("maximumSubsequentBunchCrossing")), - bunchSpacing_(config.getParameter("bunchspace")), simTrackLabel_(config.getParameter("simTrackCollection")), simVertexLabel_(config.getParameter("simVertexCollection")), collectionTags_(), @@ -619,7 +618,8 @@ void MtdTruthAccumulator::accumulateEvent(const T &event, DecayChain decay; for (uint32_t i = 0; i < vertices.size(); i++) { - vertex_time_map[i] = vertices[i].position().t() * 1e9 + event.bunchCrossing() * static_cast(bunchSpacing_); + // Geant4 time is in seconds, convert to ns (CLHEP::s = 1e9) + vertex_time_map[i] = vertices[i].position().t() * CLHEP::s; } IfLogDebug(DEBUG, messageCategory_) << " TRACKS" << std::endl; diff --git a/SimGeneral/MixingModule/python/mtdTruthProducer_cfi.py b/SimGeneral/MixingModule/python/mtdTruthProducer_cfi.py index 1136536d0fc1c..ec3efc262b645 100644 --- a/SimGeneral/MixingModule/python/mtdTruthProducer_cfi.py +++ b/SimGeneral/MixingModule/python/mtdTruthProducer_cfi.py @@ -7,7 +7,6 @@ premixStage1 = cms.bool(False), maximumPreviousBunchCrossing = cms.uint32(0), maximumSubsequentBunchCrossing = cms.uint32(0), - bunchspace = cms.uint32(25), #ns simHitCollections = cms.PSet( mtdCollections = cms.VInputTag( From c51fc8558915f1ed1f031bb4e43a043624ef615b Mon Sep 17 00:00:00 2001 From: AuroraPerego Date: Mon, 11 Nov 2024 10:28:15 +0100 Subject: [PATCH 029/418] change method name to addSimTime --- SimDataFormats/CaloAnalysis/interface/CaloParticle.h | 2 +- SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc | 2 +- SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SimDataFormats/CaloAnalysis/interface/CaloParticle.h b/SimDataFormats/CaloAnalysis/interface/CaloParticle.h index 7c05497686d4a..67ba7a5841a34 100644 --- a/SimDataFormats/CaloAnalysis/interface/CaloParticle.h +++ b/SimDataFormats/CaloAnalysis/interface/CaloParticle.h @@ -193,7 +193,7 @@ class CaloParticle { } /** @brief add vertex time to the caloparticle */ - void addSimTime(const float time) { time_ = time; } + void setSimTime(const float time) { time_ = time; } protected: uint64_t nsimhits_{0}; diff --git a/SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc b/SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc index 52941e3970f7a..cd585ee0f2cf4 100644 --- a/SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc +++ b/SimGeneral/CaloAnalysis/plugins/CaloTruthAccumulator.cc @@ -195,7 +195,7 @@ namespace { if (selector_(edge_property)) { IfLogDebug(DEBUG, messageCategoryGraph_) << "Adding CaloParticle: " << edge_property.simTrack->trackId(); output_.pCaloParticles->emplace_back(*(edge_property.simTrack)); - output_.pCaloParticles->back().addSimTime(vertex_time_map_[(edge_property.simTrack)->vertIndex()]); + output_.pCaloParticles->back().setSimTime(vertex_time_map_[(edge_property.simTrack)->vertIndex()]); caloParticles_.sc_start_.push_back(output_.pSimClusters->size()); } } diff --git a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc index 5bb6490968b80..2b3ff4dd4aba2 100644 --- a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc +++ b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc @@ -223,7 +223,7 @@ namespace { if (selector_(edge_property)) { IfLogDebug(DEBUG, messageCategoryGraph_) << "Adding CaloParticle: " << edge_property.simTrack->trackId(); output_.pCaloParticles->emplace_back(*(edge_property.simTrack)); - output_.pCaloParticles->back().addSimTime(vertex_time_map_[(edge_property.simTrack)->vertIndex()]); + output_.pCaloParticles->back().setSimTime(vertex_time_map_[(edge_property.simTrack)->vertIndex()]); caloParticles_.sc_start_.push_back(output_.pSimClusters->size()); } } From c13d00cf15e40061f96e114d1aead96ffaf9338f Mon Sep 17 00:00:00 2001 From: Patin Inkaew Date: Thu, 14 Nov 2024 17:11:13 +0100 Subject: [PATCH 030/418] add TypedStringObjectMethodCaller functor and parser components for generic object's method caller --- .../interface/TypedStringObjectMethodCaller.h | 42 ++++++ .../Utils/interface/parser/MethodChain.h | 76 +++++++++++ .../interface/parser/MethodChainGrammar.h | 76 +++++++++++ .../interface/parser/MethodChainSetter.h | 36 +++++ CommonTools/Utils/src/MethodChain.cc | 127 ++++++++++++++++++ CommonTools/Utils/src/MethodChainSetter.cc | 30 +++++ 6 files changed, 387 insertions(+) create mode 100644 CommonTools/Utils/interface/TypedStringObjectMethodCaller.h create mode 100644 CommonTools/Utils/interface/parser/MethodChain.h create mode 100644 CommonTools/Utils/interface/parser/MethodChainGrammar.h create mode 100644 CommonTools/Utils/interface/parser/MethodChainSetter.h create mode 100644 CommonTools/Utils/src/MethodChain.cc create mode 100644 CommonTools/Utils/src/MethodChainSetter.cc diff --git a/CommonTools/Utils/interface/TypedStringObjectMethodCaller.h b/CommonTools/Utils/interface/TypedStringObjectMethodCaller.h new file mode 100644 index 0000000000000..a77c7657896a6 --- /dev/null +++ b/CommonTools/Utils/interface/TypedStringObjectMethodCaller.h @@ -0,0 +1,42 @@ +#ifndef CommonTools_Utils_TypedStringObjectMethodCaller_h +#define CommonTools_Utils_TypedStringObjectMethodCaller_h +/* \class TypedStringObjectMethodCaller + * + * Object's method (or a chain of methods) caller functor with generic return-type, specified by string expression + * + */ + +#include "FWCore/Utilities/interface/EDMException.h" +#include "CommonTools/Utils/interface/parser/Exception.h" +#include "CommonTools/Utils/interface/parser/MethodChain.h" +#include "CommonTools/Utils/interface/parser/MethodChainGrammar.h" +#include "FWCore/Reflection/interface/ObjectWithDict.h" + +template +struct TypedStringObjectMethodCaller { + TypedStringObjectMethodCaller(const std::string expr, bool lazy = DefaultLazyness) : type_(typeid(T)) { + using namespace boost::spirit::classic; + reco::parser::MethodChainGrammar grammar(methodchain_, type_, lazy); + const char* startingFrom = expr.c_str(); + try { + if (!parse(startingFrom, grammar >> end_p, space_p).full) { + throw edm::Exception(edm::errors::Configuration, "failed to parse \"" + expr + "\""); + } + } catch (reco::parser::BaseException& e) { + throw edm::Exception(edm::errors::Configuration) + << "MethodChainGrammer parse error:" << reco::parser::baseExceptionWhat(e) << " (char " << e.where - startingFrom << ")\n"; + } + } + + R operator()(const T &t) const { + edm::ObjectWithDict o(type_, const_cast(&t)); + edm::ObjectWithDict ret = methodchain_->value(o); + return *static_cast(ret.address()); + } + +private: + reco::parser::MethodChainPtr methodchain_; + edm::TypeWithDict type_; +}; + +#endif diff --git a/CommonTools/Utils/interface/parser/MethodChain.h b/CommonTools/Utils/interface/parser/MethodChain.h new file mode 100644 index 0000000000000..dcab8092eade1 --- /dev/null +++ b/CommonTools/Utils/interface/parser/MethodChain.h @@ -0,0 +1,76 @@ +#ifndef CommonTools_Utils_MethodChain_h +#define CommonTools_Utils_MethodChain_h + +/* \class reco::parser::MethodChain + * + * Chain of methods + * Based on ExpressionBase and ExpressionVar, but remove final conversion to double + * + */ + +#include "CommonTools/Utils/interface/parser/MethodInvoker.h" +#include "CommonTools/Utils/interface/TypeCode.h" + +#include +#include + +namespace reco { + namespace parser { + + /// Based on Expression, but its value method returns an edm::ObjectWithDict instead of a double + class MethodChainBase { + public: // Public Methods + virtual ~MethodChainBase() {} + virtual edm::ObjectWithDict value(const edm::ObjectWithDict&) const = 0; + }; + + /// Shared ptr to MethodChainBase + typedef std::shared_ptr MethodChainPtr; + + /// Evaluate an object's method or datamember (or chain of them) + class MethodChain : public MethodChainBase { + private: // Private Data Members + std::vector methods_; + using Objects = std::vector>; + mutable oneapi::tbb::concurrent_queue objectsCache_; + + private: // Private Methods + [[nodiscard]] Objects initObjects_() const; + + Objects borrowObjects() const; + void returnObjects(Objects&&) const; + + public: // Public Static Methods + + /// allocate an object to hold the result of a given member (if needed) + /// this method is used also from the LazyInvoker code + /// returns true if objects returned from this will require a destructor + static bool makeStorage(edm::ObjectWithDict& obj, const edm::TypeWithDict& retType); + + /// delete an objecty, if needed + /// this method is used also from the LazyInvoker code + static void delStorage(edm::ObjectWithDict&); + + public: // Public Methods + MethodChain(const std::vector& methods); + MethodChain(const MethodChain&); + ~MethodChain(); + edm::ObjectWithDict value(const edm::ObjectWithDict&) const override; + }; + + /// Same as MethodChain but with lazy resolution of object methods + /// using the dynamic type of the object, and not the one fixed at compile time + class LazyMethodChain : public MethodChainBase { + private: // Private Data Members + std::vector methods_; + + public: + LazyMethodChain(const std::vector& methods); + ~LazyMethodChain() override; + edm::ObjectWithDict value(const edm::ObjectWithDict&) const override; + }; + + } // namespace parser +} // namespace reco + +#endif // CommonTools_Utils_MethodChain_h diff --git a/CommonTools/Utils/interface/parser/MethodChainGrammar.h b/CommonTools/Utils/interface/parser/MethodChainGrammar.h new file mode 100644 index 0000000000000..bb0a66d7b5776 --- /dev/null +++ b/CommonTools/Utils/interface/parser/MethodChainGrammar.h @@ -0,0 +1,76 @@ +#ifndef CommonTools_Utils_MethodChainGrammar_h +#define CommonTools_Utils_MethodChainGrammar_h +/* \class MethodChainGrammer + * + * subset grammar of the full Grammer (CommonTools/Utils/interface/parser/Grammar.h), allowing only a chain of methods + * + */ + +#include "boost/spirit/include/classic_core.hpp" +#include "boost/spirit/include/classic_grammar_def.hpp" +#include "boost/spirit/include/classic_chset.hpp" +#include "FWCore/Utilities/interface/EDMException.h" +#include "FWCore/Reflection/interface/ObjectWithDict.h" +#include "CommonTools/Utils/interface/parser/MethodChain.h" +#include "CommonTools/Utils/interface/parser/MethodChainSetter.h" +#include "CommonTools/Utils/interface/parser/MethodSetter.h" +#include "CommonTools/Utils/interface/parser/MethodArgumentSetter.h" +#include "CommonTools/Utils/interface/parser/MethodInvoker.h" +#include "CommonTools/Utils/interface/parser/MethodStack.h" +#include "CommonTools/Utils/interface/parser/TypeStack.h" +#include "CommonTools/Utils/interface/parser/MethodArgumentStack.h" +#include "CommonTools/Utils/interface/parser/AnyMethodArgument.h" +#include "CommonTools/Utils/interface/parser/Exception.h" + +namespace reco { + namespace parser { + struct MethodChainGrammar : public boost::spirit::classic::grammar { + MethodChainPtr *methchain_; + bool lazy_; + mutable MethodStack methStack; + mutable LazyMethodStack lazyMethStack; + mutable MethodArgumentStack methArgStack; + mutable TypeStack typeStack; + + MethodChainGrammar(MethodChainPtr &methchain, const edm::TypeWithDict& iType, bool lazy = false) + : methchain_(&methchain), lazy_(lazy) { + typeStack.push_back(iType); + } + + template + struct definition { + typedef boost::spirit::classic::rule rule; + rule metharg, method, arrayAccess, methodchain; + definition(const MethodChainGrammar& self) { + using namespace boost::spirit::classic; + + MethodArgumentSetter methodArg_s(self.methArgStack); + MethodSetter method_s(self.methStack, self.lazyMethStack, self.typeStack, self.methArgStack, self.lazy_); + MethodChainSetter methodchain_s(*self.methchain_, self.methStack, self.lazyMethStack, self.typeStack); + + BOOST_SPIRIT_DEBUG_RULE(methodchain); + BOOST_SPIRIT_DEBUG_RULE(arrayAccess); + BOOST_SPIRIT_DEBUG_RULE(method); + BOOST_SPIRIT_DEBUG_RULE(metharg); + + boost::spirit::classic::assertion expectParenthesis(kMissingClosingParenthesis); + boost::spirit::classic::assertion expect(kSyntaxError); + + metharg = (strict_real_p[methodArg_s]) | (int_p[methodArg_s]) | + (ch_p('"') >> *(~ch_p('"')) >> ch_p('"'))[methodArg_s] | + (ch_p('\'') >> *(~ch_p('\'')) >> ch_p('\''))[methodArg_s]; + method = // alnum_p doesn't accept underscores, so we use chset<>; lexeme_d needed to avoid whitespace skipping within method names + (lexeme_d[alpha_p >> *chset<>("a-zA-Z0-9_")] >> ch_p('(') >> metharg >> *(ch_p(',') >> metharg) >> + expectParenthesis(ch_p(')')))[method_s] | + ((lexeme_d[alpha_p >> *chset<>("a-zA-Z0-9_")])[method_s] >> !(ch_p('(') >> ch_p(')'))); + arrayAccess = (ch_p('[') >> metharg >> *(ch_p(',') >> metharg) >> expectParenthesis(ch_p(']')))[method_s]; + methodchain = (method >> *(arrayAccess | (ch_p('.') >> expect(method))))[methodchain_s]; + } + + rule const& start() const { return methodchain; } + }; + }; + } +} + +#endif diff --git a/CommonTools/Utils/interface/parser/MethodChainSetter.h b/CommonTools/Utils/interface/parser/MethodChainSetter.h new file mode 100644 index 0000000000000..e8ee3a3a46606 --- /dev/null +++ b/CommonTools/Utils/interface/parser/MethodChainSetter.h @@ -0,0 +1,36 @@ +#ifndef CommonTools_Utils_MethodChainSetter_h +#define CommonTools_Utils_MethodChainSetter_h +/* \class reco::parser::MethodChainSetter + * + * Method Chain setter, used to construct MethodChain when parsing with boost::spirit + * + */ +#include "CommonTools/Utils/interface/parser/MethodChain.h" +#include "CommonTools/Utils/interface/parser/MethodStack.h" +#include "CommonTools/Utils/interface/parser/TypeStack.h" + +#include + +namespace reco { + namespace parser { + struct MethodChainSetter { + MethodChainSetter(MethodChainPtr &methchain, + MethodStack &methStack, + LazyMethodStack &lazyMethStack, + TypeStack &typeStack) + : methchain_(methchain), methStack_(methStack), lazyMethStack_(lazyMethStack), typeStack_(typeStack) {} + void operator()(const char *, const char *) const; + + private: + void push(const char *, const char *) const; + void lazyPush(const char *, const char *) const; + + MethodChainPtr &methchain_; + MethodStack &methStack_; + LazyMethodStack &lazyMethStack_; + TypeStack &typeStack_; + }; + } // namespace parser +} // namespace reco + +#endif diff --git a/CommonTools/Utils/src/MethodChain.cc b/CommonTools/Utils/src/MethodChain.cc new file mode 100644 index 0000000000000..33881bc1db3f0 --- /dev/null +++ b/CommonTools/Utils/src/MethodChain.cc @@ -0,0 +1,127 @@ +#include "CommonTools/Utils/interface/parser/MethodChain.h" +#include "CommonTools/Utils/interface/parser/MethodInvoker.h" + +#include "FWCore/Reflection/interface/ObjectWithDict.h" +#include "FWCore/Reflection/interface/FunctionWithDict.h" +#include "FWCore/Reflection/interface/MemberWithDict.h" +#include "FWCore/Reflection/interface/TypeWithDict.h" + +#include +#include + +using namespace reco::parser; +using namespace std; + +MethodChain::Objects MethodChain::initObjects_() const { + Objects objects(methods_.size(), {edm::ObjectWithDict(), false}); + assert(objects.size() == methods_.size()); + auto IO = objects.begin(); + for (auto const& method : methods_) { + if (method.isFunction()) { + edm::TypeWithDict retType = method.method().finalReturnType(); + IO->second = makeStorage(IO->first, retType); + } else { + *IO = {edm::ObjectWithDict(), false}; + } + ++IO; + } + return objects; +} + +MethodChain::MethodChain(const vector& methods) + : methods_(methods) { + returnObjects(initObjects_()); +} + +MethodChain::MethodChain(const MethodChain& rhs) : methods_(rhs.methods_) { + returnObjects(initObjects_()); +} + +MethodChain::Objects MethodChain::borrowObjects() const { + Objects objects; + if (objectsCache_.try_pop(objects)) { + return objects; + } + return initObjects_(); +} + +void MethodChain::returnObjects(Objects&& iOb) const { objectsCache_.push(std::move(iOb)); } + +MethodChain::~MethodChain() { + Objects objects; + while (objectsCache_.try_pop(objects)) { + for (auto& o : objects) { + delStorage(o.first); + } + } +} + +void MethodChain::delStorage(edm::ObjectWithDict& obj) { + if (!obj.address()) { + return; + } + if (obj.typeOf().isPointer() || obj.typeOf().isReference()) { + // just delete a void*, as that's what it was + void** p = static_cast(obj.address()); + delete p; + } else { + //std::cout << "Calling Destruct on a " << + // obj.typeOf().qualifiedName() << std::endl; + obj.typeOf().deallocate(obj.address()); + } +} + +bool MethodChain::makeStorage(edm::ObjectWithDict& obj, const edm::TypeWithDict& retType) { + static const edm::TypeWithDict tVoid(edm::TypeWithDict::byName("void")); + bool ret = false; + if (retType == tVoid) { + obj = edm::ObjectWithDict::byType(tVoid); + } else if (retType.isPointer() || retType.isReference()) { + // in this case, I have to allocate a void*, not an object! + obj = edm::ObjectWithDict(retType, new void*); + } else { + obj = edm::ObjectWithDict(retType, retType.allocate()); + ret = retType.isClass(); + //std::cout << "MethodChain: reserved memory at " << obj.address() << + // " for a " << retType.qualifiedName() << " returned by " << + // member.name() << std::endl; + } + return ret; +} + +edm::ObjectWithDict MethodChain::value(const edm::ObjectWithDict& obj) const { + edm::ObjectWithDict val(obj); + auto objects = borrowObjects(); + auto IO = objects.begin(); + for (auto& m : methods_) { + val = m.invoke(val, IO->first); + ++IO; + } + for (auto RI = objects.rbegin(), RE = objects.rend(); RI != RE; ++RI) { + if (RI->second) { + RI->first.destruct(false); + } + } + returnObjects(std::move(objects)); + return val; +} + +LazyMethodChain::LazyMethodChain(const std::vector& methods) : methods_(methods) {} + +LazyMethodChain::~LazyMethodChain() {} + +edm::ObjectWithDict LazyMethodChain::value(const edm::ObjectWithDict& o) const { + edm::ObjectWithDict val = o; + std::vector storage; + storage.reserve(methods_.size()); + + std::vector::const_iterator I = methods_.begin(); + std::vector::const_iterator E = methods_.end(); + for (; I < E; ++I) { + val = I->invoke(val, storage); + } + while (not storage.empty()) { + storage.pop_back(); + } + return val; +} diff --git a/CommonTools/Utils/src/MethodChainSetter.cc b/CommonTools/Utils/src/MethodChainSetter.cc new file mode 100644 index 0000000000000..67371d0ecf0b3 --- /dev/null +++ b/CommonTools/Utils/src/MethodChainSetter.cc @@ -0,0 +1,30 @@ +#include "CommonTools/Utils/interface/parser/MethodChainSetter.h" +#include "CommonTools/Utils/interface/parser/MethodChain.h" +#include "CommonTools/Utils/interface/returnType.h" +#include "CommonTools/Utils/interface/parser/Exception.h" +#include + +using namespace reco::parser; +using namespace std; + +void MethodChainSetter::operator()(const char *begin, const char *end) const { + //std::cerr << "MethodChainSetter: Pushed [" << std::string(begin,end) << "]" << std::endl; + if (!methStack_.empty()) + push(begin, end); + else if (!lazyMethStack_.empty()) + lazyPush(begin, end); + else + throw Exception(begin) << " Expression didn't parse neither hastily nor lazyly. This must not happen.\n"; +} + +void MethodChainSetter::push(const char *begin, const char *end) const { + methchain_ = std::shared_ptr(new MethodChain(methStack_)); + methStack_.clear(); + typeStack_.resize(1); +} + +void MethodChainSetter::lazyPush(const char *begin, const char *end) const { + methchain_ = std::shared_ptr(new LazyMethodChain(lazyMethStack_)); + lazyMethStack_.clear(); + typeStack_.resize(1); +} From fad42d62a8928ccf674356f2bb6779e40e066768 Mon Sep 17 00:00:00 2001 From: Patin Inkaew Date: Thu, 14 Nov 2024 17:12:44 +0100 Subject: [PATCH 031/418] add FuncCollectionVariable for handling collection attributes and SimpleCollectionFlatTableProducer as an extension to SimpleFlatTableProducer to handle collection attributes of objects --- .../interface/SimpleFlatTableProducer.h | 220 ++++++++++++++++++ 1 file changed, 220 insertions(+) diff --git a/PhysicsTools/NanoAOD/interface/SimpleFlatTableProducer.h b/PhysicsTools/NanoAOD/interface/SimpleFlatTableProducer.h index b93ace3c45387..5e5dd00a8e040 100644 --- a/PhysicsTools/NanoAOD/interface/SimpleFlatTableProducer.h +++ b/PhysicsTools/NanoAOD/interface/SimpleFlatTableProducer.h @@ -14,6 +14,7 @@ #include "CommonTools/Utils/interface/StringCutObjectSelector.h" #include "CommonTools/Utils/interface/StringObjectFunction.h" +#include "CommonTools/Utils/interface/TypedStringObjectMethodCaller.h" #include #include @@ -73,6 +74,55 @@ class FuncVariable : public Variable { StringFunctor precisionFunc_; }; +// Collection variables: i.e. variables that is variable-size collection, e.g. std::vector +template +class CollectionVariable : public VariableBase { +public: + CollectionVariable(const std::string &aname, const edm::ParameterSet &cfg) : VariableBase(aname, cfg) {} + virtual std::unique_ptr> getCounts(std::vector &selobjs) const = 0; + virtual void fill(std::vector &selobjs, nanoaod::FlatTable &out) const = 0; +}; + +template +class FuncCollectionVariable : public CollectionVariable { +public: + FuncCollectionVariable(const std::string &aname, const edm::ParameterSet &cfg) + : CollectionVariable(aname, cfg), + func_(cfg.getParameter("expr"), cfg.getUntrackedParameter("lazyEval")), + precisionFunc_(cfg.existsAs("precision") ? cfg.getParameter("precision") : "23", + cfg.getUntrackedParameter("lazyEval")) {} + ~FuncCollectionVariable() override {} + + std::unique_ptr> getCounts(std::vector &selobjs) const override{ + auto counts = std::make_unique>(); + for (auto const &obj : selobjs) + counts->push_back(func_(*obj).size()); + return counts; + } + + void fill(std::vector &selobjs, nanoaod::FlatTable &out) const override { + std::vector vals; + for (unsigned int i = 0; i < selobjs.size(); ++i) { + for (ValType val : func_(*selobjs[i])) { + if constexpr (std::is_same()) { + if (this->precision_ == -2) { + auto prec = precisionFunc_(*selobjs[i]); + if (prec > 0) { + val = MiniFloatConverter::reduceMantissaToNbitsRounding(val, prec); + } + } + } + vals.push_back(val); + } + } + out.template addColumn(this->name_, vals, this->doc_, this->precision_); + } + +protected: + CollectionStringFunctor func_; // functor to get collection objects + PrecisionStringFunctor precisionFunc_; // functor to get output precision +}; + // External variables: i.e. variables that are not member or methods of the object template class ExtVariable : public VariableBase { @@ -486,6 +536,176 @@ class SimpleTypedExternalFlatTableProducer : public SimpleFlatTableProducer { typedef TypedValueMapVariable, uint16_t> UInt16TypedExtVar; }; +template +class SimpleCollectionFlatTableProducer : public SimpleFlatTableProducer { +public: + SimpleCollectionFlatTableProducer(edm::ParameterSet const ¶ms) : SimpleFlatTableProducer(params) { + if (params.existsAs("collectionVariables")) { + edm::ParameterSet const &collectionVarsPSet = params.getParameter("collectionVariables"); + for (const std::string &coltablename : collectionVarsPSet.getParameterNamesForType()) { // tables of variables + const auto &coltablePSet = collectionVarsPSet.getParameter(coltablename); + CollectionVariableTableInfo coltable; + coltable.name = coltablePSet.existsAs("name") ? coltablePSet.getParameter("name") : coltablename; + coltable.doc = coltablePSet.getParameter("doc"); + coltable.useCount = coltablePSet.getParameter("useCount"); + coltable.useOffset = coltablePSet.getParameter("useOffset"); + const auto &colvarsPSet = coltablePSet.getParameter("variables"); + for (const std::string &colvarname : colvarsPSet.getParameterNamesForType()) { // variables + const auto &colvarPSet = colvarsPSet.getParameter(colvarname); + const std::string &type = colvarPSet.getParameter("type"); + if (type == "int") + coltable.colvars.push_back(std::make_unique(colvarname, colvarPSet)); + else if (type == "uint") + coltable.colvars.push_back(std::make_unique(colvarname, colvarPSet)); + else if (type == "float") + coltable.colvars.push_back(std::make_unique(colvarname, colvarPSet)); + else if (type == "double") + coltable.colvars.push_back(std::make_unique(colvarname, colvarPSet)); + else if (type == "uint8") + coltable.colvars.push_back(std::make_unique(colvarname, colvarPSet)); + else if (type == "int16") + coltable.colvars.push_back(std::make_unique(colvarname, colvarPSet)); + else if (type == "uint16") + coltable.colvars.push_back(std::make_unique(colvarname, colvarPSet)); + else + throw cms::Exception("Configuration", "unsupported type " + type + " for variable " + colvarname + " in " + coltablename); + } + this->coltables.push_back(std::move(coltable)); + edm::stream::EDProducer<>::produces(coltables.back().name + "Table"); + } + } + } + + ~SimpleCollectionFlatTableProducer() override {} + + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + edm::ParameterSetDescription desc = SimpleFlatTableProducer::baseDescriptions(); + edm::ParameterSetDescription colvariable; + colvariable.add("expr")->setComment("a function to define the content of the branch in the flat table"); + colvariable.add("doc")->setComment("few words of self documentation"); + colvariable.addUntracked("lazyEval", false) + ->setComment("if true, can use methods of inheriting classes in `expr`. Can cause problems with threading."); + colvariable.ifValue( + edm::ParameterDescription( + "type", "int", true, edm::Comment("the c++ type of the branch in the flat table")), + edm::allowedValues("int", "uint", "float", "double", "uint8", "int16", "uint16")); + colvariable.addOptionalNode( + edm::ParameterDescription( + "precision", true, edm::Comment("the precision with which to store the value in the flat table")) xor + edm::ParameterDescription( + "precision", true, edm::Comment("the precision with which to store the value in the flat table")), + false); + edm::ParameterSetDescription colvariables; + colvariables.setComment("a parameters set to define all variable to fill the flat table"); + colvariables.addNode( + edm::ParameterWildcard("*", edm::RequireAtLeastOne, true, colvariable)); + + edm::ParameterSetDescription coltable; + coltable.addOptional("name")->setComment("name of the branch in the flat table containing flatten collections of variables"); + coltable.add("doc")->setComment("few words description of the table containing flatten collections of variables"); + coltable.add("useCount", true) + ->setComment("whether to use count for the main table to index table with flatten collections of variables"); + coltable.add("useOffset", false) + ->setComment("whether to use offset for the main table to index table with flatten collections of variables"); + coltable.add("variables", colvariables); + + edm::ParameterSetDescription coltables; + coltables.setComment("a parameters set to define variables to be flatten to fill the table"); + coltables.addOptionalNode( + edm::ParameterWildcard("*", edm::RequireZeroOrMore, true, coltable), false); + desc.addOptional("collectionVariables", coltables); + + descriptions.addWithDefaultLabel(desc); + } + + void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override { + // same as SimpleFlatTableProducer + edm::Handle> prod; + iEvent.getByToken(this->src_, prod); + + std::vector selobjs; + std::vector> selptrs; // for external variables + if (prod.isValid() || !(this->skipNonExistingSrc_)) { + if (this->singleton_) { + assert(prod->size() == 1); + selobjs.push_back(&(*prod)[0]); + if (!this->extvars_.empty() || !this->typedextvars_.empty()) + selptrs.emplace_back(prod->ptrAt(0)); + } else { + for (unsigned int i = 0, n = prod->size(); i < n; ++i) { + const auto &obj = (*prod)[i]; + if (this->cut_(obj)) { + selobjs.push_back(&obj); + if (!this->extvars_.empty() || !this->typedextvars_.empty()) + selptrs.emplace_back(prod->ptrAt(i)); + } + if (selobjs.size() >= this->maxLen_) + break; + } + } + } + + auto out = std::make_unique(selobjs.size(), this->name_, this->singleton_, this->extension_); + for (const auto &var : this->vars_) + var->fill(selobjs, *out); + for (const auto &var : this->extvars_) + var->fill(iEvent, selptrs, *out); + for (const auto &var : this->typedextvars_) + var->fill(iEvent, selptrs, *out); + + // collection variable tables + for (const auto &coltable : this->coltables) { + std::unique_ptr> counts = coltable.colvars[0]->getCounts(selobjs); + // compute size + unsigned int coltablesize = 0; + for (auto const &count : *counts) + coltablesize += count; + // add count branch if requested + if (coltable.useCount) + out->template addColumn("n" + coltable.name, *counts, "counts for " + coltable.name); + // add offset branch if requested + if (coltable.useOffset) { + unsigned int offset = 0; + std::vector offsets; + for (auto const &count : *counts) { + offsets.push_back(offset); + offset += count; + } + out->template addColumn("o" + coltable.name, offsets, "offsets for " + coltable.name); + } + + std::unique_ptr outcoltable = std::make_unique(coltablesize, coltable.name, false, false); + for (const auto &colvar : coltable.colvars) { + colvar->fill(selobjs, *outcoltable); + } + outcoltable->setDoc(coltable.doc); + iEvent.put(std::move(outcoltable), coltable.name + "Table"); + } + + // put the main table into the event + out->setDoc(this->doc_); + iEvent.put(std::move(out)); + } + +protected: + typedef FuncCollectionVariable>, StringObjectFunction, int32_t> IntVectorVar; + typedef FuncCollectionVariable>, StringObjectFunction, uint32_t> UIntVectorVar; + typedef FuncCollectionVariable>, StringObjectFunction, float> FloatVectorVar; + typedef FuncCollectionVariable>, StringObjectFunction, double> DoubleVectorVar; + typedef FuncCollectionVariable>, StringObjectFunction, uint8_t> UInt8VectorVar; + typedef FuncCollectionVariable>, StringObjectFunction, int16_t> Int16VectorVar; + typedef FuncCollectionVariable>, StringObjectFunction, uint16_t> UInt16VectorVar; + + struct CollectionVariableTableInfo { + std::string name; + std::string doc; + bool useCount; + bool useOffset; + std::vector>> colvars; + }; + std::vector coltables; +}; + template class BXVectorSimpleFlatTableProducer : public SimpleFlatTableProducerBase> { public: From 71fb208b99ca74ebfc85fa0fa322c35777f25cc1 Mon Sep 17 00:00:00 2001 From: Carlo Battilana Date: Thu, 14 Nov 2024 18:27:49 +0100 Subject: [PATCH 032/418] Allow DT ageing to run at DIGI step --- .../DTDigitizer/plugins/DTChamberMasker.cc | 28 ++++++++++++++----- .../DTDigitizer/python/dtChamberMasker_cff.py | 28 +++++++++++++++++-- 2 files changed, 47 insertions(+), 9 deletions(-) diff --git a/SimMuon/DTDigitizer/plugins/DTChamberMasker.cc b/SimMuon/DTDigitizer/plugins/DTChamberMasker.cc index 179a841a66808..6df5ffe4612bb 100644 --- a/SimMuon/DTDigitizer/plugins/DTChamberMasker.cc +++ b/SimMuon/DTDigitizer/plugins/DTChamberMasker.cc @@ -45,6 +45,7 @@ #include "Geometry/DTGeometry/interface/DTLayer.h" #include "DataFormats/DTDigi/interface/DTDigiCollection.h" +#include "SimDataFormats/DigiSimLinks/interface/DTDigiSimLinkCollection.h" #include "DataFormats/MuonDetId/interface/DTChamberId.h" #include "DataFormats/MuonDetId/interface/DTLayerId.h" #include "DataFormats/MuonDetId/interface/DTWireId.h" @@ -73,8 +74,10 @@ class DTChamberMasker : public edm::global::EDProducer<> { // ----------member data --------------------------- - const edm::EDGetTokenT m_digiToken; - const edm::EDPutTokenT m_putToken; + const edm::EDGetTokenT m_digiTokenR; + const edm::EDGetTokenT m_linkTokenR; + const edm::EDPutTokenT m_digiTokenP; + const edm::EDPutTokenT m_linkTokenP; const edm::ESGetToken m_agingObjToken; }; @@ -86,8 +89,10 @@ class DTChamberMasker : public edm::global::EDProducer<> { // constructors and destructor // DTChamberMasker::DTChamberMasker(const edm::ParameterSet &iConfig) - : m_digiToken(consumes(iConfig.getParameter("digiTag"))), - m_putToken(produces()), + : m_digiTokenR(consumes(iConfig.getParameter("digiTag"))), + m_linkTokenR(consumes(iConfig.getParameter("digiTag"))), + m_digiTokenP(produces()), + m_linkTokenP(produces()), m_agingObjToken(esConsumes()) {} // @@ -105,9 +110,9 @@ void DTChamberMasker::produce(edm::StreamID, edm::Event &event, const edm::Event DTDigiCollection filteredDigis; - if (!m_digiToken.isUninitialized()) { + if (!m_digiTokenR.isUninitialized()) { edm::Handle dtDigis; - event.getByToken(m_digiToken, dtDigis); + event.getByToken(m_digiTokenR, dtDigis); for (const auto &dtLayerId : (*dtDigis)) { uint32_t rawId = (dtLayerId.first).chamberId().rawId(); @@ -118,7 +123,16 @@ void DTChamberMasker::produce(edm::StreamID, edm::Event &event, const edm::Event } } - event.emplace(m_putToken, std::move(filteredDigis)); + DTDigiSimLinkCollection linksCopy; + + if (!m_linkTokenR.isUninitialized()) { + edm::Handle links; + event.getByToken(m_linkTokenR, links); + linksCopy = (*links); + } + + event.emplace(m_digiTokenP, std::move(filteredDigis)); + event.emplace(m_linkTokenP, std::move(linksCopy)); } // ------------ method fills 'descriptions' with the allowed parameters for the diff --git a/SimMuon/DTDigitizer/python/dtChamberMasker_cff.py b/SimMuon/DTDigitizer/python/dtChamberMasker_cff.py index e28c87b54d264..3ec6fc3838dd0 100644 --- a/SimMuon/DTDigitizer/python/dtChamberMasker_cff.py +++ b/SimMuon/DTDigitizer/python/dtChamberMasker_cff.py @@ -32,6 +32,32 @@ def appendDTChamberMaskerAtUnpacking(process): return process +def appendDTChamberMaskerAtSim(process): + + if hasattr(process,'simMuonDTDigis') and hasattr(process,'pdigiTask'): + + sys.stderr.write("[appendDTChamberMasker] : Found simMuonDTDigis, applying filter\n") + + process.preDtDigis = process.simMuonDTDigis.clone() + process.simMuonDTDigis = _dtChamberMasker.clone() + + process.simMuonDTDigis.digiTag = cms.InputTag('preDtDigis') + + process.pdigiTask.replace(process.simMuonDTDigis,process.preDtDigis) + process.pdigiTask.add(process.simMuonDTDigis) + + if hasattr(process,"RandomNumberGeneratorService") : + process.RandomNumberGeneratorService.preDtDigis = cms.PSet( + initialSeed = cms.untracked.uint32(789342) + ) + else : + process.RandomNumberGeneratorService = cms.Service( + "RandomNumberGeneratorService", + preDtDigis = cms.PSet(initialSeed = cms.untracked.uint32(789342)) + ) + + return process + def appendDTChamberMaskerAtHLT(process): if hasattr(process,'hltMuonDTDigis') and \ @@ -47,10 +73,8 @@ def appendDTChamberMaskerAtHLT(process): process.filteredHltDtDigiSequence = cms.Sequence(process.preHltDtDigis + process.hltMuonDTDigis) if hasattr(process,'HLTMuonLocalRecoSequence') : - print("1") process.HLTMuonLocalRecoSequence.replace(process.hltMuonDTDigis, process.filteredHltDtDigiSequence) if hasattr(process,'HLTMuonLocalRecoMeanTimerSequence') : - print("2") process.HLTMuonLocalRecoMeanTimerSequence.replace(process.hltMuonDTDigis, process.filteredHltDtDigiSequence) process.globalReplace("hltMuonDTDigis",filteredHltDtDigiSequence) From a71d8ca10d39c1ddbbdeb47414e1637d47ce4646 Mon Sep 17 00:00:00 2001 From: Patin Inkaew Date: Thu, 14 Nov 2024 19:02:56 +0100 Subject: [PATCH 033/418] apply code-format changes --- .../interface/TypedStringObjectMethodCaller.h | 7 +- .../Utils/interface/parser/MethodChain.h | 9 ++- .../interface/parser/MethodChainGrammar.h | 18 ++--- CommonTools/Utils/src/MethodChain.cc | 9 +-- .../interface/SimpleFlatTableProducer.h | 70 +++++++++++-------- 5 files changed, 59 insertions(+), 54 deletions(-) diff --git a/CommonTools/Utils/interface/TypedStringObjectMethodCaller.h b/CommonTools/Utils/interface/TypedStringObjectMethodCaller.h index a77c7657896a6..eb3bd7c8a5a69 100644 --- a/CommonTools/Utils/interface/TypedStringObjectMethodCaller.h +++ b/CommonTools/Utils/interface/TypedStringObjectMethodCaller.h @@ -24,12 +24,13 @@ struct TypedStringObjectMethodCaller { } } catch (reco::parser::BaseException& e) { throw edm::Exception(edm::errors::Configuration) - << "MethodChainGrammer parse error:" << reco::parser::baseExceptionWhat(e) << " (char " << e.where - startingFrom << ")\n"; + << "MethodChainGrammer parse error:" << reco::parser::baseExceptionWhat(e) << " (char " + << e.where - startingFrom << ")\n"; } } - R operator()(const T &t) const { - edm::ObjectWithDict o(type_, const_cast(&t)); + R operator()(const T& t) const { + edm::ObjectWithDict o(type_, const_cast(&t)); edm::ObjectWithDict ret = methodchain_->value(o); return *static_cast(ret.address()); } diff --git a/CommonTools/Utils/interface/parser/MethodChain.h b/CommonTools/Utils/interface/parser/MethodChain.h index dcab8092eade1..4d21f595a7983 100644 --- a/CommonTools/Utils/interface/parser/MethodChain.h +++ b/CommonTools/Utils/interface/parser/MethodChain.h @@ -16,14 +16,14 @@ namespace reco { namespace parser { - + /// Based on Expression, but its value method returns an edm::ObjectWithDict instead of a double class MethodChainBase { - public: // Public Methods + public: // Public Methods virtual ~MethodChainBase() {} - virtual edm::ObjectWithDict value(const edm::ObjectWithDict&) const = 0; + virtual edm::ObjectWithDict value(const edm::ObjectWithDict&) const = 0; }; - + /// Shared ptr to MethodChainBase typedef std::shared_ptr MethodChainPtr; @@ -41,7 +41,6 @@ namespace reco { void returnObjects(Objects&&) const; public: // Public Static Methods - /// allocate an object to hold the result of a given member (if needed) /// this method is used also from the LazyInvoker code /// returns true if objects returned from this will require a destructor diff --git a/CommonTools/Utils/interface/parser/MethodChainGrammar.h b/CommonTools/Utils/interface/parser/MethodChainGrammar.h index bb0a66d7b5776..27d4f68b780ae 100644 --- a/CommonTools/Utils/interface/parser/MethodChainGrammar.h +++ b/CommonTools/Utils/interface/parser/MethodChainGrammar.h @@ -25,14 +25,14 @@ namespace reco { namespace parser { struct MethodChainGrammar : public boost::spirit::classic::grammar { - MethodChainPtr *methchain_; - bool lazy_; + MethodChainPtr* methchain_; + bool lazy_; mutable MethodStack methStack; mutable LazyMethodStack lazyMethStack; mutable MethodArgumentStack methArgStack; mutable TypeStack typeStack; - MethodChainGrammar(MethodChainPtr &methchain, const edm::TypeWithDict& iType, bool lazy = false) + MethodChainGrammar(MethodChainPtr& methchain, const edm::TypeWithDict& iType, bool lazy = false) : methchain_(&methchain), lazy_(lazy) { typeStack.push_back(iType); } @@ -59,10 +59,10 @@ namespace reco { metharg = (strict_real_p[methodArg_s]) | (int_p[methodArg_s]) | (ch_p('"') >> *(~ch_p('"')) >> ch_p('"'))[methodArg_s] | (ch_p('\'') >> *(~ch_p('\'')) >> ch_p('\''))[methodArg_s]; - method = // alnum_p doesn't accept underscores, so we use chset<>; lexeme_d needed to avoid whitespace skipping within method names - (lexeme_d[alpha_p >> *chset<>("a-zA-Z0-9_")] >> ch_p('(') >> metharg >> *(ch_p(',') >> metharg) >> - expectParenthesis(ch_p(')')))[method_s] | - ((lexeme_d[alpha_p >> *chset<>("a-zA-Z0-9_")])[method_s] >> !(ch_p('(') >> ch_p(')'))); + method = // alnum_p doesn't accept underscores, so we use chset<>; lexeme_d needed to avoid whitespace skipping within method names + (lexeme_d[alpha_p >> *chset<>("a-zA-Z0-9_")] >> ch_p('(') >> metharg >> *(ch_p(',') >> metharg) >> + expectParenthesis(ch_p(')')))[method_s] | + ((lexeme_d[alpha_p >> *chset<>("a-zA-Z0-9_")])[method_s] >> !(ch_p('(') >> ch_p(')'))); arrayAccess = (ch_p('[') >> metharg >> *(ch_p(',') >> metharg) >> expectParenthesis(ch_p(']')))[method_s]; methodchain = (method >> *(arrayAccess | (ch_p('.') >> expect(method))))[methodchain_s]; } @@ -70,7 +70,7 @@ namespace reco { rule const& start() const { return methodchain; } }; }; - } -} + } // namespace parser +} // namespace reco #endif diff --git a/CommonTools/Utils/src/MethodChain.cc b/CommonTools/Utils/src/MethodChain.cc index 33881bc1db3f0..39554f33b4ae2 100644 --- a/CommonTools/Utils/src/MethodChain.cc +++ b/CommonTools/Utils/src/MethodChain.cc @@ -28,14 +28,9 @@ MethodChain::Objects MethodChain::initObjects_() const { return objects; } -MethodChain::MethodChain(const vector& methods) - : methods_(methods) { - returnObjects(initObjects_()); -} +MethodChain::MethodChain(const vector& methods) : methods_(methods) { returnObjects(initObjects_()); } -MethodChain::MethodChain(const MethodChain& rhs) : methods_(rhs.methods_) { - returnObjects(initObjects_()); -} +MethodChain::MethodChain(const MethodChain& rhs) : methods_(rhs.methods_) { returnObjects(initObjects_()); } MethodChain::Objects MethodChain::borrowObjects() const { Objects objects; diff --git a/PhysicsTools/NanoAOD/interface/SimpleFlatTableProducer.h b/PhysicsTools/NanoAOD/interface/SimpleFlatTableProducer.h index 5e5dd00a8e040..edf00a8f8e18a 100644 --- a/PhysicsTools/NanoAOD/interface/SimpleFlatTableProducer.h +++ b/PhysicsTools/NanoAOD/interface/SimpleFlatTableProducer.h @@ -87,13 +87,13 @@ template { public: FuncCollectionVariable(const std::string &aname, const edm::ParameterSet &cfg) - : CollectionVariable(aname, cfg), - func_(cfg.getParameter("expr"), cfg.getUntrackedParameter("lazyEval")), - precisionFunc_(cfg.existsAs("precision") ? cfg.getParameter("precision") : "23", - cfg.getUntrackedParameter("lazyEval")) {} + : CollectionVariable(aname, cfg), + func_(cfg.getParameter("expr"), cfg.getUntrackedParameter("lazyEval")), + precisionFunc_(cfg.existsAs("precision") ? cfg.getParameter("precision") : "23", + cfg.getUntrackedParameter("lazyEval")) {} ~FuncCollectionVariable() override {} - - std::unique_ptr> getCounts(std::vector &selobjs) const override{ + + std::unique_ptr> getCounts(std::vector &selobjs) const override { auto counts = std::make_unique>(); for (auto const &obj : selobjs) counts->push_back(func_(*obj).size()); @@ -119,8 +119,8 @@ class FuncCollectionVariable : public CollectionVariable { } protected: - CollectionStringFunctor func_; // functor to get collection objects - PrecisionStringFunctor precisionFunc_; // functor to get output precision + CollectionStringFunctor func_; // functor to get collection objects + PrecisionStringFunctor precisionFunc_; // functor to get output precision }; // External variables: i.e. variables that are not member or methods of the object @@ -538,19 +538,21 @@ class SimpleTypedExternalFlatTableProducer : public SimpleFlatTableProducer { template class SimpleCollectionFlatTableProducer : public SimpleFlatTableProducer { -public: +public: SimpleCollectionFlatTableProducer(edm::ParameterSet const ¶ms) : SimpleFlatTableProducer(params) { if (params.existsAs("collectionVariables")) { edm::ParameterSet const &collectionVarsPSet = params.getParameter("collectionVariables"); - for (const std::string &coltablename : collectionVarsPSet.getParameterNamesForType()) { // tables of variables + for (const std::string &coltablename : + collectionVarsPSet.getParameterNamesForType()) { // tables of variables const auto &coltablePSet = collectionVarsPSet.getParameter(coltablename); CollectionVariableTableInfo coltable; - coltable.name = coltablePSet.existsAs("name") ? coltablePSet.getParameter("name") : coltablename; + coltable.name = + coltablePSet.existsAs("name") ? coltablePSet.getParameter("name") : coltablename; coltable.doc = coltablePSet.getParameter("doc"); coltable.useCount = coltablePSet.getParameter("useCount"); coltable.useOffset = coltablePSet.getParameter("useOffset"); const auto &colvarsPSet = coltablePSet.getParameter("variables"); - for (const std::string &colvarname : colvarsPSet.getParameterNamesForType()) { // variables + for (const std::string &colvarname : colvarsPSet.getParameterNamesForType()) { // variables const auto &colvarPSet = colvarsPSet.getParameter(colvarname); const std::string &type = colvarPSet.getParameter("type"); if (type == "int") @@ -568,7 +570,8 @@ class SimpleCollectionFlatTableProducer : public SimpleFlatTableProducer { else if (type == "uint16") coltable.colvars.push_back(std::make_unique(colvarname, colvarPSet)); else - throw cms::Exception("Configuration", "unsupported type " + type + " for variable " + colvarname + " in " + coltablename); + throw cms::Exception("Configuration", + "unsupported type " + type + " for variable " + colvarname + " in " + coltablename); } this->coltables.push_back(std::move(coltable)); edm::stream::EDProducer<>::produces(coltables.back().name + "Table"); @@ -581,14 +584,14 @@ class SimpleCollectionFlatTableProducer : public SimpleFlatTableProducer { static void fillDescriptions(edm::ConfigurationDescriptions &descriptions) { edm::ParameterSetDescription desc = SimpleFlatTableProducer::baseDescriptions(); edm::ParameterSetDescription colvariable; - colvariable.add("expr")->setComment("a function to define the content of the branch in the flat table"); + colvariable.add("expr")->setComment( + "a function to define the content of the branch in the flat table"); colvariable.add("doc")->setComment("few words of self documentation"); colvariable.addUntracked("lazyEval", false) ->setComment("if true, can use methods of inheriting classes in `expr`. Can cause problems with threading."); - colvariable.ifValue( - edm::ParameterDescription( - "type", "int", true, edm::Comment("the c++ type of the branch in the flat table")), - edm::allowedValues("int", "uint", "float", "double", "uint8", "int16", "uint16")); + colvariable.ifValue(edm::ParameterDescription( + "type", "int", true, edm::Comment("the c++ type of the branch in the flat table")), + edm::allowedValues("int", "uint", "float", "double", "uint8", "int16", "uint16")); colvariable.addOptionalNode( edm::ParameterDescription( "precision", true, edm::Comment("the precision with which to store the value in the flat table")) xor @@ -599,10 +602,12 @@ class SimpleCollectionFlatTableProducer : public SimpleFlatTableProducer { colvariables.setComment("a parameters set to define all variable to fill the flat table"); colvariables.addNode( edm::ParameterWildcard("*", edm::RequireAtLeastOne, true, colvariable)); - + edm::ParameterSetDescription coltable; - coltable.addOptional("name")->setComment("name of the branch in the flat table containing flatten collections of variables"); - coltable.add("doc")->setComment("few words description of the table containing flatten collections of variables"); + coltable.addOptional("name")->setComment( + "name of the branch in the flat table containing flatten collections of variables"); + coltable.add("doc")->setComment( + "few words description of the table containing flatten collections of variables"); coltable.add("useCount", true) ->setComment("whether to use count for the main table to index table with flatten collections of variables"); coltable.add("useOffset", false) @@ -674,27 +679,32 @@ class SimpleCollectionFlatTableProducer : public SimpleFlatTableProducer { out->template addColumn("o" + coltable.name, offsets, "offsets for " + coltable.name); } - std::unique_ptr outcoltable = std::make_unique(coltablesize, coltable.name, false, false); + std::unique_ptr outcoltable = + std::make_unique(coltablesize, coltable.name, false, false); for (const auto &colvar : coltable.colvars) { colvar->fill(selobjs, *outcoltable); } outcoltable->setDoc(coltable.doc); iEvent.put(std::move(outcoltable), coltable.name + "Table"); } - + // put the main table into the event out->setDoc(this->doc_); iEvent.put(std::move(out)); } protected: - typedef FuncCollectionVariable>, StringObjectFunction, int32_t> IntVectorVar; - typedef FuncCollectionVariable>, StringObjectFunction, uint32_t> UIntVectorVar; - typedef FuncCollectionVariable>, StringObjectFunction, float> FloatVectorVar; - typedef FuncCollectionVariable>, StringObjectFunction, double> DoubleVectorVar; - typedef FuncCollectionVariable>, StringObjectFunction, uint8_t> UInt8VectorVar; - typedef FuncCollectionVariable>, StringObjectFunction, int16_t> Int16VectorVar; - typedef FuncCollectionVariable>, StringObjectFunction, uint16_t> UInt16VectorVar; + template + using VectorVar = + FuncCollectionVariable>, StringObjectFunction, R>; + + using IntVectorVar = VectorVar; + using UIntVectorVar = VectorVar; + using FloatVectorVar = VectorVar; + using DoubleVectorVar = VectorVar; + using UInt8VectorVar = VectorVar; + using Int16VectorVar = VectorVar; + using UInt16VectorVar = VectorVar; struct CollectionVariableTableInfo { std::string name; From 74ae9ff90eaced1d8121515569e5d2ac271dd9f9 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Fri, 15 Nov 2024 07:37:06 +0100 Subject: [PATCH 034/418] First version of 2025 scenario - still needed the correct PPS geometry with the needed rotation --- Configuration/Geometry/README.md | 3 +- .../GeometryDD4hepExtended2025Reco_cff.py | 51 +++ .../python/GeometryDD4hepExtended2025_cff.py | 15 + .../python/GeometryExtended2025Reco_cff.py | 51 +++ .../python/GeometryExtended2025_cff.py | 13 + .../Geometry/python/dict2021Geometry.py | 15 +- .../StandardSequences/python/GeometryConf.py | 2 + .../data/dd4hep/cmsExtendedGeometry2025.xml | 382 +++++++++++++++++ .../python/cmsExtendedGeometry2025XML_cfi.py | 386 ++++++++++++++++++ 9 files changed, 910 insertions(+), 8 deletions(-) create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025Reco_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025Reco_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025_cff.py create mode 100644 Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml create mode 100644 Geometry/CMSCommonData/python/cmsExtendedGeometry2025XML_cfi.py diff --git a/Configuration/Geometry/README.md b/Configuration/Geometry/README.md index 1e8c40f1a6112..a0b3cab945a94 100644 --- a/Configuration/Geometry/README.md +++ b/Configuration/Geometry/README.md @@ -33,7 +33,8 @@ Calorimeters: Muon system: * M1: 2021 baseline with additional chambers in GE21 and iRPC31/41 * M2: 2023 GE21 shifted in position -* M3: 2024 with additional chambers in GE21 and iRPC31 +* M4: 2024 with additional chambers in GE21 and iRPC31 +* M5: 2025 with additional chambers in GE21 and iRPC PPS: * P7: 2021 baseline (after removing overlaps and using common materials whenever possible) diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025Reco_cff.py new file mode 100644 index 0000000000000..17b67589ad895 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025Reco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hepExtended2025_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025_cff.py new file mode 100644 index 0000000000000..89656ffe72ac9 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025_cff.py @@ -0,0 +1,15 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hep_cff import * +DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml") + +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryExtended2025Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2025Reco_cff.py new file mode 100644 index 0000000000000..c9347746fe067 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025Reco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryExtended2025_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryExtended2025_cff.py b/Configuration/Geometry/python/GeometryExtended2025_cff.py new file mode 100644 index 0000000000000..f87744a11bdf8 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025_cff.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Geometry.CMSCommonData.cmsExtendedGeometry2025XML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/dict2021Geometry.py b/Configuration/Geometry/python/dict2021Geometry.py index d829d79dd405c..24eda0dcbaabd 100644 --- a/Configuration/Geometry/python/dict2021Geometry.py +++ b/Configuration/Geometry/python/dict2021Geometry.py @@ -1624,7 +1624,7 @@ ], "era" : "run3_GEM", }, - "M3" : { + "M4" : { 1 : [ 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', @@ -1637,7 +1637,7 @@ 'Geometry/MuonCommonData/data/rpcf/2024/v1/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2024/v1/gem21.xml', + 'Geometry/MuonCommonData/data/gem21/2024/v2/gem21.xml', 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', ], @@ -1669,7 +1669,7 @@ ], "era" : "run3_GEM", }, - "M4" : { + "M5" : { 1 : [ 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', @@ -1679,10 +1679,10 @@ 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', - 'Geometry/MuonCommonData/data/rpcf/2024/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2024/v2/gem21.xml', + 'Geometry/MuonCommonData/data/gem21/2025/v1/gem21.xml', 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', ], @@ -1946,7 +1946,8 @@ ("O5","T6","C2","M4","F2","P7") : "2024FlatMinus10Percent", ("O5","T7","C2","M4","F2","P7") : "2024FlatPlus05Percent", ("O5","T8","C2","M4","F2","P7") : "2024FlatPlus10Percent", + ("O6","T3","C2","M5","F3","P7") : "2025", } -deprecatedSubdets = set([ "T1", "T2", "O1", "O2", "O3", "P1", "P2", "P3", - "P4", "P5", "P6" ]) +deprecatedSubdets = set([ "T1", "T2", "O1", "O2", "O3", "M3", "P1", "P2", + "P3", "P4", "P5", "P6" ]) diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py index 651a516d97fb5..d287136fc2f1a 100644 --- a/Configuration/StandardSequences/python/GeometryConf.py +++ b/Configuration/StandardSequences/python/GeometryConf.py @@ -72,6 +72,8 @@ 'DD4hepExtended2024FlatPlus05Percent' : 'DD4hepExtended2024FlatPlus05Percent,DD4hepExtended2024FlatPls05PercentReco', 'Extended2024FlatPlus10Percent' : 'Extended2024FlatPlus10Percent,Extended2024FlatPlus10PercentReco', 'DD4hepExtended2024FlatPlus10Percent' : 'DD4hepExtended2024FlatPlus10Percent,DD4hepExtended2024FlatPlus10PercentReco', + 'Extended2025' : 'Extended2025,Extended2025Reco', + 'DD4hepExtended2025' : 'DD4hepExtended2025,DD4hepExtended2025Reco', 'All' : 'Configuration.Geometry.GeometrySimAll_cff,Reco', 'ECALHCAL' : 'Configuration.Geometry.GeometrySimECALHCAL_cff,Configuration.Geometry.GeometryRecoECALHCAL_cff', 'TrackerOnly' : 'Configuration.Geometry.GeometrySimTracker_cff,Configuration.Geometry.GeometryRecoTracker_cff', diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml new file mode 100644 index 0000000000000..2e4f8f69c5c96 --- /dev/null +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2025XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025XML_cfi.py new file mode 100644 index 0000000000000..cdb94072f1544 --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025XML_cfi.py @@ -0,0 +1,386 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v3/materials.xml', + 'Geometry/TrackerCommonData/data/trackermaterial/2021/v2/trackermaterial.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/pixfwdMaterials/2021/v3/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v3/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdSupportRingParameters.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v3/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbar.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpatchpannel.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpixelnose.xml', + 'Geometry/TrackerCommonData/data/tibtidcommonmaterial/2021/v2/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmaterial/2021/v2/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmaterial/2021/v2/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmaterial/2021/v2/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob/v3/tob.xml', + 'Geometry/TrackerCommonData/data/tecmaterial/2021/v1/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel/2021/v1/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/Run2/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/v2/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseI/v1/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eefixed/2021/v1/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/PhaseI/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcap/PhaseI/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/2021/v1/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/2021/v2/hcalRecNumbering.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2025/v1/gem21.xml', + 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', + 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/2024/v1/muonNumbering.xml', + 'Geometry/ForwardCommonData/data/forward/2021/v1/forward.xml', + 'Geometry/ForwardCommonData/data/totemt2/2021/v1/totemt2.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2021/v1/forwardshield.xml', + 'Geometry/ForwardCommonData/data/bhm.xml', + 'Geometry/ForwardCommonData/data/pltbcm/2021/v1/pltbcm.xml', + 'Geometry/ForwardCommonData/data/bcm1f/2021/v1/bcm1f.xml', + 'Geometry/ForwardCommonData/data/plt/2021/v1/plt.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2021/v3/zdc.xml', + 'Geometry/ForwardCommonData/data/rpd/2021/v2/rpd.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/VeryForwardData/data/RP_Box.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_000.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_001.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_002.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_003.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_004.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_005.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_020.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_021.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_022.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_023.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_024.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_025.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_100.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_101.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_102.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_103.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_104.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_105.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_120.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_121.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_122.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_123.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_124.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_125.xml', + 'Geometry/VeryForwardData/data/RP_Hybrid/v2/RP_Hybrid.xml', + 'Geometry/VeryForwardData/data/RP_Materials/v5/RP_Materials.xml', + 'Geometry/VeryForwardData/data/RP_Transformations.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_000.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_001.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_002.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_004.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_005.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_020.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_021.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_024.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_025.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_100.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_101.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_102.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_104.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_105.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_120.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_121.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', + 'Geometry/VeryForwardData/data/RP_Device/v1/RP_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/Simu/v2/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/Simu/v2/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_Stations_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Cuts_Per_Region/Simu/v1/CTPPS_Cuts_Per_Region.xml', + 'Geometry/VeryForwardData/data/RP_Sensitive_Dets.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Transformations.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Station_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Horizontal_Pot/v2/CTPPS_Timing_Horizontal_Pot.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern1_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment5.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Detector_Assembly/v1/CTPPS_Diamond_Detector_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_022.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_122.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Sensitive_Dets_TimingHits.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v3/PPS_Pixel_Module_2x2_Run3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v2/PPS_Pixel_Sens.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_003.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_023.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_103.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_123.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/RP_Dist_Beam_Cent/Simu/v1/RP_Dist_Beam_Cent.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/2021/v2/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2021/v1/CaloUtil.xml', + 'Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter/2021/v2/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecs/2021/v2/GEMSpecs.xml', + 'Geometry/ForwardSimData/data/totemsensT2/2021/totemsensT2.xml', + 'Geometry/ForwardCommonData/data/bhmsens.xml', + 'Geometry/ForwardSimData/data/pltsens.xml', + 'Geometry/ForwardSimData/data/bcm1fsens.xml', + 'Geometry/ForwardSimData/data/zdcsens/2021/v1/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2021/v2/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/ForwardSimData/data/bhmProdCuts/2021/v1/bhmProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v3/zdcProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) From 0d92ca221ffd988a6e471a00e779f51f6118cd69 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 15 Nov 2024 11:38:50 +0100 Subject: [PATCH 035/418] [Py312] Move away from using imp python module --- FWCore/ParameterSet/python/TreeCrawler.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/FWCore/ParameterSet/python/TreeCrawler.py b/FWCore/ParameterSet/python/TreeCrawler.py index d91b1c7487264..cd4b7231abf06 100755 --- a/FWCore/ParameterSet/python/TreeCrawler.py +++ b/FWCore/ParameterSet/python/TreeCrawler.py @@ -25,7 +25,7 @@ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. from builtins import range -import sys, os, inspect, copy, struct, dis, imp +import sys, os, inspect, copy, struct, dis, importlib import modulefinder def packageNameFromFilename(name:str) -> str: @@ -198,16 +198,16 @@ def scan_opcodes_25(self, co, unpack = struct.unpack): try : parentFilename=[self._localarea+"/python"] for subModule in loadMethodArgument.split(".") : - moduleInfo=imp.find_module( subModule, parentFilename ) - parentFilename=[moduleInfo[1]] + moduleInfo=importlib.machinery.PathFinder.find_spec( subModule, parentFilename ) + parentFilename=[moduleInfo.origin] # If control got this far without raising an exception, then it must be a valid python module yield "import", (None, loadMethodArgument) except ImportError : # Didn't work in the local area, try in the global area. parentFilename=[self._globalarea+"/python"] for subModule in loadMethodArgument.split(".") : - moduleInfo=imp.find_module( subModule, parentFilename ) - parentFilename=[moduleInfo[1]] + moduleInfo=importlib.machinery.PathFinder.find_spec( subModule, parentFilename ) + parentFilename=[moduleInfo.origin] # If control got this far without raising an exception, then it must be a valid python module yield "import", (None, loadMethodArgument) except Exception as error: From 24f4d44e602e125e8dc15c97d9660547fb474bde Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Mon, 28 Oct 2024 09:35:57 +0100 Subject: [PATCH 036/418] Cleanup --- FWCore/Services/plugins/SimpleMemoryCheck.cc | 81 +++++++------------- 1 file changed, 26 insertions(+), 55 deletions(-) diff --git a/FWCore/Services/plugins/SimpleMemoryCheck.cc b/FWCore/Services/plugins/SimpleMemoryCheck.cc index 5fedb057cd5f6..778b85291a70f 100644 --- a/FWCore/Services/plugins/SimpleMemoryCheck.cc +++ b/FWCore/Services/plugins/SimpleMemoryCheck.cc @@ -58,15 +58,8 @@ namespace edm { namespace service { struct smapsInfo { - smapsInfo() : private_(), pss_() {} - smapsInfo(double private_sz, double pss_sz) : private_(private_sz), pss_(pss_sz) {} - - bool operator==(const smapsInfo& p) const { return private_ == p.private_ && pss_ == p.pss_; } - - bool operator>(const smapsInfo& p) const { return private_ > p.private_ || pss_ > p.pss_; } - - double private_; // in MB - double pss_; // in MB + double private_ = 0; // in MB + double pss_ = 0; // in MB }; class SimpleMemoryCheck { @@ -143,25 +136,16 @@ namespace edm { // Event summary statistics changeLog 1 struct SignificantEvent { - int count; - double vsize; - double deltaVsize; - double rss; - double deltaRss; - bool monitorPssAndPrivate; - double privateSize; - double pss; + int count = 0; + double vsize = 0; + double deltaVsize = 0; + double rss = 0; + double deltaRss = 0; + bool monitorPssAndPrivate = 0; + double privateSize = 0; + double pss = 0; edm::EventID event; - SignificantEvent() - : count(0), - vsize(0), - deltaVsize(0), - rss(0), - deltaRss(0), - monitorPssAndPrivate(false), - privateSize(0), - pss(0), - event() {} + SignificantEvent() = default; void set(double deltaV, double deltaR, edm::EventID const& e, SimpleMemoryCheck* t) { count = t->count_; vsize = t->current_->vsize; @@ -293,8 +277,6 @@ namespace edm { smapsInfo SimpleMemoryCheck::fetchSmaps() { smapsInfo ret; - ret.private_ = 0; - ret.pss_ = 0; #ifdef LINUX fseek(smapsFile_, 0, SEEK_SET); ssize_t read; @@ -334,8 +316,7 @@ namespace edm { b_(), current_(&a_), previous_(&b_), - pg_size_(sysconf(_SC_PAGESIZE)) // getpagesize() - , + pg_size_(sysconf(_SC_PAGESIZE)), // getpagesize() num_to_skip_(iPS.getUntrackedParameter("ignoreTotal")), showMallocInfo_(iPS.getUntrackedParameter("showMallocInfo")), oncePerEventMode_(iPS.getUntrackedParameter("oncePerEventMode")), @@ -357,6 +338,8 @@ namespace edm { openFiles(); + iReg.watchPostEndJob(this, &SimpleMemoryCheck::postEndJob); + if (sampleEveryNSeconds_ > 0) { if (oncePerEventMode_) { throw edm::Exception(edm::errors::Configuration) @@ -368,24 +351,20 @@ namespace edm { } iReg.watchPostBeginJob(this, &SimpleMemoryCheck::startSamplingThread); iReg.watchPreEndJob(this, &SimpleMemoryCheck::stopSamplingThread); - iReg.watchPostEndJob(this, &SimpleMemoryCheck::postEndJob); iReg.watchPreEvent([this](auto const& iContext) { mostRecentlyStartedEvent_.store(iContext.eventID()); }); return; } + iReg.watchPostEvent(this, &SimpleMemoryCheck::postEvent); + if (!oncePerEventMode_) { // default, prints on increases iReg.watchPreSourceConstruction(this, &SimpleMemoryCheck::preSourceConstruction); iReg.watchPostSourceConstruction(this, &SimpleMemoryCheck::postSourceConstruction); iReg.watchPostSourceEvent(this, &SimpleMemoryCheck::postSourceEvent); iReg.watchPostModuleConstruction(this, &SimpleMemoryCheck::postModuleConstruction); iReg.watchPostModuleBeginJob(this, &SimpleMemoryCheck::postModuleBeginJob); - iReg.watchPostEvent(this, &SimpleMemoryCheck::postEvent); iReg.watchPostModuleEvent(this, &SimpleMemoryCheck::postModule); iReg.watchPostBeginJob(this, &SimpleMemoryCheck::postBeginJob); - iReg.watchPostEndJob(this, &SimpleMemoryCheck::postEndJob); - } else { - iReg.watchPostEvent(this, &SimpleMemoryCheck::postEvent); - iReg.watchPostEndJob(this, &SimpleMemoryCheck::postEndJob); } if (moduleSummaryRequested_) { // changelog 2 iReg.watchPreModuleEvent(this, &SimpleMemoryCheck::preModule); @@ -544,7 +523,6 @@ namespace edm { << eventDeltaRssT3_ << "\n" << eventDeltaRssT2_ << "\n" << eventDeltaRssT1_; - ; } if (moduleSummaryRequested_ and not jobReportOutputOnly_) { // changelog 1 LogAbsolute mmr("ModuleMemoryReport"); // at end of if block, mmr @@ -905,30 +883,23 @@ namespace edm { if (count_ >= num_to_skip_) { double deltaVSIZE = current_->vsize - max_.vsize; double deltaRSS = current_->rss - max_.rss; - if (!showMallocInfo_) { // default - LogWarning("MemoryCheck") << "MemoryCheck: " << type << " " << mdname << ":" << mdlabel << " VSIZE " - << current_->vsize << " " << deltaVSIZE << " RSS " << current_->rss << " " - << deltaRSS; - } else { + + LogWarning log("MemoryCheck"); + // default + log << "MemoryCheck: " << type << " " << mdname << ":" << mdlabel << " VSIZE " << current_->vsize << " " + << deltaVSIZE << " RSS " << current_->rss << " " << deltaRSS; + if (showMallocInfo_) { #ifdef __linux__ #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 33) struct mallinfo2 minfo = mallinfo2(); #else struct mallinfo minfo = mallinfo(); #endif + log << " HEAP-ARENA [ SIZE-BYTES " << minfo.arena << " N-UNUSED-CHUNKS " << minfo.ordblks + << " TOP-FREE-BYTES " << minfo.keepcost << " ]" + << " HEAP-MAPPED [ SIZE-BYTES " << minfo.hblkhd << " N-CHUNKS " << minfo.hblks << " ]" + << " HEAP-USED-BYTES " << minfo.uordblks << " HEAP-UNUSED-BYTES " << minfo.fordblks; #endif - LogWarning("MemoryCheck") << "MemoryCheck: " << type << " " << mdname << ":" << mdlabel << " VSIZE " - << current_->vsize << " " << deltaVSIZE << " RSS " << current_->rss << " " - << deltaRSS -#ifdef __linux__ - << " HEAP-ARENA [ SIZE-BYTES " << minfo.arena << " N-UNUSED-CHUNKS " - << minfo.ordblks << " TOP-FREE-BYTES " << minfo.keepcost << " ]" - << " HEAP-MAPPED [ SIZE-BYTES " << minfo.hblkhd << " N-CHUNKS " << minfo.hblks - << " ]" - << " HEAP-USED-BYTES " << minfo.uordblks << " HEAP-UNUSED-BYTES " - << minfo.fordblks -#endif - ; } } } From 2d287256192f997ba39ce786c07fe8f54aa3ae39 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Mon, 28 Oct 2024 17:52:17 +0100 Subject: [PATCH 037/418] Add printout to early termination, and include information from smaps file Also include information on huge pages --- FWCore/Services/plugins/SimpleMemoryCheck.cc | 107 +++++++++++++------ 1 file changed, 77 insertions(+), 30 deletions(-) diff --git a/FWCore/Services/plugins/SimpleMemoryCheck.cc b/FWCore/Services/plugins/SimpleMemoryCheck.cc index 778b85291a70f..253f80eae84f4 100644 --- a/FWCore/Services/plugins/SimpleMemoryCheck.cc +++ b/FWCore/Services/plugins/SimpleMemoryCheck.cc @@ -58,8 +58,9 @@ namespace edm { namespace service { struct smapsInfo { - double private_ = 0; // in MB - double pss_ = 0; // in MB + double private_ = 0; // in MB + double pss_ = 0; // in MB + double anonHugePages_ = 0; // in MB }; class SimpleMemoryCheck { @@ -83,6 +84,8 @@ namespace edm { void preModule(StreamContext const&, ModuleCallingContext const&); void postModule(StreamContext const&, ModuleCallingContext const&); + void earlyTermination(); + void postEndJob(); void startSamplingThread(); @@ -95,6 +98,10 @@ namespace edm { double averageGrowthRate(double current, double past, int count); void update(); void updateMax(); + void andPrintAlways(const std::string& type, + const std::string& mdlabel, + const std::string& mdname, + bool includeSmaps = false) const; void andPrint(const std::string& type, const std::string& mdlabel, const std::string& mdname) const; void updateAndPrint(const std::string& type, const std::string& mdlabel, const std::string& mdname); void openFiles(); @@ -126,7 +133,7 @@ namespace edm { std::atomic mostRecentlyStartedEvent_; //smaps - edm::propagate_const smapsFile_; + edm::propagate_const smapsFile_ = nullptr; edm::propagate_const smapsLineBuffer_; size_t smapsLineBufferLen_; @@ -144,6 +151,7 @@ namespace edm { bool monitorPssAndPrivate = 0; double privateSize = 0; double pss = 0; + double anonHugePages = 0; edm::EventID event; SignificantEvent() = default; void set(double deltaV, double deltaR, edm::EventID const& e, SimpleMemoryCheck* t) { @@ -156,6 +164,7 @@ namespace edm { if (monitorPssAndPrivate) { privateSize = t->currentSmaps_.private_; pss = t->currentSmaps_.pss_; + anonHugePages = t->currentSmaps_.anonHugePages_; } event = e; } @@ -287,6 +296,7 @@ namespace edm { Private_Dirty: 72 kB Swap: 0 kB Pss: 72 kB + AnonHugePages: 10240 kB */ while ((read = getline(&smapsLineBuffer(), &smapsLineBufferLen_, smapsFile_)) != -1) { @@ -300,6 +310,9 @@ namespace edm { unsigned int value = atoi(smapsLineBuffer_ + 4); //Convert from kB to MB ret.pss_ += static_cast(value) / 1024.; + } else if (0 == strncmp("AnonHugePages:", smapsLineBuffer_, 14)) { + unsigned int value = atoi(smapsLineBuffer_ + 14); + ret.anonHugePages_ += static_cast(value) / 1024.; } } } @@ -336,9 +349,16 @@ namespace edm { // pg_size = (double)getpagesize(); std::ostringstream ost; - openFiles(); + if (monitorPssAndPrivate_) { + openFiles(); + } iReg.watchPostEndJob(this, &SimpleMemoryCheck::postEndJob); + // A possible source for early termination is a signal from WM + // when the job's memory use exceeds their limit + iReg.watchPreSourceEarlyTermination([this](TerminationOrigin) { earlyTermination(); }); + iReg.watchPreGlobalEarlyTermination([this](GlobalContext const&, TerminationOrigin) { earlyTermination(); }); + iReg.watchPreStreamEarlyTermination([this](StreamContext const&, TerminationOrigin) { earlyTermination(); }); if (sampleEveryNSeconds_ > 0) { if (oncePerEventMode_) { @@ -420,12 +440,10 @@ namespace edm { void SimpleMemoryCheck::openFiles() { #ifdef LINUX - if (monitorPssAndPrivate_) { - std::ostringstream smapsNameOst; - smapsNameOst << "/proc/" << getpid() << "/smaps"; - if ((smapsFile_ = fopen(smapsNameOst.str().c_str(), "r")) == nullptr) { - throw Exception(errors::Configuration) << "Failed to open smaps file " << smapsNameOst.str() << std::endl; - } + std::ostringstream smapsNameOst; + smapsNameOst << "/proc/" << getpid() << "/smaps"; + if ((smapsFile_ = fopen(smapsNameOst.str().c_str(), "r")) == nullptr) { + throw Exception(errors::Configuration) << "Failed to open smaps file " << smapsNameOst.str() << std::endl; } #endif } @@ -480,6 +498,24 @@ namespace edm { } } + void SimpleMemoryCheck::earlyTermination() { + bool expected = false; + while (not measurementUnderway_.compare_exchange_strong(expected, true, std::memory_order_acq_rel)) { + expected = false; + } + std::shared_ptr guard( + nullptr, [this](void const*) { measurementUnderway_.store(false, std::memory_order_release); }); + if (not smapsFile_) { + openFiles(); + } + if (smapsFile_) { + currentSmaps_ = fetchSmaps(); + } + update(); + andPrintAlways("earlyTermination", "", "", true); + updateMax(); + } + void SimpleMemoryCheck::startSamplingThread() { samplingThread_ = std::thread{[this]() { while (not stopThread_) { @@ -876,31 +912,42 @@ namespace edm { } } // updateEventStats - void SimpleMemoryCheck::andPrint(std::string const& type, - std::string const& mdlabel, - std::string const& mdname) const { - if (not jobReportOutputOnly_ && ((*current_ > max_) || printEachTime_)) { - if (count_ >= num_to_skip_) { - double deltaVSIZE = current_->vsize - max_.vsize; - double deltaRSS = current_->rss - max_.rss; - - LogWarning log("MemoryCheck"); - // default - log << "MemoryCheck: " << type << " " << mdname << ":" << mdlabel << " VSIZE " << current_->vsize << " " - << deltaVSIZE << " RSS " << current_->rss << " " << deltaRSS; - if (showMallocInfo_) { + void SimpleMemoryCheck::andPrintAlways(std::string const& type, + std::string const& mdlabel, + std::string const& mdname, + bool includeSmaps) const { + double deltaVSIZE = current_->vsize - max_.vsize; + double deltaRSS = current_->rss - max_.rss; + + LogWarning log("MemoryCheck"); + // default + log << "MemoryCheck: " << type << " " << mdname << ":" << mdlabel << " VSIZE " << current_->vsize << " " + << deltaVSIZE << " RSS " << current_->rss << " " << deltaRSS; + if (showMallocInfo_) { #ifdef __linux__ #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 33) - struct mallinfo2 minfo = mallinfo2(); + struct mallinfo2 minfo = mallinfo2(); #else - struct mallinfo minfo = mallinfo(); + struct mallinfo minfo = mallinfo(); #endif - log << " HEAP-ARENA [ SIZE-BYTES " << minfo.arena << " N-UNUSED-CHUNKS " << minfo.ordblks - << " TOP-FREE-BYTES " << minfo.keepcost << " ]" - << " HEAP-MAPPED [ SIZE-BYTES " << minfo.hblkhd << " N-CHUNKS " << minfo.hblks << " ]" - << " HEAP-USED-BYTES " << minfo.uordblks << " HEAP-UNUSED-BYTES " << minfo.fordblks; + log << " HEAP-ARENA [ SIZE-BYTES " << minfo.arena << " N-UNUSED-CHUNKS " << minfo.ordblks << " TOP-FREE-BYTES " + << minfo.keepcost << " ]" + << " HEAP-MAPPED [ SIZE-BYTES " << minfo.hblkhd << " N-CHUNKS " << minfo.hblks << " ]" + << " HEAP-USED-BYTES " << minfo.uordblks << " HEAP-UNUSED-BYTES " << minfo.fordblks; #endif - } + } + if (includeSmaps and smapsFile_) { + log << " PSS " << currentSmaps_.pss_ << " PRIVATE " << currentSmaps_.private_ << " ANONHUGEPAGES " + << currentSmaps_.anonHugePages_; + } + } + + void SimpleMemoryCheck::andPrint(std::string const& type, + std::string const& mdlabel, + std::string const& mdname) const { + if (not jobReportOutputOnly_ && ((*current_ > max_) || printEachTime_)) { + if (count_ >= num_to_skip_) { + andPrintAlways(type, mdlabel, mdname); } } } From 01215d6ebde1882a0f4a8f0c1b0a717644cf6f3a Mon Sep 17 00:00:00 2001 From: Sunanda Date: Mon, 18 Nov 2024 08:57:50 +0100 Subject: [PATCH 038/418] Inhibit ZDC digitization in Phase2 scenario --- .../HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py b/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py index 9334636966344..737b337b0f72a 100644 --- a/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py +++ b/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py @@ -64,7 +64,10 @@ # remove HE processing for phase 2, completely put in HGCal land from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal -phase2_hgcal.toModify(hcalSimBlock, killHE = cms.bool(True) ) +phase2_hgcal.toModify(hcalSimBlock, + doZDCDigi = cms.bool(False), + killHE = cms.bool(True) +) # remove HE processing for phase 2, completely put in HGCal land from Configuration.Eras.Modifier_zdcNoDigi_cff import zdcNoDigi From 387a69f6705315658cc6d59ecd08140b29f96f61 Mon Sep 17 00:00:00 2001 From: kdeleo Date: Mon, 18 Nov 2024 11:19:01 +0100 Subject: [PATCH 039/418] code clean up --- .../plugins/MVATrainingNtuple.cc | 76 ++++++------------- .../test/mvaTrainingSaveNtuple_cfg.py | 1 - 2 files changed, 25 insertions(+), 52 deletions(-) diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc index bdffbe97ccaec..4fda25c992ebf 100644 --- a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -86,12 +86,11 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer // BDT input variables std::vector Ttrack_pt, Ttrack_eta, Ttrack_phi, Ttrack_dz, Ttrack_dxy, Ttrack_chi2, Ttrack_BTLchi2, Ttrack_BTLtime_chi2, Ttrack_ETLchi2, Ttrack_ETLtime_chi2, Ttrack_t0, Ttrack_sigmat0, Ttrack_Tmtd, - Ttrack_sigmaTmtd, Ttrack_lenght, Ttrack_MtdMVA, Ttrack_lHitPos, TtrackTP_pt, TtrackTP_eta, TtrackTP_phi, - Ttrack_CluTime1, Ttrack_CluTime2; + Ttrack_sigmaTmtd, Ttrack_lenght, Ttrack_MtdMVA, Ttrack_lHitPos, TtrackTP_pt, TtrackTP_eta, TtrackTP_phi; std::vector Ttrack_ndof, Ttrack_nValidHits, Ttrack_npixBarrelValidHits, Ttrack_npixEndcapValidHits, - TtrackTP_nValidHits, Ttrack_det, Ttrack_subdet, Ttrack_subdetmtd, Ttrack_nSimClust; - std::vector Ttrack_Signal, Ttrack_Associated, Ttrack_HasTP, Ttrack_TPHasSimClu, Ttrack_TPSimCluDirect, - Ttrack_hitMTD, Ttrack_hit, Ttrack_hitMatchMTD, Ttrack_hasRecoClu, Ttrack_RecoSimLink, Ttrack_FullMatch; + TtrackTP_nValidHits; + std::vector Ttrack_Signal, Ttrack_Associated, Ttrack_TPHasSimClu, Ttrack_TPSimCluDirect, Ttrack_hasRecoClu, + Ttrack_RecoSimLink, Ttrack_FullMatch; edm::EDGetTokenT> btlMatchChi2Token_; edm::EDGetTokenT> btlMatchTimeChi2Token_; @@ -580,21 +579,11 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& BDTtree->Branch("Track_lHitPos", &Ttrack_lHitPos); BDTtree->Branch("Track_sigmaTmtd", &Ttrack_sigmaTmtd); BDTtree->Branch("Track_lenght", &Ttrack_lenght); - BDTtree->Branch("Track_HasTP", &Ttrack_HasTP); BDTtree->Branch("Track_TPHasSimClu", &Ttrack_TPHasSimClu); BDTtree->Branch("Track_TPSimCluDirect", &Ttrack_TPSimCluDirect); - BDTtree->Branch("Track_hitMTD", &Ttrack_hitMTD); - BDTtree->Branch("Track_hit", &Ttrack_hit); - BDTtree->Branch("Track_hitMatchMTD", &Ttrack_hitMatchMTD); BDTtree->Branch("Track_hasRecoClu", &Ttrack_hasRecoClu); BDTtree->Branch("Track_RecoSimLink", &Ttrack_RecoSimLink); BDTtree->Branch("Track_FullMatch", &Ttrack_FullMatch); - BDTtree->Branch("Track_det", &Ttrack_det); - BDTtree->Branch("Track_subdet", &Ttrack_subdet); - BDTtree->Branch("Track_subdetmtd", &Ttrack_subdetmtd); - BDTtree->Branch("Track_nSimClust", &Ttrack_nSimClust); - BDTtree->Branch("Track_CluTime1", &Ttrack_CluTime1); - BDTtree->Branch("Track_CluTime2", &Ttrack_CluTime2); Ttrack_pt.clear(); Ttrack_eta.clear(); @@ -623,21 +612,11 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_lHitPos.clear(); Ttrack_sigmaTmtd.clear(); Ttrack_lenght.clear(); - Ttrack_HasTP.clear(); Ttrack_TPHasSimClu.clear(); Ttrack_TPSimCluDirect.clear(); - Ttrack_hitMTD.clear(); - Ttrack_hit.clear(); - Ttrack_hitMatchMTD.clear(); Ttrack_hasRecoClu.clear(); Ttrack_RecoSimLink.clear(); Ttrack_FullMatch.clear(); - Ttrack_det.clear(); - Ttrack_subdet.clear(); - Ttrack_subdetmtd.clear(); - Ttrack_nSimClust.clear(); - Ttrack_CluTime1.clear(); - Ttrack_CluTime2.clear(); unsigned int index = 0; for (const auto& trackGen : *tracksH) { @@ -653,12 +632,15 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& const reco::Track& track = *mtdTrackref; if (std::abs(trackGen.eta()) < BDT_track_eta_cut && trackGen.pt() > BDT_track_pt_cut) { - bool good_association = false; - const reco::TrackBaseRef trkrefb(trackref); auto found = r2s_->find(trkrefb); // Find TP! if (found != r2s_->end()) { - Ttrack_HasTP.push_back(true); + bool good_association = false; + bool is_hasRecoClu = false; + bool is_RecoSimLink = false; + bool is_FullMatch = false; + bool is_TPHasSimClu = false; + bool is_TPSimCluDirect = false; Ttrack_pt.push_back(trackGen.pt()); Ttrack_phi.push_back(trackGen.phi()); @@ -703,10 +685,10 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (withMTD) { // TP link to MTDsimCluster // In test file, all TPs had only 1 simCluster linked to them - Ttrack_TPHasSimClu.push_back(true); + is_TPHasSimClu = true; const auto& SimCluRefs = (simClustersRefs->val)[0]; if ((*SimCluRefs).trackIdOffset() == 0) { // SimCluster linked to TP is from DirectHit!!! - Ttrack_TPSimCluDirect.push_back(true); + is_TPSimCluDirect = true; for (const auto& hit : track.recHits()) { // Extended track with MTD if (good_association) @@ -714,16 +696,10 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (hit->isValid() == false) continue; - Ttrack_hit.push_back(true); - MTDDetId Hit = hit->geographicalId(); - Ttrack_det.push_back(Hit.det()); - Ttrack_subdet.push_back(Hit.subdetId()); - Ttrack_subdetmtd.push_back(Hit.mtdSubDetector()); if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 1 || Hit.mtdSubDetector() == 2)) { // trackingRecHit is a hit in MTD - Ttrack_hitMTD.push_back(true); const MTDTrackingRecHit* mtdhit1 = static_cast( hit); // Why I can't I access the mtdcluster info directly from TrackingRecHit? @@ -738,7 +714,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& break; if (isSameCluster(hit_cluster_check, clusterBTL)) { // find the reco Cluster inside the recoCluster collections - Ttrack_hasRecoClu.push_back(true); + is_hasRecoClu = true; edm::Ref, FTLCluster> clusterRefBTL = edmNew::makeRefTo( btlRecCluHandle, @@ -747,20 +723,16 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (itp.first != itp.second) { // find the linked simCluster std::vector simClustersRefs_RecoMatchBTL = (*itp.first).second; // the range of itp.first, itp.second should be always 1 - Ttrack_RecoSimLink.push_back(true); + is_RecoSimLink = true; for (unsigned int i = 0; i < simClustersRefs_RecoMatchBTL.size(); i++) { auto simClusterRef_RecoMatchBTL = simClustersRefs_RecoMatchBTL[i]; - Ttrack_CluTime1.push_back((*SimCluRefs).simLCTime()); - Ttrack_CluTime2.push_back((*simClusterRef_RecoMatchBTL).simLCTime()); - Ttrack_nSimClust.push_back(i); - if ((*simClusterRef_RecoMatchBTL).simLCTime() == (*SimCluRefs) .simLCTime()) { // check if the sim cluster linked to reco cluster is the same as the one linked to TP. good_association = true; - Ttrack_FullMatch.push_back(true); + is_FullMatch = true; break; } } @@ -778,7 +750,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (good_association) break; if (isSameCluster(hit_cluster_check, clusterETL)) { - Ttrack_hasRecoClu.push_back(true); + is_hasRecoClu = true; edm::Ref, FTLCluster> clusterRefETL = edmNew::makeRefTo(etlRecCluHandle, &clusterETL); @@ -786,18 +758,14 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (itp.first != itp.second) { std::vector simClustersRefs_RecoMatchETL = (*itp.first).second; // the range of itp.first, itp.second should be always 1 - Ttrack_RecoSimLink.push_back(true); + is_RecoSimLink = true; for (unsigned int i = 0; i < simClustersRefs_RecoMatchETL.size(); i++) { auto simClusterRef_RecoMatchETL = simClustersRefs_RecoMatchETL[i]; - Ttrack_CluTime1.push_back((*SimCluRefs).simLCTime()); - Ttrack_CluTime2.push_back((*simClusterRef_RecoMatchETL).simLCTime()); - Ttrack_nSimClust.push_back(i); - if ((*simClusterRef_RecoMatchETL).simLCTime() == (*SimCluRefs).simLCTime()) { good_association = true; - Ttrack_FullMatch.push_back(true); + is_FullMatch = true; break; } } @@ -824,8 +792,14 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& } Ttrack_Associated.push_back(good_association); + Ttrack_hasRecoClu.push_back(is_hasRecoClu); + Ttrack_RecoSimLink.push_back(is_RecoSimLink); + Ttrack_FullMatch.push_back(is_FullMatch); + Ttrack_TPHasSimClu.push_back(is_TPHasSimClu); + Ttrack_TPSimCluDirect.push_back(is_TPSimCluDirect); - } // Found TP that is matched to the GTrack + // Found TP that is matched to the GTrack + } } // basic track eta/pT cuts diff --git a/RecoMTD/TimingIDTools/test/mvaTrainingSaveNtuple_cfg.py b/RecoMTD/TimingIDTools/test/mvaTrainingSaveNtuple_cfg.py index bab05a3767b8c..c4c98e4069978 100644 --- a/RecoMTD/TimingIDTools/test/mvaTrainingSaveNtuple_cfg.py +++ b/RecoMTD/TimingIDTools/test/mvaTrainingSaveNtuple_cfg.py @@ -6,7 +6,6 @@ process.load('Configuration.StandardSequences.Services_cff') process.load('FWCore.MessageService.MessageLogger_cfi') process.load('Configuration.EventContent.EventContent_cff') -process.load('SimGeneral.MixingModule.mix_POISSON_average_cfi') process.load('Configuration.Geometry.GeometryExtended2026D110Reco_cff') process.load('Configuration.StandardSequences.MagneticField_cff') process.load('Configuration.StandardSequences.Reconstruction_cff') From 1f224354321b2fcd88164fdca35f6463a39f556e Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 18 Nov 2024 15:39:59 +0100 Subject: [PATCH 040/418] Add Phase1 pixel tracker maps to TrackerAlignmentErrorExtended_PayloadInspector --- .../AlignmentPlugins/plugins/BuildFile.xml | 1 + ...AlignmentErrorExtended_PayloadInspector.cc | 89 +++++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/CondCore/AlignmentPlugins/plugins/BuildFile.xml b/CondCore/AlignmentPlugins/plugins/BuildFile.xml index d1b7bb9605191..c7c9d36fe91ac 100644 --- a/CondCore/AlignmentPlugins/plugins/BuildFile.xml +++ b/CondCore/AlignmentPlugins/plugins/BuildFile.xml @@ -5,6 +5,7 @@ + diff --git a/CondCore/AlignmentPlugins/plugins/TrackerAlignmentErrorExtended_PayloadInspector.cc b/CondCore/AlignmentPlugins/plugins/TrackerAlignmentErrorExtended_PayloadInspector.cc index 9cd9c8b9d7981..f3d37a3c4772d 100644 --- a/CondCore/AlignmentPlugins/plugins/TrackerAlignmentErrorExtended_PayloadInspector.cc +++ b/CondCore/AlignmentPlugins/plugins/TrackerAlignmentErrorExtended_PayloadInspector.cc @@ -25,6 +25,8 @@ #include "CondCore/AlignmentPlugins/interface/AlignmentPayloadInspectorHelper.h" #include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h" + #include #include #include @@ -319,6 +321,87 @@ namespace { typedef TrackerAlignmentErrorExtendedTrackerMap TrackerAlignmentErrorExtendedXZTrackerMap; typedef TrackerAlignmentErrorExtendedTrackerMap TrackerAlignmentErrorExtendedYZTrackerMap; + // /************************************************ + // TrackerMap of sqrt(d_ii) of 1 IOV + // *************************************************/ + template + class PixelAlignmentErrorExtendedTrackerMap : public PlotImage { + public: + PixelAlignmentErrorExtendedTrackerMap() + : PlotImage("Pixel Map of sqrt(d_{" + getStringFromIndex(i) + + "}) of APE matrix") { + label_ = " PixelAlignmentErrorExtendedTrackerMap"; + payloadString = "Alignment Parameter Error"; + } + + bool fill() override { + auto tag = PlotBase::getTag<0>(); + auto iov = tag.iovs.front(); + std::string IOVsince = std::to_string(std::get<0>(iov)); + + std::shared_ptr payload = fetchPayload(std::get<1>(iov)); + + Phase1PixelSummaryMap fullMap("", fmt::sprintf("%s", payloadString), fmt::sprintf("%s [#mum]", payloadString)); + fullMap.createTrackerBaseMap(); + + std::vector alignErrors = payload->m_alignError; + + auto indices = AlignmentPI::getIndices(i); + + TCanvas canvas("Canv", "Canv", 3000, 2000); + if (alignErrors.size() == AlignmentPI::phase0size) { + AlignmentPI::displayNotSupported(canvas, 0); + return false; + } + + for (const auto& it : alignErrors) { + int subid = DetId(it.rawId()).subdetId(); + + CLHEP::HepSymMatrix errMatrix = it.matrix(); + + if (DetId(it.rawId()).det() != DetId::Tracker) { + edm::LogWarning("TrackerAlignmentErrorExtended_PayloadInspector") + << "Encountered invalid Tracker DetId:" << it.rawId() << " - terminating "; + return false; + } + // fill the tracker map only if it's pixel + if ((subid == PixelSubdetector::PixelBarrel) || (subid == PixelSubdetector::PixelEndcap)) { + fullMap.fillTrackerMap(it.rawId(), sqrt(errMatrix[indices.first][indices.second]) * AlignmentPI::cmToUm); + } + } + + fullMap.printTrackerMap(canvas); + + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextSize(0.025); + ltx.SetTextAlign(11); + + ltx.DrawLatexNDC(gPad->GetLeftMargin() + 0.01, + gPad->GetBottomMargin() + 0.01, + ("#color[4]{" + std::string{tag.name} + "}, IOV: #color[2]{" + IOVsince + "}").c_str()); + + std::string fileName(this->m_imageFileName); + canvas.SaveAs(fileName.c_str()); + + return true; + } + + protected: + std::string payloadString; + std::string label_; + }; + + // diagonal elements + typedef PixelAlignmentErrorExtendedTrackerMap PixelAlignmentErrorExtendedXXTrackerMap; + typedef PixelAlignmentErrorExtendedTrackerMap PixelAlignmentErrorExtendedYYTrackerMap; + typedef PixelAlignmentErrorExtendedTrackerMap PixelAlignmentErrorExtendedZZTrackerMap; + + // off-diagonal elements + typedef PixelAlignmentErrorExtendedTrackerMap PixelAlignmentErrorExtendedXYTrackerMap; + typedef PixelAlignmentErrorExtendedTrackerMap PixelAlignmentErrorExtendedXZTrackerMap; + typedef PixelAlignmentErrorExtendedTrackerMap PixelAlignmentErrorExtendedYZTrackerMap; + // /************************************************ // Partition details of 1 IOV // *************************************************/ @@ -795,6 +878,12 @@ PAYLOAD_INSPECTOR_MODULE(TrackerAlignmentErrorExtended) { PAYLOAD_INSPECTOR_CLASS(TrackerAlignmentErrorExtendedXYTrackerMap); PAYLOAD_INSPECTOR_CLASS(TrackerAlignmentErrorExtendedXZTrackerMap); PAYLOAD_INSPECTOR_CLASS(TrackerAlignmentErrorExtendedYZTrackerMap); + PAYLOAD_INSPECTOR_CLASS(PixelAlignmentErrorExtendedXXTrackerMap); + PAYLOAD_INSPECTOR_CLASS(PixelAlignmentErrorExtendedYYTrackerMap); + PAYLOAD_INSPECTOR_CLASS(PixelAlignmentErrorExtendedZZTrackerMap); + PAYLOAD_INSPECTOR_CLASS(PixelAlignmentErrorExtendedXYTrackerMap); + PAYLOAD_INSPECTOR_CLASS(PixelAlignmentErrorExtendedXZTrackerMap); + PAYLOAD_INSPECTOR_CLASS(PixelAlignmentErrorExtendedYZTrackerMap); PAYLOAD_INSPECTOR_CLASS(TrackerAlignmentErrorExtendedBPixDetail); PAYLOAD_INSPECTOR_CLASS(TrackerAlignmentErrorExtendedFPixDetail); PAYLOAD_INSPECTOR_CLASS(TrackerAlignmentErrorExtendedTIBDetail); From 4922f4679cf6b3b6491921f6f0bf9cec2e805759 Mon Sep 17 00:00:00 2001 From: leonardo Date: Mon, 18 Nov 2024 08:44:52 -0800 Subject: [PATCH 041/418] fix of call to propagateHelixToPlaneMPlex and temporary fix for sl fallback --- RecoTracker/MkFitCore/src/KalmanUtilsMPlex.cc | 4 ++-- RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/RecoTracker/MkFitCore/src/KalmanUtilsMPlex.cc b/RecoTracker/MkFitCore/src/KalmanUtilsMPlex.cc index 78c224d0bbaf5..bd4223b2da009 100644 --- a/RecoTracker/MkFitCore/src/KalmanUtilsMPlex.cc +++ b/RecoTracker/MkFitCore/src/KalmanUtilsMPlex.cc @@ -1255,7 +1255,7 @@ namespace mkfit { if (propToHit) { MPlexLS propErr; MPlexLV propPar; - propagateHelixToPlaneMPlex(psErr, psPar, Chg, msPar, plNrm, propErr, propPar, outFailFlag, N_proc, propFlags); + propagateHelixToPlaneMPlex(psErr, psPar, Chg, plPnt, plNrm, propErr, propPar, outFailFlag, N_proc, propFlags); kalmanOperationPlaneLocal(KFO_Update_Params | KFO_Local_Cov, propErr, @@ -1337,7 +1337,7 @@ namespace mkfit { propPar = psPar; if (propToHit) { MPlexLS propErr; - propagateHelixToPlaneMPlex(psErr, psPar, inChg, msPar, plNrm, propErr, propPar, outFailFlag, N_proc, propFlags); + propagateHelixToPlaneMPlex(psErr, psPar, inChg, plPnt, plNrm, propErr, propPar, outFailFlag, N_proc, propFlags); kalmanOperationPlaneLocal(KFO_Calculate_Chi2, propErr, diff --git a/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc b/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc index 8bba667b05297..3505fd396fdb8 100644 --- a/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc +++ b/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc @@ -2,6 +2,7 @@ #include "RecoTracker/MkFitCore/interface/PropagationConfig.h" #include "RecoTracker/MkFitCore/interface/Config.h" #include "RecoTracker/MkFitCore/interface/TrackerInfo.h" +#include "RecoTracker/MkFitCore/interface/cms_common_macros.h" #include "PropagationMPlex.h" @@ -489,7 +490,7 @@ namespace { << " std::isfinite(s[n])=" << std::isfinite(s[n]) << " std::isnormal(s[n])=" << std::isnormal(s[n]) << std::endl; #endif - if ((std::abs(sl[n]) > std::abs(s[n])) || std::isnormal(s[n]) == false) + if (0) //(mkfit::isFinite(s[n])==false && mkfit::isFinite(sl[n])) // needs more checks because it looks worse s[n] = sl[n]; } From 8a5042648addfbafcb2848e0fa67147d9e07d085 Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 18 Nov 2024 21:47:22 +0100 Subject: [PATCH 042/418] add tools to convert DeDxCalibration to SiStripGains --- .../SiStripApvGainFromDeDxCalibration.cc | 107 ++++++++++++++++++ .../SiStripApvGainFromDeDxCalibration_cfg.py | 65 +++++++++++ 2 files changed, 172 insertions(+) create mode 100644 CondTools/SiStrip/plugins/SiStripApvGainFromDeDxCalibration.cc create mode 100644 CondTools/SiStrip/test/SiStripApvGainFromDeDxCalibration_cfg.py diff --git a/CondTools/SiStrip/plugins/SiStripApvGainFromDeDxCalibration.cc b/CondTools/SiStrip/plugins/SiStripApvGainFromDeDxCalibration.cc new file mode 100644 index 0000000000000..ee3a00bc02408 --- /dev/null +++ b/CondTools/SiStrip/plugins/SiStripApvGainFromDeDxCalibration.cc @@ -0,0 +1,107 @@ +// system include files +#include +#include + +// user include files +#include "CalibTracker/SiStripCommon/interface/SiStripDetInfoFileReader.h" +#include "CondCore/DBOutputService/interface/PoolDBOutputService.h" +#include "CondFormats/SiStripObjects/interface/SiStripApvGain.h" +#include "CondFormats/PhysicsToolsObjects/interface/DeDxCalibration.h" +#include "CondFormats/DataRecord/interface/DeDxCalibrationRcd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "FWCore/Utilities/interface/Exception.h" + +class SiStripApvGainFromDeDxCalibration : public edm::one::EDAnalyzer<> { +public: + explicit SiStripApvGainFromDeDxCalibration(const edm::ParameterSet& iConfig); + + ~SiStripApvGainFromDeDxCalibration() override = default; + + void analyze(const edm::Event&, const edm::EventSetup&) override; + + static void fillDescriptions(edm::ConfigurationDescriptions&); + + typedef std::pair ChipId; + +private: + const edm::ESGetToken dedxCalibToken_; + const edm::FileInPath fp_; + const bool printdebug_; +}; + +SiStripApvGainFromDeDxCalibration::SiStripApvGainFromDeDxCalibration(const edm::ParameterSet& iConfig) + : dedxCalibToken_(esConsumes()), + fp_(iConfig.getUntrackedParameter("file", + edm::FileInPath(SiStripDetInfoFileReader::kDefaultFile))), + printdebug_(iConfig.getUntrackedParameter("printDebug", 1)) {} + +void SiStripApvGainFromDeDxCalibration::analyze(const edm::Event& evt, const edm::EventSetup& iSetup) { + unsigned int run = evt.id().run(); + + edm::LogInfo("SiStripApvGainFromDeDxCalibration") + << "... creating dummy SiStripApvGain Data for Run " << run << "\n " << std::endl; + + SiStripApvGain obj; + + const auto& reader = SiStripDetInfoFileReader::read(fp_.fullPath()); + const auto& DetInfos = reader.getAllData(); + const auto& dedxCalib = iSetup.getData(dedxCalibToken_); + + int count = -1; + for (const auto& it : DetInfos) { + const auto& nAPVs = it.second.nApvs; + count++; + //Generate Gain for det detid + std::vector theSiStripVector; + for (unsigned short j = 0; j < nAPVs; j++) { + const auto& chipId = ChipId(it.first, j); + const auto& g = dedxCalib.gain().find(chipId); + + if (g == dedxCalib.gain().end()) + continue; + + if (count < printdebug_) + edm::LogInfo("SiStripApvGainFromDeDxCalibration") << "detid " << it.first << " \t" + << " apv " << j << " \t" << g->second << " \t" << std::endl; + theSiStripVector.push_back(g->second); + } + + SiStripApvGain::Range range(theSiStripVector.begin(), theSiStripVector.end()); + if (!obj.put(it.first, range)) + edm::LogError("SiStripApvGainFromDeDxCalibration") + << "[SiStripApvGainFromDeDxCalibration::analyze] detid already exists" << std::endl; + } + + //End now write sistripnoises data in DB + edm::Service mydbservice; + + if (mydbservice.isAvailable()) { + if (mydbservice->isNewTagRequest("SiStripApvGainRcd")) { + mydbservice->createOneIOV(obj, mydbservice->beginOfTime(), "SiStripApvGainRcd"); + } else { + mydbservice->appendOneIOV(obj, mydbservice->currentTime(), "SiStripApvGainRcd"); + } + } else { + edm::LogError("SiStripApvGainFromDeDxCalibration") << "Service is unavailable" << std::endl; + } +} + +void SiStripApvGainFromDeDxCalibration::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.addUntracked("file", edm::FileInPath(SiStripDetInfoFileReader::kDefaultFile)); + desc.addUntracked("printDebug", 1); + descriptions.addWithDefaultLabel(desc); +} + +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +DEFINE_FWK_MODULE(SiStripApvGainFromDeDxCalibration); diff --git a/CondTools/SiStrip/test/SiStripApvGainFromDeDxCalibration_cfg.py b/CondTools/SiStrip/test/SiStripApvGainFromDeDxCalibration_cfg.py new file mode 100644 index 0000000000000..70b9caacfd9c7 --- /dev/null +++ b/CondTools/SiStrip/test/SiStripApvGainFromDeDxCalibration_cfg.py @@ -0,0 +1,65 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("ICALIB") +process.source = cms.Source("EmptyIOVSource", + firstValue = cms.uint64(1), + lastValue = cms.uint64(1), + timetype = cms.string('runnumber'), + interval = cms.uint64(1) +) + +process.load('FWCore.MessageService.MessageLogger_cfi') +process.MessageLogger.cerr.enable = False +process.MessageLogger.SiStripApvGainFromDeDxCalibration=dict() +process.MessageLogger.cout = cms.untracked.PSet( + enable = cms.untracked.bool(True), + threshold = cms.untracked.string("DEBUG"), + default = cms.untracked.PSet(limit = cms.untracked.int32(0)), + FwkReport = cms.untracked.PSet(limit = cms.untracked.int32(-1), + reportEvery = cms.untracked.int32(1000) + ), + SiStripApvGainFromDeDxCalibration = cms.untracked.PSet( limit = cms.untracked.int32(-1)), + enableStatistics = cms.untracked.bool(True) + ) + + +process.load("Configuration.Geometry.GeometryExtended2024_cff") +process.load("Geometry.TrackerGeometryBuilder.trackerParameters_cfi") +process.TrackerTopologyEP = cms.ESProducer("TrackerTopologyEP") + +#Setup the SiSTripFedCabling and the SiStripDetCabling +process.load("CondCore.CondDB.CondDB_cfi") +process.CondDB.connect='frontier://FrontierProd/CMS_CONDITIONS' + +process.poolDBESSource = cms.ESSource('PoolDBESSource', + process.CondDB, + BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), + toGet = cms.VPSet( cms.PSet(record = cms.string('DeDxCalibrationRcd'), + tag = cms.string('DeDxCalibration_HI_2024_prompt_v2') + ) + ) + ) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.PoolDBOutputService = cms.Service("PoolDBOutputService", + BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'), + DBParameters = cms.PSet( + authenticationPath = cms.untracked.string('/afs/cern.ch/cms/DB/conddb') + ), + timetype = cms.untracked.string('runnumber'), + connect = cms.string('sqlite_file:SiStripApvGainFromDeDxCalibration_HI_2024_prompt_v2.db'), + toPut = cms.VPSet(cms.PSet( + record = cms.string('SiStripApvGainRcd'), + tag = cms.string('SiStripApvGainFromDeDxCalibration_HI_2024_prompt_v2') + )) +) + +from CondTools.SiStrip.siStripApvGainFromDeDxCalibration_cfi import siStripApvGainFromDeDxCalibration +process.prod = siStripApvGainFromDeDxCalibration.clone( + file = cms.untracked.FileInPath('CalibTracker/SiStripCommon/data/SiStripDetInfo.dat'), + printDebug = cms.untracked.uint32(100) +) +process.p = cms.Path(process.prod) From 159a737baffe3128200aee44fc6ff61ba1f7cba2 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Mon, 18 Nov 2024 15:30:57 -0600 Subject: [PATCH 043/418] Avoid allocations in ParentageID We were cycling memory each time a module put a data product into the event. This now has the ParentageID hold the 16 bytes directly instead of indirectly via a std::string. --- .../Provenance/interface/CompactHash.h | 163 ++++++++++++++++++ .../Provenance/interface/ParentageID.h | 7 +- DataFormats/Provenance/src/CompactHash.cc | 71 ++++++++ DataFormats/Provenance/src/classes_def.xml | 9 +- DataFormats/Provenance/test/BuildFile.xml | 7 +- DataFormats/Provenance/test/CompactHash_t.cpp | 35 ++++ 6 files changed, 287 insertions(+), 5 deletions(-) create mode 100644 DataFormats/Provenance/interface/CompactHash.h create mode 100644 DataFormats/Provenance/src/CompactHash.cc create mode 100644 DataFormats/Provenance/test/CompactHash_t.cpp diff --git a/DataFormats/Provenance/interface/CompactHash.h b/DataFormats/Provenance/interface/CompactHash.h new file mode 100644 index 0000000000000..7f9517d60a5b4 --- /dev/null +++ b/DataFormats/Provenance/interface/CompactHash.h @@ -0,0 +1,163 @@ +#ifndef DataFormats_Provenance_CompactHash_h +#define DataFormats_Provenance_CompactHash_h + +#include +#include +#include + +namespace cms { + class Digest; +} + +namespace edm { + + namespace detail { + // This string is the 16-byte, non-printable version. + std::array const& InvalidCompactHash(); + } // namespace detail + + namespace compact_hash_detail { + using value_type = std::array; + void toString_(std::string& result, value_type const& hash); + void toDigest_(cms::Digest& digest, value_type const& hash); + std::ostream& print_(std::ostream& os, value_type const& hash); + bool isValid_(value_type const& hash); + size_t smallHash_(value_type const& hash); + value_type fromHex_(std::string_view); + void throwIfIllFormed(std::string_view v); + } // namespace compact_hash_detail + + template + class CompactHash { + public: + typedef compact_hash_detail::value_type value_type; + + CompactHash(); + explicit CompactHash(value_type const& v); + explicit CompactHash(std::string_view v); + + CompactHash(CompactHash const&) = default; + CompactHash& operator=(CompactHash const& iRHS) = default; + + CompactHash(CompactHash&&) = default; + CompactHash& operator=(CompactHash&&) = default; + + void reset(); + + // For now, just check the most basic: a default constructed + // ParameterSetID is not valid. This is very crude: we are + // assuming that nobody created a ParameterSetID from an empty + // string, nor from any string that is not a valid string + // representation of an MD5 checksum. + bool isValid() const; + + bool operator<(CompactHash const& other) const; + bool operator>(CompactHash const& other) const; + bool operator==(CompactHash const& other) const; + bool operator!=(CompactHash const& other) const; + std::ostream& print(std::ostream& os) const; + void toString(std::string& result) const; + void toDigest(cms::Digest& digest) const; + + // Return the 16-byte (non-printable) string form. + value_type const& compactForm() const; + + ///returns a short hash which can be used with hashing containers + size_t smallHash() const; + + //Used by ROOT storage + // CMS_CLASS_VERSION(3) // This macro is not defined here, so expand it. + static short Class_Version() { return 3; } + + private: + template + bool compareUsing(CompactHash const& iOther, Op op) const { + return op(this->hash_, iOther.hash_); + } + + value_type hash_; + }; + + //-------------------------------------------------------------------- + // + // Implementation details follow... + //-------------------------------------------------------------------- + + template + inline CompactHash::CompactHash() : hash_(detail::InvalidCompactHash()) {} + + template + inline CompactHash::CompactHash(value_type const& v) : hash_(v) {} + + template + inline CompactHash::CompactHash(std::string_view v) { + if (v.size() == 32) { + hash_ = compact_hash_detail::fromHex_(v); + } else { + compact_hash_detail::throwIfIllFormed(v); + std::copy(v.begin(), v.end(), hash_.begin()); + } + } + + template + inline void CompactHash::reset() { + hash_ = detail::InvalidCompactHash(); + } + + template + inline bool CompactHash::isValid() const { + return compact_hash_detail::isValid_(hash_); + } + + template + inline bool CompactHash::operator<(CompactHash const& other) const { + return this->compareUsing(other, std::less()); + } + + template + inline bool CompactHash::operator>(CompactHash const& other) const { + return this->compareUsing(other, std::greater()); + } + + template + inline bool CompactHash::operator==(CompactHash const& other) const { + return this->compareUsing(other, std::equal_to()); + } + + template + inline bool CompactHash::operator!=(CompactHash const& other) const { + return this->compareUsing(other, std::not_equal_to()); + } + + template + inline std::ostream& CompactHash::print(std::ostream& os) const { + return compact_hash_detail::print_(os, hash_); + } + + template + inline void CompactHash::toString(std::string& result) const { + compact_hash_detail::toString_(result, hash_); + } + + template + inline void CompactHash::toDigest(cms::Digest& digest) const { + compact_hash_detail::toDigest_(digest, hash_); + } + + template + inline typename CompactHash::value_type const& CompactHash::compactForm() const { + return hash_; + } + + template + inline size_t CompactHash::smallHash() const { + return compact_hash_detail::smallHash_(hash_); + } + + template + inline std::ostream& operator<<(std::ostream& os, CompactHash const& h) { + return h.print(os); + } + +} // namespace edm +#endif diff --git a/DataFormats/Provenance/interface/ParentageID.h b/DataFormats/Provenance/interface/ParentageID.h index 4721d99b0525a..7d1b3e75a4f0f 100644 --- a/DataFormats/Provenance/interface/ParentageID.h +++ b/DataFormats/Provenance/interface/ParentageID.h @@ -2,10 +2,13 @@ #define DataFormats_Provenance_ParentageID_h #include "DataFormats/Provenance/interface/HashedTypes.h" +#include "DataFormats/Provenance/interface/CompactHash.h" #include "DataFormats/Provenance/interface/Hash.h" namespace edm { - typedef Hash ParentageID; -} + using ParentageID = CompactHash; + + using StoredParentageID = Hash; +} // namespace edm #endif diff --git a/DataFormats/Provenance/src/CompactHash.cc b/DataFormats/Provenance/src/CompactHash.cc new file mode 100644 index 0000000000000..de311d5a9aaf1 --- /dev/null +++ b/DataFormats/Provenance/src/CompactHash.cc @@ -0,0 +1,71 @@ +#include "DataFormats/Provenance/interface/CompactHash.h" +#include "FWCore/Utilities/interface/Algorithms.h" +#include "FWCore/Utilities/interface/Digest.h" +#include "FWCore/Utilities/interface/EDMException.h" + +#include +#include + +namespace { + std::array convert(std::string const& v) { + assert(v.size() == 16); + std::array retValue; + std::copy(v.begin(), v.end(), retValue.begin()); + return retValue; + } +} // namespace +namespace edm { + namespace detail { + // This string is the 16-byte, non-printable version. + std::array const& InvalidCompactHash() { + static std::array const invalid = convert(cms::MD5Result().compactForm()); + return invalid; + } + } // namespace detail + + namespace compact_hash_detail { + size_t smallHash_(value_type const& hash) { + //NOTE: In future we could try to xor the first 8bytes into the second 8bytes of the string to make the hash + std::hash h; + return h(std::string_view(reinterpret_cast(hash.data()), hash.size())); + } + + std::array fromHex_(std::string_view v) { + cms::MD5Result temp; + temp.fromHexifiedString(std::string(v)); + auto hash = temp.compactForm(); + std::array ret; + std::copy(hash.begin(), hash.end(), ret.begin()); + return ret; + } + + bool isValid_(value_type const& hash) { return hash != detail::InvalidCompactHash(); } + + void throwIfIllFormed(std::string_view v) { + // Fixup not needed here. + if (v.size() != 16) { + throw Exception(errors::LogicError) << "Ill-formed CompactHash instance. " + << "A string_view of size " << v.size() << " passed to constructor."; + } + } + + void toString_(std::string& result, value_type const& hash) { + cms::MD5Result temp; + copy_all(hash, temp.bytes.begin()); + result += temp.toString(); + } + + void toDigest_(cms::Digest& digest, value_type const& hash) { + cms::MD5Result temp; + copy_all(hash, temp.bytes.begin()); + digest.append(temp.toString()); + } + + std::ostream& print_(std::ostream& os, value_type const& hash) { + cms::MD5Result temp; + copy_all(hash, temp.bytes.begin()); + os << temp.toString(); + return os; + } + } // namespace compact_hash_detail +} // namespace edm diff --git a/DataFormats/Provenance/src/classes_def.xml b/DataFormats/Provenance/src/classes_def.xml index 0cd4c91e3409d..cdb733eff0e4a 100644 --- a/DataFormats/Provenance/src/classes_def.xml +++ b/DataFormats/Provenance/src/classes_def.xml @@ -73,7 +73,8 @@ - + + @@ -162,6 +163,7 @@ + @@ -259,5 +261,10 @@ newObj->initializeTransients(); ]]> + + (onfile.hash_); + ]]> + diff --git a/DataFormats/Provenance/test/BuildFile.xml b/DataFormats/Provenance/test/BuildFile.xml index d5cb05c7beeec..688b612b633ba 100644 --- a/DataFormats/Provenance/test/BuildFile.xml +++ b/DataFormats/Provenance/test/BuildFile.xml @@ -1,12 +1,15 @@ + - - + + + + diff --git a/DataFormats/Provenance/test/CompactHash_t.cpp b/DataFormats/Provenance/test/CompactHash_t.cpp new file mode 100644 index 0000000000000..5cef47f2a6a8e --- /dev/null +++ b/DataFormats/Provenance/test/CompactHash_t.cpp @@ -0,0 +1,35 @@ +#include "catch.hpp" + +#include "DataFormats/Provenance/interface/CompactHash.h" +#include "FWCore/Utilities/interface/Digest.h" + +namespace { + using TestHash = edm::CompactHash<100>; +} + +TEST_CASE("CompactHash", "[CompactHash]") { + SECTION("Default construction is invalid") { REQUIRE(TestHash{}.isValid() == false); } + + SECTION("Basic operations") { + cms::Digest d("foo"); + auto result = d.digest().bytes; + + TestHash id{result}; + REQUIRE(id.isValid() == true); + REQUIRE(id.compactForm() == result); + + TestHash id2 = id; + REQUIRE(id2.isValid() == true); + REQUIRE(id2.compactForm() == result); + + cms::Digest b("bar"); + auto diffResult = b.digest().bytes; + REQUIRE(id2 == TestHash{result}); + REQUIRE(id2 != TestHash{diffResult}); + + REQUIRE(id2 > TestHash{diffResult}); + REQUIRE(TestHash{diffResult} < id2); + + REQUIRE(not(id2 < id2)); + } +} From 2a8767d299add7e79f4c17e553c25eb6c152581d Mon Sep 17 00:00:00 2001 From: kdeleo Date: Tue, 19 Nov 2024 12:18:29 +0100 Subject: [PATCH 044/418] BTL eta cut as const --- RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc index 4fda25c992ebf..430c062442423 100644 --- a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -61,6 +61,7 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer static constexpr double simUnit_ = 1e9; //sim time in s while reco time in ns static constexpr double c_ = 2.99792458e1; //c in cm/ns + static constexpr double BTL_eta_cut = 1.5; std::string fileName_; bool saveNtupleforBDT_; @@ -705,7 +706,7 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& hit); // Why I can't I access the mtdcluster info directly from TrackingRecHit? const FTLCluster& hit_cluster_check = mtdhit1->mtdCluster(); - if (abs(track.eta()) < 1.5) { // Should be a BTL cluster + if (abs(track.eta()) < BTL_eta_cut) { // Should be a BTL cluster for (const auto& DetSetCluBTL : *btlRecCluHandle) { // BTL check if (good_association) break; From 21e4019f7839661b79f1b269ac7efcafad64c487 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 19 Nov 2024 14:31:35 +0100 Subject: [PATCH 045/418] Update a few constants in v19 hgcal.xml file --- Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml index 4e48d357dbcec..fddfa568f2ad1 100644 --- a/Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml @@ -9,8 +9,8 @@ - - + + From 13ff322d4f19eb5e5253e95c2a6c29ca4bde9f88 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 19 Nov 2024 14:35:24 +0100 Subject: [PATCH 046/418] Update the code for guardrng an mouse bite usage infull and partial wafers --- SimG4CMS/Calo/plugins/HGCalMouseBiteTester.cc | 4 ++-- SimG4CMS/Calo/src/HGCGuardRing.cc | 8 ++++---- SimG4CMS/Calo/src/HGCGuardRingPartial.cc | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/SimG4CMS/Calo/plugins/HGCalMouseBiteTester.cc b/SimG4CMS/Calo/plugins/HGCalMouseBiteTester.cc index e0747d5aa415b..bf5af621e5a36 100644 --- a/SimG4CMS/Calo/plugins/HGCalMouseBiteTester.cc +++ b/SimG4CMS/Calo/plugins/HGCalMouseBiteTester.cc @@ -111,11 +111,11 @@ void HGCalMouseBiteTester::analyze(const edm::Event& iEvent, const edm::EventSet int orient = HGCalWaferType::getOrient(index, hgcons_.getParameter()->waferInfoMap_); int placeIndex_ = HGCalCell::cellPlacementIndex(zside, frontBack, orient); int waferType_ = HGCalWaferType::getType(index, hgcons_.getParameter()->waferInfoMap_); - double mouseBiteCut_ = waferSize_ * tan(30.0 * CLHEP::deg) - 5.0; + double mouseBiteCut_ = hgcons_.mouseBite(false); bool v17OrLess = hgcons_.v17OrLess(); HGCGuardRing guardRing_(hgcons_); HGCGuardRingPartial guardRingPartial_(hgcons_); - HGCMouseBite mouseBite_(hgcons_, angle_, mouseBiteCut_, true); + HGCMouseBite mouseBite_(hgcons_, angle_, (waferSize_ * tan(30.0 * CLHEP::deg) - mouseBiteCut_), true); const int nFine(12), nCoarse(8); double r2 = 0.5 * waferSize_; double R2 = 2 * r2 / sqrt(3); diff --git a/SimG4CMS/Calo/src/HGCGuardRing.cc b/SimG4CMS/Calo/src/HGCGuardRing.cc index 977bf0e044428..7756fea428797 100644 --- a/SimG4CMS/Calo/src/HGCGuardRing.cc +++ b/SimG4CMS/Calo/src/HGCGuardRing.cc @@ -11,10 +11,10 @@ HGCGuardRing::HGCGuardRing(const HGCalDDDConstants& hgc) modeUV_(hgcons_.geomMode()), v17OrLess_(hgcons_.v17OrLess()), waferSize_(hgcons_.waferSize(false)), - sensorSizeOffset_(hgcons_.getParameter()->sensorSizeOffset_), - guardRingOffset_(hgcons_.getParameter()->guardRingOffset_) { - offset_ = sensorSizeOffset_ + 2.0 * guardRingOffset_; - xmax_ = 0.5 * (waferSize_ - offset_); + sensorSizeOffset_(hgcons_.sensorSizeOffset(false)), + guardRingOffset_(hgcons_.guardRingOffset(false)) { + offset_ = sensorSizeOffset_ + guardRingOffset_; + xmax_ = 0.5 * waferSize_ - offset_; ymax_ = xmax_ / sqrt3_; #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCSim") << "Creating HGCGuardRing with wafer size " << waferSize_ << ", Offsets " diff --git a/SimG4CMS/Calo/src/HGCGuardRingPartial.cc b/SimG4CMS/Calo/src/HGCGuardRingPartial.cc index fea159c7001a5..8daaec5df9a02 100644 --- a/SimG4CMS/Calo/src/HGCGuardRingPartial.cc +++ b/SimG4CMS/Calo/src/HGCGuardRingPartial.cc @@ -13,7 +13,7 @@ HGCGuardRingPartial::HGCGuardRingPartial(const HGCalDDDConstants& hgc) modeUV_(hgcons_.geomMode()), v17OrLess_(hgcons_.v17OrLess()), waferSize_(hgcons_.waferSize(false)), - guardRingOffset_(hgcons_.getParameter()->guardRingOffset_) { + guardRingOffset_(hgcons_.guardRingOffset(false)) { offset_ = guardRingOffset_; c22_ = (v17OrLess_) ? HGCalTypes::c22O : HGCalTypes::c22; c27_ = (v17OrLess_) ? HGCalTypes::c27O : HGCalTypes::c27; From a3a383d3889b9ba1a919ae8ce6673426e404f60e Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 18 Nov 2024 22:40:36 +0100 Subject: [PATCH 047/418] fixes to SiStripApvGain_PayloadInspector --- .../SiStripApvGain_PayloadInspector.cc | 50 +++++++++++++------ 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/CondCore/SiStripPlugins/plugins/SiStripApvGain_PayloadInspector.cc b/CondCore/SiStripPlugins/plugins/SiStripApvGain_PayloadInspector.cc index bbca836291442..980944be212af 100644 --- a/CondCore/SiStripPlugins/plugins/SiStripApvGain_PayloadInspector.cc +++ b/CondCore/SiStripPlugins/plugins/SiStripApvGain_PayloadInspector.cc @@ -682,8 +682,10 @@ namespace { sumOfGains += payload->getApvGain(it, range); } // loop over APVs // fill the tracker map taking the average gain on a single DetId - store[d] = (sumOfGains / nAPVsPerModule); - tmap->fill(d, (sumOfGains / nAPVsPerModule)); + if (nAPVsPerModule != 0.) { + store[d] = (sumOfGains / nAPVsPerModule); + tmap->fill(d, (sumOfGains / nAPVsPerModule)); + } } // loop over detIds //========================= @@ -1583,9 +1585,9 @@ namespace { temp->SetMarkerSize(1.3); if (part == "TEC") - scatters[part]->Draw("P"); + scatters[part]->Draw("SCAT"); else - scatters[part]->Draw("Psame"); + scatters[part]->Draw("SCATsame"); legend2.AddEntry(temp, part.c_str(), "P"); } @@ -1896,16 +1898,14 @@ namespace { TPad pad1("pad1", "pad1", 0, 0.3, 1, 1.0); pad1.SetBottomMargin(0.02); // Upper and lower plot are joined - pad1.SetTopMargin(0.07); + pad1.SetTopMargin(0.1); pad1.SetRightMargin(0.05); pad1.SetLeftMargin(0.15); pad1.Draw(); // Draw the upper pad: pad1 pad1.cd(); // pad1 becomes the current pad - auto h_firstGains = - std::make_shared("hFirstGains", "SiStrip APV gains values; APV Gains;n. APVs", 200, 0.2, 1.8); - auto h_lastGains = - std::make_shared("hLastGains", "SiStrip APV gains values; APV Gains;n. APVs", 200, 0.2, 1.8); + auto h_firstGains = std::make_shared("hFirstGains", ";SiStrip APV Gains;n. APVs", 200, 0.2, 1.8); + auto h_lastGains = std::make_shared("hLastGains", ";SiStrip APV Gains;n. APVs", 200, 0.2, 1.8); for (const auto& item : firstmap) { h_firstGains->Fill(item.second); @@ -1929,8 +1929,8 @@ namespace { h_firstGains->SetMarkerSize(1.); h_lastGains->SetMarkerSize(1.); - h_firstGains->SetLineWidth(1); - h_lastGains->SetLineWidth(1); + h_firstGains->SetLineWidth(2); + h_lastGains->SetLineWidth(2); h_firstGains->SetMarkerStyle(20); h_lastGains->SetMarkerStyle(21); @@ -1938,15 +1938,35 @@ namespace { h_firstGains->GetXaxis()->SetLabelOffset(2.); h_lastGains->GetXaxis()->SetLabelOffset(2.); + float max = (h_firstGains->GetMaximum() > h_lastGains->GetMaximum()) ? h_firstGains->GetMaximum() + : h_lastGains->GetMaximum(); + + h_firstGains->GetYaxis()->SetRangeUser(0., std::max(0., max * 1.20)); + h_firstGains->Draw("HIST"); h_lastGains->Draw("HISTsame"); - TLegend legend = TLegend(0.70, 0.7, 0.95, 0.9); - legend.SetHeader("Gain Comparison", "C"); // option "C" allows to center the header - legend.AddEntry(h_firstGains.get(), ("IOV: " + std::to_string(std::get<0>(firstiov))).c_str(), "PL"); - legend.AddEntry(h_lastGains.get(), ("IOV: " + std::to_string(std::get<0>(lastiov))).c_str(), "PL"); + TLegend legend = TLegend(0.30, 0.78, 0.95, 0.9); + legend.SetHeader("#font[22]{SiStrip APV Gains Comparison}", "C"); // option "C" allows to center the header + legend.AddEntry(h_firstGains.get(), ("payload: #color[2]{" + std::get<1>(firstiov) + "}").c_str(), "F"); + legend.AddEntry(h_lastGains.get(), ("payload: #color[4]{" + std::get<1>(lastiov) + "}").c_str(), "F"); + legend.SetTextSize(0.025); legend.Draw("same"); + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextSize(0.037); + ltx.SetTextAlign(11); + std::string ltxText; + if (this->m_plotAnnotations.ntags == 2) { + ltxText = fmt::sprintf( + "#splitline{#color[2]{%s, %s} vs}{#color[4]{%s, %s}}", tagname1, firstIOVsince, tagname2, lastIOVsince); + } else { + ltxText = fmt::sprintf( + "#splitline{%s}{IOV: #color[2]{%s} vs IOV: #color[4]{%s}}", tagname1, firstIOVsince, lastIOVsince); + } + ltx.DrawLatexNDC(gPad->GetLeftMargin(), 1 - gPad->GetTopMargin() + 0.04, ltxText.c_str()); + // lower plot will be in pad canvas.cd(); // Go back to the main canvas before defining pad2 TPad pad2("pad2", "pad2", 0, 0.005, 1, 0.3); From 2d522c34ba42e3c2169c9fb92b39c11b33a65106 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Tue, 19 Nov 2024 09:11:48 -0600 Subject: [PATCH 048/418] moving ParentageID no longer gives any advantage --- DataFormats/Provenance/interface/ProductProvenance.h | 3 +-- DataFormats/Provenance/interface/ProductProvenanceLookup.h | 6 +++--- DataFormats/Provenance/src/ProductProvenanceLookup.cc | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/DataFormats/Provenance/interface/ProductProvenance.h b/DataFormats/Provenance/interface/ProductProvenance.h index 585e392470f44..32eab1d5b0dac 100644 --- a/DataFormats/Provenance/interface/ProductProvenance.h +++ b/DataFormats/Provenance/interface/ProductProvenance.h @@ -39,8 +39,7 @@ namespace edm { ParentageID const& parentageID() const { return parentageID_; } Parentage const& parentage() const; - void set(ParentageID id) { parentageID_ = std::move(id); } - ParentageID moveParentageID() { return std::move(parentageID_); } + void set(ParentageID const& id) { parentageID_ = id; } private: BranchID branchID_; diff --git a/DataFormats/Provenance/interface/ProductProvenanceLookup.h b/DataFormats/Provenance/interface/ProductProvenanceLookup.h index 5b1311cad7cb9..8d820eff723a8 100644 --- a/DataFormats/Provenance/interface/ProductProvenanceLookup.h +++ b/DataFormats/Provenance/interface/ProductProvenanceLookup.h @@ -33,7 +33,7 @@ namespace edm { ProductProvenanceLookup& operator=(ProductProvenanceLookup const&) = delete; ProductProvenance const* branchIDToProvenance(BranchID const& bid) const; - void insertIntoSet(ProductProvenance provenanceProduct) const; + void insertIntoSet(ProductProvenance const& provenanceProduct) const; ProductProvenance const* branchIDToProvenanceForProducedOnly(BranchID const& bid) const; void update(edm::ProductRegistry const&); @@ -78,8 +78,8 @@ namespace edm { bool isParentageSet() const noexcept { return isParentageSet_.load(std::memory_order_acquire); } - void threadsafe_set(ParentageID id) const { - provenance_.set(std::move(id)); + void threadsafe_set(ParentageID const& id) const { + provenance_.set(id); isParentageSet_.store(true, std::memory_order_release); } diff --git a/DataFormats/Provenance/src/ProductProvenanceLookup.cc b/DataFormats/Provenance/src/ProductProvenanceLookup.cc index 366406e509aad..78d598e03f4ab 100644 --- a/DataFormats/Provenance/src/ProductProvenanceLookup.cc +++ b/DataFormats/Provenance/src/ProductProvenanceLookup.cc @@ -39,7 +39,7 @@ namespace edm { setupEntryInfoSet(iReg); } - void ProductProvenanceLookup::insertIntoSet(ProductProvenance entryInfo) const { + void ProductProvenanceLookup::insertIntoSet(ProductProvenance const& entryInfo) const { //NOTE:do not read provenance here because we only need the full // provenance when someone tries to access it not when doing the insert // doing the delay saves 20% of time when doing an analysis job @@ -53,7 +53,7 @@ namespace edm { throw edm::Exception(edm::errors::LogicError) << "ProductProvenanceLookup::insertIntoSet passed a BranchID " << entryInfo.branchID().id() << " that has not been pre-registered"; } - itFound->threadsafe_set(entryInfo.moveParentageID()); + itFound->threadsafe_set(entryInfo.parentageID()); } ProductProvenance const* ProductProvenanceLookup::branchIDToProvenance(BranchID const& bid) const { From 0dde070885c5d388ffa854dbd4fae9bfb9ad9a58 Mon Sep 17 00:00:00 2001 From: Joshua Hiltbrand Date: Tue, 12 Nov 2024 21:56:56 +0100 Subject: [PATCH 049/418] more robust lut diff --- .../HcalTPGAlgos/interface/HcaluLUTTPGCoder.h | 6 +- .../HcalTPGAlgos/interface/LutXml.h | 7 +- .../HcalTPGAlgos/src/HcaluLUTTPGCoder.cc | 16 +- CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc | 66 ++--- .../HcalTPGEventSetup/src/HcalTPGCoderULUT.cc | 20 +- CaloOnlineTools/HcalOnlineDb/bin/hcalLUT.cc | 123 -------- .../HcalOnlineDb/plugins/HcalLutAnalyzer.cc | 8 +- .../HcalOnlineDb/plugins/HcalLutComparer.cc | 265 ++++++++++++++++++ CaloOnlineTools/HcalOnlineDb/test/DiffLUT.py | 28 ++ .../HcalOnlineDb/test/cardPhysicsSkeleton.sh | 1 + CaloOnlineTools/HcalOnlineDb/test/genLUT.sh | 15 +- CaloOnlineTools/HcalOnlineDb/test/template.py | 4 +- 12 files changed, 370 insertions(+), 189 deletions(-) create mode 100644 CaloOnlineTools/HcalOnlineDb/plugins/HcalLutComparer.cc create mode 100644 CaloOnlineTools/HcalOnlineDb/test/DiffLUT.py diff --git a/CalibCalorimetry/HcalTPGAlgos/interface/HcaluLUTTPGCoder.h b/CalibCalorimetry/HcalTPGAlgos/interface/HcaluLUTTPGCoder.h index d974bcf54a60d..97766c441a3f6 100644 --- a/CalibCalorimetry/HcalTPGAlgos/interface/HcaluLUTTPGCoder.h +++ b/CalibCalorimetry/HcalTPGAlgos/interface/HcaluLUTTPGCoder.h @@ -6,6 +6,7 @@ #include "Geometry/CaloTopology/interface/HcalTopology.h" #include "DataFormats/HcalDetId/interface/HcalDetId.h" #include "CalibCalorimetry/HcalAlgos/interface/HcalPulseContainmentManager.h" +#include "CondFormats/HcalObjects/interface/HcalElectronicsMap.h" #include #include @@ -34,10 +35,10 @@ class HcaluLUTTPGCoder : public HcalTPGCoder { static const float lsb_; HcaluLUTTPGCoder(); - HcaluLUTTPGCoder(const HcalTopology* topo, const HcalTimeSlew* delay); + HcaluLUTTPGCoder(const HcalTopology* topo, const HcalElectronicsMap* emap, const HcalTimeSlew* delay); ~HcaluLUTTPGCoder() override; - void init(const HcalTopology* top, const HcalTimeSlew* delay); + void init(const HcalTopology* top, const HcalElectronicsMap* emap, const HcalTimeSlew* delay); void adc2Linear(const HBHEDataFrame& df, IntegerCaloSamples& ics) const override; void adc2Linear(const HFDataFrame& df, IntegerCaloSamples& ics) const override; @@ -110,6 +111,7 @@ class HcaluLUTTPGCoder : public HcalTPGCoder { // member variables const HcalTopology* topo_; + const HcalElectronicsMap* emap_; const HcalTimeSlew* delay_; bool LUTGenerationMode_; std::vector FG_HF_thresholds_; diff --git a/CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h b/CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h index 7b418c411e6f7..674c24dad2cae 100644 --- a/CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h +++ b/CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h @@ -21,7 +21,8 @@ #include #include #include "CalibCalorimetry/HcalTPGAlgos/interface/XMLDOMBlock.h" -#include "DataFormats/HcalDetId/interface/HcalSubdetector.h" +#include "DataFormats/DetId/interface/DetId.h" +#include "CondFormats/HcalObjects/interface/HcalElectronicsMap.h" #include class LutXml : public XMLDOMBlock { @@ -56,9 +57,9 @@ class LutXml : public XMLDOMBlock { // //std::vector getLut( int lut_type, int crate, int slot, int topbottom, int fiber, int fiber_channel ); - HcalSubdetector subdet_from_crate(int crate, int slot, int fiber); + DetId detid_from_crate(int crate, int slot, int fiber, int fiberch, bool isTrigger, const HcalElectronicsMap* emap); int a_to_i(char* inbuf); - int create_lut_map(void); + int create_lut_map(const HcalElectronicsMap* emap); static std::string get_checksum(std::vector& lut); diff --git a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc index dc6a562d01cbb..582098ffd0dd5 100644 --- a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc +++ b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc @@ -40,6 +40,7 @@ constexpr double MaximumFractionalError = 0.002; // 0.2% error allowed from thi HcaluLUTTPGCoder::HcaluLUTTPGCoder() : topo_{}, + emap_{}, delay_{}, LUTGenerationMode_{}, FG_HF_thresholds_{}, @@ -71,10 +72,13 @@ HcaluLUTTPGCoder::HcaluLUTTPGCoder() linearLSB_QIE11_{}, linearLSB_QIE11Overlap_{} {} -HcaluLUTTPGCoder::HcaluLUTTPGCoder(const HcalTopology* top, const HcalTimeSlew* delay) { init(top, delay); } +HcaluLUTTPGCoder::HcaluLUTTPGCoder(const HcalTopology* top, const HcalElectronicsMap* emap, const HcalTimeSlew* delay) { + init(top, emap, delay); +} -void HcaluLUTTPGCoder::init(const HcalTopology* top, const HcalTimeSlew* delay) { +void HcaluLUTTPGCoder::init(const HcalTopology* top, const HcalElectronicsMap* emap, const HcalTimeSlew* delay) { topo_ = top; + emap_ = emap; delay_ = delay; LUTGenerationMode_ = true; FG_HF_thresholds_ = {0, 0}; @@ -283,7 +287,7 @@ void HcaluLUTTPGCoder::update(const char* filename, bool appendMSB) { void HcaluLUTTPGCoder::updateXML(const char* filename) { LutXml* _xml = new LutXml(filename); - _xml->create_lut_map(); + _xml->create_lut_map(emap_); HcalSubdetector subdet[3] = {HcalBarrel, HcalEndcap, HcalForward}; for (int ieta = -HcalDetId::kHcalEtaMask2; ieta <= (int)(HcalDetId::kHcalEtaMask2); ++ieta) { for (unsigned int iphi = 0; iphi <= HcalDetId::kHcalPhiMask2; ++iphi) { @@ -367,8 +371,6 @@ void HcaluLUTTPGCoder::update(const HcalDbService& conditions) { // Here we will determine if we are using new version of TPs (1TS) // i.e. are we using a new pulse filter scheme. - const HcalElectronicsMap* emap = conditions.getHcalMapping(); - int lastHBRing = topo_->lastHBRing(); int lastHERing = topo_->lastHERing(); @@ -378,13 +380,13 @@ void HcaluLUTTPGCoder::update(const HcalDbService& conditions) { bool foundHE = false; bool newHBtp = false; bool newHEtp = false; - std::vector vIds = emap->allElectronicsIdTrigger(); + std::vector vIds = emap_->allElectronicsIdTrigger(); for (std::vector::const_iterator eId = vIds.begin(); eId != vIds.end(); eId++) { // The first HB or HE id is enough to tell whether to use new scheme in HB or HE if (foundHB and foundHE) break; - HcalTrigTowerDetId hcalTTDetId(emap->lookupTrigger(*eId)); + HcalTrigTowerDetId hcalTTDetId(emap_->lookupTrigger(*eId)); if (hcalTTDetId.null()) continue; diff --git a/CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc b/CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc index a5216186dc42a..1b22f6f142a8a 100644 --- a/CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc +++ b/CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc @@ -23,6 +23,7 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "CalibCalorimetry/HcalTPGAlgos/interface/HcalEmap.h" #include "DataFormats/HcalDetId/interface/HcalDetId.h" +#include "DataFormats/HcalDetId/interface/HcalZDCDetId.h" #include "DataFormats/HcalDetId/interface/HcalTrigTowerDetId.h" using namespace std; @@ -32,7 +33,6 @@ LutXml::Config::_Config() { infotype = "LUT"; ieta = -1000; iphi = -1000; - depth = -1; crate = -1; slot = -1; topbottom = -1; @@ -314,28 +314,18 @@ int LutXml::test_access(std::string filename) { return 0; } -HcalSubdetector LutXml::subdet_from_crate(int crate_, int slot, int fiber) { - // HBHE: 0,1,4,5,10,11,14,15,17 (+20) - // HF: 2,9,12 (+20) - // HO: 3,6,7,13,18 (+20) - int crate = crate_ < 20 ? crate_ : crate_ - 20; - if (crate == 2 || crate == 9 || crate == 12) - return HcalForward; - else if (crate == 3 || crate == 6 || crate == 7 || crate == 13 || crate == 18) - return HcalOuter; - else if (crate == 0 || crate == 1 || crate == 4 || crate == 5 || crate == 10 || crate == 11 || crate == 14 || - crate == 15 || crate == 17) { - if (slot % 3 == 1) - return HcalBarrel; - else if (slot % 3 == 0) - return HcalEndcap; - else if (fiber < 12) - return HcalBarrel; - else - return HcalEndcap; +DetId LutXml::detid_from_crate( + int crate, int slot, int fiber, int fiberch, bool isTrigger, const HcalElectronicsMap *emap) { + HcalElectronicsId electronicsId = HcalElectronicsId(crate, slot, fiber, fiberch, isTrigger); + + DetId detId = emap->lookup(electronicsId); + if (detId.null()) { + edm::LogWarning("LutXml") << "Invalid electronics ID or no mapping found for crate: " << crate << " slot: " << slot + << " fiber: " << fiber << " fiberch: " << fiberch << std::endl; + return 0; + } else { + return detId; } - edm::LogWarning("LutXml::subdet_from_crate") << "crate " << crate_ << " is not accounted for"; - return HcalEmpty; } int LutXml::a_to_i(char *inbuf) { @@ -345,11 +335,7 @@ int LutXml::a_to_i(char *inbuf) { } // organize all LUTs in XML into a map for fast access -// -// FIXME: uses hardcoded CRATE-to-subdetector mapping -// FIXME: it would be better to use some official map -// -int LutXml::create_lut_map(void) { +int LutXml::create_lut_map(const HcalElectronicsMap *emap) { //delete lut_map; lut_map.clear(); //lut_map = new std::map >(); @@ -364,13 +350,12 @@ int LutXml::create_lut_map(void) { int n_of_par = par_list->getLength(); int ieta = -99; int iphi = -99; - int depth = -99; int crate = -99; int slot = -99; int fiber = -99; - int lut_type = -99; + int fiberch = -99; int slb = -99; - HcalSubdetector subdet; + int lut_type = -99; for (int j = 0; j != n_of_par; j++) { DOMElement *aPar = (DOMElement *)(par_list->item(j)); char *aName = XMLString::transcode(aPar->getAttribute(XMLProcessor::_toXMLCh("name"))); @@ -378,20 +363,20 @@ int LutXml::create_lut_map(void) { ieta = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); if (strcmp(aName, "IPHI") == 0) iphi = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); - if (strcmp(aName, "DEPTH") == 0) - depth = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); if (strcmp(aName, "CRATE") == 0) crate = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); if (strcmp(aName, "SLOT") == 0) slot = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); + if (strcmp(aName, "FIBERCHAN") == 0) + fiberch = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); if (strcmp(aName, "FIBER") == 0) fiber = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); - if (strcmp(aName, "LUT_TYPE") == 0) - lut_type = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); if (strcmp(aName, "SLB") == 0) slb = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); + if (strcmp(aName, "LUT_TYPE") == 0) + lut_type = a_to_i(XMLString::transcode(aPar->getFirstChild()->getNodeValue())); } - subdet = subdet_from_crate(crate, slot, fiber); + DOMElement *_data = (DOMElement *)(aBrick->getElementsByTagName(XMLString::transcode("Data"))->item(0)); char *_str = XMLString::transcode(_data->getFirstChild()->getNodeValue()); @@ -437,11 +422,18 @@ int LutXml::create_lut_map(void) { } } } + // filling the map uint32_t _key = 0; if (lut_type == 1) { - HcalDetId _id(subdet, ieta, iphi, depth); - _key = _id.rawId(); + DetId detId = detid_from_crate(crate, slot, fiber, fiberch, false, emap); + if (detId.det() == DetId::Hcal) { + HcalDetId _id(detId); + _key = _id.rawId(); + } else if (detId.det() == DetId::Calo && detId.subdetId() == HcalZDCDetId::SubdetectorId) { + HcalZDCDetId _id(detId); + _key = _id.rawId(); + } } else if (lut_type == 2) { int version = (abs(ieta) > 29 && slb != 12 && crate > 20) ? 1 : 0; HcalTrigTowerDetId _id(ieta, iphi, 10 * version); diff --git a/CalibCalorimetry/HcalTPGEventSetup/src/HcalTPGCoderULUT.cc b/CalibCalorimetry/HcalTPGEventSetup/src/HcalTPGCoderULUT.cc index 775a10cb76255..811976266a9a0 100644 --- a/CalibCalorimetry/HcalTPGEventSetup/src/HcalTPGCoderULUT.cc +++ b/CalibCalorimetry/HcalTPGEventSetup/src/HcalTPGCoderULUT.cc @@ -32,6 +32,7 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/CaloTopology/interface/HcalTopology.h" #include "CalibFormats/HcalObjects/interface/HcalDbService.h" +#include "CondFormats/HcalObjects/interface/HcalElectronicsMap.h" // // class decleration @@ -49,7 +50,7 @@ class HcalTPGCoderULUT : public edm::ESProducer { private: using HostType = edm::ESProductHost; - void buildCoder(const HcalTopology*, const HcalTimeSlew*, HcaluLUTTPGCoder*); + void buildCoder(const HcalTopology*, const HcalElectronicsMap*, const HcalTimeSlew*, HcaluLUTTPGCoder*); // ----------member data --------------------------- edm::ReusableObjectHolder holder_; @@ -96,6 +97,7 @@ HcalTPGCoderULUT::HcalTPGCoderULUT(const edm::ParameterSet& iConfig) { auto cc = setWhatProduced(this); topoToken_ = cc.consumes(); delayToken_ = cc.consumes(edm::ESInputTag{"", "HBHE"}); + serviceToken_ = cc.consumes(); if (!(read_Ascii_ || read_XML_)) { LUTGenerationMode_ = iConfig.getParameter("LUTGenerationMode"); @@ -106,15 +108,17 @@ HcalTPGCoderULUT::HcalTPGCoderULUT(const edm::ParameterSet& iConfig) { linearLSB_QIE11Overlap_ = scales.getParameter("LSBQIE11Overlap"); maskBit_ = iConfig.getParameter("MaskBit"); FG_HF_thresholds_ = iConfig.getParameter >("FG_HF_thresholds"); - serviceToken_ = cc.consumes(); } else { ifilename_ = iConfig.getParameter("inputLUTs"); } } -void HcalTPGCoderULUT::buildCoder(const HcalTopology* topo, const HcalTimeSlew* delay, HcaluLUTTPGCoder* theCoder) { +void HcalTPGCoderULUT::buildCoder(const HcalTopology* topo, + const HcalElectronicsMap* emap, + const HcalTimeSlew* delay, + HcaluLUTTPGCoder* theCoder) { using namespace edm::es; - theCoder->init(topo, delay); + theCoder->init(topo, emap, delay); theCoder->setOverrideDBweightsAndFilterHB(overrideDBweightsAndFilterHB_); theCoder->setOverrideDBweightsAndFilterHE(overrideDBweightsAndFilterHE_); @@ -161,12 +165,14 @@ HcalTPGCoderULUT::ReturnType HcalTPGCoderULUT::produce(const HcalTPGRecord& iRec const auto& topo = iRecord.get(topoToken_); const auto& delayRcd = iRecord.getRecord(); + const auto& dbServ = iRecord.get(serviceToken_); + const auto* emap = dbServ.getHcalMapping(); const auto& delay = delayRcd.get(delayToken_); if (read_Ascii_ || read_XML_) { - buildCoder(&topo, &delay, host.get()); + buildCoder(&topo, emap, &delay, host.get()); } else { - host->ifRecordChanges(iRecord, [this, &topo, &delay, h = host.get()](auto const& rec) { - buildCoder(&topo, &delay, h); + host->ifRecordChanges(iRecord, [this, &topo, emap, &delay, h = host.get()](auto const& rec) { + buildCoder(&topo, emap, &delay, h); h->update(rec.get(serviceToken_)); // Temporary update for FG Lut // Will be moved to DB diff --git a/CaloOnlineTools/HcalOnlineDb/bin/hcalLUT.cc b/CaloOnlineTools/HcalOnlineDb/bin/hcalLUT.cc index b9765fe47027f..83e2e7b6c16b7 100644 --- a/CaloOnlineTools/HcalOnlineDb/bin/hcalLUT.cc +++ b/CaloOnlineTools/HcalOnlineDb/bin/hcalLUT.cc @@ -19,111 +19,6 @@ void mergeLUTs(const char *flist, const char *out) { xmls.write(out); } -void dumpLutDiff(LutXml &xmls1, LutXml &xmls2, bool testFormat = true, int detail = 0) { - const int ndet = 5; - const char *DET[ndet] = {"HB", "HE", "HO", "HF", "HT"}; - const int dtype[ndet] = {0, 1, 2, 3, 4}; - const int HBandHE_fgBits = 0xFC00; - - const int nvar = 5; - enum vtype { total, extra, zeros, match, fgMatch }; - - std::array n[ndet]; - - for (auto &d : n) { - for (auto &v : d) { - v = 0; - } - } - - for (auto &x1 : xmls1) { - HcalGenericDetId id(x1.first); - auto x2 = xmls2.find(id.rawId()); - auto subdet = id.genericSubdet(); - if (subdet == 0 or subdet == 6) - continue; //'empty' or 'other' - - auto &m = n[subdet - 1]; - - m[total]++; - if (x2 == xmls2.end()) { - m[extra]++; - if (testFormat) - cout << "Extra detId: " << id << endl; - else - continue; - } - - const auto &lut1 = x1.second; - size_t size = lut1.size(); - - bool zero = true; - for (auto &i : lut1) { - if (i > 0) { - zero = false; - break; - } - } - if (zero) { - m[zeros]++; - if (detail == 1 and testFormat) { - cout << "Zero LUT: " << id << endl; - } - } - - if (testFormat) - continue; - - const auto &lut2 = x2->second; - bool good = size == lut2.size(); - bool fgGood = size == lut2.size(); - for (size_t i = 0; i < size and (good or fgGood); ++i) { - if (lut1[i] != lut2[i]) { - good = false; - //Only check fine grain bits in HB and HE - if (subdet == 1 || subdet == 2) { - if ((lut1[i] & HBandHE_fgBits) != (lut2[i] & HBandHE_fgBits)) - fgGood = false; - } - if (detail == 2) { - cout << Form("Mismatach in index=%3d, %4d!=%4d, ", int(i), lut1[i], lut2[i]) << id << endl; - } - } - } - if (good) - m[match]++; - if (fgGood) - m[fgMatch]++; - } - - if (testFormat) { - cout << Form("%3s: %8s %8s %8s", "Det", "total", "zeroes", "extra") << endl; - for (auto i : dtype) - cout << Form("%3s: %8d %8d %8d", DET[i], n[i][total], n[i][zeros], n[i][extra]) << endl; - cout << "--------------------------------------------" << endl; - } else { - bool good = true; - for (auto &d : n) { - if (d[total] != d[match]) { - good = false; - } - } - cout << Form("%3s: %8s %8s %8s %8s %8s", "Det", "total", "match", "mismatch", "FG match", "FG mismatch") - << endl; - for (auto i : dtype) - cout << Form("%3s: %8d %8d %8d %8d %8d", - DET[i], - n[i][total], - n[i][match], - n[i][total] - n[i][match], - n[i][fgMatch], - n[i][total] - n[i][fgMatch]) - << endl; - cout << "--------------------------------------------" << endl; - cout << (good ? "PASS!" : "FAIL!") << endl; - } -} - int main(int argc, char **argv) { optutl::CommandLineParser parser("runTestParameters"); parser.parseArguments(argc, argv, true); @@ -133,24 +28,6 @@ int main(int argc, char **argv) { std::string flist_ = parser.stringValue("storePrepend"); std::string out_ = parser.stringValue("outputFile"); mergeLUTs(flist_.c_str(), out_.c_str()); - } else if (strcmp(argv[1], "diff") == 0) { - auto files = parser.stringVector("inputFiles"); - auto detail = parser.integerValue("section"); - - LutXml xmls1(edm::FileInPath(files[0]).fullPath()); - LutXml xmls2(edm::FileInPath(files[1]).fullPath()); - - xmls1.create_lut_map(); - xmls2.create_lut_map(); - - cout << files[0] << endl; - dumpLutDiff(xmls1, xmls2, true, detail); - - cout << files[1] << endl; - dumpLutDiff(xmls2, xmls1, true, detail); - - cout << "Comparison" << endl; - dumpLutDiff(xmls1, xmls2, false, detail); } else if (strcmp(argv[1], "create-lut-loader") == 0) { std::string _file_list = parser.stringValue("outputFile"); std::string _tag = parser.stringValue("tag"); diff --git a/CaloOnlineTools/HcalOnlineDb/plugins/HcalLutAnalyzer.cc b/CaloOnlineTools/HcalOnlineDb/plugins/HcalLutAnalyzer.cc index cd3e4d42ececa..af8187cc75e94 100644 --- a/CaloOnlineTools/HcalOnlineDb/plugins/HcalLutAnalyzer.cc +++ b/CaloOnlineTools/HcalOnlineDb/plugins/HcalLutAnalyzer.cc @@ -36,6 +36,7 @@ #include "Geometry/CaloTopology/interface/HcalTopology.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" #include "Geometry/Records/interface/HcalRecNumberingRecord.h" +#include "CalibFormats/HcalObjects/interface/HcalDbRecord.h" #include "TString.h" #include "TH1D.h" @@ -72,6 +73,7 @@ class HcalLutAnalyzer : public edm::one::EDAnalyzer { double Pmax; edm::ESGetToken tok_htopo_; + edm::ESGetToken tok_emap_; }; HcalLutAnalyzer::HcalLutAnalyzer(const edm::ParameterSet& iConfig) { @@ -92,12 +94,14 @@ HcalLutAnalyzer::HcalLutAnalyzer(const edm::ParameterSet& iConfig) { Pmax = iConfig.getParameter("Pmax"); tok_htopo_ = esConsumes(); + tok_emap_ = esConsumes(); } void HcalLutAnalyzer::analyze(const edm::Event&, const edm::EventSetup& iSetup) { using namespace std; const HcalTopology* topology = &iSetup.getData(tok_htopo_); + const HcalElectronicsMap* electronicsMap = &iSetup.getData(tok_emap_); typedef std::vector vstring; typedef std::map LUTINPUT; @@ -350,8 +354,8 @@ void HcalLutAnalyzer::analyze(const edm::Event&, const edm::EventSetup& iSetup) LutXml xmls1(edm::FileInPath(Form("%s/%s/%s.xml", inputDir.c_str(), tags_[0].c_str(), tags_[0].c_str())).fullPath()); LutXml xmls2(edm::FileInPath(Form("%s/%s/%s.xml", inputDir.c_str(), tags_[1].c_str(), tags_[1].c_str())).fullPath()); - xmls1.create_lut_map(); - xmls2.create_lut_map(); + xmls1.create_lut_map(electronicsMap); + xmls2.create_lut_map(electronicsMap); for (const auto& xml2 : xmls2) { HcalGenericDetId detid(xml2.first); diff --git a/CaloOnlineTools/HcalOnlineDb/plugins/HcalLutComparer.cc b/CaloOnlineTools/HcalOnlineDb/plugins/HcalLutComparer.cc new file mode 100644 index 0000000000000..77f1d2b435a0a --- /dev/null +++ b/CaloOnlineTools/HcalOnlineDb/plugins/HcalLutComparer.cc @@ -0,0 +1,265 @@ +// -*- C++ -*- +// +// Package: Test/HcalLutComparer +// Class: HcalLutComparer +// +/**\class HcalLutComparer HcalLutComparer.cc Test/HcalLutComparer/plugins/HcalLutComparer.cc + + Description: [one line class summary] + + Implementation: + [Notes on implementation] +*/ +// +// Original Author: Joshua C. Hiltbrand +// Created: Tue, 12 Nov 2024 05:57:40 GMT +// +// + +// system include files +#include +#include +#include + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Framework/interface/EventSetup.h" + +#include "CalibCalorimetry/HcalTPGAlgos/interface/XMLProcessor.h" +#include "CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h" +#include "DataFormats/HcalDetId/interface/HcalGenericDetId.h" +#include "DataFormats/HcalDetId/interface/HcalDetId.h" +#include "DataFormats/HcalDetId/interface/HcalZDCDetId.h" +#include "Geometry/CaloTopology/interface/HcalTopology.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/HcalRecNumberingRecord.h" +#include "CondFormats/DataRecord/interface/HcalElectronicsMapRcd.h" + +class HcalLutComparer : public edm::one::EDAnalyzer { +public: + explicit HcalLutComparer(const edm::ParameterSet &); + ~HcalLutComparer() override {} + void dumpLutDiff(LutXml &xmls1, LutXml &xmls2, bool testFormat); + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); + +private: + void analyze(const edm::Event &, const edm::EventSetup &) override; + + edm::ESGetToken tok_htopo_; + edm::ESGetToken tok_emap_; + + std::string lutXML1_; + std::string lutXML2_; + unsigned int verbosity_; +}; + +HcalLutComparer::HcalLutComparer(const edm::ParameterSet &iConfig) { + lutXML1_ = iConfig.getParameter("lutXML1"); + lutXML2_ = iConfig.getParameter("lutXML2"); + verbosity_ = iConfig.getParameter("verbosity"); + + tok_htopo_ = esConsumes(); + tok_emap_ = esConsumes(); +} + +void HcalLutComparer::dumpLutDiff(LutXml &xmls1, LutXml &xmls2, bool testFormat = true) { + std::vector detCodes = {1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 9, -9, 10, -10, 11, -11, 12, -12}; + std::vector detNames = {"HBP", + "HBM", + "HEP", + "HEM", + "HOP", + "HOM", + "HFP", + "HFM", + "HTP", + "HTM", + "ZDCP_EM", + "ZDCM_EM", + "ZDCP_HAD", + "ZDCM_HAD", + "ZDCP_LUM", + "ZDCM_LUM", + "ZDCP_RPD", + "ZDCM_RPD"}; + + const int HBandHE_fgBits = 0xF000; + const int HF_fgBits = 0x3000; + + unsigned int nvars = 5; + enum vtype { total, extra, zeros, match, fgMatch }; + + std::map> n; + + for (const auto &detCode : detCodes) { + n[detCode] = std::vector{}; + for (unsigned int j = 0; j < nvars; j++) { + n[detCode].push_back(0); + } + } + + for (auto &x1 : xmls1) { + auto x2 = xmls2.find(x1.first); + + HcalGenericDetId id = HcalGenericDetId(x1.first); + int subdet = id.genericSubdet(); + if (subdet == 0 or subdet == 6) + continue; //'empty' or 'other' + + int side = 1; + int section = 0; + if (id.isHcalDetId()) { + HcalDetId hdetId = HcalDetId(x1.first); + side = hdetId.zside(); + } else if (id.isHcalTrigTowerDetId()) { + HcalTrigTowerDetId htdetId = HcalTrigTowerDetId(x1.first); + side = htdetId.zside(); + } else if (id.isHcalZDCDetId()) { + HcalZDCDetId zdetId = HcalZDCDetId(x1.first); + side = zdetId.zside(); + section = zdetId.section(); + } + + int detCode = side * (subdet + section); + + auto &m = n[detCode]; + + m[total]++; + if (x2 == xmls2.end()) { + m[extra]++; + if (testFormat) + std::cout << "Extra detId: " << id << std::endl; + else + continue; + } + + const auto &lut1 = x1.second; + size_t size = lut1.size(); + + bool zero = true; + for (auto &i : lut1) { + if (i > 0) { + zero = false; + break; + } + } + if (zero) { + m[zeros]++; + if (verbosity_ == 1 and testFormat) { + std::cout << "Zero LUT: " << id << std::endl; + } + } + + if (testFormat) + continue; + + const auto &lut2 = x2->second; + bool good = size == lut2.size(); + bool fgGood = size == lut2.size(); + for (size_t i = 0; i < size and (good or fgGood); ++i) { + if (lut1[i] != lut2[i]) { + good = false; + if (subdet == 1 || subdet == 2) { + if ((lut1[i] & HBandHE_fgBits) != (lut2[i] & HBandHE_fgBits)) + fgGood = false; + } else if (subdet == 4) { + if ((lut1[i] & HF_fgBits) != (lut2[i] & HF_fgBits)) + fgGood = false; + } + + if (verbosity_ == 2) { + std::cout << Form("Mismatach in index=%3d, %4d!=%4d, ", int(i), lut1[i], lut2[i]) << id << std::endl; + } + } + } + if (good) + m[match]++; + if (fgGood) + m[fgMatch]++; + } + + if (testFormat) { + std::cout << Form("%9s %6s %6s %6s", "Det", "total", "zeroes", "extra") << std::endl; + for (unsigned int i = 0; i < detCodes.size(); i++) { + int detCode = detCodes.at(i); + std::string detName = detNames.at(i); + std::cout << Form("%9s %6d %6d %6d", detName.c_str(), n[detCode][total], n[detCode][zeros], n[detCode][extra]) + << std::endl; + if (detCode < 0) { + std::cout << Form("%9s %6d %6d %6d", + " ", + n[detCode][total] + n[-1 * detCode][total], + n[detCode][zeros] + n[-1 * detCode][zeros], + n[detCode][extra] + n[-1 * detCode][extra]) + << std::endl; + std::cout << std::endl; + } + } + std::cout << "--------------------------------------------" << std::endl; + } else { + bool good = true; + for (const auto &it : n) { + if (it.second[total] != it.second[match]) { + good = false; + } + } + std::cout << Form("%9s %6s %6s %8s %8s %11s", "Det", "total", "match", "mismatch", "FG match", "FG mismatch") + << std::endl; + for (unsigned int i = 0; i < detCodes.size(); i++) { + int detCode = detCodes.at(i); + std::string detName = detNames.at(i); + std::cout << Form("%9s %6d %6d %8d %8d %11d", + detName.c_str(), + n[detCode][total], + n[detCode][match], + n[detCode][total] - n[detCode][match], + n[detCode][fgMatch], + n[detCode][total] - n[detCode][fgMatch]) + << std::endl; + if (detCode < 0) { + std::cout << Form("%9s %6d %6d %8d %8d %11d", + " ", + n[detCode][total] + n[-1 * detCode][total], + n[detCode][match] + n[-1 * detCode][match], + n[detCode][total] - n[detCode][match] + n[-1 * detCode][total] - n[-1 * detCode][match], + n[detCode][fgMatch] + n[-1 * detCode][fgMatch], + n[detCode][total] - n[detCode][fgMatch] + n[-1 * detCode][total] - n[-1 * detCode][fgMatch]) + << std::endl; + std::cout << std::endl; + } + } + std::cout << "--------------------------------------------" << std::endl; + std::cout << (good ? "PASS!" : "FAIL!") << std::endl; + } +} + +void HcalLutComparer::analyze(const edm::Event &, const edm::EventSetup &iSetup) { + const HcalElectronicsMap *electronicsMap = &iSetup.getData(tok_emap_); + + LutXml xmls1(edm::FileInPath(lutXML1_).fullPath()); + LutXml xmls2(edm::FileInPath(lutXML2_).fullPath()); + + xmls1.create_lut_map(electronicsMap); + xmls2.create_lut_map(electronicsMap); + + std::cout << lutXML1_ << std::endl; + dumpLutDiff(xmls1, xmls2, true); + + std::cout << lutXML2_ << std::endl; + dumpLutDiff(xmls2, xmls1, true); + + std::cout << "Comparison" << std::endl; + dumpLutDiff(xmls1, xmls2, false); +} + +void HcalLutComparer::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + edm::ParameterSetDescription desc; + desc.setUnknown(); + descriptions.addDefault(desc); +} + +DEFINE_FWK_MODULE(HcalLutComparer); diff --git a/CaloOnlineTools/HcalOnlineDb/test/DiffLUT.py b/CaloOnlineTools/HcalOnlineDb/test/DiffLUT.py new file mode 100644 index 0000000000000..7a356bf7b8711 --- /dev/null +++ b/CaloOnlineTools/HcalOnlineDb/test/DiffLUT.py @@ -0,0 +1,28 @@ +import FWCore.ParameterSet.Config as cms +import FWCore.ParameterSet.VarParsing as VarParsing + +options = VarParsing.VarParsing('analysis') +options.register('globaltag', '', VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, '') +options.register('run', '', VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.int, '') +options.register('lutXML1', '', VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, '') +options.register('lutXML2', '', VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, '') +options.register('verbosity', '', VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.int, '') + +options.parseArguments() + +process = cms.Process("LutDiff") + +process.load("Configuration.Geometry.GeometryDB_cff") +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +process.GlobalTag.globaltag = options.globaltag + +process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(1)) +process.source = cms.Source("EmptySource") +process.source.firstRun = cms.untracked.uint32(options.run) + +process.diff = cms.EDAnalyzer("HcalLutComparer", + lutXML1 = cms.string(options.lutXML1), + lutXML2 = cms.string(options.lutXML2), + verbosity = cms.uint32(options.verbosity), +) +process.p = cms.Path(process.diff) diff --git a/CaloOnlineTools/HcalOnlineDb/test/cardPhysicsSkeleton.sh b/CaloOnlineTools/HcalOnlineDb/test/cardPhysicsSkeleton.sh index e8cef94a8c7c1..d3b17122c6b74 100644 --- a/CaloOnlineTools/HcalOnlineDb/test/cardPhysicsSkeleton.sh +++ b/CaloOnlineTools/HcalOnlineDb/test/cardPhysicsSkeleton.sh @@ -1,6 +1,7 @@ Tag="" Run=1 GlobalTag="" +Era="" description="" HOAsciiInput=HO_ped9_inputLUTcoderDec.txt diff --git a/CaloOnlineTools/HcalOnlineDb/test/genLUT.sh b/CaloOnlineTools/HcalOnlineDb/test/genLUT.sh index 90b4830a93ba4..27b3d9229c09e 100755 --- a/CaloOnlineTools/HcalOnlineDb/test/genLUT.sh +++ b/CaloOnlineTools/HcalOnlineDb/test/genLUT.sh @@ -6,7 +6,7 @@ cat << EOF examples: ./genLUT.sh dumpAll card=cardPhysics.sh ./genLUT.sh generate card=cardPhysics.sh - ./genLUT.sh diff conditions/newtag/newtag.xml conditions/oldtag/oldtag.xml + ./genLUT.sh diff card=cardPhysics.sh conditions/newtag/newtag.xml conditions/oldtag/oldtag.xml ./genLUT.sh validate card=cardPhysics.sh EOF @@ -141,6 +141,7 @@ then -e "s#__CONDDIR__#$BaseDir/$CondDir#g" \ -e "s#__GlobalTag__#$GlobalTag#g" \ -e "s#__HO_master_file__#$HOAsciiInput#g" \ + -e "s#__ERA__#$Era#g" \ $templatefile > $Tag.py echo "genLUT.sh::generate: Running..." @@ -274,19 +275,21 @@ then exit 1 fi - CheckFile $2 + source $card + + lutFile1="$BaseDir/$3" + lutFile2="$BaseDir/$4" CheckFile $3 - echo $BaseDir/$2,$BaseDir/$3 + CheckFile $4 + echo $lutFile1,$lutFile2 if [[ -z $verbosity ]] then verbosity=0 fi - hcalLUT diff inputFiles=$BaseDir/$2,$BaseDir/$3 section=$verbosity + cmsRun DiffLUT.py globaltag=$GlobalTag run=$Run lutXML1=$lutFile1 lutXML2=$lutFile2 verbosity=$verbosity else dumpHelpAndExit fi - - diff --git a/CaloOnlineTools/HcalOnlineDb/test/template.py b/CaloOnlineTools/HcalOnlineDb/test/template.py index 69f7ca5a112eb..7b1fe08fcd051 100644 --- a/CaloOnlineTools/HcalOnlineDb/test/template.py +++ b/CaloOnlineTools/HcalOnlineDb/test/template.py @@ -1,7 +1,7 @@ import FWCore.ParameterSet.Config as cms -from Configuration.Eras.Era_Run3_cff import Run3 -process = cms.Process("TEST", Run3) +from Configuration.Eras.Era___ERA___cff import __ERA__ +process = cms.Process("TEST", __ERA__) process.load("FWCore.MessageLogger.MessageLogger_cfi") process.MessageLogger.LUT=dict() From c4160301db346562fdf9fb72f993df5fd235daa5 Mon Sep 17 00:00:00 2001 From: kdeleo Date: Tue, 19 Nov 2024 16:40:27 +0100 Subject: [PATCH 050/418] remove unused bool --- .../plugins/MVATrainingNtuple.cc | 32 +------------------ 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc index 430c062442423..e7521ca1355a0 100644 --- a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -90,8 +90,7 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer Ttrack_sigmaTmtd, Ttrack_lenght, Ttrack_MtdMVA, Ttrack_lHitPos, TtrackTP_pt, TtrackTP_eta, TtrackTP_phi; std::vector Ttrack_ndof, Ttrack_nValidHits, Ttrack_npixBarrelValidHits, Ttrack_npixEndcapValidHits, TtrackTP_nValidHits; - std::vector Ttrack_Signal, Ttrack_Associated, Ttrack_TPHasSimClu, Ttrack_TPSimCluDirect, Ttrack_hasRecoClu, - Ttrack_RecoSimLink, Ttrack_FullMatch; + std::vector Ttrack_Signal, Ttrack_Associated; edm::EDGetTokenT> btlMatchChi2Token_; edm::EDGetTokenT> btlMatchTimeChi2Token_; @@ -580,11 +579,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& BDTtree->Branch("Track_lHitPos", &Ttrack_lHitPos); BDTtree->Branch("Track_sigmaTmtd", &Ttrack_sigmaTmtd); BDTtree->Branch("Track_lenght", &Ttrack_lenght); - BDTtree->Branch("Track_TPHasSimClu", &Ttrack_TPHasSimClu); - BDTtree->Branch("Track_TPSimCluDirect", &Ttrack_TPSimCluDirect); - BDTtree->Branch("Track_hasRecoClu", &Ttrack_hasRecoClu); - BDTtree->Branch("Track_RecoSimLink", &Ttrack_RecoSimLink); - BDTtree->Branch("Track_FullMatch", &Ttrack_FullMatch); Ttrack_pt.clear(); Ttrack_eta.clear(); @@ -613,11 +607,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& Ttrack_lHitPos.clear(); Ttrack_sigmaTmtd.clear(); Ttrack_lenght.clear(); - Ttrack_TPHasSimClu.clear(); - Ttrack_TPSimCluDirect.clear(); - Ttrack_hasRecoClu.clear(); - Ttrack_RecoSimLink.clear(); - Ttrack_FullMatch.clear(); unsigned int index = 0; for (const auto& trackGen : *tracksH) { @@ -637,11 +626,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& auto found = r2s_->find(trkrefb); // Find TP! if (found != r2s_->end()) { bool good_association = false; - bool is_hasRecoClu = false; - bool is_RecoSimLink = false; - bool is_FullMatch = false; - bool is_TPHasSimClu = false; - bool is_TPSimCluDirect = false; Ttrack_pt.push_back(trackGen.pt()); Ttrack_phi.push_back(trackGen.phi()); @@ -686,10 +670,8 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (withMTD) { // TP link to MTDsimCluster // In test file, all TPs had only 1 simCluster linked to them - is_TPHasSimClu = true; const auto& SimCluRefs = (simClustersRefs->val)[0]; if ((*SimCluRefs).trackIdOffset() == 0) { // SimCluster linked to TP is from DirectHit!!! - is_TPSimCluDirect = true; for (const auto& hit : track.recHits()) { // Extended track with MTD if (good_association) @@ -715,7 +697,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& break; if (isSameCluster(hit_cluster_check, clusterBTL)) { // find the reco Cluster inside the recoCluster collections - is_hasRecoClu = true; edm::Ref, FTLCluster> clusterRefBTL = edmNew::makeRefTo( btlRecCluHandle, @@ -724,7 +705,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (itp.first != itp.second) { // find the linked simCluster std::vector simClustersRefs_RecoMatchBTL = (*itp.first).second; // the range of itp.first, itp.second should be always 1 - is_RecoSimLink = true; for (unsigned int i = 0; i < simClustersRefs_RecoMatchBTL.size(); i++) { auto simClusterRef_RecoMatchBTL = simClustersRefs_RecoMatchBTL[i]; @@ -733,7 +713,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& (*SimCluRefs) .simLCTime()) { // check if the sim cluster linked to reco cluster is the same as the one linked to TP. good_association = true; - is_FullMatch = true; break; } } @@ -751,22 +730,18 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& if (good_association) break; if (isSameCluster(hit_cluster_check, clusterETL)) { - is_hasRecoClu = true; - edm::Ref, FTLCluster> clusterRefETL = edmNew::makeRefTo(etlRecCluHandle, &clusterETL); auto itp = r2sAssociationMap.equal_range(clusterRefETL); if (itp.first != itp.second) { std::vector simClustersRefs_RecoMatchETL = (*itp.first).second; // the range of itp.first, itp.second should be always 1 - is_RecoSimLink = true; for (unsigned int i = 0; i < simClustersRefs_RecoMatchETL.size(); i++) { auto simClusterRef_RecoMatchETL = simClustersRefs_RecoMatchETL[i]; if ((*simClusterRef_RecoMatchETL).simLCTime() == (*SimCluRefs).simLCTime()) { good_association = true; - is_FullMatch = true; break; } } @@ -793,11 +768,6 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& } Ttrack_Associated.push_back(good_association); - Ttrack_hasRecoClu.push_back(is_hasRecoClu); - Ttrack_RecoSimLink.push_back(is_RecoSimLink); - Ttrack_FullMatch.push_back(is_FullMatch); - Ttrack_TPHasSimClu.push_back(is_TPHasSimClu); - Ttrack_TPSimCluDirect.push_back(is_TPSimCluDirect); // Found TP that is matched to the GTrack } From cced5081c0b057aa644da2826e0cfea1db5a9871 Mon Sep 17 00:00:00 2001 From: francescobrivio Date: Tue, 19 Nov 2024 16:48:22 +0100 Subject: [PATCH 051/418] temporary rollback to default input txt file for the beamspotdip DQM client --- .../clients/beamspotdip_dqm_sourceclient-live_cfg.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/DQM/Integration/python/clients/beamspotdip_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamspotdip_dqm_sourceclient-live_cfg.py index cffbb798b5867..4f471e92d66bf 100644 --- a/DQM/Integration/python/clients/beamspotdip_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamspotdip_dqm_sourceclient-live_cfg.py @@ -48,9 +48,10 @@ process.load("DQM.BeamMonitor.BeamSpotDipServer_cff") process.beamSpotDipServer.verbose = cms.untracked.bool(True) -process.beamSpotDipServer.sourceFile = cms.untracked.string( - "/nfshome0/dqmpro/BeamMonitorDQM/BeamFitResultsForDIP.txt" -) +# Temporary roll-back to using default input txt file +#process.beamSpotDipServer.sourceFile = cms.untracked.string( +# "/nfshome0/dqmpro/BeamMonitorDQM/BeamFitResultsForDIP.txt" +#) # process customizations included here from DQM.Integration.config.online_customizations_cfi import * From 3b53b20f6e96f71d6cc2613c133655fb0ac37ae6 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Tue, 19 Nov 2024 13:42:09 -0600 Subject: [PATCH 052/418] Avoid extra allocations when calculating ParentageID --- DataFormats/Provenance/src/Parentage.cc | 18 +++++++----- DataFormats/Provenance/test/Parentage_t.cpp | 31 +++++++++++++++++++++ FWCore/Utilities/interface/Digest.h | 4 +++ FWCore/Utilities/src/Digest.cc | 15 ++++++++++ FWCore/Utilities/test/test_catch2_Digest.cc | 16 ++++++++++- 5 files changed, 76 insertions(+), 8 deletions(-) diff --git a/DataFormats/Provenance/src/Parentage.cc b/DataFormats/Provenance/src/Parentage.cc index 60e7b2bfc416b..43c3f5b7f1e81 100644 --- a/DataFormats/Provenance/src/Parentage.cc +++ b/DataFormats/Provenance/src/Parentage.cc @@ -1,7 +1,8 @@ #include "DataFormats/Provenance/interface/Parentage.h" #include "FWCore/Utilities/interface/Digest.h" -#include +#include #include +//#include /*---------------------------------------------------------------------- @@ -15,14 +16,17 @@ namespace edm { Parentage::Parentage(std::vector&& parents) : parents_(std::move(parents)) {} ParentageID Parentage::id() const { - std::ostringstream oss; + //10 is the maximum number of digits for a 2^32 number + std::array buf; + cms::Digest md5alg; for (auto const& parent : parents_) { - oss << parent << ' '; + //assert(start < end); + auto res = std::to_chars(buf.data(), buf.data() + buf.size(), parent.id()); + //assert(res.ec == std::errc()); + *res.ptr = ' '; + md5alg.append(buf.data(), res.ptr - buf.data() + 1); } - - std::string stringrep = oss.str(); - cms::Digest md5alg(stringrep); - ParentageID id(md5alg.digest().toString()); + ParentageID id(md5alg.digest().bytes); return id; } diff --git a/DataFormats/Provenance/test/Parentage_t.cpp b/DataFormats/Provenance/test/Parentage_t.cpp index 347f4a8964efd..e65d3f2c7f1fd 100644 --- a/DataFormats/Provenance/test/Parentage_t.cpp +++ b/DataFormats/Provenance/test/Parentage_t.cpp @@ -32,4 +32,35 @@ TEST_CASE("test Parentage", "[Parentage]") { edm::ParentageID id4 = ed4.id(); CHECK(ed4 == ed2); CHECK(id4 == id2); + + SECTION("ParentageID unchanging") { + { + const std::string idString = "d41d8cd98f00b204e9800998ecf8427e"; + std::string toString; + id1.toString(toString); + CHECK(toString == idString); + } + + { + const std::string idString = "2e5751b7cfd7f053cd29e946fb2649a4"; + std::string toString; + id2.toString(toString); + CHECK(toString == idString); + } + { + const std::string idString = "20e13ca818af45e50e369e50db3914b8"; + std::string toString; + id3.toString(toString); + CHECK(toString == idString); + } + { + edm::Parentage ed_mult; + ed_mult.setParents(std::vector({edm::BranchID(1), edm::BranchID(2), edm::BranchID(3)})); + auto id_mult = ed_mult.id(); + const std::string idString = "6a5cf1697e50ec8e8dbe7a28ccad348b"; + std::string toString; + id_mult.toString(toString); + CHECK(toString == idString); + } + } } diff --git a/FWCore/Utilities/interface/Digest.h b/FWCore/Utilities/interface/Digest.h index 05dc6927db724..c3c707b8414f5 100644 --- a/FWCore/Utilities/interface/Digest.h +++ b/FWCore/Utilities/interface/Digest.h @@ -5,6 +5,7 @@ #include #include +#include #include namespace cms { @@ -48,9 +49,12 @@ namespace cms { public: Digest(); explicit Digest(std::string const& s); + explicit Digest(std::string_view); + explicit Digest(const char*); void append(std::string const& s); void append(const char* data, size_t size); + void append(std::string_view v); MD5Result digest(); diff --git a/FWCore/Utilities/src/Digest.cc b/FWCore/Utilities/src/Digest.cc index aedb8fafe7fa5..0f7ebf1229030 100644 --- a/FWCore/Utilities/src/Digest.cc +++ b/FWCore/Utilities/src/Digest.cc @@ -158,11 +158,26 @@ namespace cms { this->append(s); } + Digest::Digest(std::string_view v) : state_() { + md5_init(&state_); + this->append(v); + } + + Digest::Digest(const char* s) : state_() { + md5_init(&state_); + this->append(s, strlen(s)); + } + void Digest::append(std::string const& s) { const md5_byte_t* data = reinterpret_cast(s.data()); md5_append(&state_, const_cast(data), s.size()); } + void Digest::append(std::string_view v) { + const md5_byte_t* data = reinterpret_cast(v.data()); + md5_append(&state_, const_cast(data), v.size()); + } + void Digest::append(const char* s, size_t size) { const md5_byte_t* data = reinterpret_cast(s); md5_append(&state_, const_cast(data), size); diff --git a/FWCore/Utilities/test/test_catch2_Digest.cc b/FWCore/Utilities/test/test_catch2_Digest.cc index ef834dbd85316..f5aeb10418de7 100644 --- a/FWCore/Utilities/test/test_catch2_Digest.cc +++ b/FWCore/Utilities/test/test_catch2_Digest.cc @@ -26,7 +26,7 @@ namespace { TEST_CASE("Test cms::Digest", "[Digest]") { SECTION("Identical") { Digest dig1; - dig1.append("hello"); + dig1.append(std::string_view("hello")); Digest dig2("hello"); MD5Result r1 = dig1.digest(); @@ -81,4 +81,18 @@ TEST_CASE("Test cms::Digest", "[Digest]") { } } } + SECTION("append equal") { + std::string full("aldjfakl\tsdjf34234 \najdf"); + Digest full_digest{full}; + MD5Result full_r = full_digest.digest(); + REQUIRE(full_r.isValid()); + + Digest append_digest; + append_digest.append(std::string_view(full.data(), 10)); + append_digest.append(std::string_view(full.data() + 10, 10)); + append_digest.append(std::string_view(full.data() + 20, 4)); + MD5Result append_r = append_digest.digest(); + REQUIRE(append_r.isValid()); + REQUIRE(full_r == append_r); + } } From 2a58ae2f7976db3ca790e20cc381687d99933216 Mon Sep 17 00:00:00 2001 From: Davide Valsecchi Date: Wed, 20 Nov 2024 10:24:42 +0100 Subject: [PATCH 053/418] Moved TF graphs and sessions to tensorflow::SessionCache --- .../EgammaTools/interface/EgammaDNNHelper.h | 7 ++-- RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc | 34 +++++-------------- 2 files changed, 11 insertions(+), 30 deletions(-) diff --git a/RecoEgamma/EgammaTools/interface/EgammaDNNHelper.h b/RecoEgamma/EgammaTools/interface/EgammaDNNHelper.h index a899c7ee45f9f..f2839aa61942c 100644 --- a/RecoEgamma/EgammaTools/interface/EgammaDNNHelper.h +++ b/RecoEgamma/EgammaTools/interface/EgammaDNNHelper.h @@ -41,8 +41,6 @@ namespace egammaTools { class EgammaDNNHelper { public: EgammaDNNHelper(const DNNConfiguration&, const ModelSelector& sel, const std::vector& availableVars); - //Destructor to close TF sessions - ~EgammaDNNHelper(); // Function getting the input vector for a specific electron, already scaled // together with the model index it has to be used. @@ -54,7 +52,6 @@ namespace egammaTools { const std::vector>& candidates) const; private: - void initTensorFlowGraphs(); void initTensorFlowSessions(); void initScalerFiles(const std::vector& availableVars); @@ -65,8 +62,8 @@ namespace egammaTools { // Number of inputs for each loaded model std::vector nInputs_; - std::vector> graphDefs_; - std::vector> sessions_; + // TF SessionCache stores both the grapha and the session of each model + std::vector> tf_sessions_cache_; // List of input variables for each of the model; std::vector> featuresMap_; diff --git a/RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc b/RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc index dd125e884f6a7..a81bd92672b8b 100644 --- a/RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc +++ b/RecoEgamma/EgammaTools/src/EgammaDNNHelper.cc @@ -12,39 +12,20 @@ EgammaDNNHelper::EgammaDNNHelper(const DNNConfiguration& cfg, : cfg_(cfg), modelSelector_(modelSelector), nModels_(cfg_.modelsFiles.size()), - graphDefs_(cfg_.modelsFiles.size()), - sessions_(cfg_.modelsFiles.size()) { - initTensorFlowGraphs(); + tf_sessions_cache_(cfg_.modelsFiles.size()) { initTensorFlowSessions(); initScalerFiles(availableVars); } -EgammaDNNHelper::~EgammaDNNHelper() { - // Closing the sessions when the helper is destroyed at the end of the job. - for (const auto& session : sessions_) { - auto status = session->Close(); - } -} - -void EgammaDNNHelper::initTensorFlowGraphs() { +void EgammaDNNHelper::initTensorFlowSessions() { // load the graph definition - LogDebug("EgammaDNNHelper") << "Loading " << nModels_ << " graphs"; + LogDebug("EgammaDNNHelper") << "Loading " << nModels_ << " graphs and sessions"; size_t i = 0; for (auto& model_file : cfg_.modelsFiles) { - graphDefs_[i] = - std::unique_ptr(tensorflow::loadGraphDef(edm::FileInPath(model_file).fullPath())); - i++; - } -} - -void EgammaDNNHelper::initTensorFlowSessions() { - LogDebug("EgammaDNNHelper") << "Starting " << nModels_ << " TF sessions"; - size_t i = 0; - for (const auto& graphDef : graphDefs_) { - sessions_[i] = std::unique_ptr(tensorflow::createSession(graphDef.get())); + tf_sessions_cache_[i] = std::make_unique(edm::FileInPath(model_file).fullPath()); i++; } - LogDebug("EgammaDNNHelper") << "TF sessions started"; + LogDebug("EgammaDNNHelper") << "TF sessions initialized"; } void EgammaDNNHelper::initScalerFiles(const std::vector& availableVars) { @@ -172,7 +153,10 @@ std::vector>> EgammaDNNHelper::evaluate( continue; //Skip model witout inputs std::vector output; LogDebug("EgammaDNNHelper") << "Run model: " << m << " with " << counts[m] << "objects"; - tensorflow::run(sessions_[m].get(), {{cfg_.inputTensorName, input_tensors[m]}}, {cfg_.outputTensorName}, &output); + tensorflow::run(tf_sessions_cache_[m]->getSession(), + {{cfg_.inputTensorName, input_tensors[m]}}, + {cfg_.outputTensorName}, + &output); // Get the output and save the ElectronDNNEstimator::outputDim numbers along with the ele index const auto& r = output[0].tensor(); // Iterate on the list of elements in the batch --> many electrons From 383f9c45bc8b582a8abac66e282eb7fa4401eb8f Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 20 Nov 2024 11:48:53 +0100 Subject: [PATCH 054/418] Use TriggerResultsFilterFromDB instead of HLTHighLevel, in order to allow prescaled HLT paths --- .../python/ALCARECOEcalESAlign_cff.py | 8 +++++--- .../python/ALCARECOHcalCalIterativePhiSym_cff.py | 11 ++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Calibration/EcalAlCaRecoProducers/python/ALCARECOEcalESAlign_cff.py b/Calibration/EcalAlCaRecoProducers/python/ALCARECOEcalESAlign_cff.py index 6872390091ac5..ed7ba3e9873bf 100644 --- a/Calibration/EcalAlCaRecoProducers/python/ALCARECOEcalESAlign_cff.py +++ b/Calibration/EcalAlCaRecoProducers/python/ALCARECOEcalESAlign_cff.py @@ -1,9 +1,11 @@ import FWCore.ParameterSet.Config as cms -import HLTrigger.HLTfilters.hltHighLevel_cfi -ALCARECOEcalESAlignHLT = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone( - andOr = True, # choose logical OR between Triggerbits +import HLTrigger.HLTfilters.triggerResultsFilterFromDB_cfi +ALCARECOEcalESAlignHLT = HLTrigger.HLTfilters.triggerResultsFilterFromDB_cfi.triggerResultsFilterFromDB.clone( eventSetupPathsKey = 'EcalESAlign', + usePathStatus = False, + hltResults = 'TriggerResults::HLT', + l1tResults = '', # leaving empty (not interested in L1T results) throw = False # tolerate triggers stated above, but not available ) diff --git a/Calibration/HcalAlCaRecoProducers/python/ALCARECOHcalCalIterativePhiSym_cff.py b/Calibration/HcalAlCaRecoProducers/python/ALCARECOHcalCalIterativePhiSym_cff.py index b1f3d7df7c0cd..2097a1d0c272b 100644 --- a/Calibration/HcalAlCaRecoProducers/python/ALCARECOHcalCalIterativePhiSym_cff.py +++ b/Calibration/HcalAlCaRecoProducers/python/ALCARECOHcalCalIterativePhiSym_cff.py @@ -6,12 +6,13 @@ from Calibration.HcalAlCaRecoProducers.alcaiterphisym_cfi import * - -import HLTrigger.HLTfilters.hltHighLevel_cfi -hcalphisymHLT = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone( -# HLTPaths = ['HLT_HcalPhiSym'], +import HLTrigger.HLTfilters.triggerResultsFilterFromDB_cfi +hcalphisymHLT = HLTrigger.HLTfilters.triggerResultsFilterFromDB_cfi.triggerResultsFilterFromDB.clone( eventSetupPathsKey='HcalCalIterativePhiSym', - throw = False #dont throw except on unknown path name + usePathStatus = False, + hltResults = 'TriggerResults::HLT', + l1tResults = '', # leaving empty (not interested in L1T results) + throw = False #dont throw except on unknown path name ) seqALCARECOHcalCalIterativePhiSym = cms.Sequence(hcalphisymHLT*IterativePhiSymProd) From 280e3d2ecb72befb37f011bae5562dc970adf295 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Wed, 20 Nov 2024 13:23:28 +0100 Subject: [PATCH 055/418] Use the keyword Run4 instead of 2026 for naming a scenario in SimG4Core/PrintGeomInfo/test/python --- SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py | 6 +++--- .../test/python/g4OverlapCheckRun4DD4hep_cfg.py | 6 +++--- .../PrintGeomInfo/test/python/g4OverlapCheckRun4DDD_cfg.py | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py index cf988f96b8ceb..2641d5cc12d5c 100644 --- a/SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py +++ b/SimG4Core/PrintGeomInfo/test/python/g4DumpGeometry_cfg.py @@ -5,8 +5,8 @@ #process.load('Configuration.Geometry.GeometryExtended2015Reco_cff') process.load('Configuration.Geometry.GeometryExtended2017Reco_cff') #process.load('Configuration.Geometry.GeometryExtended2021Reco_cff') -#process.load('Configuration.Geometry.GeometryExtendedRun4D77Reco_cff') -#process.load('Configuration.Geometry.GeometryExtendedRun4D83Reco_cff') +#process.load('Configuration.Geometry.GeometryExtendedRun4D110Reco_cff') +#process.load('Configuration.Geometry.GeometryExtendedRun4D108Reco_cff') from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import * process = checkOverlap(process) @@ -19,7 +19,7 @@ # Geant4 geometry check process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("2017") -#process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("2026D77") +#process.g4SimHits.G4CheckOverlap.OutputBaseName = cms.string("Run4D110") process.g4SimHits.G4CheckOverlap.OverlapFlag = cms.bool(False) process.g4SimHits.G4CheckOverlap.Tolerance = cms.double(0.0) process.g4SimHits.G4CheckOverlap.Resolution = cms.int32(10000) diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckRun4DD4hep_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckRun4DD4hep_cfg.py index 5f36abc9f00ae..c29a3ba1f2a14 100644 --- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckRun4DD4hep_cfg.py +++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckRun4DD4hep_cfg.py @@ -1,6 +1,6 @@ ############################################################################### # Way to use this: -# cmsRun g4OverlapCheck2026DD4hep_cfg.py geometry=D110 tol=0.01 +# cmsRun g4OverlapCheckRun4DD4hep_cfg.py geometry=D110 tol=0.01 # # Options for geometry D95, D96, D98, D99, D100, D101, D102, D103, D104, # D105, D106, D107, D108, D109, D110, D111, D112, D113, @@ -42,8 +42,8 @@ from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9 process = cms.Process('OverlapCheck',Phase2C17I13M9,dd4hep) -geomFile = "Configuration.Geometry.GeometryDD4hepExtended2026" + options.geometry + "Reco_cff" -baseName = "cms2026" + options.geometry + "DD4hep" +geomFile = "Configuration.Geometry.GeometryDD4hepExtendedRun4" + options.geometry + "Reco_cff" +baseName = "cmsRun4" + options.geometry + "DD4hep" print("Geometry file Name: ", geomFile) print("Base file Name: ", baseName) diff --git a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckRun4DDD_cfg.py b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckRun4DDD_cfg.py index 408692d878902..b1abbe1f906a2 100644 --- a/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckRun4DDD_cfg.py +++ b/SimG4Core/PrintGeomInfo/test/python/g4OverlapCheckRun4DDD_cfg.py @@ -1,6 +1,6 @@ ############################################################################### # Way to use this: -# cmsRun g4OverlapCheck2026DDD_cfg.py geometry=D110 tol=0.01 +# cmsRun g4OverlapCheckRun4DDD_cfg.py geometry=D110 tol=0.01 # # Options for geometry D95, D96, D98, D99, D100, D101, D102, D103, D104, # D105, D106, D107, D108, D109, D110, D111, D112, D113, @@ -41,8 +41,8 @@ from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9 process = cms.Process('OverlapCheck',Phase2C17I13M9) -geomFile = "Configuration.Geometry.GeometryExtended2026" + options.geometry + "Reco_cff" -baseName = "cms2026" + options.geometry + "DDD" +geomFile = "Configuration.Geometry.GeometryExtendedRun4" + options.geometry + "Reco_cff" +baseName = "cmsRun4" + options.geometry + "DDD" print("Geometry file Name: ", geomFile) print("Base file Name: ", baseName) From 91950c1433be12adb804c3ef2707efc2ca7d3967 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Wed, 20 Nov 2024 13:42:00 +0100 Subject: [PATCH 056/418] Creating the possibility to add the additional MB4 shield in Phase2 scenarios --- .../{2024/v1 => 2021/v4}/materials.xml | 248 +- .../data/mb4Shield/2021/v2/mb4Shield.xml | 3782 +++++++++++++++++ 2 files changed, 3798 insertions(+), 232 deletions(-) rename Geometry/CMSCommonData/data/materials/{2024/v1 => 2021/v4}/materials.xml (95%) create mode 100644 Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml diff --git a/Geometry/CMSCommonData/data/materials/2024/v1/materials.xml b/Geometry/CMSCommonData/data/materials/2021/v4/materials.xml similarity index 95% rename from Geometry/CMSCommonData/data/materials/2024/v1/materials.xml rename to Geometry/CMSCommonData/data/materials/2021/v4/materials.xml index 5a09e02686524..0cae172e93e86 100644 --- a/Geometry/CMSCommonData/data/materials/2024/v1/materials.xml +++ b/Geometry/CMSCommonData/data/materials/2021/v4/materials.xml @@ -1,5 +1,6 @@ - + + @@ -71,70 +72,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -205,20 +142,6 @@ - - - - - - - - - - - - - - @@ -1155,13 +1078,6 @@ - - - - - - - @@ -2357,20 +2273,6 @@ - - - - - - - - - - - - - - @@ -2452,57 +2354,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3893,17 +3744,6 @@ - - - - - - - - - - - @@ -3952,68 +3792,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -4404,14 +4182,6 @@ - - - - - - - - @@ -4631,5 +4401,19 @@ + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml b/Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml new file mode 100644 index 0000000000000..4240f06fee512 --- /dev/null +++ b/Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml @@ -0,0 +1,3782 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 71301131a636c6b0af1bedd3328f4923aeed0bb5 Mon Sep 17 00:00:00 2001 From: Chris Harris Date: Thu, 14 Nov 2024 07:33:56 -0800 Subject: [PATCH 057/418] fix retry logic for triton client On retry the client was trying to access the TritonService through the ServiceRegistry. However, the thread calling the evalute method did not have the appropriate context setup to allow this. We now save the ServiceToken when the client is created, so the appropriate context can be setup before accessing the service. --- HeterogeneousCore/SonicTriton/interface/TritonClient.h | 2 ++ HeterogeneousCore/SonicTriton/src/TritonClient.cc | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/HeterogeneousCore/SonicTriton/interface/TritonClient.h b/HeterogeneousCore/SonicTriton/interface/TritonClient.h index 4661c3e57c54c..df8f9b559427c 100644 --- a/HeterogeneousCore/SonicTriton/interface/TritonClient.h +++ b/HeterogeneousCore/SonicTriton/interface/TritonClient.h @@ -3,6 +3,7 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ServiceRegistry/interface/ServiceToken.h" #include "HeterogeneousCore/SonicCore/interface/SonicClient.h" #include "HeterogeneousCore/SonicTriton/interface/TritonData.h" #include "HeterogeneousCore/SonicTriton/interface/TritonService.h" @@ -86,6 +87,7 @@ class TritonClient : public SonicClient { std::unique_ptr client_; //stores timeout, model name and version std::vector options_; + edm::ServiceToken token_; private: friend TritonInputData; diff --git a/HeterogeneousCore/SonicTriton/src/TritonClient.cc b/HeterogeneousCore/SonicTriton/src/TritonClient.cc index 54a0205a1f0be..b00506ae1305d 100644 --- a/HeterogeneousCore/SonicTriton/src/TritonClient.cc +++ b/HeterogeneousCore/SonicTriton/src/TritonClient.cc @@ -63,6 +63,13 @@ TritonClient::TritonClient(const edm::ParameterSet& params, const std::string& d options_.emplace_back(params.getParameter("modelName")); //get appropriate server for this model edm::Service ts; + + // We save the token to be able to notify the service in case of an exception in the evaluate method. + // The evaluate method can be called outside the frameworks TBB threadpool in the case of a retry. In + // this case the context is not setup to access the service registry, we need the service token to + // create the context. + token_ = edm::ServiceRegistry::instance().presentToken(); + const auto& server = ts->serverInfo(options_[0].model_name_, params.getUntrackedParameter("preferredServer")); serverType_ = server.type; @@ -363,6 +370,9 @@ void TritonClient::getResults(const std::vector void TritonClient::evaluate() { //undo previous signal from TritonException if (tries_ > 0) { + // If we are retrying then the evaluate method is called outside the frameworks TBB thread pool. + // So we need to setup the service token for the current thread to access the service registry. + edm::ServiceRegistry::Operate op(token_); edm::Service ts; ts->notifyCallStatus(true); } From de2b85d9683491c910d1e789df065f805c69b658 Mon Sep 17 00:00:00 2001 From: Martina Date: Wed, 20 Nov 2024 17:58:02 +0100 Subject: [PATCH 058/418] save correct outermost hit position also for tracks w/o last hit in mtd --- .../TrackExtender/plugins/TrackExtenderWithMTD.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc index 454d084b242d5..1a0292195b83a 100644 --- a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc +++ b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc @@ -1004,9 +1004,15 @@ void TrackExtenderWithMTDT::produce(edm::Event& ev, const edm:: #endif npixBarrel.push_back(backtrack.hitPattern().numberOfValidPixelBarrelHits()); npixEndcap.push_back(backtrack.hitPattern().numberOfValidPixelEndcapHits()); - outermostHitPosition.push_back( - mBTL.hit ? (float)(*track).outerRadius() - : (float)(*track).outerZ()); // save R of the outermost hit for BTL, z for ETL. + + if (mBTL.hit || mETL.hit) { + outermostHitPosition.push_back( + mBTL.hit ? (float)(*track).outerRadius() + : (float)(*track).outerZ()); // save R of the outermost hit for BTL, z for ETL. + } else { + outermostHitPosition.push_back(std::abs(track->eta()) < 1.48 ? (float)(*track).outerRadius() + : (float)(*track).outerZ()); + } LogTrace("TrackExtenderWithMTD") << "TrackExtenderWithMTD: tmtd " << tmtdMap << " +/- " << sigmatmtdMap << " t0 " << t0Map << " +/- " << sigmat0Map << " tof pi/K/p " << tofpiMap From 0614ca1d2b544b7dfa5b83f65eeadd5f02d37f7c Mon Sep 17 00:00:00 2001 From: Nick Manganelli Date: Wed, 20 Nov 2024 18:55:35 +0100 Subject: [PATCH 059/418] Further updates to GTT Readme --- L1Trigger/L1TTrackMatch/Readme.md | 120 +++++++++++++++++++++++++----- 1 file changed, 101 insertions(+), 19 deletions(-) diff --git a/L1Trigger/L1TTrackMatch/Readme.md b/L1Trigger/L1TTrackMatch/Readme.md index 5749c5053b102..0c685dc853089 100644 --- a/L1Trigger/L1TTrackMatch/Readme.md +++ b/L1Trigger/L1TTrackMatch/Readme.md @@ -1,57 +1,139 @@ # Global Track Trigger -This section describes several componenets of the Global Track Trigger, the CMS subsystem downstream of Level-1 Track Finding, which performs Level-1 vertex-finding for the L1 Correlator Layer 1 (for PF Candidate / PUPPI reconstruction) and globally builds track-only objects such as Jets, HT, MET, mesons (including phi and rho), etc. +This section describes several componenets of the Global Track Trigger, the CMS subsystem downstream of Level-1 Track Finding, which performs Level-1 vertex-finding for the L1 Correlator Layer 1 (for PF Candidate / PUPPI reconstruction) and globally builds track-only objects such as Jets, HT, MET, mesons (including phi and rho), etc to be sent to the Global Trigger. ## Data Flow Overview -The current design of the GTT involves several steps. Universally, a GTTInputConversion step which performs such conversions as $\frac{1}{R} to $p_T$ and $tan(\lambda)$ to $\eta$. Currently in emulation, this takes information from the 96-bit [TrackWord](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h) and overwrites the corresponding fields with the GTT converted values, leaving the Track in a non-canonical state. In [firmware](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/DataFormats/Track?ref_type=heads), the HLS code for the Track [struct](https://gitlab.cern.ch/GTT/LibHLS/-/blob/master/DataFormats/Track/interface/Track.h?ref_type=heads) represents this non-canonical state as separate fields, rather than a single 96-bit word. Afterwards, multiple TrackSelection (TS) modules are configured/instantiated, potentially 1 for each downstream algorithm, such as VertexFinding (VF), TrackJets (and thus TrackHT/TrackMissingHT), TrackMET, mesons, $W\rarrow~3\pi$, and so on. The VertexFinder takes selected tracks and uses (as baseline/extension) a histogramming method to identify the Primary Vertex (PV), weight either with track $p_T$ or a Neural Net score. Downstream, multiple modules of TrackVertexAssociation (TVA) are run, taking selected tracks from one of the TS modules, the PV from VF, and they output vertex-associated tracks. These are inputs to JetFinding (JF), meson finding, MET, and others. +The current design of the GTT involves several steps. Universally, a GTTInputConversion step which performs such conversions as $\frac{1}{R} to $p_T$ and $tan(\lambda)$ to $\eta$, occurs first. Currently in emulation, this takes information from the 96-bit [TrackWord](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h) and overwrites the corresponding fields with the GTT converted values, leaving the Track in a non-canonical state. In [firmware](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/DataFormats/Track?ref_type=heads), the HLS code for the Track [struct](https://gitlab.cern.ch/GTT/LibHLS/-/blob/master/DataFormats/Track/interface/Track.h?ref_type=heads) represents this non-canonical state as separate fields, rather than a single 96-bit word. Afterward InputConversion, multiple TrackSelection (TS) modules are configured/instantiated, potentially 1 for each downstream algorithm, such as VertexFinding (VF), Displaced Vertexing, TrackJets (and thus TrackHT/TrackMissingHT), TrackMET, mesons, $W\rarrow~3\pi$, and so on. The VertexFinder takes selected tracks and uses (as baseline/extension) a histogramming method to identify the Primary Vertex (PV), weighted either with track $p_T$ (baseline) or a Neural Net score (extended). Downstream, multiple modules of TrackVertexAssociation (TVA) are run (in the baseline, a simple cut-based algo, and in extended algorithm/E2E, a track-association network discriminant cut), taking selected tracks from an appropriate TS modules, the PV from VF, and outputting vertex-associated tracks. These are inputs to JetFinding (JF), meson finding, MET, and other algorithms. In firmware, the outputs from vertex-finding are streamed to the L1 Correlator Layer 1, and all algorithms (including vertex-finding) outputs are sent to the L1 Global Trigger. ### GTT Input Conversion -FIXME +Input conversion handles the change from 1/R (really q/R) to $p_T$ and $tan(\lambda)$ to $\eta$. In LibHLS, this is controlled with a few constants that denote how many integer and fixed-float bits should be used. In emulation, constants are located inside the GTT plugin under ConversionBitWidths. LibHLS [$\eta$ module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionEta?ref_type=heads) and [$p_T$ module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionPt?ref_type=heads) +CMSSW [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1GTTInputProducer.cc) + +#### Status (October 2024) +The Input conversion in Firmware centrally stores conversion constants and consistently uses the central GTT format (struct) for tracks. Meanwhile, the emulator is in a somewhat different spot, with a low-granularity conversion of $p_T$ with 7 integer bits and 3 float bits (currently consistent with firmware). For reading the $p_T$ back, different algorithms make different assumptions about the width of the datatype, either the actual ap_fixed<10,7> with 7 integer bits, or ap_fixed<14,9>. This works because of a bit-shift that 0-pads the 2 least significant bits of the actual ap_fixed<10,7> data stored in the previoius canonical L1T $\frac{1}{R}$ word; ergo the least significant integer bits are aligned under either interpretation. The $p_T$ conversion also uses an 8-bit LUT to map track values from the ap_int datatype to ap_fixed, which means that the least significant bits are ignored, dropping 2**2 in resolution. Because of the non-linear conversion, this produces strong discretization of high-$p_T$ tracks. A possible remediation of this would involve either splitting the LUT so that a more granular version is applied to high-$p_T$ tracks, or equivalently residual/correction-LUTs to adjust the response where needed. Either approach should require a modest increase in LUT resources but improve the conversion loss. Additionally, studies on $\phi$ mesons and reconstructing $B_s$ from them indicates that the $\eta$ conversion is a significant source of error, but also the $p_T$ appears to have biases (which may have a charge dependence). The latter indicates that there may be an inconsistent use of half-bin shifting in calculations somewhere. The $\eta$ conversion uses a 128-sized LUT (owing to symmetry in the transform, it's cut in half relative to a simple calculation), into an ap_fixed<8,3> datatype; the LUT should be increased by a factor of 2^3 at least to ap_fixed<11,3>, improving the granularity significantly for $\phi$ meson reconstruction. ### Vertex Finder (VF) #### FastHisto (FH) - Baseline Algorithm -FIXME +This version of the algorithm serves as the baseline from TDR studies. This uses a histogram (256 bins as of 2023) which is filled with track $p_T$ as weights. A single vertex is chosen by a sliding-window algorithm which finds the consecutive bins (currently 3) containing the maximum $p_T$-sum (using a flat kernel). An inversion LUT which is built to store the mapping from $p_T$ to $\frac{1}{p_T}$ is used in combination with a window-bin-indexed weighted-sum of per-bin $p_T$-sums is used to calculate the $p_T$-weighted location of the peak, and this is stored as the vertex $z_0$ position. The $p_T$-sum from the window is denoted as the sumPt of the vertex. LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/Vertex?ref_type=heads) +VertexFinder class [interface](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/VertexFinder/interface/VertexFinder.h), [src](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/VertexFinder/src/VertexFinder.cc), and [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/VertexFinder/plugins/VertexProducer.cc) with CMSSW default configuration [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/VertexFinder/python/l1tVertexProducer_cfi.py). The Simulation tag is 'l1tVertexFinder' whereas the emulator is usually grabbed via 'l1tVertexFinderEmulator.' #### End-to-end Neural Network (E2E) - Extended Algorithm -FIXME +The End-to-end Neural Network is a beyond-baseline version of the algorithm. It uses the same structure as FastHisto, but replaces weighting tracks by their $p_T$ with a DNN discriminant score. This produces an improved vertex-finding efficiency and resolution over FH. This is trained in tandem with TrackAssociationNetworks to replace the cut-based TrackSelection algorithm typically paired with FH. -#### Status -The FastHisto algorithm has bit-level agreement with the firmware using several thousand events from $t\bar{t}$ simulation (200 PileUp). +#### Status as of October 2024 +The FastHisto (Emulation) algorithm has bit-level agreement with the firmware using several thousand events from $t\bar{t}$ simulation (200 PileUp). The algorithm can handle mulitple vertices. In LibHLS/firmware, only one vertex is enabled to reduce resource usage. An implementation detail is that the $p_T$ sum per bin is calculated untruncated in both firmware and emulation, but prior to the vertex-finding portion (sliding window algo), the precision is reduced. Of the fields proposed for the vertex, only the valid bit, the sumPt, and the $z_0$ position are filled; all other fields, including the quality field, the nTracks in/out PV are 0-filled. A design shortcoming is that the number of bins is a compile-time constant, but runtime-configurable constants passed into the configuration as `FH_HistogramParameters` indicate the minimum and maximum $z$ position for the histogram, and the 3rd parameter must divide this range appropriately to match the number of bins in firmware. For example, `FH_HistogramParameters = cms.vdouble(-20.46912512, 20.46912512, 0.15991504)` is appropriate for 256 bins as currently used. ### Track Selection (TS) -In CMSSW GTT emulation the plugin is defined [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackSelectionProducer.cc) and configured with default settings [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackSelectionProducer_cfi.py). In firmware, the HLS code is concentrated in this LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/TrackSelection?ref_type=heads) +In CMSSW GTT emulation the [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackSelectionProducer.cc) is defined within the L1TTrackMatch subpackage, and configured with default settings [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackSelectionProducer_cfi.py). In firmware, the HLS code is concentrated in this LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/TrackSelection?ref_type=heads) -#### Status -The TrackSelection is mostly synchronized with the Firmware at HLS level. The firmware currently runs 3 duplicates of TS for VF, JF, and MET. The emulation default is not necessarily synchronized. +#### Status as of October 2024 +The TrackSelection is partially desynchronized with the Firmware at HLS level. The firmware currently runs 3 duplicates of TS for VF, JF, and MET. The emulation default is not necessarily synchronized (per algorithm), and some of the capabilities in Emulation are not yet propagated back to HLS firmware code, notably for any track MVA quality cuts. -### Track Vertex Association (TVA) -FIXME +### Track Vertex Association (TVA) - Baseline (cut-based) Implementation +CMSSW [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackVertexAssociationProducer.cc) +CMSSW [config](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackVertexAssociationProducer_cfi.py) LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/TrackVertexAssociation?ref_type=heads) +#### Status as of October 2024 +The Baseline TVA module is extremely simple, primarily cutting on the $\Delta~z$ between the PV and the selected tracks from the upstream TS module. + ### Jet Finding (JF) -FIXME +Jet finding uses a 2-layer clustering algorithm. The firmware is written in Verilog, and the emulator can be found in CMSSW in the central [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackJetEmulatorProducer.cc), [configuration](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackJetsEmulation_cfi.py), and common [header](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackJetClustering.h) + +### Status as of October 2024 +The output of the emulator does not exactly match the firmware currently. An ongoing PR exists to fix several discrepancies, including a missing valid bit in emulation, and the binning of the $\eta-\phi$ plane. ### HT and Missing HT (HT) -FIXME +The HT / Missing HT modules only exist in Emulation currently, with plans for an HLS implementation in Firmware in the near future. The CMSSW [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TkHTMissEmulatorProducer.cc) and associated [configuration](https://github.com/cms-sw/cmssw/tree/master/L1Trigger/L1TTrackMatch/python) + +#### Status as of October 2024 +The (Missing)HT Emulator currently uses a centrally defined [data format](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1Trigger/interface/EtSum.h) which only permits storing either the scalar or vector-sum in a (potentially) bit-accurate way. In other subsystems (e.g. L1Calo), this is addressed by storing two variations of the datatype, one where the scalar sum is stored in a hardware-accurate way, and another with the vector sum. Currently GTT only stores one copy, and the vector sum is stored as a float, while the scalar sum, phi, and number of jets are stored as integers. ### MET -FIXME +CMSSW [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackerEtMissEmulatorProducer.cc) +CMSSW [configuration](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackerEmuEtMiss_cfi.py) LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/MET?ref_type=heads) +#### Status as of October 2024 +The MET module has bit-accurate agreement between firmware and emulation. The LUT converting the track global $\phi$ value to a $cos(\phi)$ or $sin(\phi)$ value was reduced to a size of 1024 in order to meet firmware timing constraints. This is accomplished with a single LUT in combination with trigonometric identities to avoid separate $cos(\phi)$ and $sin(\phi)$ LUTs. Similar to the (Missing)HT module, only part of the output is stored in a potentially bit-accurate way in emulation (in this case, the vector sum, being the true MET, along with the phi and number of tracks) + ### Phi and Rho Meson Finding -FIXME +These currently exist as simulation+emulation studies in private CMSSW branches, with ongoing work to create HLS-based firmware modules. ### $W\rarrow 3\pi$ (W3pi) -FIXME +CMSSW [TkTriplet](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TCorrelator/interface/TkTriplet.h) +CMSSW [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackTripletEmulatorProducer.cc) +CMSSW [configuration](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackTripletEmulation_cfi.py) LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/WtoThreePi?ref_type=heads) +### GTTFileReader, GTTFileWriter +[reader](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/plugins/GTTFileReader.cc) +[writer](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/plugins/GTTFileWriter.cc) +These plugins make use of the subsystem-agnostic BoardDataReader and BoardDataWriter classes, respectively, specified in the reader's [interface](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/interface/BoardDataReader.h) and [src](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/src/BoardDataReader.cc) files, and likewise for the writer [interface](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/interface/BoardDataWriter.h) and [src](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/src/BoardDataWriter.cc) +The GTT configuration constants are mostly gathered in the [GTTInterface.h](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/interface/GTTInterface.h) which specifies how link inputs/frames map to given collections of objects for pattern-buffer writing and reading. This specified, for example, whether vertices are placed in link 3 or link 0 to GT for a given board, and at which starting frame they may appear. Similarly other collections like jets, displaced jets, MET, HT link and frame position encoding are specified in here. + ## Emulation Pattern (Buffer) Files A git [submodule](https://gitlab.cern.ch/GTT/Data) stores fixed copies of the emulation buffer / pattern files for use in [LibHLS](https://gitlab.cern.ch/GTT/LibHLS/), using git [LFS](https://git-lfs.com/) ### Generating pattern files -FIXME +A script in the test/gtt folder contains a configuration to export and import pattern file buffers into CMSSW. +[script](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/test/gtt/createFirmwareInputFiles_cfg.py). +Typical usage looks like: +``` +cmsRun createFirmwareInputFiles_cfg.py maxEvents=1008 format=APx inputFiles=L1Trigger/DemonstratorTools/python/TT_TuneCP5_14TeV-powheg-pythia8_Phase2Spring23DIGIRECOMiniAOD-PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1_GEN-SIM-DIGI-RAW-MINIAOD_APxBuffers_cff.py +``` ### Loading tracks and vertices from pattern files -FIXME \ No newline at end of file +Two input options, `tracks` and `vertices` can be passed 3 options, `donotload`, `load`, and `overwrite` to modify the behavior of patter-file writing. For each collection, the option `donotload` implies that the appropriate collection will be generated or read in from CMSSW collections. The `load` option instead dictates that pattern files' contents, specified in the inputFiles configuration, will be decoded (verifying they can be read back via BoardDataReader class, as configured via GTTFileReader), but the final collections will still be read/generated from CMSSW collections generated upstream in TrackFinding. The final option, `overwrite,` decodes the objects from pattern files and makes these the corresponding collection used in subsequent steps. That is, if `tracks=overwrite` is used, then the tracks passed into the GTTInputConversion and downstream TS, VF, etc. will come from pattern files written in the appropriate `readerformat` (APx, EMPv2, ...). As long as vertices is not set to `overwrite` as well, this will calculate new vertices from these pattern-buffer loaded tracks instead of those from the source root files or generated by the TrackFinder upstream. Similarly, if `vertices=overwrite,` the vertices collection will be read from the pattern files and upstream tracks (regardless of source and `tracks=X` option selected) will be ignored. +``` +cmsRun createFirmwareInputFiles_cfg.py maxEvents=1008 format=APx inputFiles=L1Trigger/DemonstratorTools/python/TT_TuneCP5_14TeV-powheg-pythia8_Phase2Spring23DIGIRECOMiniAOD-PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1_GEN-SIM-DIGI-RAW-MINIAOD_APxBuffers_cff.py tracks=overwrite vertices=donotload readerformat=APx +``` + +An example of the inputFiles configuration including pointers to buffer files follows: + +``` +import FWCore.ParameterSet.Config as cms + +maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) +readFiles = cms.untracked.vstring() +secFiles = cms.untracked.vstring() +source = cms.Source ("PoolSource",fileNames = readFiles, secondaryFileNames = secFiles) +readFiles.extend( [ + '/store/mc/Phase2Spring23DIGIRECOMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-DIGI-RAW-MINIAOD/PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1/50000/005bc30b-cf79-4b3b-9ec1-a80e13072afd.root', + '/store/mc/Phase2Spring23DIGIRECOMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-DIGI-RAW-MINIAOD/PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1/50000/009bd7ba-4295-46ef-a5bc-9eb3d2cd3cf7.root', + '/store/mc/Phase2Spring23DIGIRECOMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-DIGI-RAW-MINIAOD/PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1/50000/017a99d2-4636-4584-97d0-d5499c3b453c.root', + '/store/mc/Phase2Spring23DIGIRECOMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-DIGI-RAW-MINIAOD/PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1/50000/02020287-a16f-41db-8021-f9bcd272f6c9.root', + '/store/mc/Phase2Spring23DIGIRECOMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-DIGI-RAW-MINIAOD/PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1/50000/02ca41cb-9638-4703-88b7-799c30fd2656.root', + '/store/mc/Phase2Spring23DIGIRECOMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-DIGI-RAW-MINIAOD/PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1/50000/03171e00-8880-4c09-807a-0c1d5bac2797.root', + '/store/mc/Phase2Spring23DIGIRECOMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-DIGI-RAW-MINIAOD/PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1/50000/04c836c3-66f4-44d5-a8fd-2faf5e4aa623.root', +] ) +correlator_source = cms.Source ("PoolSource", + fileNames = cms.untracked.vstring( + 'APx/L1GTTOutputToCorrelatorFile_0.txt', + 'APx/L1GTTOutputToCorrelatorFile_1.txt', + 'APx/L1GTTOutputToCorrelatorFile_2.txt', + 'APx/L1GTTOutputToCorrelatorFile_3.txt', + 'APx/L1GTTOutputToCorrelatorFile_4.txt', + ..., + 'APx/L1GTTOutputToCorrelatorFile_54.txt', + 'APx/L1GTTOutputToCorrelatorFile_55.txt', + ) +) +track_source = cms.Source ("PoolSource", + fileNames = cms.untracked.vstring( + 'APx/L1GTTInputFile_0.txt', + 'APx/L1GTTInputFile_1.txt', + 'APx/L1GTTInputFile_2.txt', + 'APx/L1GTTInputFile_3.txt', + ..., + 'APx/L1GTTInputFile_60.txt', + 'APx/L1GTTInputFile_61.txt', + 'APx/L1GTTInputFile_62.txt', + ) +) +``` + +### Sidebands in different formats +The APx and EMPv2 have different sideband codes. In LibHLS a script exists which can strip the APx sideband codes from pattern files and write these out as new txt files can be found [here](https://gitlab.cern.ch/GTT/Data/-/blob/master/Scripts/APx/turn_off_sideband.py) \ No newline at end of file From ea50b738a138f44b0bcf22fbd9a238130f6622bf Mon Sep 17 00:00:00 2001 From: Nick Manganelli Date: Wed, 20 Nov 2024 19:00:05 +0100 Subject: [PATCH 060/418] Small clarifications. --- L1Trigger/L1TTrackMatch/Readme.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/L1Trigger/L1TTrackMatch/Readme.md b/L1Trigger/L1TTrackMatch/Readme.md index 0c685dc853089..3842a1d72cdd7 100644 --- a/L1Trigger/L1TTrackMatch/Readme.md +++ b/L1Trigger/L1TTrackMatch/Readme.md @@ -42,7 +42,7 @@ The Baseline TVA module is extremely simple, primarily cutting on the $\Delta~z$ ### Jet Finding (JF) Jet finding uses a 2-layer clustering algorithm. The firmware is written in Verilog, and the emulator can be found in CMSSW in the central [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackJetEmulatorProducer.cc), [configuration](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackJetsEmulation_cfi.py), and common [header](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackJetClustering.h) -### Status as of October 2024 +#### Status as of October 2024 The output of the emulator does not exactly match the firmware currently. An ongoing PR exists to fix several discrepancies, including a missing valid bit in emulation, and the binning of the $\eta-\phi$ plane. ### HT and Missing HT (HT) @@ -79,19 +79,21 @@ The GTT configuration constants are mostly gathered in the [GTTInterface.h](http A git [submodule](https://gitlab.cern.ch/GTT/Data) stores fixed copies of the emulation buffer / pattern files for use in [LibHLS](https://gitlab.cern.ch/GTT/LibHLS/), using git [LFS](https://git-lfs.com/) ### Generating pattern files -A script in the test/gtt folder contains a configuration to export and import pattern file buffers into CMSSW. +A script in the CMSSW L1Trigger/DemonstratorTools/test/gtt folder contains a configuration to export and import pattern file buffers into CMSSW. [script](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/test/gtt/createFirmwareInputFiles_cfg.py). Typical usage looks like: ``` cmsRun createFirmwareInputFiles_cfg.py maxEvents=1008 format=APx inputFiles=L1Trigger/DemonstratorTools/python/TT_TuneCP5_14TeV-powheg-pythia8_Phase2Spring23DIGIRECOMiniAOD-PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1_GEN-SIM-DIGI-RAW-MINIAOD_APxBuffers_cff.py ``` +An example configuration as referred to via the `inputFiles` kwarg can be found below, in this README. + ### Loading tracks and vertices from pattern files Two input options, `tracks` and `vertices` can be passed 3 options, `donotload`, `load`, and `overwrite` to modify the behavior of patter-file writing. For each collection, the option `donotload` implies that the appropriate collection will be generated or read in from CMSSW collections. The `load` option instead dictates that pattern files' contents, specified in the inputFiles configuration, will be decoded (verifying they can be read back via BoardDataReader class, as configured via GTTFileReader), but the final collections will still be read/generated from CMSSW collections generated upstream in TrackFinding. The final option, `overwrite,` decodes the objects from pattern files and makes these the corresponding collection used in subsequent steps. That is, if `tracks=overwrite` is used, then the tracks passed into the GTTInputConversion and downstream TS, VF, etc. will come from pattern files written in the appropriate `readerformat` (APx, EMPv2, ...). As long as vertices is not set to `overwrite` as well, this will calculate new vertices from these pattern-buffer loaded tracks instead of those from the source root files or generated by the TrackFinder upstream. Similarly, if `vertices=overwrite,` the vertices collection will be read from the pattern files and upstream tracks (regardless of source and `tracks=X` option selected) will be ignored. ``` cmsRun createFirmwareInputFiles_cfg.py maxEvents=1008 format=APx inputFiles=L1Trigger/DemonstratorTools/python/TT_TuneCP5_14TeV-powheg-pythia8_Phase2Spring23DIGIRECOMiniAOD-PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1_GEN-SIM-DIGI-RAW-MINIAOD_APxBuffers_cff.py tracks=overwrite vertices=donotload readerformat=APx ``` -An example of the inputFiles configuration including pointers to buffer files follows: +An example of the `inputFiles` configuration including pointers to buffer files follows: ``` import FWCore.ParameterSet.Config as cms @@ -134,6 +136,7 @@ track_source = cms.Source ("PoolSource", ) ) ``` +For loading tracks or vertices from buffers, the outputs from the `createFirmwareInputFiles_cfg.py` should be placed in a subfolder labeled `APx` relative to that same script. ### Sidebands in different formats The APx and EMPv2 have different sideband codes. In LibHLS a script exists which can strip the APx sideband codes from pattern files and write these out as new txt files can be found [here](https://gitlab.cern.ch/GTT/Data/-/blob/master/Scripts/APx/turn_off_sideband.py) \ No newline at end of file From f8cf9341d30d827c53f80f516b92f93c526d8d43 Mon Sep 17 00:00:00 2001 From: Nick Manganelli Date: Wed, 20 Nov 2024 19:06:46 +0100 Subject: [PATCH 061/418] Fix some LaTeX --- L1Trigger/L1TTrackMatch/Readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/L1Trigger/L1TTrackMatch/Readme.md b/L1Trigger/L1TTrackMatch/Readme.md index 3842a1d72cdd7..78a9e55d1b4fe 100644 --- a/L1Trigger/L1TTrackMatch/Readme.md +++ b/L1Trigger/L1TTrackMatch/Readme.md @@ -1,17 +1,17 @@ # Global Track Trigger -This section describes several componenets of the Global Track Trigger, the CMS subsystem downstream of Level-1 Track Finding, which performs Level-1 vertex-finding for the L1 Correlator Layer 1 (for PF Candidate / PUPPI reconstruction) and globally builds track-only objects such as Jets, HT, MET, mesons (including phi and rho), etc to be sent to the Global Trigger. +This section describes several componenets of the Global Track Trigger, the CMS subsystem downstream of Level-1 Track Finding, which performs Level-1 vertex-finding for the L1 Correlator Layer 1 (for PF Candidate / PUPPI reconstruction) and globally builds track-only objects such as Jets, HT, MET, mesons (including $\phi$ and $\rho$), etc to be sent to the Global Trigger. ## Data Flow Overview -The current design of the GTT involves several steps. Universally, a GTTInputConversion step which performs such conversions as $\frac{1}{R} to $p_T$ and $tan(\lambda)$ to $\eta$, occurs first. Currently in emulation, this takes information from the 96-bit [TrackWord](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h) and overwrites the corresponding fields with the GTT converted values, leaving the Track in a non-canonical state. In [firmware](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/DataFormats/Track?ref_type=heads), the HLS code for the Track [struct](https://gitlab.cern.ch/GTT/LibHLS/-/blob/master/DataFormats/Track/interface/Track.h?ref_type=heads) represents this non-canonical state as separate fields, rather than a single 96-bit word. Afterward InputConversion, multiple TrackSelection (TS) modules are configured/instantiated, potentially 1 for each downstream algorithm, such as VertexFinding (VF), Displaced Vertexing, TrackJets (and thus TrackHT/TrackMissingHT), TrackMET, mesons, $W\rarrow~3\pi$, and so on. The VertexFinder takes selected tracks and uses (as baseline/extension) a histogramming method to identify the Primary Vertex (PV), weighted either with track $p_T$ (baseline) or a Neural Net score (extended). Downstream, multiple modules of TrackVertexAssociation (TVA) are run (in the baseline, a simple cut-based algo, and in extended algorithm/E2E, a track-association network discriminant cut), taking selected tracks from an appropriate TS modules, the PV from VF, and outputting vertex-associated tracks. These are inputs to JetFinding (JF), meson finding, MET, and other algorithms. In firmware, the outputs from vertex-finding are streamed to the L1 Correlator Layer 1, and all algorithms (including vertex-finding) outputs are sent to the L1 Global Trigger. +The current design of the GTT involves several steps. Universally, a GTTInputConversion step which performs such conversions as $\frac{1}{R} to $p_T$ and $tan(\lambda)$ to $\eta$, occurs first. Currently in emulation, this takes information from the 96-bit [TrackWord](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h) and overwrites the corresponding fields with the GTT converted values, leaving the Track in a non-canonical state. In [firmware](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/DataFormats/Track?ref_type=heads), the HLS code for the Track [struct](https://gitlab.cern.ch/GTT/LibHLS/-/blob/master/DataFormats/Track/interface/Track.h?ref_type=heads) represents this non-canonical state as separate fields, rather than a single 96-bit word. Afterward InputConversion, multiple TrackSelection (TS) modules are configured/instantiated, potentially 1 for each downstream algorithm, such as VertexFinding (VF), Displaced Vertexing, TrackJets (and thus TrackHT/TrackMissingHT), TrackMET, mesons, $W~\it{to}~3\pi$, and so on. The VertexFinder takes selected tracks and uses (as baseline/extension) a histogramming method to identify the Primary Vertex (PV), weighted either with track $p_T$ (baseline) or a Neural Net score (extended). Downstream, multiple modules of TrackVertexAssociation (TVA) are run (in the baseline, a simple cut-based algo, and in extended algorithm/E2E, a track-association network discriminant cut), taking selected tracks from an appropriate TS modules, the PV from VF, and outputting vertex-associated tracks. These are inputs to JetFinding (JF), meson finding, MET, and other algorithms. In firmware, the outputs from vertex-finding are streamed to the L1 Correlator Layer 1, and all algorithms (including vertex-finding) outputs are sent to the L1 Global Trigger. ### GTT Input Conversion Input conversion handles the change from 1/R (really q/R) to $p_T$ and $tan(\lambda)$ to $\eta$. In LibHLS, this is controlled with a few constants that denote how many integer and fixed-float bits should be used. In emulation, constants are located inside the GTT plugin under ConversionBitWidths. -LibHLS [$\eta$ module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionEta?ref_type=heads) and [$p_T$ module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionPt?ref_type=heads) +LibHLS $\eta$ [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionEta?ref_type=heads) and $p_T$ [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/ConversionPt?ref_type=heads) CMSSW [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1GTTInputProducer.cc) #### Status (October 2024) -The Input conversion in Firmware centrally stores conversion constants and consistently uses the central GTT format (struct) for tracks. Meanwhile, the emulator is in a somewhat different spot, with a low-granularity conversion of $p_T$ with 7 integer bits and 3 float bits (currently consistent with firmware). For reading the $p_T$ back, different algorithms make different assumptions about the width of the datatype, either the actual ap_fixed<10,7> with 7 integer bits, or ap_fixed<14,9>. This works because of a bit-shift that 0-pads the 2 least significant bits of the actual ap_fixed<10,7> data stored in the previoius canonical L1T $\frac{1}{R}$ word; ergo the least significant integer bits are aligned under either interpretation. The $p_T$ conversion also uses an 8-bit LUT to map track values from the ap_int datatype to ap_fixed, which means that the least significant bits are ignored, dropping 2**2 in resolution. Because of the non-linear conversion, this produces strong discretization of high-$p_T$ tracks. A possible remediation of this would involve either splitting the LUT so that a more granular version is applied to high-$p_T$ tracks, or equivalently residual/correction-LUTs to adjust the response where needed. Either approach should require a modest increase in LUT resources but improve the conversion loss. Additionally, studies on $\phi$ mesons and reconstructing $B_s$ from them indicates that the $\eta$ conversion is a significant source of error, but also the $p_T$ appears to have biases (which may have a charge dependence). The latter indicates that there may be an inconsistent use of half-bin shifting in calculations somewhere. The $\eta$ conversion uses a 128-sized LUT (owing to symmetry in the transform, it's cut in half relative to a simple calculation), into an ap_fixed<8,3> datatype; the LUT should be increased by a factor of 2^3 at least to ap_fixed<11,3>, improving the granularity significantly for $\phi$ meson reconstruction. +The Input conversion in Firmware centrally stores conversion constants and consistently uses the central GTT format (struct) for tracks. Meanwhile, the emulator is in a somewhat different spot, with a low-granularity conversion of $p_T$ with 7 integer bits and 3 float bits (currently consistent with firmware). For reading the $p_T$ back, different algorithms make different assumptions about the width of the datatype, either the actual ap_fixed<10,7> with 7 integer bits, or ap_fixed<14,9>. This works because of a bit-shift that 0-pads the 2 least significant bits of the actual ap_fixed<10,7> data stored in the previoius canonical L1T $\frac{1}{R}$ word; ergo the least significant integer bits are aligned under either interpretation. The $p_T$ conversion also uses an 8-bit LUT to map track values from the ap_int datatype to ap_fixed, which means that the least significant bits are ignored, dropping 2**2 in resolution. Because of the non-linear conversion, this produces strong discretization of high $p_T$ tracks. A possible remediation of this would involve either splitting the LUT so that a more granular version is applied to high $p_T$ tracks, or equivalently residual/correction-LUTs to adjust the response where needed. Either approach should require a modest increase in LUT resources but improve the conversion loss. Additionally, studies on $\phi$ mesons and reconstructing $B_s$ from them indicates that the $\eta$ conversion is a significant source of error, but also the $p_T$ appears to have biases (which may have a charge dependence). The latter indicates that there may be an inconsistent use of half-bin shifting in calculations somewhere. The $\eta$ conversion uses a 128-sized LUT (owing to symmetry in the transform, it's cut in half relative to a simple calculation), into an ap_fixed<8,3> datatype; the LUT should be increased by a factor of 2^3 at least to ap_fixed<11,3>, improving the granularity significantly for $\phi$ meson reconstruction. ### Vertex Finder (VF) #### FastHisto (FH) - Baseline Algorithm @@ -62,7 +62,7 @@ The MET module has bit-accurate agreement between firmware and emulation. The LU ### Phi and Rho Meson Finding These currently exist as simulation+emulation studies in private CMSSW branches, with ongoing work to create HLS-based firmware modules. -### $W\rarrow 3\pi$ (W3pi) +### $W~\it{to}~3\pi$ (W3pi) CMSSW [TkTriplet](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TCorrelator/interface/TkTriplet.h) CMSSW [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1TrackTripletEmulatorProducer.cc) CMSSW [configuration](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/python/l1tTrackTripletEmulation_cfi.py) From 191b01bbf37dbd8d9c15e48c3e7fa260e3422b46 Mon Sep 17 00:00:00 2001 From: Nick Manganelli Date: Wed, 20 Nov 2024 19:16:31 +0100 Subject: [PATCH 062/418] Fix some LaTeX 2 --- L1Trigger/L1TTrackMatch/Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L1Trigger/L1TTrackMatch/Readme.md b/L1Trigger/L1TTrackMatch/Readme.md index 78a9e55d1b4fe..c47e43dcb1fec 100644 --- a/L1Trigger/L1TTrackMatch/Readme.md +++ b/L1Trigger/L1TTrackMatch/Readme.md @@ -3,7 +3,7 @@ This section describes several componenets of the Global Track Trigger, the CMS ## Data Flow Overview -The current design of the GTT involves several steps. Universally, a GTTInputConversion step which performs such conversions as $\frac{1}{R} to $p_T$ and $tan(\lambda)$ to $\eta$, occurs first. Currently in emulation, this takes information from the 96-bit [TrackWord](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h) and overwrites the corresponding fields with the GTT converted values, leaving the Track in a non-canonical state. In [firmware](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/DataFormats/Track?ref_type=heads), the HLS code for the Track [struct](https://gitlab.cern.ch/GTT/LibHLS/-/blob/master/DataFormats/Track/interface/Track.h?ref_type=heads) represents this non-canonical state as separate fields, rather than a single 96-bit word. Afterward InputConversion, multiple TrackSelection (TS) modules are configured/instantiated, potentially 1 for each downstream algorithm, such as VertexFinding (VF), Displaced Vertexing, TrackJets (and thus TrackHT/TrackMissingHT), TrackMET, mesons, $W~\it{to}~3\pi$, and so on. The VertexFinder takes selected tracks and uses (as baseline/extension) a histogramming method to identify the Primary Vertex (PV), weighted either with track $p_T$ (baseline) or a Neural Net score (extended). Downstream, multiple modules of TrackVertexAssociation (TVA) are run (in the baseline, a simple cut-based algo, and in extended algorithm/E2E, a track-association network discriminant cut), taking selected tracks from an appropriate TS modules, the PV from VF, and outputting vertex-associated tracks. These are inputs to JetFinding (JF), meson finding, MET, and other algorithms. In firmware, the outputs from vertex-finding are streamed to the L1 Correlator Layer 1, and all algorithms (including vertex-finding) outputs are sent to the L1 Global Trigger. +The current design of the GTT involves several steps. Universally, a GTTInputConversion step which performs such conversions as $\frac{1}{R}$ to $p_T$ and $tan(\lambda)$ to $\eta$, occurs first. Currently in emulation, this takes information from the 96-bit [TrackWord](https://github.com/cms-sw/cmssw/blob/master/DataFormats/L1TrackTrigger/interface/TTTrack_TrackWord.h) and overwrites the corresponding fields with the GTT converted values, leaving the Track in a non-canonical state. In [firmware](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/DataFormats/Track?ref_type=heads), the HLS code for the Track [struct](https://gitlab.cern.ch/GTT/LibHLS/-/blob/master/DataFormats/Track/interface/Track.h?ref_type=heads) represents this non-canonical state as separate fields, rather than a single 96-bit word. Afterward InputConversion, multiple TrackSelection (TS) modules are configured/instantiated, potentially 1 for each downstream algorithm, such as VertexFinding (VF), Displaced Vertexing, TrackJets (and thus TrackHT/TrackMissingHT), TrackMET, mesons, $W~\it{to}~3\pi$, and so on. The VertexFinder takes selected tracks and uses (as baseline/extension) a histogramming method to identify the Primary Vertex (PV), weighted either with track $p_T$ (baseline) or a Neural Net score (extended). Downstream, multiple modules of TrackVertexAssociation (TVA) are run (in the baseline, a simple cut-based algo, and in extended algorithm/E2E, a track-association network discriminant cut), taking selected tracks from an appropriate TS modules, the PV from VF, and outputting vertex-associated tracks. These are inputs to JetFinding (JF), meson finding, MET, and other algorithms. In firmware, the outputs from vertex-finding are streamed to the L1 Correlator Layer 1, and all algorithms (including vertex-finding) outputs are sent to the L1 Global Trigger. ### GTT Input Conversion Input conversion handles the change from 1/R (really q/R) to $p_T$ and $tan(\lambda)$ to $\eta$. In LibHLS, this is controlled with a few constants that denote how many integer and fixed-float bits should be used. In emulation, constants are located inside the GTT plugin under ConversionBitWidths. From 1e70b207a6dba4f4e18562f8c653ba374ea91c43 Mon Sep 17 00:00:00 2001 From: Nick Manganelli Date: Wed, 20 Nov 2024 19:57:37 +0100 Subject: [PATCH 063/418] Some more fixups --- L1Trigger/L1TTrackMatch/Readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/L1Trigger/L1TTrackMatch/Readme.md b/L1Trigger/L1TTrackMatch/Readme.md index c47e43dcb1fec..c1385b26eaef9 100644 --- a/L1Trigger/L1TTrackMatch/Readme.md +++ b/L1Trigger/L1TTrackMatch/Readme.md @@ -11,7 +11,7 @@ LibHLS $\eta$ [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/C CMSSW [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/L1TTrackMatch/plugins/L1GTTInputProducer.cc) #### Status (October 2024) -The Input conversion in Firmware centrally stores conversion constants and consistently uses the central GTT format (struct) for tracks. Meanwhile, the emulator is in a somewhat different spot, with a low-granularity conversion of $p_T$ with 7 integer bits and 3 float bits (currently consistent with firmware). For reading the $p_T$ back, different algorithms make different assumptions about the width of the datatype, either the actual ap_fixed<10,7> with 7 integer bits, or ap_fixed<14,9>. This works because of a bit-shift that 0-pads the 2 least significant bits of the actual ap_fixed<10,7> data stored in the previoius canonical L1T $\frac{1}{R}$ word; ergo the least significant integer bits are aligned under either interpretation. The $p_T$ conversion also uses an 8-bit LUT to map track values from the ap_int datatype to ap_fixed, which means that the least significant bits are ignored, dropping 2**2 in resolution. Because of the non-linear conversion, this produces strong discretization of high $p_T$ tracks. A possible remediation of this would involve either splitting the LUT so that a more granular version is applied to high $p_T$ tracks, or equivalently residual/correction-LUTs to adjust the response where needed. Either approach should require a modest increase in LUT resources but improve the conversion loss. Additionally, studies on $\phi$ mesons and reconstructing $B_s$ from them indicates that the $\eta$ conversion is a significant source of error, but also the $p_T$ appears to have biases (which may have a charge dependence). The latter indicates that there may be an inconsistent use of half-bin shifting in calculations somewhere. The $\eta$ conversion uses a 128-sized LUT (owing to symmetry in the transform, it's cut in half relative to a simple calculation), into an ap_fixed<8,3> datatype; the LUT should be increased by a factor of 2^3 at least to ap_fixed<11,3>, improving the granularity significantly for $\phi$ meson reconstruction. +The Input conversion in Firmware centrally stores conversion constants and consistently uses the central GTT format (struct) for tracks. Meanwhile, the emulator is in a somewhat different spot, with a low-granularity conversion of $p_T$ with 7 integer bits and 3 float bits (currently consistent with firmware). For reading the $p_T$ back, different algorithms make different assumptions about the width of the datatype, either the actual ap_fixed<10,7> with 7 integer bits, or ap_fixed<14,9>. This works because of a bit-shift that 0-pads the 2 least significant bits of the actual ap_fixed<10,7> data stored in the previoius canonical L1T $\frac{1}{R}$ word; ergo the least significant integer bits are aligned under either interpretation. The $p_T$ conversion also uses an 10-bit LUT to map track values from the ap_int datatype to ap_fixed, which means that the least significant bits are ignored, dropping 2**2 in resolution. Because of the non-linear conversion, this produces strong discretization of high $p_T$ tracks. A possible remediation of this would involve either splitting the LUT so that a more granular version is applied to high $p_T$ tracks, or equivalently residual/correction-LUTs to adjust the response where needed. Either approach should require a modest increase in LUT resources but improve the conversion loss. Additionally, studies on $\phi$ mesons and reconstructing $B_s$ from them indicates that the $\eta$ conversion is a significant source of error, but also the $p_T$ appears to have biases (which may have a charge dependence). The latter indicates that there may be an inconsistent use of half-bin shifting in calculations somewhere. The $\eta$ conversion uses a 128-sized LUT (7 bits, owing to symmetry in the transform, it's cut in half relative to a simple calculation), into an ap_fixed<8,3> datatype; the LUT should be increased by a factor of 2^3 at least to ap_fixed<11,3>, improving the granularity significantly for $\phi$ meson reconstruction. ### Vertex Finder (VF) #### FastHisto (FH) - Baseline Algorithm @@ -19,7 +19,7 @@ This version of the algorithm serves as the baseline from TDR studies. This uses LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/Vertex?ref_type=heads) VertexFinder class [interface](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/VertexFinder/interface/VertexFinder.h), [src](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/VertexFinder/src/VertexFinder.cc), and [plugin](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/VertexFinder/plugins/VertexProducer.cc) with CMSSW default configuration [here](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/VertexFinder/python/l1tVertexProducer_cfi.py). The Simulation tag is 'l1tVertexFinder' whereas the emulator is usually grabbed via 'l1tVertexFinderEmulator.' #### End-to-end Neural Network (E2E) - Extended Algorithm -The End-to-end Neural Network is a beyond-baseline version of the algorithm. It uses the same structure as FastHisto, but replaces weighting tracks by their $p_T$ with a DNN discriminant score. This produces an improved vertex-finding efficiency and resolution over FH. This is trained in tandem with TrackAssociationNetworks to replace the cut-based TrackSelection algorithm typically paired with FH. +The End-to-end Neural Network is a beyond-baseline version of the algorithm. It uses the same structure as FastHisto, but replaces weighting tracks by their $p_T$ with a DNN discriminant score. This produces an improved vertex-finding efficiency and resolution over FH. This is trained in tandem with TrackAssociationNetworks to replace the cut-based TrackVertexAssociation algorithm typically paired with FH. #### Status as of October 2024 The FastHisto (Emulation) algorithm has bit-level agreement with the firmware using several thousand events from $t\bar{t}$ simulation (200 PileUp). The algorithm can handle mulitple vertices. In LibHLS/firmware, only one vertex is enabled to reduce resource usage. An implementation detail is that the $p_T$ sum per bin is calculated untruncated in both firmware and emulation, but prior to the vertex-finding portion (sliding window algo), the precision is reduced. Of the fields proposed for the vertex, only the valid bit, the sumPt, and the $z_0$ position are filled; all other fields, including the quality field, the nTracks in/out PV are 0-filled. A design shortcoming is that the number of bins is a compile-time constant, but runtime-configurable constants passed into the configuration as `FH_HistogramParameters` indicate the minimum and maximum $z$ position for the histogram, and the 3rd parameter must divide this range appropriately to match the number of bins in firmware. For example, `FH_HistogramParameters = cms.vdouble(-20.46912512, 20.46912512, 0.15991504)` is appropriate for 256 bins as currently used. @@ -72,7 +72,7 @@ LibHLS [module](https://gitlab.cern.ch/GTT/LibHLS/-/tree/master/Modules/WtoThree [reader](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/plugins/GTTFileReader.cc) [writer](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/plugins/GTTFileWriter.cc) These plugins make use of the subsystem-agnostic BoardDataReader and BoardDataWriter classes, respectively, specified in the reader's [interface](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/interface/BoardDataReader.h) and [src](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/src/BoardDataReader.cc) files, and likewise for the writer [interface](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/interface/BoardDataWriter.h) and [src](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/src/BoardDataWriter.cc) -The GTT configuration constants are mostly gathered in the [GTTInterface.h](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/interface/GTTInterface.h) which specifies how link inputs/frames map to given collections of objects for pattern-buffer writing and reading. This specified, for example, whether vertices are placed in link 3 or link 0 to GT for a given board, and at which starting frame they may appear. Similarly other collections like jets, displaced jets, MET, HT link and frame position encoding are specified in here. +The GTT configuration constants are mostly gathered in the [GTTInterface.h](https://github.com/cms-sw/cmssw/blob/master/L1Trigger/DemonstratorTools/interface/GTTInterface.h) which specifies how link inputs/frames map to given collections of objects for pattern-buffer writing and reading. For example, whether vertices are placed in link 3 or link 0 to GT for a given board, and at which starting frame they may appear, is encoded in these maps. Similarly other collections like jets, displaced jets, MET, HT link and frame position encoding are specified in this file. ## Emulation Pattern (Buffer) Files @@ -88,12 +88,12 @@ cmsRun createFirmwareInputFiles_cfg.py maxEvents=1008 format=APx inputFiles=L1Tr An example configuration as referred to via the `inputFiles` kwarg can be found below, in this README. ### Loading tracks and vertices from pattern files -Two input options, `tracks` and `vertices` can be passed 3 options, `donotload`, `load`, and `overwrite` to modify the behavior of patter-file writing. For each collection, the option `donotload` implies that the appropriate collection will be generated or read in from CMSSW collections. The `load` option instead dictates that pattern files' contents, specified in the inputFiles configuration, will be decoded (verifying they can be read back via BoardDataReader class, as configured via GTTFileReader), but the final collections will still be read/generated from CMSSW collections generated upstream in TrackFinding. The final option, `overwrite,` decodes the objects from pattern files and makes these the corresponding collection used in subsequent steps. That is, if `tracks=overwrite` is used, then the tracks passed into the GTTInputConversion and downstream TS, VF, etc. will come from pattern files written in the appropriate `readerformat` (APx, EMPv2, ...). As long as vertices is not set to `overwrite` as well, this will calculate new vertices from these pattern-buffer loaded tracks instead of those from the source root files or generated by the TrackFinder upstream. Similarly, if `vertices=overwrite,` the vertices collection will be read from the pattern files and upstream tracks (regardless of source and `tracks=X` option selected) will be ignored. +Two input kwargs, `tracks` and `vertices` can be passed 3 options each, `donotload`, `load`, and `overwrite` to modify the behavior of patter-file writing. For each collection, the option `donotload` implies that the appropriate collection will be generated or read in from CMSSW collections (this is the default mode). The `load` option instead dictates that pattern files' contents, specified in the inputFiles configuration python file, will be decoded (verifying they can be read back via BoardDataReader class, as configured via GTTFileReader), but then ignored: the final collections will still be read/generated from CMSSW collections generated upstream in TrackFinding, as in the default mode. The final option, `overwrite,` decodes the objects from pattern files and makes these the corresponding collection used in subsequent steps. That is, if `tracks=overwrite` is used, then the tracks passed into the GTTInputConversion and downstream TS, VF, JF, etc. will come from pattern files written in the appropriate `readerformat` (APx, EMPv2, ...). As long as vertices is not set to `overwrite` as well, this will calculate new vertices from these pattern-buffer loaded tracks instead of those from the source root files or generated by the TrackFinder upstream. Similarly, if `vertices=overwrite,` the vertices collection will be read from the pattern files and upstream tracks (regardless of source and `tracks=X` option selected) will be ignored. The readerformat should specify whether the inputs are `APx` or `EMPv2` encoded. ``` cmsRun createFirmwareInputFiles_cfg.py maxEvents=1008 format=APx inputFiles=L1Trigger/DemonstratorTools/python/TT_TuneCP5_14TeV-powheg-pythia8_Phase2Spring23DIGIRECOMiniAOD-PU200_L1TFix_Trk1GeV_131X_mcRun4_realistic_v9-v1_GEN-SIM-DIGI-RAW-MINIAOD_APxBuffers_cff.py tracks=overwrite vertices=donotload readerformat=APx ``` -An example of the `inputFiles` configuration including pointers to buffer files follows: +An example of the `inputFiles` configuration including pointers to buffer files follows (the pointers to pattern files can be dropped for workflows that only need to generate buffer files from the default CMSSW collections or upstream TrackFinder): ``` import FWCore.ParameterSet.Config as cms From 525eaac4b4736c1377fbed816c16eced15d3fdc8 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Wed, 20 Nov 2024 21:00:22 +0100 Subject: [PATCH 064/418] As suggested by Andrea --- .../python/hcalUnsuppressedDigis_cfi.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py b/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py index 737b337b0f72a..b7c35b800f1ee 100644 --- a/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py +++ b/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py @@ -46,7 +46,7 @@ ) from Configuration.Eras.Modifier_fastSim_cff import fastSim -fastSim.toModify( hcalSimBlock, hitsProducer=cms.string('fastSimProducer') ) +fastSim.toModify( hcalSimBlock, hitsProducer = "fastSimProducer" ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(hcalSimBlock, @@ -60,15 +60,15 @@ # test numbering not used in fastsim from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017 -(run2_HCAL_2017 & ~fastSim).toModify( hcalSimBlock, TestNumbering = cms.bool(True) ) +(run2_HCAL_2017 & ~fastSim).toModify( hcalSimBlock, TestNumbering = True ) # remove HE processing for phase 2, completely put in HGCal land from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify(hcalSimBlock, - doZDCDigi = cms.bool(False), - killHE = cms.bool(True) + doZDCDigi = False, + killHE = True ) # remove HE processing for phase 2, completely put in HGCal land from Configuration.Eras.Modifier_zdcNoDigi_cff import zdcNoDigi -zdcNoDigi.toModify(hcalSimBlock, doZDCDigi = cms.bool(False) ) +zdcNoDigi.toModify(hcalSimBlock, doZDCDigi = False ) From 7dc15d31bb0945892a3df9ceba3d12fb056fae95 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Wed, 20 Nov 2024 21:03:53 +0100 Subject: [PATCH 065/418] Modify the comments --- .../HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py b/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py index b7c35b800f1ee..b02962b83576a 100644 --- a/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py +++ b/SimCalorimetry/HcalSimProducers/python/hcalUnsuppressedDigis_cfi.py @@ -63,12 +63,13 @@ (run2_HCAL_2017 & ~fastSim).toModify( hcalSimBlock, TestNumbering = True ) # remove HE processing for phase 2, completely put in HGCal land +# Also inhibit ZDC digitization from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify(hcalSimBlock, doZDCDigi = False, killHE = True ) -# remove HE processing for phase 2, completely put in HGCal land +# inhibit ZDC digitization from Configuration.Eras.Modifier_zdcNoDigi_cff import zdcNoDigi zdcNoDigi.toModify(hcalSimBlock, doZDCDigi = False ) From 6a39629f9e06708d7d528e38908995de51c69d6c Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 20 Nov 2024 22:19:48 +0100 Subject: [PATCH 066/418] PromptCalibProdSiPixelAliHLTHGCombined --- ...bProdSiPixelAliHLTHGCombined_Output_cff.py | 12 ++ ...romptCalibProdSiPixelAliHLTHGDiMuon_cff.py | 139 +++++++++++++ ...ARECOPromptCalibProdSiPixelAliHLTHG_cff.py | 86 ++++++++ ...LCARECOPromptCalibProdSiPixelAliHLT_cff.py | 187 ++++++++++++++++++ .../ALCARECOTkAlHLTTracksZMuMu_Output_cff.py | 23 +++ .../python/ALCARECOTkAlHLTTracksZMuMu_cff.py | 60 ++++++ .../ALCARECOTkAlHLTTracks_Output_cff.py | 23 +++ .../python/ALCARECOTkAlHLTTracks_cff.py | 43 ++++ ...lcaSiPixelAliHarvesterHLTHGCombined_cff.py | 93 +++++++++ .../test-PromptCalibProdSiPixelAliHLTHGC.sh | 60 ++++++ Configuration/AlCa/python/autoAlca.py | 2 + Configuration/AlCa/python/autoPCL.py | 1 + .../EventContent/python/AlCaRecoOutput_cff.py | 4 + .../python/AlCaHarvesting_cff.py | 11 ++ .../python/AlCaRecoStreams_cff.py | 37 ++++ 15 files changed, 781 insertions(+) create mode 100644 Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGCombined_Output_cff.py create mode 100644 Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py create mode 100644 Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py create mode 100644 Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py create mode 100644 Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_Output_cff.py create mode 100644 Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_cff.py create mode 100644 Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_Output_cff.py create mode 100644 Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_cff.py create mode 100644 Alignment/CommonAlignmentProducer/python/AlcaSiPixelAliHarvesterHLTHGCombined_cff.py create mode 100755 Alignment/CommonAlignmentProducer/test/test-PromptCalibProdSiPixelAliHLTHGC.sh diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGCombined_Output_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGCombined_Output_cff.py new file mode 100644 index 0000000000000..bfff1d0ab901f --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGCombined_Output_cff.py @@ -0,0 +1,12 @@ +import FWCore.ParameterSet.Config as cms + +OutALCARECOPromptCalibProdSiPixelAliHLTHGC_noDrop = cms.PSet( + SelectEvents = cms.untracked.PSet( + SelectEvents = cms.vstring('pathALCARECOPromptCalibProdSiPixelAliHLTHGMinBias','pathALCARECOPromptCalibProdSiPixelAliHLTHGDiMu') + ), + outputCommands = cms.untracked.vstring('keep *_SiPixelAliMillePedeFileConverterHLTHGDimuon_*_*', + 'keep *_SiPixelAliMillePedeFileConverterHLTHG_*_*') +) + +OutALCARECOPromptCalibProdSiPixelAliHLTHGC=OutALCARECOPromptCalibProdSiPixelAliHLTHGC_noDrop.clone() +OutALCARECOPromptCalibProdSiPixelAliHLTHGC.outputCommands.insert(0, "drop *") diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py new file mode 100644 index 0000000000000..05a32ca629905 --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py @@ -0,0 +1,139 @@ +import FWCore.ParameterSet.Config as cms + +# ------------------------------------------------------------------------------ +# configure a filter to run only on the events selected by TkAlZMuMu AlcaReco +from HLTrigger.HLTfilters.hltHighLevel_cfi import * +ALCARECOTkAlZMuMuFilterForSiPixelAliHLT = hltHighLevel.clone( + HLTPaths = ['pathALCARECOTkAlHLTTracksZMuMu'], + throw = True, ## dont throw on unknown path names, + TriggerResultsTag = "TriggerResults::RECO" +) + +from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHLT_cff import * +from Alignment.CommonAlignmentProducer.LSNumberFilter_cfi import * + +# Ingredient: offlineBeamSpot +from RecoVertex.BeamSpotProducer.BeamSpot_cfi import offlineBeamSpot + +# Ingredient: AlignmentTrackSelector +# track selector for HighPurity tracks +#-- AlignmentTrackSelector +SiPixelAliLooseSelectorHLTHGDimuon = SiPixelAliLooseSelectorHLT.clone( + src = 'ALCARECOTkAlHLTTracksZMuMu', + etaMax = 3.0, + etaMin = -3.0, + filter = True, + pMin = 8.0, +) + +# track selection for alignment +SiPixelAliTrackSelectorHLTHGDimuon = SiPixelAliTrackSelectorHLT.clone( + src = 'SiPixelAliTrackFitterHLTHGDimuon', + applyMultiplicityFilter = True, + d0Max = 50.0, + d0Min = -50.0, + etaMax = 3.0, + etaMin = -3.0, + filter = True, + maxMultiplicity = 2, + minHitChargeStrip = 20.0, + minHitIsolation = 0.01, + minMultiplicity = 2, + nHighestPt = 2, + nHitMin = 10, + pMin = 3.0, + ptMin = 15.0, + TwoBodyDecaySelector = dict(applyChargeFilter = True, + applyMassrangeFilter = True, + maxXMass = 95.8, + minXMass = 85.8), + minHitsPerSubDet = dict(inPIXEL = 1) +) + +# Ingredient: SiPixelAliTrackRefitter0 +# refitting +SiPixelAliTrackRefitterHLTHGDimuon0 = SiPixelAliTrackRefitterHLT0.clone( + src = 'SiPixelAliLooseSelectorHLTHGDimuon' +) +SiPixelAliTrackRefitterHLTHGDimuon1 = SiPixelAliTrackRefitterHLTHGDimuon0.clone( + src = 'SiPixelAliTrackSelectorHLTHGDimuon' +) + +#-- Alignment producer +SiPixelAliMilleAlignmentProducerHLTHGDimuon = SiPixelAliMilleAlignmentProducerHLT.clone( + ParameterBuilder = dict( + Selector = cms.PSet( + alignParams = cms.vstring( + "TrackerP1PXBLadder,111111", + "TrackerP1PXECPanel,111111", + ) + ) + ), + tjTkAssociationMapTag = 'SiPixelAliTrackRefitterHLTHGDimuon1', + algoConfig = MillePedeAlignmentAlgorithm.clone( + binaryFile = 'milleBinaryHLTHGDimuon_0.dat', + treeFile = 'treeFileHLTHGDimuon.root', + monitorFile = 'millePedeMonitorHLTHGDimuon.root', + minNumHits = 8, + skipGlobalPositionRcdCheck = True, + TrajectoryFactory = cms.PSet( + AllowZeroMaterial = cms.bool(False), + Chi2Cut = cms.double(10000.0), + ConstructTsosWithErrors = cms.bool(False), + EstimatorParameters = cms.PSet( + MaxIterationDifference = cms.untracked.double(0.01), + MaxIterations = cms.untracked.int32(100), + RobustificationConstant = cms.untracked.double(1.0), + UseInvariantMass = cms.untracked.bool(True) + ), + IncludeAPEs = cms.bool(False), + MaterialEffects = cms.string('LocalGBL'), + NSigmaCut = cms.double(100.0), + ParticleProperties = cms.PSet( + PrimaryMass = cms.double(91.1061), + PrimaryWidth = cms.double(1.7678), + SecondaryMass = cms.double(0.105658) + ), + PropagationDirection = cms.string('alongMomentum'), + TrajectoryFactoryName = cms.string('TwoBodyDecayTrajectoryFactory'), + UseBeamSpot = cms.bool(False), + UseHitWithoutDet = cms.bool(True), + UseInvalidHits = cms.bool(True), + UseProjectedHits = cms.bool(True), + UseRefittedState = cms.bool(True) + ) + ) +) + +# Ingredient: SiPixelAliTrackerTrackHitFilter +SiPixelAliTrackerTrackHitFilterHLTHGDimuon = SiPixelAliTrackerTrackHitFilterHLT.clone( + src = 'SiPixelAliTrackRefitterHLTHGDimuon0', + TrackAngleCut = 0.087, + minimumHits = 10 +) + +# Ingredient: SiPixelAliSiPixelAliTrackFitter +SiPixelAliTrackFitterHLTHGDimuon = SiPixelAliTrackFitterHLT.clone( + src = 'SiPixelAliTrackerTrackHitFilterHLTHGDimuon' +) + +SiPixelAliMillePedeFileConverterHLTHGDimuon = cms.EDProducer( + "MillePedeFileConverter", + fileDir = cms.string(SiPixelAliMilleAlignmentProducerHLTHGDimuon.algoConfig.fileDir.value()), + inputBinaryFile = cms.string(SiPixelAliMilleAlignmentProducerHLTHGDimuon.algoConfig.binaryFile.value()), + fileBlobLabel = cms.string('') +) + +seqALCARECOPromptCalibProdSiPixelAliHLTHGDiMu = cms.Sequence( + ALCARECOTkAlZMuMuFilterForSiPixelAliHLT* + LSNumberFilter* + offlineBeamSpot* + SiPixelAliLooseSelectorHLTHGDimuon* + SiPixelAliTrackRefitterHLTHGDimuon0* + SiPixelAliTrackerTrackHitFilterHLTHGDimuon* + SiPixelAliTrackFitterHLTHGDimuon* + SiPixelAliTrackSelectorHLTHGDimuon* + SiPixelAliTrackRefitterHLTHGDimuon1* + SiPixelAliMilleAlignmentProducerHLTHGDimuon* + SiPixelAliMillePedeFileConverterHLTHGDimuon +) diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py new file mode 100644 index 0000000000000..e497a537c975f --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py @@ -0,0 +1,86 @@ +import FWCore.ParameterSet.Config as cms + +# ------------------------------------------------------------------------------ +# configure a filter to run only on the events selected by TkAlMinBias AlcaReco +from HLTrigger.HLTfilters.hltHighLevel_cfi import * +ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG = hltHighLevel.clone( + HLTPaths = ['pathALCARECOTkAlHLTTracks'], + throw = True, ## dont throw on unknown path names, + TriggerResultsTag = "TriggerResults::RECO" +) + +from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHLT_cff import * +from Alignment.CommonAlignmentProducer.LSNumberFilter_cfi import * + +# Ingredient: offlineBeamSpot +from RecoVertex.BeamSpotProducer.BeamSpot_cfi import offlineBeamSpot + +# Ingredient: AlignmentTrackSelector +# track selector for HighPurity tracks +#-- AlignmentTrackSelector +SiPixelAliLooseSelectorHLTHG = SiPixelAliLooseSelectorHLT.clone( + src = 'ALCARECOTkAlHLTTracks', +) + +# track selection for alignment +SiPixelAliTrackSelectorHLTHG = SiPixelAliTrackSelectorHLT.clone( + src = 'SiPixelAliTrackFitterHLTHG' +) + +# Ingredient: SiPixelAliTrackRefitter0 +# refitting +SiPixelAliTrackRefitterHLTHG0 = SiPixelAliTrackRefitterHLT0.clone( + src = 'SiPixelAliLooseSelectorHLTHG' +) +SiPixelAliTrackRefitterHLTHG1 = SiPixelAliTrackRefitterHLTHG0.clone( + src = 'SiPixelAliTrackSelectorHLTHG' +) + +#-- Alignment producer +SiPixelAliMilleAlignmentProducerHLTHG = SiPixelAliMilleAlignmentProducerHLT.clone( + ParameterBuilder = dict( + Selector = cms.PSet( + alignParams = cms.vstring( + "TrackerP1PXBLadder,111111", + "TrackerP1PXECPanel,111111", + ) + ) + ), + tjTkAssociationMapTag = 'SiPixelAliTrackRefitterHLTHG1', + algoConfig = MillePedeAlignmentAlgorithm.clone( + binaryFile = 'milleBinaryHLTHG_0.dat', + treeFile = 'treeFileHLTHG.root', + monitorFile = 'millePedeMonitorHLTHG.root' + ) +) + +# Ingredient: SiPixelAliTrackerTrackHitFilter +SiPixelAliTrackerTrackHitFilterHLTHG = SiPixelAliTrackerTrackHitFilterHLT.clone( + src = 'SiPixelAliTrackRefitterHLTHG0' +) + +# Ingredient: SiPixelAliSiPixelAliTrackFitter +SiPixelAliTrackFitterHLTHG = SiPixelAliTrackFitterHLT.clone( + src = 'SiPixelAliTrackerTrackHitFilterHG' +) + +SiPixelAliMillePedeFileConverterHLTHG = cms.EDProducer( + "MillePedeFileConverter", + fileDir = cms.string(SiPixelAliMilleAlignmentProducerHLTHG.algoConfig.fileDir.value()), + inputBinaryFile = cms.string(SiPixelAliMilleAlignmentProducerHLTHG.algoConfig.binaryFile.value()), + fileBlobLabel = cms.string('') +) + +seqALCARECOPromptCalibProdSiPixelAliHLTHG = cms.Sequence( + ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG* + LSNumberFilter* + offlineBeamSpot* + SiPixelAliLooseSelectorHLTHG* + SiPixelAliTrackRefitterHLTHG0* + SiPixelAliTrackerTrackHitFilterHLTHG* + SiPixelAliTrackFitterHLTHG* + SiPixelAliTrackSelectorHLTHG* + SiPixelAliTrackRefitterHLTHG1* + SiPixelAliMilleAlignmentProducerHLTHG* + SiPixelAliMillePedeFileConverterHLTHG +) diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py new file mode 100644 index 0000000000000..85c4149a514ae --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py @@ -0,0 +1,187 @@ +import FWCore.ParameterSet.Config as cms +# ------------------------------------------------------------------------------ +# configure a filter to run only on the events selected by TkAlMinBias AlcaReco +from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAli_cff import * +from HLTrigger.HLTfilters.hltHighLevel_cfi import * +ALCARECOTkAlMinBiasFilterForSiPixelAliHLT = hltHighLevel.clone( + HLTPaths = ['pathALCARECOTkAlHLTTracks'], # ??? + throw = True, ## dont throw on unknown path names, + TriggerResultsTag = "TriggerResults::RECO" +) + +from Alignment.CommonAlignmentProducer.LSNumberFilter_cfi import * + +# Ingredient: onlineBeamSpot +import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi +onlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone() + +# Ingredient: ALCARECOTkAlMinBiasHLT +from Alignment.CommonAlignmentProducer.ALCARECOTkAlMinBias_cff import ALCARECOTkAlMinBias +ALCARECOTkAlMinBiasHLTTracks = ALCARECOTkAlMinBias.clone( + src = cms.InputTag("hltMergedTracks") +) + +# Ingredient: AlignmentTrackSelector +# track selector for HighPurity tracks +#-- AlignmentTrackSelector +from Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi import AlignmentTrackSelector +SiPixelAliLooseSelectorHLT = AlignmentTrackSelector.clone( + applyBasicCuts = True, + #filter = True, + src = 'ALCARECOTkAlMinBiasHLTTracks', + trackQualities = ["loose"], + pMin = 4., +) + +# track selection for alignment +SiPixelAliTrackSelectorHLT = SiPixelAliTrackSelector.clone( + src = 'SiPixelAliTrackFitterHLT', +) + +# Ingredient: SiPixelAliTrackRefitter0 +# refitting +from RecoTracker.IterativeTracking.InitialStep_cff import * +from RecoTracker.Configuration.RecoTrackerP5_cff import * +from RecoTracker.TrackProducer.TrackRefitter_cfi import * +# In the following use +# TrackRefitter (normal tracks), TrackRefitterP5 (cosmics) or TrackRefitterBHM (beam halo) + +from RecoLocalTracker.SiStripRecHitConverter.StripCPEESProducer_cfi import stripCPEESProducer +hltESPStripCPEfromTrackAngle = stripCPEESProducer.clone( + ComponentType = "StripCPEfromTrackAngle" , + ComponentName = "hltESPStripCPEfromTrackAngle", + parameters = cms.PSet( + mLC_P2 = cms.double(0.3), + mLC_P1 = cms.double(0.618), + mLC_P0 = cms.double(-0.326), +# useLegacyError = cms.bool( True ), # 50ns menu +# maxChgOneMIP = cms.double( -6000.0 ), # 50ns menu + useLegacyError = cms.bool(False) , # 25ns menu + maxChgOneMIP = cms.double(6000.0) , #25ns menu + mTEC_P1 = cms.double( 0.471 ), + mTEC_P0 = cms.double( -1.885 ), + mTOB_P0 = cms.double( -1.026 ), + mTOB_P1 = cms.double( 0.253 ), + mTIB_P0 = cms.double( -0.742 ), + mTIB_P1 = cms.double( 0.202 ), + mTID_P0 = cms.double( -1.427 ), + mTID_P1 = cms.double( 0.433 ) + ) +) + +hltESPPixelCPEGeneric = cms.ESProducer( + "PixelCPEGenericESProducer", + LoadTemplatesFromDB = cms.bool( True ), + Alpha2Order = cms.bool( True ), + ClusterProbComputationFlag = cms.int32( 0 ), + useLAWidthFromDB = cms.bool( False ), + lAOffset = cms.double( 0.0 ), + lAWidthBPix = cms.double( 0.0 ), + lAWidthFPix = cms.double( 0.0 ), + doLorentzFromAlignment = cms.bool( False ), + useLAFromDB = cms.bool( True ), + xerr_barrel_l1 = cms.vdouble( 0.00115, 0.0012, 8.8E-4 ), + yerr_barrel_l1 = cms.vdouble( 0.00375, 0.0023, 0.0025, 0.0025, 0.0023, 0.0023, 0.0021, 0.0021, 0.0024 ), + xerr_barrel_ln = cms.vdouble( 0.00115, 0.0012, 8.8E-4 ), + yerr_barrel_ln = cms.vdouble( 0.00375, 0.0023, 0.0025, 0.0025, 0.0023, 0.0023, 0.0021, 0.0021, 0.0024 ), + xerr_endcap = cms.vdouble( 0.002, 0.002 ), + yerr_endcap = cms.vdouble( 0.0021 ), + xerr_barrel_l1_def = cms.double( 0.0103 ), + yerr_barrel_l1_def = cms.double( 0.0021 ), + xerr_barrel_ln_def = cms.double( 0.0103 ), + yerr_barrel_ln_def = cms.double( 0.0021 ), + xerr_endcap_def = cms.double( 0.002 ), + yerr_endcap_def = cms.double( 7.5E-4 ), + eff_charge_cut_highX = cms.double( 1.0 ), + eff_charge_cut_highY = cms.double( 1.0 ), + eff_charge_cut_lowX = cms.double( 0.0 ), + eff_charge_cut_lowY = cms.double( 0.0 ), + size_cutX = cms.double( 3.0 ), + size_cutY = cms.double( 3.0 ), + EdgeClusterErrorX = cms.double( 50.0 ), + EdgeClusterErrorY = cms.double( 85.0 ), + inflate_errors = cms.bool( False ), + inflate_all_errors_no_trk_angle = cms.bool( False ), + NoTemplateErrorsWhenNoTrkAngles = cms.bool( False ), + UseErrorsFromTemplates = cms.bool( True ), + TruncatePixelCharge = cms.bool( True ), + IrradiationBiasCorrection = cms.bool( True ), + DoCosmics = cms.bool( False ), + isPhase2 = cms.bool( False ), + SmallPitch = cms.bool( False ), + ComponentName = cms.string( "hltESPPixelCPEGeneric" ), + MagneticFieldRecord = cms.ESInputTag( "","" ), + appendToDataLabel = cms.string( "" ) +) + +hltESPTTRHBWithTrackAngle = cms.ESProducer( + "TkTransientTrackingRecHitBuilderESProducer", + ComponentName = cms.string( "hltESPTTRHBWithTrackAngle" ), + ComputeCoarseLocalPositionFromDisk = cms.bool( False ), + StripCPE = cms.string( "hltESPStripCPEfromTrackAngle" ), + PixelCPE = cms.string( "hltESPPixelCPEGeneric" ), + Matcher = cms.string( "StandardMatcher" ), + Phase2StripCPE = cms.string( "" ), + appendToDataLabel = cms.string( "" ) +) + +SiPixelAliTrackRefitterHLT0 = TrackRefitter.clone( + src = 'SiPixelAliLooseSelectorHLT', #'ALCARECOTkAlMinBias'#'ALCARECOTkAlCosmicsCTF0T' #'ALCARECOTkAlMuonIsolated' + NavigationSchool = '', # to avoid filling hit pattern + TTRHBuilder = 'hltESPTTRHBWithTrackAngle' +) + +SiPixelAliTrackRefitterHLT1 = SiPixelAliTrackRefitter0.clone( + src = 'SiPixelAliTrackSelectorHLT' +) + +#-- Alignment producer +from Alignment.MillePedeAlignmentAlgorithm.MillePedeAlignmentAlgorithm_cfi import * +from Alignment.CommonAlignmentProducer.AlignmentProducerAsAnalyzer_cff import AlignmentProducer +SiPixelAliMilleAlignmentProducerHLT = SiPixelAliMilleAlignmentProducer.clone( + tjTkAssociationMapTag = 'SiPixelAliTrackRefitterHLT1', + algoConfig = MillePedeAlignmentAlgorithm.clone( + binaryFile = 'milleBinaryHLT_0.dat', + treeFile = 'treeFileHLT.root', + monitorFile = 'millePedeMonitorHLT.root' + ) +) +# Does anything else of the AlignmentProducer need to be overwritten ??? + + + + +# Ingredient: SiPixelAliTrackerTrackHitFilterHLT +SiPixelAliTrackerTrackHitFilterHLT = SiPixelAliTrackerTrackHitFilter.clone( + src = 'SiPixelAliTrackRefitterHLT0' +) + + +# Ingredient: SiPixelAliTrackFitterHLT +import RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff as fitWithMaterial +SiPixelAliTrackFitterHLT = fitWithMaterial.ctfWithMaterialTracks.clone( + src = 'SiPixelAliTrackerTrackHitFilterHLT', + # TTRHBuilder = 'hltESPTTRHBWithTrackAngle', #should already be default ??? + NavigationSchool = '' +) + +SiPixelAliMillePedeFileConverterHLT = cms.EDProducer( + "MillePedeFileConverter", + fileDir = cms.string(SiPixelAliMilleAlignmentProducerHLT.algoConfig.fileDir.value()), + inputBinaryFile = cms.string(SiPixelAliMilleAlignmentProducerHLT.algoConfig.binaryFile.value()), + fileBlobLabel = cms.string(''), +) + +seqALCARECOPromptCalibProdSiPixelAliHLT = cms.Sequence( + ALCARECOTkAlMinBiasFilterForSiPixelAliHLT* + LSNumberFilter* + onlineBeamSpot* + SiPixelAliLooseSelectorHLT* + SiPixelAliTrackRefitterHLT0* + SiPixelAliTrackerTrackHitFilterHLT* + SiPixelAliTrackFitterHLT* + SiPixelAliTrackSelectorHLT* + SiPixelAliTrackRefitterHLT1* + SiPixelAliMilleAlignmentProducerHLT* + SiPixelAliMillePedeFileConverterHLT +) diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_Output_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_Output_cff.py new file mode 100644 index 0000000000000..b05db2362f77e --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_Output_cff.py @@ -0,0 +1,23 @@ +import FWCore.ParameterSet.Config as cms + +# AlCaReco for track based alignment using ZMuMu events +OutALCARECOTkAlHLTTracksZMuMu_noDrop = cms.PSet( + SelectEvents = cms.untracked.PSet( + SelectEvents = cms.vstring('pathALCARECOTkAlHLTTracksZMuMu') + ), + outputCommands = cms.untracked.vstring( + 'keep recoTracks_ALCARECOTkAlHLTTracksZMuMu_*_*', + 'keep recoTrackExtras_ALCARECOTkAlHLTTracksZMuMu_*_*', + 'keep TrackingRecHitsOwned_ALCARECOTkAlHLTTracksZMuMu_*_*', + 'keep SiPixelClusteredmNewDetSetVector_ALCARECOTkAlHLTTracksZMuMu_*_*', + 'keep SiStripClusteredmNewDetSetVector_ALCARECOTkAlHLTTracksZMuMu_*_*', + 'keep L1AcceptBunchCrossings_*_*_*', + 'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*', + 'keep *_TriggerResults_*_*', + 'keep DcsStatuss_scalersRawToDigi_*_*', + 'keep *_hltVerticesPFFilter_*_*') +) + +OutALCARECOTkAlHLTTracksZMuMu = OutALCARECOTkAlHLTTracksZMuMu_noDrop.clone() +OutALCARECOTkAlHLTTracksZMuMu.outputCommands.insert(0, "drop *") + diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_cff.py new file mode 100644 index 0000000000000..dfc44efef45fc --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_cff.py @@ -0,0 +1,60 @@ +import FWCore.ParameterSet.Config as cms + +import HLTrigger.HLTfilters.hltHighLevel_cfi +# AlCaReco for track based alignment using ZMuMu events +ALCARECOTkAlHLTTracksZMuMuHLT = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone( + andOr = True, ## choose logical OR between Triggerbits + # eventSetupPathsKey = 'TkAlZMuMu', + HLTPaths = ['HLT_*Mu*'], + throw = False # tolerate triggers stated above, but not available + ) + +# DCS partitions +# "EBp","EBm","EEp","EEm","HBHEa","HBHEb","HBHEc","HF","HO","RPC" +# "DT0","DTp","DTm","CSCp","CSCm","CASTOR","TIBTID","TOB","TECp","TECm" +# "BPIX","FPIX","ESp","ESm" +import DPGAnalysis.Skims.skim_detstatus_cfi +ALCARECOTkAlHLTTracksZMuMuDCSFilter = DPGAnalysis.Skims.skim_detstatus_cfi.dcsstatus.clone( + DetectorType = cms.vstring('TIBTID','TOB','TECp','TECm','BPIX','FPIX', + 'DT0','DTp','DTm','CSCp','CSCm'), + ApplyFilter = cms.bool(True), + AndOr = cms.bool(True), + DebugOn = cms.untracked.bool(False) +) + +import Alignment.CommonAlignmentProducer.TkAlMuonSelectors_cfi +ALCARECOTkAlHLTTracksZMuMuGoodMuons = Alignment.CommonAlignmentProducer.TkAlMuonSelectors_cfi.TkAlGoodIdMuonSelector.clone( + # src = cms.InputTag("hltPFMuonMerging") # TODO type cast to muon ??? +) +ALCARECOTkAlHLTTracksZMuMuRelCombIsoMuons = Alignment.CommonAlignmentProducer.TkAlMuonSelectors_cfi.TkAlRelCombIsoMuonSelector.clone( + src = 'ALCARECOTkAlHLTTracksZMuMuGoodMuons' +) + +import Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi +ALCARECOTkAlHLTTracksZMuMu = Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi.AlignmentTrackSelector.clone() +ALCARECOTkAlHLTTracksZMuMu.src = cms.InputTag("hltMergedTracks") +ALCARECOTkAlHLTTracksZMuMu.filter = True ##do not store empty events + +ALCARECOTkAlHLTTracksZMuMu.applyBasicCuts = True +ALCARECOTkAlHLTTracksZMuMu.ptMin = 15.0 ##GeV +ALCARECOTkAlHLTTracksZMuMu.etaMin = -3.5 +ALCARECOTkAlHLTTracksZMuMu.etaMax = 3.5 +ALCARECOTkAlHLTTracksZMuMu.nHitMin = 0 + +ALCARECOTkAlHLTTracksZMuMu.GlobalSelector.muonSource = 'ALCARECOTkAlHLTTracksZMuMuRelCombIsoMuons' +# Isolation is shifted to the muon preselection, and then applied intrinsically if applyGlobalMuonFilter = True +ALCARECOTkAlHLTTracksZMuMu.GlobalSelector.applyIsolationtest = False +ALCARECOTkAlHLTTracksZMuMu.GlobalSelector.applyGlobalMuonFilter = True + +ALCARECOTkAlHLTTracksZMuMu.TwoBodyDecaySelector.applyMassrangeFilter = True +ALCARECOTkAlHLTTracksZMuMu.TwoBodyDecaySelector.minXMass = 65.0 ##GeV +ALCARECOTkAlHLTTracksZMuMu.TwoBodyDecaySelector.maxXMass = 115.0 ##GeV +ALCARECOTkAlHLTTracksZMuMu.TwoBodyDecaySelector.daughterMass = 0.105 ##GeV (Muons) +ALCARECOTkAlHLTTracksZMuMu.TwoBodyDecaySelector.applyChargeFilter = True +ALCARECOTkAlHLTTracksZMuMu.TwoBodyDecaySelector.charge = 0 +ALCARECOTkAlHLTTracksZMuMu.TwoBodyDecaySelector.applyAcoplanarityFilter = False +ALCARECOTkAlHLTTracksZMuMu.TwoBodyDecaySelector.numberOfCandidates = 1 + +seqALCARECOTkAlHLTTracksZMuMu = cms.Sequence(ALCARECOTkAlHLTTracksZMuMuHLT+ALCARECOTkAlHLTTracksZMuMuDCSFilter+ALCARECOTkAlHLTTracksZMuMuGoodMuons+ALCARECOTkAlHLTTracksZMuMuRelCombIsoMuons+ALCARECOTkAlHLTTracksZMuMu) + + diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_Output_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_Output_cff.py new file mode 100644 index 0000000000000..e086ff6c9d246 --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_Output_cff.py @@ -0,0 +1,23 @@ +import FWCore.ParameterSet.Config as cms + +# AlCaReco for track based alignment using MinBias events +OutALCARECOTkAlHLTTracks_noDrop = cms.PSet( + SelectEvents = cms.untracked.PSet( + SelectEvents = cms.vstring('pathALCARECOTkAlHLTTracks') + ), + outputCommands = cms.untracked.vstring( + 'keep recoTracks_ALCARECOTkAlHLTTracks_*_*', + 'keep recoTrackExtras_ALCARECOTkAlHLTTracks_*_*', + 'keep TrackingRecHitsOwned_ALCARECOTkAlHLTTracks_*_*', + 'keep SiPixelClusteredmNewDetSetVector_ALCARECOTkAlHLTTracks_*_*', + 'keep SiStripClusteredmNewDetSetVector_ALCARECOTkAlHLTTracks_*_*', + 'keep L1AcceptBunchCrossings_*_*_*', + 'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*', + 'keep *_TriggerResults_*_*', + 'keep DcsStatuss_scalersRawToDigi_*_*', + 'keep *_hltVerticesPFFilter_*_*', + 'keep *_onlineBeamSpot_*_*') +) + +OutALCARECOTkAlHLTTracks = OutALCARECOTkAlHLTTracks_noDrop.clone() +OutALCARECOTkAlHLTTracks.outputCommands.insert(0, "drop *") diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_cff.py new file mode 100644 index 0000000000000..9bebbf3cb5dfd --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_cff.py @@ -0,0 +1,43 @@ +# AlCaReco for track based alignment using HLT tracks +import FWCore.ParameterSet.Config as cms + +import HLTrigger.HLTfilters.hltHighLevel_cfi + +ALCARECOTkAlHLTTracksHLT = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone( + andOr = True, ## choose logical OR between Triggerbits + # eventSetupPathsKey = 'TkAlMinBias', + HLTPaths = ['HLT_*'], + throw = False # tolerate triggers stated above, but not available + ) + +# DCS partitions +# "EBp","EBm","EEp","EEm","HBHEa","HBHEb","HBHEc","HF","HO","RPC" +# "DT0","DTp","DTm","CSCp","CSCm","CASTOR","TIBTID","TOB","TECp","TECm" +# "BPIX","FPIX","ESp","ESm" +import DPGAnalysis.Skims.skim_detstatus_cfi +ALCARECOTkAlHLTTracksDCSFilter = DPGAnalysis.Skims.skim_detstatus_cfi.dcsstatus.clone( + DetectorType = cms.vstring('TIBTID','TOB','TECp','TECm','BPIX','FPIX'), + ApplyFilter = cms.bool(True), + AndOr = cms.bool(True), + DebugOn = cms.untracked.bool(False) +) + +import Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi +ALCARECOTkAlHLTTracks = Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi.AlignmentTrackSelector.clone() +ALCARECOTkAlHLTTracks.src = cms.InputTag("hltMergedTracks") # run on hltMergedTracks instead of generalTracks +ALCARECOTkAlHLTTracks.filter = True ##do not store empty events + +ALCARECOTkAlHLTTracks.applyBasicCuts = True +ALCARECOTkAlHLTTracks.ptMin = 0.65 ##GeV +ALCARECOTkAlHLTTracks.pMin = 1.5 ##GeV + +ALCARECOTkAlHLTTracks.etaMin = -3.5 +ALCARECOTkAlHLTTracks.etaMax = 3.5 +ALCARECOTkAlHLTTracks.nHitMin = 7 ## at least 7 hits required +ALCARECOTkAlHLTTracks.GlobalSelector.applyIsolationtest = False +ALCARECOTkAlHLTTracks.GlobalSelector.applyGlobalMuonFilter = False +ALCARECOTkAlHLTTracks.TwoBodyDecaySelector.applyMassrangeFilter = False +ALCARECOTkAlHLTTracks.TwoBodyDecaySelector.applyChargeFilter = False +ALCARECOTkAlHLTTracks.TwoBodyDecaySelector.applyAcoplanarityFilter = False + +seqALCARECOTkAlHLTTracks = cms.Sequence(ALCARECOTkAlHLTTracksHLT+ALCARECOTkAlHLTTracksDCSFilter+ALCARECOTkAlHLTTracks) diff --git a/Alignment/CommonAlignmentProducer/python/AlcaSiPixelAliHarvesterHLTHGCombined_cff.py b/Alignment/CommonAlignmentProducer/python/AlcaSiPixelAliHarvesterHLTHGCombined_cff.py new file mode 100644 index 0000000000000..c1bf104f1aad9 --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/AlcaSiPixelAliHarvesterHLTHGCombined_cff.py @@ -0,0 +1,93 @@ +import FWCore.ParameterSet.Config as cms + +SiPixelAliMilleFileExtractorHLTHGMinBias = cms.EDAnalyzer("MillePedeFileExtractor", + fileBlobInputTag = cms.InputTag("SiPixelAliMillePedeFileConverterHLTHG",''), + fileDir = cms.string('HLTHGCombinedAlignment/'), + # File names the Extractor will use to write the fileblobs in the root + # file as real binary files to disk, so that the pede step can read them. + # This includes the formatting directive "%04d" which will be expanded to + # 0000, 0001, 0002,... + outputBinaryFile = cms.string('pedeBinaryHLTHGMinBias%04d.dat')) + +SiPixelAliMilleFileExtractorHLTHGZMuMu = cms.EDAnalyzer("MillePedeFileExtractor", + fileBlobInputTag = cms.InputTag("SiPixelAliMillePedeFileConverterHLTHGDimuon",''), + fileDir = cms.string('HLTHGCombinedAlignment/'), + # File names the Extractor will use to write the fileblobs in the root + # file as real binary files to disk, so that the pede step can read them. + # This includes the formatting directive "%04d" which will be expanded to + # 0000, 0001, 0002,... + outputBinaryFile = cms.string('pedeBinaryHLTHGDiMuon%04d.dat')) + +from Alignment.MillePedeAlignmentAlgorithm.MillePedeAlignmentAlgorithm_cfi import * +from Alignment.CommonAlignmentProducer.AlignmentProducerAsAnalyzer_cff import AlignmentProducer +from Alignment.MillePedeAlignmentAlgorithm.MillePedeDQMModule_cff import * + +SiPixelAliPedeAlignmentProducerHLTHGCombined = AlignmentProducer.clone( + ParameterBuilder = dict( + Selector = cms.PSet( + alignParams = cms.vstring( + "TrackerP1PXBLadder,111111", + "TrackerP1PXECPanel,111111", + ) + ) + ), + doMisalignmentScenario = False, + checkDbAlignmentValidity = False, + applyDbAlignment = True, + tjTkAssociationMapTag = 'TrackRefitter2', + saveToDB = True, + trackerAlignmentRcdName = "TrackerAlignmentHLTHGCombinedRcd" +) + +SiPixelAliPedeAlignmentProducerHLTHGCombined.algoConfig = MillePedeAlignmentAlgorithm.clone( + mode = 'pede', + runAtPCL = True, + #mergeBinaryFiles = [SiPixelAliMilleFileExtractorHGMinBias.outputBinaryFile.value()], + #mergeBinaryFiles = [SiPixelAliMilleFileExtractorHGZMuMu.outputBinaryFile.value()], + mergeBinaryFiles = ['pedeBinaryHLTHGMinBias%04d.dat','pedeBinaryHLTHGDiMuon%04d.dat -- 10.0'], + binaryFile = '', + TrajectoryFactory = cms.PSet(BrokenLinesTrajectoryFactory), + minNumHits = 10, + fileDir = 'HLTHGCombinedAlignment/', + pedeSteerer = dict( + pedeCommand = 'pede', + method = 'inversion 5 0.8', + options = [ + #'regularisation 1.0 0.05', # non-stated pre-sigma 50 mrad or 500 mum + 'entries 500', + 'chisqcut 30.0 4.5', + 'threads 1 1', + 'closeandreopen', + 'skipemptycons' + #'outlierdownweighting 3','dwfractioncut 0.1' + #'outlierdownweighting 5','dwfractioncut 0.2' + ], + fileDir = 'HLTHGCombinedAlignment/', + runDir = 'HLTHGCombinedAlignment/', + steerFile = 'pedeSteerHGCombined', + pedeDump = 'pedeHGCombined.dump' + ), + pedeReader = dict( + fileDir = 'HLTHGCombinedAlignment/' + ), + MillePedeFileReader = dict( + fileDir = "HLTHGCombinedAlignment/", + isHG = True + ) +) + +SiPixelAliDQMModuleHLTHGCombined = SiPixelAliDQMModule.clone() +SiPixelAliDQMModuleHLTHGCombined.outputFolder = "AlCaReco/SiPixelAliHLTHGCombined" +SiPixelAliDQMModuleHLTHGCombined.MillePedeFileReader.fileDir = "HLTHGCombinedAlignment/" +SiPixelAliDQMModuleHLTHGCombined.MillePedeFileReader.isHG = True + +from DQMServices.Core.DQMEDHarvester import DQMEDHarvester +dqmEnvSiPixelAliHLTHGCombined = DQMEDHarvester('DQMHarvestingMetadata', + subSystemFolder = cms.untracked.string('AlCaReco')) + +ALCAHARVESTSiPixelAliHLTHGCombined = cms.Sequence( + SiPixelAliMilleFileExtractorHLTHGMinBias* + SiPixelAliMilleFileExtractorHLTHGZMuMu* + SiPixelAliPedeAlignmentProducerHLTHGCombined* + SiPixelAliDQMModuleHLTHGCombined* + dqmEnvSiPixelAliHLTHGCombined) diff --git a/Alignment/CommonAlignmentProducer/test/test-PromptCalibProdSiPixelAliHLTHGC.sh b/Alignment/CommonAlignmentProducer/test/test-PromptCalibProdSiPixelAliHLTHGC.sh new file mode 100755 index 0000000000000..f9bed3ebb2aac --- /dev/null +++ b/Alignment/CommonAlignmentProducer/test/test-PromptCalibProdSiPixelAliHLTHGC.sh @@ -0,0 +1,60 @@ +#!/bin/bash -ex + +cmsDriver.py testReAlCaHLT \ + -s ALCA:TkAlHLTTracks+TkAlHLTTracksZMuMu \ + --conditions 140X_dataRun3_Express_v3 \ + --scenario pp \ + --data \ + --era Run3_2024 \ + --datatier ALCARECO \ + --eventcontent ALCARECO \ + --processName=ReAlCa \ + -n 100000 \ + --dasquery='file dataset=/HLTMonitor/Run2024I-Express-v2/FEVTHLTALL site=T2_CH_CERN' \ + --nThreads 4 >& ReAlCa.log + +cmsDriver.py testReAlCaHLTHGComb \ + -s ALCA:PromptCalibProdSiPixelAliHLTHGC \ + --conditions 140X_dataRun3_Express_v3 \ + --scenario pp \ + --data \ + --era Run3_2024 \ + --datatier ALCARECO \ + --eventcontent ALCARECO \ + --processName=ReAlCaHLTHGC \ + -n -1 \ + --filein file:TkAlHLTTracks.root \ + --customise Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.doNotFilterLS \ + --customise_commands='process.ALCARECOTkAlZMuMuFilterForSiPixelAliHLT.throw = False;process.ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG.TriggerResultsTag = "TriggerResults::ReAlCa"' \ + --triggerResultsProcess ReAlCa \ + --nThreads 4 >& HLTHGComb_1.log + +rm -rf *.dat +mv PromptCalibProdSiPixelAliHLTHGC.root PromptCalibProdSiPixelAliHLTHGC_0.root + +cmsDriver.py testReAlCaHLTHGComb \ + -s ALCA:PromptCalibProdSiPixelAliHLTHGC \ + --conditions 140X_dataRun3_Express_v3 \ + --scenario pp \ + --data \ + --era Run3_2024 \ + --datatier ALCARECO \ + --eventcontent ALCARECO \ + --processName=ReAlCaHLTHGC \ + -n -1 \ + --filein file:TkAlHLTTracksZMuMu.root \ + --customise Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.doNotFilterLS \ + --customise_commands='process.ALCARECOTkAlZMuMuFilterForSiPixelAliHLT.TriggerResultsTag = "TriggerResults::ReAlCa";process.ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG.throw = False' \ + --triggerResultsProcess ReAlCa \ + --nThreads 4 >& HLTHGComb_2.log + +mv PromptCalibProdSiPixelAliHLTHGC.root PromptCalibProdSiPixelAliHLTHGC_1.root + +cmsDriver.py stepHarvest \ + -s ALCAHARVEST:SiPixelAliHLTHGCombined \ + --conditions 140X_dataRun3_Express_v3 \ + --scenario pp \ + --data \ + --era Run3_2024 \ + -n -1 \ + --filein file:PromptCalibProdSiPixelAliHLTHGC_0.root,file:PromptCalibProdSiPixelAliHLTHGC_1.root >& Harvesting.log diff --git a/Configuration/AlCa/python/autoAlca.py b/Configuration/AlCa/python/autoAlca.py index 3e5441087ffea..599bfc1a99a84 100644 --- a/Configuration/AlCa/python/autoAlca.py +++ b/Configuration/AlCa/python/autoAlca.py @@ -16,6 +16,7 @@ "ExpressCosmics" : "SiStripPCLHistos+SiStripCalZeroBias+TkAlCosmics0T+SiPixelCalZeroBias+SiPixelCalCosmics+SiStripCalCosmics", "HcalNZS" : "HcalCalMinBias", "HLTPhysics" : "TkAlMinBias+TkAlV0s", + "HLTMonitor" : "TkAlHLTTracks+TkAlHLTTracksZMuMu", "JetHT" : "HcalCalIsoTrkProducerFilter+TkAlJetHT", "JetMET" : "HcalCalIsoTrkProducerFilter+TkAlJetHT+HcalCalNoise", "MinimumBias" : "SiStripCalZeroBias+SiStripCalMinBias+TkAlMinBias", @@ -63,6 +64,7 @@ def buildList(pdList, matrix): 'PromptCalibProdSiPixelAli', # AlignmentProducerAsAnalyzer, MillePedeFileConverter 'PromptCalibProdSiPixelAliHG', # AlignmentProducerAsAnalyzer, MillePedeFileConverter 'PromptCalibProdSiPixelAliHGComb', # AlignmentProducerAsAnalyzer, MillePedeFileConverter + 'PromptCalibProdSiPixelAliHLTHGC', # AlignmentProducerAsAnalyzer, MillePedeFileConverter 'PromptCalibProdBeamSpotHP', # AlcaBeamSpotProducer 'PromptCalibProdBeamSpotHPLowPU', # AlcaBeamSpotProducer ] diff --git a/Configuration/AlCa/python/autoPCL.py b/Configuration/AlCa/python/autoPCL.py index b212d5494c1a9..382330f33dd8f 100644 --- a/Configuration/AlCa/python/autoPCL.py +++ b/Configuration/AlCa/python/autoPCL.py @@ -13,6 +13,7 @@ 'PromptCalibProdSiPixelAli' : 'SiPixelAli', 'PromptCalibProdSiPixelAliHG' : 'SiPixelAliHG', 'PromptCalibProdSiPixelAliHGComb': 'SiPixelAliHGCombined', + 'PromptCalibProdSiPixelAliHLTHGC': 'SiPixelAliHLTHGCombined', 'PromptCalibProdSiPixel' : 'SiPixelQuality', 'PromptCalibProdSiPixelLA' : 'SiPixelLA', 'PromptCalibProdSiPixelLAMCS' : 'SiPixelLAMCS', diff --git a/Configuration/EventContent/python/AlCaRecoOutput_cff.py b/Configuration/EventContent/python/AlCaRecoOutput_cff.py index 4f1eaa6cff3dc..9cfeb2141aa34 100644 --- a/Configuration/EventContent/python/AlCaRecoOutput_cff.py +++ b/Configuration/EventContent/python/AlCaRecoOutput_cff.py @@ -43,6 +43,9 @@ from Alignment.CommonAlignmentProducer.ALCARECOTkAlJetHT_Output_cff import * # AlCaReco for track based alignment using V0s from Alignment.CommonAlignmentProducer.ALCARECOTkAlV0s_Output_cff import * +# AlCaReco for track based alignment using HLT tracks +from Alignment.CommonAlignmentProducer.ALCARECOTkAlHLTTracks_Output_cff import * +from Alignment.CommonAlignmentProducer.ALCARECOTkAlHLTTracksZMuMu_Output_cff import * # AlCaReco for pixel calibration using muons from Calibration.TkAlCaRecoProducers.ALCARECOSiPixelCalSingleMuon_Output_cff import * @@ -173,6 +176,7 @@ from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAli_Output_cff import * from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHG_Output_cff import * from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHGCombined_Output_cff import * +from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHLTHGCombined_Output_cff import * from CalibTracker.SiPixelQuality.ALCARECOPromptCalibProdSiPixel_Output_cff import * diff --git a/Configuration/StandardSequences/python/AlCaHarvesting_cff.py b/Configuration/StandardSequences/python/AlCaHarvesting_cff.py index a183a262981ac..b802495cb9265 100644 --- a/Configuration/StandardSequences/python/AlCaHarvesting_cff.py +++ b/Configuration/StandardSequences/python/AlCaHarvesting_cff.py @@ -12,6 +12,7 @@ from Alignment.CommonAlignmentProducer.AlcaSiPixelAliHarvester_cff import * from Alignment.CommonAlignmentProducer.AlcaSiPixelAliHarvesterHG_cff import * from Alignment.CommonAlignmentProducer.AlcaSiPixelAliHarvesterHGCombined_cff import * +from Alignment.CommonAlignmentProducer.AlcaSiPixelAliHarvesterHLTHGCombined_cff import * from Calibration.EcalCalibAlgos.AlcaEcalPedestalsHarvester_cff import * from Calibration.LumiAlCaRecoProducers.AlcaLumiPCCHarvester_cff import * from CalibTracker.SiPixelQuality.SiPixelStatusHarvester_cfi import * @@ -196,6 +197,15 @@ tag = cms.string('SiPixelAliHGCombined_pcl'), timetype = cms.untracked.string('runnumber') ) +# -------------------------------------------------------------------------------------- +# SiPixel Alignment HG combined for HLT Calibration +ALCAHARVESTSiPixelAliHLTHGCombined_metadata = cms.PSet(record = cms.untracked.string('TrackerAlignmentHLTHGCombinedRcd')) + +ALCAHARVESTSiPixelAliHLTHGCombined_dbOutput = cms.PSet(record = cms.string('TrackerAlignmentHLTHGCombinedRcd'), + tag = cms.string('SiPixelAliHLTHGCombined_pcl'), + timetype = cms.untracked.string('runnumber') + ) + # -------------------------------------------------------------------------------------- # SiPixel Lorentz Angle @@ -307,6 +317,7 @@ SiPixelAli = cms.Path(ALCAHARVESTSiPixelAli) SiPixelAliHG = cms.Path(ALCAHARVESTSiPixelAliHG) SiPixelAliHGCombined = cms.Path(ALCAHARVESTSiPixelAliHGCombined) +SiPixelAliHLTHGCombined = cms.Path(ALCAHARVESTSiPixelAliHLTHGCombined) SiPixelLA = cms.Path(ALCAHARVESTSiPixelLorentzAngle) SiPixelLAMCS = cms.Path(ALCAHARVESTSiPixelLorentzAngleMCS) EcalPedestals = cms.Path(ALCAHARVESTEcalPedestals) diff --git a/Configuration/StandardSequences/python/AlCaRecoStreams_cff.py b/Configuration/StandardSequences/python/AlCaRecoStreams_cff.py index 7d43cdfd35c02..5c28d86f90e3c 100644 --- a/Configuration/StandardSequences/python/AlCaRecoStreams_cff.py +++ b/Configuration/StandardSequences/python/AlCaRecoStreams_cff.py @@ -35,6 +35,9 @@ from Alignment.CommonAlignmentProducer.ALCARECOTkAlJetHT_cff import * # AlCaReco for track based alignment using V0s from Alignment.CommonAlignmentProducer.ALCARECOTkAlV0s_cff import * +# AlCaReco for track based alignment using HLT tracks +from Alignment.CommonAlignmentProducer.ALCARECOTkAlHLTTracks_cff import * +from Alignment.CommonAlignmentProducer.ALCARECOTkAlHLTTracksZMuMu_cff import * ############################################################### # Tracker Calibration @@ -169,6 +172,8 @@ from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAli_cff import * from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHG_cff import * from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHGDiMuon_cff import * +from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHLTHG_cff import * +from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff import * from CalibTracker.SiPixelQuality.ALCARECOPromptCalibProdSiPixel_cff import * @@ -201,6 +206,8 @@ pathALCARECOTkAlJetHT = cms.Path(seqALCARECOTkAlJetHT*ALCARECOTkAlJetHTDQM) pathALCARECOTkAlK0s = cms.Path(seqALCARECOTkAlK0s*ALCARECOTkAlKShortTracksDQM) pathALCARECOTkAlLambdas = cms.Path(seqALCARECOTkAlLambdas*ALCARECOTkAlLambdaTracksDQM) +pathALCARECOTkAlHLTTracks = cms.Path(seqALCARECOTkAlHLTTracks) +pathALCARECOTkAlHLTTracksZMuMu = cms.Path(seqALCARECOTkAlHLTTracksZMuMu) pathALCARECOSiPixelCalSingleMuon = cms.Path(seqALCARECOSiPixelCalSingleMuon) pathALCARECOSiPixelCalSingleMuonLoose = cms.Path(seqALCARECOSiPixelCalSingleMuonLoose) pathALCARECOSiPixelCalSingleMuonTight = cms.Path(seqALCARECOSiPixelCalSingleMuonTight * ALCARECOSiPixelCalSingleMuonTightDQM) @@ -297,6 +304,8 @@ pathALCARECOPromptCalibProdSiPixelAliHG = cms.Path(seqALCARECOPromptCalibProdSiPixelAliHG) pathALCARECOPromptCalibProdSiPixelAliHGMinBias = cms.Path(seqALCARECOPromptCalibProdSiPixelAliHG) pathALCARECOPromptCalibProdSiPixelAliHGDiMu = cms.Path(seqALCARECOPromptCalibProdSiPixelAliHGDiMu) +pathALCARECOPromptCalibProdSiPixelAliHLTHGMinBias = cms.Path(seqALCARECOPromptCalibProdSiPixelAliHLTHG) +pathALCARECOPromptCalibProdSiPixelAliHLTHGDiMu = cms.Path(seqALCARECOPromptCalibProdSiPixelAliHLTHGDiMu) pathALCARECOPromptCalibProdSiPixel = cms.Path(seqALCARECOPromptCalibProdSiPixel) pathALCARECOPromptCalibProdEcalPedestals = cms.Path(seqALCARECOPromptCalibProdEcalPedestals) pathALCARECOPromptCalibProdLumiPCC = cms.Path(seqALCARECOPromptCalibProdLumiPCC) @@ -336,6 +345,15 @@ dataTier = cms.untracked.string('ALCARECO') ) +ALCARECOStreamTkAlHLTTracks = cms.FilteredStream( + responsible = 'Marco Musich', + name = 'TkAlHLTTracks', + paths = (pathALCARECOTkAlHLTTracks), + content = OutALCARECOTkAlHLTTracks.outputCommands, + selectEvents = OutALCARECOTkAlHLTTracks.SelectEvents, + dataTier = cms.untracked.string('ALCARECO') + ) + ALCARECOStreamTkAlJetHT = cms.FilteredStream( responsible = 'Marco Musich', name = 'TkAlJetHT', @@ -372,6 +390,16 @@ dataTier = cms.untracked.string('ALCARECO') ) +ALCARECOStreamTkAlHLTTracksZMuMu = cms.FilteredStream( + responsible = 'Marco Musich', + name = 'TkAlHLTTracksZMuMu', + paths = (pathALCARECOTkAlHLTTracksZMuMu), + content = OutALCARECOTkAlHLTTracksZMuMu.outputCommands, + selectEvents = OutALCARECOTkAlHLTTracksZMuMu.SelectEvents, + dataTier = cms.untracked.string('ALCARECO') + ) + + ALCARECOStreamTkAlDiMuonAndVertex = cms.FilteredStream( responsible = 'Marco Musich', name = 'TkAlDiMuonAndVertex', @@ -1092,6 +1120,15 @@ dataTier = cms.untracked.string('ALCARECO') ) +ALCARECOStreamPromptCalibProdSiPixelAliHLTHGC = cms.FilteredStream( + responsible = 'Philipp Nattland', + name = 'PromptCalibProdSiPixelAliHLTHGC', + paths = (pathALCARECOPromptCalibProdSiPixelAliHLTHGMinBias,pathALCARECOPromptCalibProdSiPixelAliHLTHGDiMu), + content = OutALCARECOPromptCalibProdSiPixelAliHLTHGC.outputCommands, + selectEvents = OutALCARECOPromptCalibProdSiPixelAliHLTHGC.SelectEvents, + dataTier = cms.untracked.string('ALCARECO') + ) + ALCARECOStreamSiStripPCLHistos = cms.FilteredStream( responsible = 'Gianluca Cerminara', name = 'SiStripPCLHistos', From adc079568c2be627b596424b1f9f6e34bf04d3af Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 21 Nov 2024 14:23:44 +0100 Subject: [PATCH 067/418] fix collections and usage of pixel flag in ALCARECOPromptCalibProdSiPixelAliHLTHG*_cff --- .../ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py | 5 +++-- .../python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py index 05a32ca629905..bd0f2fb7abf43 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py @@ -109,12 +109,13 @@ SiPixelAliTrackerTrackHitFilterHLTHGDimuon = SiPixelAliTrackerTrackHitFilterHLT.clone( src = 'SiPixelAliTrackRefitterHLTHGDimuon0', TrackAngleCut = 0.087, - minimumHits = 10 + minimumHits = 10, + usePixelQualityFlag = False ) # Ingredient: SiPixelAliSiPixelAliTrackFitter SiPixelAliTrackFitterHLTHGDimuon = SiPixelAliTrackFitterHLT.clone( - src = 'SiPixelAliTrackerTrackHitFilterHLTHGDimuon' + src = 'SiPixelAliTrackerTrackHitFilterHLTHGDimuon' ) SiPixelAliMillePedeFileConverterHLTHGDimuon = cms.EDProducer( diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py index e497a537c975f..ffa4971802c92 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py @@ -56,12 +56,13 @@ # Ingredient: SiPixelAliTrackerTrackHitFilter SiPixelAliTrackerTrackHitFilterHLTHG = SiPixelAliTrackerTrackHitFilterHLT.clone( - src = 'SiPixelAliTrackRefitterHLTHG0' + src = 'SiPixelAliTrackRefitterHLTHG0', + usePixelQualityFlag = False ) # Ingredient: SiPixelAliSiPixelAliTrackFitter SiPixelAliTrackFitterHLTHG = SiPixelAliTrackFitterHLT.clone( - src = 'SiPixelAliTrackerTrackHitFilterHG' + src = 'SiPixelAliTrackerTrackHitFilterHLTHG' ) SiPixelAliMillePedeFileConverterHLTHG = cms.EDProducer( From 3cb9bd70356ec93c8fad5aa537199583c8723984 Mon Sep 17 00:00:00 2001 From: kdeleo Date: Thu, 21 Nov 2024 14:32:09 +0100 Subject: [PATCH 068/418] code-checks --- .../TimingIDTools/plugins/MVATrainingNtuple.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc index e7521ca1355a0..0ee37dde7ca88 100644 --- a/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc +++ b/RecoMTD/TimingIDTools/plugins/MVATrainingNtuple.cc @@ -27,7 +27,7 @@ class MVATrainingNtuple : public edm::one::EDAnalyzer // auxiliary class holding simulated vertices (originally from Primary4DVertexValidation) struct simPrimaryVertex { - simPrimaryVertex(double x1, double y1, double z1, double t1, int k1) : x(x1), y(y1), z(z1), t(t1), key(k1){}; + simPrimaryVertex(double x1, double y1, double z1, double t1, int k1) : x(x1), y(y1), z(z1), t(t1), key(k1) {}; double x, y, z, t; int key; int eventId; @@ -719,9 +719,9 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& } } else { continue; - } // mtd hit matched to btl reco cluster - } // loop through BTL reco clusters - } // loop thorugh set of BTL reco clusters + } // mtd hit matched to btl reco cluster + } // loop through BTL reco clusters + } // loop thorugh set of BTL reco clusters } else { // Should be an ETL cluster for (const auto& DetSetCluETL : *etlRecCluHandle) { // ETL check if (good_association) @@ -749,14 +749,14 @@ void MVATrainingNtuple::analyze(const edm::Event& iEvent, const edm::EventSetup& } else { continue; } // mtd hit matched to etl reco cluster - } // loop through ETL reco clusters - } // loop thorugh set of ETL reco clusters - } // BTL/ETL cluster search split + } // loop through ETL reco clusters + } // loop thorugh set of ETL reco clusters + } // BTL/ETL cluster search split } else { // trackingRecHit is a hit in MTD continue; } // Hits in MTD - } // Loop through trackHits + } // Loop through trackHits } } // TP link to MTDsimCluster From 550e9be8bdbc181a9f66297eba711e69ee16d883 Mon Sep 17 00:00:00 2001 From: Martina Date: Thu, 21 Nov 2024 14:52:13 +0100 Subject: [PATCH 069/418] code-format --- RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc index 1a0292195b83a..5c13f5a5a6695 100644 --- a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc +++ b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc @@ -620,6 +620,8 @@ class TrackExtenderWithMTDT : public edm::stream::EDProducer<> { const bool useSimVertex_; const float dzCut_; const float bsTimeSpread_; + + static constexpr float trackMaxBtlEta_ = 1.5; }; template @@ -1010,8 +1012,8 @@ void TrackExtenderWithMTDT::produce(edm::Event& ev, const edm:: mBTL.hit ? (float)(*track).outerRadius() : (float)(*track).outerZ()); // save R of the outermost hit for BTL, z for ETL. } else { - outermostHitPosition.push_back(std::abs(track->eta()) < 1.48 ? (float)(*track).outerRadius() - : (float)(*track).outerZ()); + outermostHitPosition.push_back(std::abs(track->eta()) < trackMaxBtlEta_ ? (float)(*track).outerRadius() + : (float)(*track).outerZ()); } LogTrace("TrackExtenderWithMTD") << "TrackExtenderWithMTD: tmtd " << tmtdMap << " +/- " << sigmatmtdMap From db6d5793aa195c78a1f3f132c185425ccdf2cb20 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Thu, 21 Nov 2024 15:35:56 +0100 Subject: [PATCH 070/418] Provide a method in HGCALDDDConst to access the area of a cell --- .../interface/HGCalDDDConstants.h | 2 ++ .../HGCalCommonData/src/HGCalDDDConstants.cc | 32 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h index 1e374985cf2c0..53e395b1ea82d 100644 --- a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h +++ b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h @@ -59,6 +59,7 @@ class HGCalDDDConstants { int cassetteTile(int iphi) const { return (HGCalTileIndex::tileCassette(iphi, hgpar_->phiOffset_, hgpar_->nphiCassette_, hgpar_->cassettes_)); } + double cellArea(const HGCSiliconDetId&, bool) const; std::pair cellEtaPhiTrap(int type, int irad) const; bool cellInLayer(int waferU, int waferV, int cellU, int cellV, int lay, int zside, bool reco) const; const HGCalCellOffset* cellOffset() const { return cellOffset_.get(); } @@ -152,6 +153,7 @@ class HGCalDDDConstants { int part = (ktr != hgpar_->waferInfoMap_.end()) ? (ktr->second).part : HGCalTypes::WaferFull; return part; } + int32_t placementIndex(const HGCSiliconDetId&) const; std::pair rangeR(double z, bool reco) const; std::pair rangeRLayer(int lay, bool reco) const; std::pair rangeZ(bool reco) const; diff --git a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc index a8e38bc16b022..4700c025d0719 100644 --- a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc +++ b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc @@ -293,6 +293,23 @@ bool HGCalDDDConstants::cassetteShiftScintillator(int zside, int layer, int iphi return shift; } +double HGCalDDDConstants::cellArea(const HGCSiliconDetId& id, bool reco) const { + double area(0); + int32_t indx = HGCalWaferIndex::waferIndex(id.layer(), id.waferU(), id.waferV()); + auto ktr = hgpar_->waferInfoMap_.find(indx); + if (ktr != hgpar_->waferInfoMap_.end()) { + if (ktr->second.part == HGCalTypes::WaferFull) { + area = cellOffset_->cellAreaUV(id.cellU(), id.cellV(), placementIndex(id), ktr->second.type, reco); + } else { + area = cellOffset_->cellAreaUV(id.cellU(), id.cellV(), placementIndex(id), ktr->second.type, ktr->second.part, reco); + } + } +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "CellArea: " << id << " Area " << area; +#endif + return area; +} + std::pair HGCalDDDConstants::cellEtaPhiTrap(int type, int irad) const { double dr(0), df(0); if (tileTrapezoid()) { @@ -1231,6 +1248,21 @@ int HGCalDDDConstants::numberCellsHexagon(int lay, int waferU, int waferV, bool return N; } +int32_t HGCalDDDConstants::placementIndex(const HGCSiliconDetId& id) const { + int32_t place(0); + int32_t layer = id.layer(); + int32_t layertype = layerType(layer); + int32_t indx = HGCalWaferIndex::waferIndex(layer, id.waferU(), id.waferV()); + auto ktr = hgpar_->waferInfoMap_.find(indx); + if (ktr != hgpar_->waferInfoMap_.end()) { + place = HGCalCell::cellPlacementIndex(id.zside(), layertype, (ktr->second).orient); + } +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "ID: " << id << " Layer " << layer << ":" << layertype << " Index " << indx << ":" << (ktr != hgpar_->waferInfoMap_.end()) << " Place " << place; +#endif + return place; +} + std::pair HGCalDDDConstants::rangeR(double z, bool reco) const { double rmin(0), rmax(0), zz(0); if (hgpar_->detectorType_ > 0) { From adea7fd30010e38406c641084799f5a8fec3222a Mon Sep 17 00:00:00 2001 From: Sunanda Date: Thu, 21 Nov 2024 15:40:50 +0100 Subject: [PATCH 071/418] Code check --- Geometry/HGCalCommonData/src/HGCalDDDConstants.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc index 4700c025d0719..efc0bba93471c 100644 --- a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc +++ b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc @@ -301,7 +301,8 @@ double HGCalDDDConstants::cellArea(const HGCSiliconDetId& id, bool reco) const { if (ktr->second.part == HGCalTypes::WaferFull) { area = cellOffset_->cellAreaUV(id.cellU(), id.cellV(), placementIndex(id), ktr->second.type, reco); } else { - area = cellOffset_->cellAreaUV(id.cellU(), id.cellV(), placementIndex(id), ktr->second.type, ktr->second.part, reco); + area = + cellOffset_->cellAreaUV(id.cellU(), id.cellV(), placementIndex(id), ktr->second.type, ktr->second.part, reco); } } #ifdef EDM_ML_DEBUG @@ -1257,8 +1258,9 @@ int32_t HGCalDDDConstants::placementIndex(const HGCSiliconDetId& id) const { if (ktr != hgpar_->waferInfoMap_.end()) { place = HGCalCell::cellPlacementIndex(id.zside(), layertype, (ktr->second).orient); } -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "ID: " << id << " Layer " << layer << ":" << layertype << " Index " << indx << ":" << (ktr != hgpar_->waferInfoMap_.end()) << " Place " << place; +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "ID: " << id << " Layer " << layer << ":" << layertype << " Index " << indx << ":" + << (ktr != hgpar_->waferInfoMap_.end()) << " Place " << place; #endif return place; } From 3f213a822e55ab6a42986f18350f91b5260bafb0 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Thu, 21 Nov 2024 08:46:26 -0600 Subject: [PATCH 072/418] Do not hold memory between events in Multi5x5ClusterAlgo - removed member variables which were just used as temporary storage - refactored variables which must be updated together to be in a class - modernized C++ syntax used --- .../interface/Multi5x5ClusterAlgo.h | 72 ++--- .../src/Multi5x5ClusterAlgo.cc | 260 ++++++++++-------- 2 files changed, 173 insertions(+), 159 deletions(-) diff --git a/RecoEcal/EgammaClusterAlgos/interface/Multi5x5ClusterAlgo.h b/RecoEcal/EgammaClusterAlgos/interface/Multi5x5ClusterAlgo.h index b1cc6dfd48b50..18af1d40265b9 100644 --- a/RecoEcal/EgammaClusterAlgos/interface/Multi5x5ClusterAlgo.h +++ b/RecoEcal/EgammaClusterAlgos/interface/Multi5x5ClusterAlgo.h @@ -21,6 +21,7 @@ #include #include #include +#include typedef std::map RecHitsMap; @@ -31,18 +32,15 @@ class Multi5x5ClusterAlgo { //so we define a proto basic cluster class which contains all the information which would be in a basic cluster //which allows the addition of its seed and the removal of a seed of another cluster easily class ProtoBasicCluster { - float energy_; - EcalRecHit seed_; std::vector > hits_; + EcalRecHit seed_; + float energy_; bool containsSeed_; public: ProtoBasicCluster(); - ProtoBasicCluster(float iEnergy, const EcalRecHit &iSeed, std::vector > &iHits) - : energy_(iEnergy), seed_(iSeed) { - hits_.swap(iHits); - containsSeed_ = isSeedCrysInHits_(); - } + ProtoBasicCluster(float iEnergy, const EcalRecHit &iSeed, std::vector > iHits) + : hits_(std::move(iHits)), seed_(iSeed), energy_(iEnergy), containsSeed_{isSeedCrysInHits_()} {} float energy() const { return energy_; } const EcalRecHit &seed() const { return seed_; } @@ -63,8 +61,8 @@ class Multi5x5ClusterAlgo { const std::vector &v_chstatus, const PositionCalc &posCalc, bool reassignSeedCrysToClusterItSeeds = false) - : ecalBarrelSeedThreshold(ebst), - ecalEndcapSeedThreshold(ecst), + : ecalBarrelSeedThreshold_(ebst), + ecalEndcapSeedThreshold_(ecst), v_chstatus_(v_chstatus), reassignSeedCrysToClusterItSeeds_(reassignSeedCrysToClusterItSeeds) { posCalculator_ = posCalc; @@ -94,60 +92,46 @@ class Multi5x5ClusterAlgo { reco::CaloID::Detectors detector_; // Energy required for a seed: - double ecalBarrelSeedThreshold; - double ecalEndcapSeedThreshold; - - // collection of all rechits - const EcalRecHitCollection *recHits_; - - // The vector of seeds: - std::vector seeds; - - std::vector > whichClusCrysBelongsTo_; - - // The set of used DetID's - std::set used_s; - std::set canSeed_s; // set of crystals not to be added but which can seed - // a new 3x3 (e.g. the outer crystals in a 5x5) - - // The vector of DetId's in the cluster currently reconstructed - std::vector > current_v; + double ecalBarrelSeedThreshold_; + double ecalEndcapSeedThreshold_; - // The vector of clusters - std::vector clusters_v; - std::vector protoClusters_; // recHit flag to be excluded from seeding std::vector v_chstatus_; bool reassignSeedCrysToClusterItSeeds_; //the seed of the 5x5 crystal is sometimes in another basic cluster, however we may want to put it back into the cluster it seeds - void mainSearch(const EcalRecHitCollection *hits, - const CaloSubdetectorGeometry *geometry_p, - const CaloSubdetectorTopology *topology_p, - const CaloSubdetectorGeometry *geometryES_p); + std::vector mainSearch(const EcalRecHitCollection *hits, + const CaloSubdetectorGeometry *geometry_p, + const CaloSubdetectorTopology *topology_p, + const CaloSubdetectorGeometry *geometryES_p, + const std::vector &seeds); // Is the crystal at the navigator position a // local maxiumum in energy? - bool checkMaxima(CaloNavigator &navigator, const EcalRecHitCollection *hits); + bool checkMaxima(CaloNavigator &navigator, const EcalRecHitCollection *hits) const; // prepare the 5x5 taking care over which crystals // are allowed to seed new clusters and which are not // after the preparation is complete - void prepareCluster(CaloNavigator &navigator, - const EcalRecHitCollection *hits, - const CaloSubdetectorGeometry *geometry); + std::vector > prepareCluster(CaloNavigator &navigator, + const EcalRecHitCollection *hits, + const CaloSubdetectorGeometry *geometry, + std::set &used_seeds, + std::set &canSeed_s) const; // Add the crystal with DetId det to the current // vector of crystals if it meets certain criteria - void addCrystal(const DetId &det); + static bool addCrystal(const DetId &det, const EcalRecHitCollection &recHits); // take the crystals in the current_v and build // them into a BasicCluster - void makeCluster(const EcalRecHitCollection *hits, - const CaloSubdetectorGeometry *geometry_p, - const CaloSubdetectorGeometry *geometryES_p, - const EcalRecHitCollection::const_iterator &seedIt, - bool seedOutside); + // NOTE: this can't be const because of posCalculator_ + std::optional makeCluster(const EcalRecHitCollection *hits, + const CaloSubdetectorGeometry *geometry_p, + const CaloSubdetectorGeometry *geometryES_p, + const EcalRecHitCollection::const_iterator &seedIt, + bool seedOutside, + std::vector > ¤t_v); }; #endif diff --git a/RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc b/RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc index 6480db3362c12..bce173c5978d7 100644 --- a/RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc +++ b/RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc @@ -58,24 +58,19 @@ std::vector Multi5x5ClusterAlgo::makeClusters(const EcalRecH reco::CaloID::Detectors detector, bool regional, const std::vector& regions) { - seeds.clear(); - used_s.clear(); - canSeed_s.clear(); - clusters_v.clear(); - - recHits_ = hits; + std::vector seeds; double threshold = 0; std::string ecalPart_string; detector_ = reco::CaloID::DET_NONE; if (detector == reco::CaloID::DET_ECAL_ENDCAP) { detector_ = reco::CaloID::DET_ECAL_ENDCAP; - threshold = ecalEndcapSeedThreshold; + threshold = ecalEndcapSeedThreshold_; ecalPart_string = "EndCap"; } if (detector == reco::CaloID::DET_ECAL_BARREL) { detector_ = reco::CaloID::DET_ECAL_BARREL; - threshold = ecalBarrelSeedThreshold; + threshold = ecalBarrelSeedThreshold_; ecalPart_string = "Barrel"; } @@ -88,20 +83,18 @@ std::vector Multi5x5ClusterAlgo::makeClusters(const EcalRecH nregions = regions.size(); if (!regional || nregions) { - EcalRecHitCollection::const_iterator it; - for (it = hits->begin(); it != hits->end(); it++) { - double energy = it->energy(); + for (auto const& hit : *hits) { + double energy = hit.energy(); if (energy < threshold) continue; // need to check to see if this line is useful! - auto thisCell = geometry_p->getGeometry(it->id()); + auto thisCell = geometry_p->getGeometry(hit.id()); // Require that RecHit is within clustering region in case // of regional reconstruction bool withinRegion = false; if (regional) { - std::vector::const_iterator region; - for (region = regions.begin(); region != regions.end(); region++) { - if (region->inRegion(thisCell->etaPos(), thisCell->phiPos())) { + for (auto const& region : regions) { + if (region.inRegion(thisCell->etaPos(), thisCell->phiPos())) { withinRegion = true; break; } @@ -109,9 +102,9 @@ std::vector Multi5x5ClusterAlgo::makeClusters(const EcalRecH } if (!regional || withinRegion) { - float ET = it->energy() * thisCell->getPosition().basicVector().unit().perp(); + float ET = hit.energy() * thisCell->getPosition().basicVector().unit().perp(); if (ET > threshold) - seeds.push_back(*it); + seeds.push_back(hit); } } } @@ -120,7 +113,7 @@ std::vector Multi5x5ClusterAlgo::makeClusters(const EcalRecH LogTrace("EcalClusters") << "Total number of seeds found in event = " << seeds.size(); - mainSearch(hits, geometry_p, topology_p, geometryES_p); + auto clusters_v = mainSearch(hits, geometry_p, topology_p, geometryES_p, seeds); sort(clusters_v.rbegin(), clusters_v.rend(), isClusterEtLess); LogTrace("EcalClusters") << "---------- end of main search. clusters have been sorted ----"; @@ -130,30 +123,91 @@ std::vector Multi5x5ClusterAlgo::makeClusters(const EcalRecH // Search for clusters // -void Multi5x5ClusterAlgo::mainSearch(const EcalRecHitCollection* hits, - const CaloSubdetectorGeometry* geometry_p, - const CaloSubdetectorTopology* topology_p, - const CaloSubdetectorGeometry* geometryES_p) { +namespace { + class ProtoClusters { + using ProtoBasicCluster = Multi5x5ClusterAlgo::ProtoBasicCluster; + std::vector clusters_; + std::vector > whichClusCrysBelongsTo_; + bool reassignSeedCrysToClusterItSeeds_; + + public: + ProtoClusters(bool reassignSeedCrysToClusterItSeeds) + : reassignSeedCrysToClusterItSeeds_(reassignSeedCrysToClusterItSeeds) {} + void push_back(ProtoBasicCluster&& c) { + clusters_.push_back(std::move(c)); + if (reassignSeedCrysToClusterItSeeds_) { + for (auto const& hit : clusters_.back().hits()) { + whichClusCrysBelongsTo_.push_back(std::pair(hit.first, clusters_.size())); + } + } + } + std::vector finalize() { + if (reassignSeedCrysToClusterItSeeds_) { + std::sort(whichClusCrysBelongsTo_.begin(), whichClusCrysBelongsTo_.end(), PairSortByFirst()); + + for (size_t clusNr = 0; clusNr < clusters_.size(); clusNr++) { + if (!clusters_[clusNr].containsSeed()) { + const EcalRecHit& seedHit = clusters_[clusNr].seed(); + typedef std::vector >::iterator It; + std::pair result = std::equal_range(whichClusCrysBelongsTo_.begin(), + whichClusCrysBelongsTo_.end(), + seedHit.id(), + PairSortByFirst()); + + if (result.first != result.second) + clusters_[result.first->second].removeHit(seedHit); + clusters_[clusNr].addSeed(); + } + } + } + whichClusCrysBelongsTo_.clear(); + return std::move(clusters_); + } + }; +} // namespace + +std::vector Multi5x5ClusterAlgo::mainSearch(const EcalRecHitCollection* hits, + const CaloSubdetectorGeometry* geometry_p, + const CaloSubdetectorTopology* topology_p, + const CaloSubdetectorGeometry* geometryES_p, + std::vector const& seeds) { LogTrace("EcalClusters") << "Building clusters............"; + // The vector of clusters + std::vector clusters_v; + + // The set of used DetID's + std::set used_s; + // set of crystals not to be added but which can seed + // a new 3x3 (e.g. the outer crystals in a 5x5) + std::set canSeed_s; + + ProtoClusters protoClusters{reassignSeedCrysToClusterItSeeds_}; + // Loop over seeds: - std::vector::iterator it; - for (it = seeds.begin(); it != seeds.end(); it++) { + bool first = true; + for (auto const& seed : seeds) { + struct Guard { + bool& b_; + Guard(bool& b) : b_{b} {}; + ~Guard() { b_ = false; } + }; + Guard guard(first); // check if this crystal is able to seed // (event though it is already used) bool usedButCanSeed = false; - if (canSeed_s.find(it->id()) != canSeed_s.end()) + if (canSeed_s.find(seed.id()) != canSeed_s.end()) usedButCanSeed = true; // avoid seeding for anomalous channels - if (!it->checkFlag(EcalRecHit::kGood)) { // if rechit is good, no need for further checks - if (it->checkFlags(v_chstatus_)) + if (!seed.checkFlag(EcalRecHit::kGood)) { // if rechit is good, no need for further checks + if (seed.checkFlags(v_chstatus_)) continue; } // make sure the current seed does not belong to a cluster already. - if ((used_s.find(it->id()) != used_s.end()) && (usedButCanSeed == false)) { - if (it == seeds.begin()) { + if ((used_s.find(seed.id()) != used_s.end()) && (usedButCanSeed == false)) { + if (first) { LogTrace("EcalClusters") << "##############################################################"; LogTrace("EcalClusters") << "DEBUG ALERT: Highest energy seed already belongs to a cluster!"; LogTrace("EcalClusters") << "##############################################################"; @@ -164,12 +218,9 @@ void Multi5x5ClusterAlgo::mainSearch(const EcalRecHitCollection* hits, continue; } - // clear the vector of hits in current cluster - current_v.clear(); - // Create a navigator at the seed and get seed // energy - CaloNavigator navigator(it->id(), topology_p); + CaloNavigator navigator(seed.id(), topology_p); DetId seedId = navigator.pos(); EcalRecHitCollection::const_iterator seedIt = hits->find(seedId); navigator.setHome(seedId); @@ -180,70 +231,57 @@ void Multi5x5ClusterAlgo::mainSearch(const EcalRecHitCollection* hits, if (localMaxima) { // build the 5x5 taking care over which crystals // can seed new clusters and which can't - prepareCluster(navigator, hits, geometry_p); - } - - // If some crystals in the current vector then - // make them into a cluster - if (!current_v.empty()) { - makeCluster(hits, geometry_p, geometryES_p, seedIt, usedButCanSeed); + auto current_v = prepareCluster(navigator, hits, geometry_p, used_s, canSeed_s); + + // If some crystals in the current vector then + // make them into a cluster + if (!current_v.empty()) { + auto c = makeCluster(hits, geometry_p, geometryES_p, seedIt, usedButCanSeed, current_v); + if (c) { + protoClusters.push_back(std::move(*c)); + } else { + for (auto const& current : current_v) { + used_s.erase(current.first); + } + } + } } - } // End loop on seed crystals - if (reassignSeedCrysToClusterItSeeds_) { - std::sort(whichClusCrysBelongsTo_.begin(), whichClusCrysBelongsTo_.end(), PairSortByFirst()); - - for (size_t clusNr = 0; clusNr < protoClusters_.size(); clusNr++) { - if (!protoClusters_[clusNr].containsSeed()) { - const EcalRecHit& seedHit = protoClusters_[clusNr].seed(); - typedef std::vector >::iterator It; - std::pair result = std::equal_range(whichClusCrysBelongsTo_.begin(), - whichClusCrysBelongsTo_.end(), - seedHit.id(), - PairSortByFirst()); - - if (result.first != result.second) - protoClusters_[result.first->second].removeHit(seedHit); - protoClusters_[clusNr].addSeed(); - } - } - } + auto finalProtoClusters = protoClusters.finalize(); - for (size_t clusNr = 0; clusNr < protoClusters_.size(); clusNr++) { - const ProtoBasicCluster& protoCluster = protoClusters_[clusNr]; - Point position; - position = posCalculator_.Calculate_Location(protoCluster.hits(), hits, geometry_p, geometryES_p); - clusters_v.push_back(reco::BasicCluster(protoCluster.energy(), - position, - reco::CaloID(detector_), - protoCluster.hits(), - reco::CaloCluster::multi5x5, - protoCluster.seed().id())); + for (auto const& protoCluster : finalProtoClusters) { + Point position = posCalculator_.Calculate_Location(protoCluster.hits(), hits, geometry_p, geometryES_p); + clusters_v.emplace_back(protoCluster.energy(), + position, + reco::CaloID(detector_), + protoCluster.hits(), + reco::CaloCluster::multi5x5, + protoCluster.seed().id()); } - protoClusters_.clear(); - whichClusCrysBelongsTo_.clear(); + return clusters_v; } -void Multi5x5ClusterAlgo::makeCluster(const EcalRecHitCollection* hits, - const CaloSubdetectorGeometry* geometry, - const CaloSubdetectorGeometry* geometryES, - const EcalRecHitCollection::const_iterator& seedIt, - bool seedOutside) { +std::optional Multi5x5ClusterAlgo::makeCluster( + const EcalRecHitCollection* hits, + const CaloSubdetectorGeometry* geometry, + const CaloSubdetectorGeometry* geometryES, + const EcalRecHitCollection::const_iterator& seedIt, + bool seedOutside, + std::vector >& current_v) { double energy = 0; //double chi2 = 0; reco::CaloID caloID; Point position; position = posCalculator_.Calculate_Location(current_v, hits, geometry, geometryES); - std::vector >::iterator it; - for (it = current_v.begin(); it != current_v.end(); it++) { - EcalRecHitCollection::const_iterator itt = hits->find((*it).first); + for (auto const& hitInfo : current_v) { + EcalRecHitCollection::const_iterator itt = hits->find(hitInfo.first); EcalRecHit hit_p = *itt; energy += hit_p.energy(); //chi2 += 0; - if ((*it).first.subdetId() == EcalBarrel) { + if (hitInfo.first.subdetId() == EcalBarrel) { caloID = reco::CaloID::DET_ECAL_BARREL; } else { caloID = reco::CaloID::DET_ECAL_ENDCAP; @@ -262,48 +300,39 @@ void Multi5x5ClusterAlgo::makeCluster(const EcalRecHitCollection* hits, // must be at least the seed energy double seedEnergy = seedIt->energy(); if ((seedOutside && energy >= 0) || (!seedOutside && energy >= seedEnergy)) { - if (reassignSeedCrysToClusterItSeeds_) { //if we're not doing this, we dont need this info so lets not bother filling it - for (size_t hitNr = 0; hitNr < current_v.size(); hitNr++) - whichClusCrysBelongsTo_.push_back(std::pair(current_v[hitNr].first, protoClusters_.size())); - } - protoClusters_.push_back(ProtoBasicCluster(energy, *seedIt, current_v)); + return ProtoBasicCluster(energy, *seedIt, std::move(current_v)); // clusters_v.push_back(reco::BasicCluster(energy, position, reco::CaloID(detector_), current_v, reco::CaloCluster::multi5x5, seedIt->id())); // if no valid cluster was built, // then free up these crystals to be used in the next... - } else { - std::vector >::iterator iter; - for (iter = current_v.begin(); iter != current_v.end(); iter++) { - used_s.erase(iter->first); - } //for(iter) } //else + return {}; } -bool Multi5x5ClusterAlgo::checkMaxima(CaloNavigator& navigator, const EcalRecHitCollection* hits) { +bool Multi5x5ClusterAlgo::checkMaxima(CaloNavigator& navigator, const EcalRecHitCollection* hits) const { bool maxima = true; EcalRecHitCollection::const_iterator thisHit; EcalRecHitCollection::const_iterator seedHit = hits->find(navigator.pos()); double seedEnergy = seedHit->energy(); - std::vector swissCrossVec; - swissCrossVec.clear(); + std::array swissCrossVec; - swissCrossVec.push_back(navigator.west()); + swissCrossVec[0] = navigator.west(); navigator.home(); - swissCrossVec.push_back(navigator.east()); + swissCrossVec[1] = navigator.east(); navigator.home(); - swissCrossVec.push_back(navigator.north()); + swissCrossVec[2] = navigator.north(); navigator.home(); - swissCrossVec.push_back(navigator.south()); + swissCrossVec[3] = navigator.south(); navigator.home(); - for (unsigned int i = 0; i < swissCrossVec.size(); ++i) { + for (auto const& det : swissCrossVec) { // look for this hit - thisHit = recHits_->find(swissCrossVec[i]); + thisHit = hits->find(det); // continue if this hit was not found - if ((swissCrossVec[i] == DetId(0)) || thisHit == recHits_->end()) + if ((det == DetId(0)) || thisHit == hits->end()) continue; // the recHit has to be skipped in the local maximum search if it was found @@ -324,9 +353,12 @@ bool Multi5x5ClusterAlgo::checkMaxima(CaloNavigator& navigator, const Eca return maxima; } -void Multi5x5ClusterAlgo::prepareCluster(CaloNavigator& navigator, - const EcalRecHitCollection* hits, - const CaloSubdetectorGeometry* geometry) { +std::vector > Multi5x5ClusterAlgo::prepareCluster(CaloNavigator& navigator, + const EcalRecHitCollection* hits, + const CaloSubdetectorGeometry* geometry, + std::set& used_s, + std::set& canSeed_s) const { + std::vector > current_v; DetId thisDet; std::set::iterator setItr; @@ -344,7 +376,10 @@ void Multi5x5ClusterAlgo::prepareCluster(CaloNavigator& navigator, // add the current crystal //std::cout << "adding " << dx << ", " << dy << std::endl; - addCrystal(thisDet); + if (addCrystal(thisDet, *hits) and (used_s.find(thisDet) == used_s.end())) { + current_v.push_back(std::pair(thisDet, 1.)); // by default hit energy fractions are set at 1. + used_s.insert(thisDet); + } // now consider if we are in an edge (outer 16) // or central (inner 9) region @@ -371,17 +406,12 @@ void Multi5x5ClusterAlgo::prepareCluster(CaloNavigator& navigator, //std::cout << "*** " << std::endl; //std::cout << " current_v contains " << current_v.size() << std::endl; //std::cout << "*** " << std::endl; + return current_v; } -void Multi5x5ClusterAlgo::addCrystal(const DetId& det) { - EcalRecHitCollection::const_iterator thisIt = recHits_->find(det); - if ((thisIt != recHits_->end()) && (thisIt->id() != DetId(0))) { - if ((used_s.find(thisIt->id()) == used_s.end())) { - //std::cout << " ... this is a good crystal and will be added" << std::endl; - current_v.push_back(std::pair(det, 1.)); // by default hit energy fractions are set at 1. - used_s.insert(det); - } - } +bool Multi5x5ClusterAlgo::addCrystal(const DetId& det, const EcalRecHitCollection& recHits) { + auto thisIt = recHits.find(det); + return ((thisIt != recHits.end()) && (thisIt->id() != DetId(0))); } bool Multi5x5ClusterAlgo::ProtoBasicCluster::removeHit(const EcalRecHit& hitToRM) { @@ -421,8 +451,8 @@ bool Multi5x5ClusterAlgo::ProtoBasicCluster::addSeed() { } bool Multi5x5ClusterAlgo::ProtoBasicCluster::isSeedCrysInHits_() const { - for (size_t hitNr = 0; hitNr < hits_.size(); hitNr++) { - if (seed_.id() == hits_[hitNr].first) + for (auto const& hit : hits_) { + if (seed_.id() == hit.first) return true; } return false; From 8864274426361a54dd7b13f4edcf3585bc55fd03 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Thu, 21 Nov 2024 16:50:50 +0100 Subject: [PATCH 073/418] Avoid using past module for python2/3 compatibility --- FWCore/ParameterSet/python/Types.py | 2 +- FWCore/PythonUtilities/scripts/generateEDF.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/FWCore/ParameterSet/python/Types.py b/FWCore/ParameterSet/python/Types.py index 1511dcb470e8c..9afb0c86c4278 100644 --- a/FWCore/ParameterSet/python/Types.py +++ b/FWCore/ParameterSet/python/Types.py @@ -3,12 +3,12 @@ from .Mixins import _ValidatingParameterListBase, specialImportRegistry from .Mixins import saveOrigin from .ExceptionHandling import format_typename, format_outerframe -from past.builtins import long import codecs import copy import math import builtins +long = int _builtin_bool = bool class _Untracked(object): diff --git a/FWCore/PythonUtilities/scripts/generateEDF.py b/FWCore/PythonUtilities/scripts/generateEDF.py index 938308f8f0ab7..a7a75ebc16dd8 100755 --- a/FWCore/PythonUtilities/scripts/generateEDF.py +++ b/FWCore/PythonUtilities/scripts/generateEDF.py @@ -2,7 +2,6 @@ from builtins import zip from builtins import object -from past.utils import old_div from builtins import range import sys import re @@ -15,6 +14,9 @@ sepRE = re.compile (r'[\s,;:]+') nonSpaceRE = re.compile (r'\S') +def old_div(a, b): + return a // b + ########################## ## #################### ## ## ## LumiInfo Class ## ## From 5526ab31e617b85f6ce82ed1ae397746f9ca4a0c Mon Sep 17 00:00:00 2001 From: Sunanda Date: Thu, 21 Nov 2024 17:32:56 +0100 Subject: [PATCH 074/418] Attempt to make a Phase2 scenario with 0 overlaps with zero tolerance in lieu of #46565 and #46610 --- .../GeometryDD4hepExtendedRun4D116Reco_cff.py | 61 + .../GeometryDD4hepExtendedRun4D116_cff.py | 17 + .../GeometryExtendedRun4D116Reco_cff.py | 61 + .../python/GeometryExtendedRun4D116_cff.py | 15 + .../Geometry/python/dictRun4Geometry.py | 145 + .../PyReleaseValidation/python/relval_Run4.py | 1 + .../python/upgradeWorkflowComponents.py | 9 + .../StandardSequences/python/GeometryConf.py | 2 + .../dd4hep/cmsExtendedGeometryRun4D116.xml | 123 + .../cmsExtendedGeometryRun4D116XML_cfi.py | 127 + .../forwardshield/2026/v5/forwardshield.xml | 1176 +++++ .../data/ge0/TDR_Dev/v5/ge0.xml | 565 +++ .../MuonCommonData/data/mb3/2015/v3/mb3.xml | 1756 +++++++ .../data/muonYoke/2026/v4/muonYoke.xml | 4511 +++++++++++++++++ 14 files changed, 8569 insertions(+) create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtendedRun4D116Reco_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtendedRun4D116_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtendedRun4D116Reco_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtendedRun4D116_cff.py create mode 100644 Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml create mode 100644 Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py create mode 100644 Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml create mode 100644 Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml create mode 100644 Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml create mode 100644 Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml diff --git a/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D116Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D116Reco_cff.py new file mode 100644 index 0000000000000..422575b532001 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D116Reco_cff.py @@ -0,0 +1,61 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generateRun4Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hepExtendedRun4D116_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * +trackerGeometry.applyAlignment = True + +# calo +from Geometry.CaloEventSetup.HGCalTopology_cfi import * +from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "TOWER", + "HGCalEESensitive", + "HGCalHESiliconSensitive", + "HGCalHEScintillatorSensitive" + ) +) +from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.ForwardGeometry.ZdcGeometry_cfi import * + +# timing +from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * +from Geometry.MTDGeometryBuilder.mtdParameters_cff import * +from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * +from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * +from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * +from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * +mtdGeometry.applyAlignment = False + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D116_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D116_cff.py new file mode 100644 index 0000000000000..c49cf2870330f --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtendedRun4D116_cff.py @@ -0,0 +1,17 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generateRun4Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hep_cff import * +DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml") + +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * +from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * +from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtendedRun4D116Reco_cff.py b/Configuration/Geometry/python/GeometryExtendedRun4D116Reco_cff.py new file mode 100644 index 0000000000000..48d3b4754c934 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtendedRun4D116Reco_cff.py @@ -0,0 +1,61 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generateRun4Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryExtendedRun4D116_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * +trackerGeometry.applyAlignment = True + +# calo +from Geometry.CaloEventSetup.HGCalTopology_cfi import * +from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "TOWER", + "HGCalEESensitive", + "HGCalHESiliconSensitive", + "HGCalHEScintillatorSensitive" + ) +) +from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.ForwardGeometry.ZdcGeometry_cfi import * + +# timing +from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * +from Geometry.MTDGeometryBuilder.mtdParameters_cff import * +from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * +from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * +from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * +from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * +mtdGeometry.applyAlignment = False + diff --git a/Configuration/Geometry/python/GeometryExtendedRun4D116_cff.py b/Configuration/Geometry/python/GeometryExtendedRun4D116_cff.py new file mode 100644 index 0000000000000..ccf526aad9c86 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtendedRun4D116_cff.py @@ -0,0 +1,15 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generateRun4Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Geometry.CMSCommonData.cmsExtendedGeometryRun4D116XML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * +from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * +from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/dictRun4Geometry.py b/Configuration/Geometry/python/dictRun4Geometry.py index 649d52d65fe73..c517a0242cda0 100644 --- a/Configuration/Geometry/python/dictRun4Geometry.py +++ b/Configuration/Geometry/python/dictRun4Geometry.py @@ -1111,6 +1111,80 @@ ], "era" : "phase2_ecal, phase2_hcal, phase2_hgcal, hcalHardcodeConditions, phase2_hgcalV10, phase2_hgcalV11, phase2_hgcalV16, phase2_hfnose, phase2-hgcalV18", }, + "C25" : { + 1 : [ + 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/ebalgo/2021/v1/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/v1/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/v2/hcalRecNumbering.xml', + 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', + 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v17/hgcalcell.xml', + 'Geometry/HGCalCommonData/data/hgcalwafer/v17/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v17/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v17/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v17/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v17/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalConsData/v17/hgcalConsData.xml', + ], + 3 : [ + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/NoHE/v1/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HGCalSimData/data/hgcsensv15.xml', + ], + 4 : [ + 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', + ], + "sim" : [ + 'from Geometry.EcalCommonData.ecalSimulationParameters_cff import *', + 'from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *', + 'from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *', + 'from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *' + ], + "reco" : [ + 'from Geometry.CaloEventSetup.HGCalTopology_cfi import *', + 'from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *', + 'from Geometry.CaloEventSetup.CaloTopology_cfi import *', + 'from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *', + 'CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",', + ' SelectedCalos = cms.vstring("HCAL",', + ' "ZDC",', + ' "EcalBarrel",', + ' "TOWER",', + ' "HGCalEESensitive",', + ' "HGCalHESiliconSensitive",', + ' "HGCalHEScintillatorSensitive"', + ' )', + ')', + 'from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *', + 'from Geometry.HcalEventSetup.HcalGeometry_cfi import *', + 'from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import *', + 'from Geometry.HcalEventSetup.CaloTowerTopology_cfi import *', + 'from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *', + 'from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *', + 'from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import *', + 'from Geometry.EcalMapping.EcalMapping_cfi import *', + 'from Geometry.EcalMapping.EcalMappingRecord_cfi import *', + ], + "era" : "phase2_ecal, phase2_hcal, phase2_hgcal, hcalHardcodeConditions, phase2_hgcalV10, phase2_hgcalV11, phase2_hgcalV16, phase2_hfnose", + }, } @@ -1212,6 +1286,53 @@ ], "era" : "phase2_muon, phase2_GEM, phase2_GE0", }, + "M12" : { + 1 : [ + 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', + 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml', + 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + ], + 2 : [ + 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', + ], + 3 : [ + 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', + ], + 4 : [ + 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + ], + "sim" : [ + 'from Geometry.MuonNumbering.muonGeometryConstants_cff import *', + 'from Geometry.MuonNumbering.muonOffsetESProducer_cff import *', + ], + "reco" : [ + 'from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *', + 'from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *', + 'from Geometry.GEMGeometryBuilder.gemGeometry_cff import *', + 'from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *', + 'from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *', + ], + "era" : "phase2_muon, phase2_GEM, phase2_GE0", + }, } forwardDict = { @@ -1241,6 +1362,29 @@ 'from Geometry.ForwardGeometry.ZdcGeometry_cfi import *', ] }, + "F9" : { + 1 : [ + 'Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + ], + 3 : [ + 'Geometry/ForwardSimData/data/zdcsens.xml', + ], + 4 : [ + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + ], + "reco" :[ + 'from Geometry.ForwardGeometry.zdcTopologyEP_cfi import *', + 'from Geometry.ForwardGeometry.ZdcGeometry_cfi import *', + ] + }, } timingDict = { @@ -1384,6 +1528,7 @@ ("O9","T38","C24","M11","F8","I17") : "D113", ("O9","T39","C19","M11","F8","I17") : "D114", ("O9","T35","C20","M11","F8","I17") : "D115", + ("O9","T35","C25","M12","F9","I17") : "D116", } deprecatedDets = set([ "D1", "D2", "D3", "D5", "D6" , "D7", "D4", "D8" , "D9", "D12", "D13", "D15", "D10", "D11", "D14", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D36", "D37", "D38", "D39", "D40", "D42", "D35", "D41", "D43", "D44", "D45", "D46", "D48", "D47", "D50", "D51", "D52", "D53", "D54", "D55", "D56", "D57", "D58", "D59", "D61", "D62", "D63", "D64", "D65", "D66", "D67", "D69", "D71", "D72", "D73", "D74", "D75", "D78", "D79", "D87", "D89", "D90", "D49", "D60", "D68", "D70", "D76", "D77", "D80", "D81", "D82", "D83", "D84", "D85","D86","D88","D91","D92","D93","D94","D97"]) diff --git a/Configuration/PyReleaseValidation/python/relval_Run4.py b/Configuration/PyReleaseValidation/python/relval_Run4.py index 95f75dcee7a6a..8bf373840841b 100644 --- a/Configuration/PyReleaseValidation/python/relval_Run4.py +++ b/Configuration/PyReleaseValidation/python/relval_Run4.py @@ -35,6 +35,7 @@ numWFIB.extend([30834.0]) #Run4D113 numWFIB.extend([31234.0]) #Run4D114 numWFIB.extend([32034.0]) #Run4D115 +numWFIB.extend([32434.0]) #Run4D116 # Temporary placement for LST workflow to workaround PR conflicts - to be formatted and placed in an upcoming PR numWFIB.extend([24834.703]) #Run4D98 LST tracking (initialStep+HighPtTripletStep only) diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 31543ebd3b380..9d823b7e99002 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -93,6 +93,8 @@ 'Run4D110SimOnGen', 'Run4D115', 'Run4D115PU', + 'Run4D116', + 'Run4D116PU', ] # pre-generation of WF numbers @@ -3544,6 +3546,13 @@ def condition(self, fragment, stepList, key, hasHarvest): 'Era' : 'Phase2C20I13M9', 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal', 'ALCAPhase2'], }, + 'Run4D116' : { + 'Geom' : 'ExtendedRun4D116', + 'HLTmenu': '@relvalRun4', + 'GT' : 'auto:phase2_realistic_T33', + 'Era' : 'Phase2C17I13M9', + 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal', 'ALCAPhase2'], + }, } # standard PU sequences diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py index 651a516d97fb5..575dcf926ee0b 100644 --- a/Configuration/StandardSequences/python/GeometryConf.py +++ b/Configuration/StandardSequences/python/GeometryConf.py @@ -116,4 +116,6 @@ 'DD4hepExtendedRun4D114' : 'DD4hepExtendedRun4D114,DD4hepExtendedRun4D114Reco', 'ExtendedRun4D115' : 'ExtendedRun4D115,ExtendedRun4D115Reco', 'DD4hepExtendedRun4D115' : 'DD4hepExtendedRun4D115,DD4hepExtendedRun4D115Reco', + 'ExtendedRun4D116' : 'ExtendedRun4D116,ExtendedRun4D116Reco', + 'DD4hepExtendedRun4D116' : 'DD4hepExtendedRun4D116,DD4hepExtendedRun4D116Reco', } diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml new file mode 100644 index 0000000000000..ae6f3ba4dcf7e --- /dev/null +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py new file mode 100644 index 0000000000000..7c982eb460434 --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py @@ -0,0 +1,127 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generateRun4Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_OT800_IT615_2022_10/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_03/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixel.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerStructureTopology.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelsens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/trackerRecoMaterial.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/ebalgo/2021/v1/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/v1/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/v2/hcalRecNumbering.xml', + 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', + 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v17/hgcalcell.xml', + 'Geometry/HGCalCommonData/data/hgcalwafer/v17/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v17/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v17/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v17/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v17/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalConsData/v17/hgcalConsData.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', + 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml', + 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', + 'Geometry/MTDCommonData/data/btl/v3/btl.xml', + 'Geometry/MTDCommonData/data/etl/v8/etl.xml', + 'Geometry/MTDCommonData/data/mtdParameters/v5/mtdStructureTopology.xml', + 'Geometry/MTDCommonData/data/mtdParameters/v5/mtdParameters.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/NoHE/v1/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HGCalSimData/data/hgcsensv15.xml', + 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/MTDSimData/data/v5/mtdsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml b/Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml new file mode 100644 index 0000000000000..506d79700ab44 --- /dev/null +++ b/Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml @@ -0,0 +1,1176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + forwardshield:VcalElecPMT + + + + + + 0., 0., 0. + + + + + + + + + + + + + + + + + + + forwardshield:FixedShieldTube5 + + + + + + 0., 0., 0. + + + + + + + + + + + + + + + + + + + forwardshield:FixedShieldTube6 + + + + + + 0., 0., 0. + + + + + + + + + + + + + + + + + + + forwardshield:FixedShieldTube7 + + + + + + 0., 0., 0. + + + + + + + + + + + + + + + + + + + forwardshield:FixedShieldTube8 + + + + + + 0., 0., 0. + + + + + + + + + + + + + + + + + + + forwardshield:FixedShieldTube9 + + + + + + 0., 0., 0. + + + + + + + + + + + + + + + + + + + Null, forwardshield:FibreBundle12, forwardshield:FibreBundle10, + forwardshield:FibreBundle8, forwardshield:FibreBundle6, + forwardshield:FibreBundle4, forwardshield:FibreBundle2, + Null, forwardshield:FibreBundle12, forwardshield:FibreBundle10, + forwardshield:FibreBundle8, forwardshield:FibreBundle6, + forwardshield:FibreBundle4, forwardshield:FibreBundle2, + Null, forwardshield:FibreBundle11, forwardshield:FibreBundle9, + forwardshield:FibreBundle7, forwardshield:FibreBundle5, + forwardshield:FibreBundle3, forwardshield:FibreBundle1, + Null, forwardshield:FibreBundle11, forwardshield:FibreBundle9, + forwardshield:FibreBundle7, forwardshield:FibreBundle5, + forwardshield:FibreBundle3, forwardshield:FibreBundle1 + + + + + + 0., 0., 0. + + + + + + Null, forwardshield:FibreBundle11, forwardshield:FibreBundle9, + forwardshield:FibreBundle7, forwardshield:FibreBundle5, + forwardshield:FibreBundle3, forwardshield:FibreBundle1, + Null, forwardshield:FibreBundle11, forwardshield:FibreBundle9, + forwardshield:FibreBundle7, forwardshield:FibreBundle5, + forwardshield:FibreBundle3, forwardshield:FibreBundle1, + Null, forwardshield:FibreBundle13, forwardshield:FibreBundle10, + forwardshield:FibreBundle8, forwardshield:FibreBundle6, + forwardshield:FibreBundle4, forwardshield:FibreBundle2, + Null, forwardshield:FibreBundle13, forwardshield:FibreBundle10, + forwardshield:FibreBundle8, forwardshield:FibreBundle6, + forwardshield:FibreBundle4, forwardshield:FibreBundle2 + + + + + + 0., 0., 0. + + + + + + + + + + + + + + + + + + + + + + + + + 551*mm2, 652*mm2, 469*mm2, 324*mm2, 231*mm2, 167*mm2, + 120*mm2, 88*mm2, 63*mm2, 46*mm2, 35*mm2, 52*mm2, 50*mm2 + + + 1231.0*mm, 1068.5*mm, 896.5*mm, 757.0*mm, 631.0*mm, 529.5*mm, + 444.5*mm, 373.0*mm, 313.0*mm, 263.0*mm, 220.5*mm, 185.0*mm, 147.0*mm + + + 1350.0*mm, 1350.0*mm, 1308.0*mm, 1308.0*mm, 1266.0*mm, 1266.0*mm, + 1224.0*mm, 1224.0*mm, 1182.0*mm, 1182.0*mm, 1140.0*mm, 1140.0*mm,1140.0*mm + + + -1, 11, 9, 7, 5, 3, 1, -1, 11, 9, 7, 5, 3, 1, + -1, 10, 8, 6, 4, 2, 0, -1, 10, 8, 6, 4, 2, 0 + + + + + + + + + + + + 551*mm2, 652*mm2, 469*mm2, 324*mm2, 231*mm2, 167*mm2, + 120*mm2, 88*mm2, 63*mm2, 46*mm2, 35*mm2, 52*mm2, 50*mm2 + + + 1231.0*mm, 1068.5*mm, 896.5*mm, 757.0*mm, 631.0*mm, 529.5*mm, + 444.5*mm, 373.0*mm, 313.0*mm, 263.0*mm, 220.5*mm, 185.0*mm, 147.0*mm + + + 1350.0*mm, 1350.0*mm, 1308.0*mm, 1308.0*mm, 1266.0*mm, 1266.0*mm, + 1224.0*mm, 1224.0*mm, 1182.0*mm, 1182.0*mm, 1140.0*mm, 1140.0*mm,1140.0*mm + + + -1, 10, 8, 6, 4, 2, 0, -1, 10, 8, 6, 4, 2, 0, + -1, 12, 9, 7, 5, 3, 1, -1, 12, 9, 7, 5, 3, 1 + + + + diff --git a/Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml b/Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml new file mode 100644 index 0000000000000..dd1fd9c73994e --- /dev/null +++ b/Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml b/Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml new file mode 100644 index 0000000000000..6437a778881fd --- /dev/null +++ b/Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml @@ -0,0 +1,1756 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, [mbCommon:MBPos_z] + 0.*deg, 0.*deg, 180*deg, 90.*deg, 0.*deg, 90.*deg, 0.*deg, 0.*deg, 270.*deg-[MB3PosAngle] + + + + + + + + + + + 0, 0, -[mbCommon:MBPos_z] + 90.*deg, 0.*deg, 90.*deg, 0.*deg, 0.*deg, 270.*deg-[MB3PosAngle] + + + + + + + + + + + 0, 0, -[mbCommon:MBPos_z] + 90.*deg, 0.*deg, 90.*deg, 0.*deg, 0.*deg, 270.*deg-[MB3PosAngle] + + + + + + + + + + + 0, 0, [mbCommon:MBPos_z] + 0.*deg, 0.*deg, 180*deg, 90.*deg, 0.*deg, 90.*deg, 0.*deg, 0.*deg, 270.*deg-[MB3PosAngle] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, -[mbCommon:MBPos_z] + 90.*deg, 0.*deg, 90.*deg, 0.*deg, 0.*deg, 270.*deg-[MB3PosAngle] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, [mbCommon:MBPos_z] + 0.*deg, 0.*deg, 180*deg, 90.*deg, 0.*deg, 90.*deg, 0.*deg, 0.*deg, 270.*deg-[MB3PosAngle] + + + + + + + + + + + 0, 0, -[mbCommon:MBPos_z] + 90.*deg, 0.*deg, 90.*deg, 0.*deg, 0.*deg, 270.*deg-[MB3PosAngle] + + + + + + + + + + + 0, 0, [mbCommon:MBPos_z] + 0.*deg, 0.*deg, 180*deg, 90.*deg, 0.*deg, 90.*deg, 0.*deg, 0.*deg, 270.*deg-[MB3PosAngle] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -[mb3:MB3SLPhiL71]-[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + -[mb3:MB3SLPhiL71]-3*[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + -[mb3:MB3SLPhiL72]-[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -[mbCommon:MBSLZL56]-3*[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + -[mbCommon:MBSLZL57]-[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + -[mbCommon:MBSLZL58]-[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -[mb3:MB3SLPhiL71]-[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + -[mb3:MB3SLPhiL71]-3*[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + -[mb3:MB3SLPhiL72]-[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -[mbCommon:MBChimSLZL47]-[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + -[mbCommon:MBChimSLZL47]-3*[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + -[mbCommon:MBChimSLZL48]-[mbCommon:MBCell_width]+[mbCommon:MBIbeamWall], 0.*mm, 0.*mm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml b/Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml new file mode 100644 index 0000000000000..5dff3b3bbb4a5 --- /dev/null +++ b/Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml @@ -0,0 +1,4511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, 6.5900*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 6.885*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 7.099*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 7.62*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 7.565*m + 0*deg, 0.*deg, 0*deg + + + + + + + + + + + 0, 0, 8.2425*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 8.870*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 8.82*m + 0*deg, 0.*deg, 0*deg + + + + + + + + + + + 0, 0, 9.4975*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 9.950*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 9.9*m - 0.495*cm + 0*deg, 0.*deg, 0*deg + + + + + + + + + + + 0, 0, 10.4075*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 10.7175*m + 0.455*cm + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 10.7425*m + 0.455*cm + 0*deg, 0.*deg, 0*deg + + + + + + + + + + + + + + + 0, 0, 6.5900*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 6.885*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 7.099*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 7.62*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 7.565*m + 0*deg, 0.*deg, 0*deg + + + + + + + + + + + 0, 0, 8.2425*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 8.870*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 8.82*m + 0*deg, 0.*deg, 0*deg + + + + + + + + + + + 0, 0, 9.4975*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 9.950*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 9.9*m - 0.495*cm + 0*deg, 0.*deg, 0*deg + + + + + + + + + + + 0, 0, 10.4075*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 10.7175*m + 0.455*cm + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 10.7425*m + 0.455*cm + 0.*deg, 0*deg, 0.*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -102.7713*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -102.7713*deg + + + + + + + + + + + 0, 0, 0.62495*m + 0.*deg, 0.*deg, -90.8778*deg + + + + + + + + + + + 0, 0, -0.62495*m + 0.*deg, 0.*deg, -90.8778*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -78.0664*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -102.7713*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -102.7713*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -97.9027*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -97.9027*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -94.294*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -94.294*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -94.294*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -85.706*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, 94.294*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, 94.294*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -82.9603*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, 97.0397*deg + + + + + + + + + + + 0, 0, 0.186*m + 0.*deg, 0.*deg, -90.8778*deg + + + + + + + + + + + 0, 0, -0.186*m + 0.*deg, 0.*deg, -90.8778*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -78.0664*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -78.0664*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -102.7713*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -102.7713*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90.8778*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90.8778*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -78.0664*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -78.0664*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.073*m + 0.*deg, 0.*deg, -100.132*deg + + + + + + + + + + + 0, 0, 1.073*m + 0.*deg, 0.*deg, -100.132*deg + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -94.1649*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -94.1649*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -94.1649*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -85.8351*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -85.8351*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -85.8351*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -79.8677*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -79.8677*deg + + + + + + + + + + + 0, 0, 0.195*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -0.195*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.63405*m + 0.*deg, 0.*deg, -102.776*deg + + + + + + + + + + + 0, 0, -0.63405*m + 0.*deg, 0.*deg, -102.776*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -102.776*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -102.776*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -102.776*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -102.776*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -103.0847*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -103.0847*deg + + + + + + + + + + + 0, 0, 0.62495*m + 0.*deg, 0.*deg, -89.6287*deg + + + + + + + + + + + 0, 0, -0.62495*m + 0.*deg, 0.*deg, -89.6287*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -76.5635*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -76.5635*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.0847*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.0847*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -97.8748*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -97.8748*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -93.7125*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -93.7125*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -93.7125*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -86.2875*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -86.2875*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -86.2875*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -81.7612*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -81.7612*deg + + + + + + + + + + + 0, 0, 0.186*m + 0.*deg, 0.*deg, -89.6287*deg + + + + + + + + + + + 0, 0, -0.186*m + 0.*deg, 0.*deg, -89.6287*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.5635*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.5635*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.0847*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.0847*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -89.6287*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -89.6287*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.5635*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.5635*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -99.7567*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -99.7567*deg + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -93.5375*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -93.5375*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -93.5375*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -86.4625*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -86.4625*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -86.4625*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -80.2433*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -80.2433*deg + + + + + + + + + + + 0, 0, 0.195*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -0.195*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -103.3987*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -103.3987*deg + + + + + + + + + + + 0, 0, 0.62495*m + 0.*deg, 0.*deg, -90.5026*deg + + + + + + + + + + + 0, 0, -0.62495*m + 0.*deg, 0.*deg, -90.5026*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -77.0779*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -77.0779*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.3987*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.3987*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -97.9976*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -97.9976*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -93.3782*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -93.3782*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -93.3782*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -86.6218*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -86.6218*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -86.6218*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -82.4959*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -82.4959*deg + + + + + + + + + + + 0, 0, 0.186*m + 0.*deg, 0.*deg, -90.5026*deg + + + + + + + + + + + 0, 0, -0.186*m + 0.*deg, 0.*deg, -90.5026*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -77.0779*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -77.0779*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.3987*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.3987*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90.5026*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90.5026*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -77.0779*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -77.0779*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -76.8409*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -76.8409*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.8409*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.8409*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.8409*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.8409*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -103.5332*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -103.5332*deg + + + + + + + + + + + 0, 0, 0.62495*m + 0.*deg, 0.*deg, -90.2228*deg + + + + + + + + + + + 0, 0, -0.62495*m + 0.*deg, 0.*deg, -90.2228*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -76.6776*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -76.6776*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.5332*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.5332*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -97.9814*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -97.9814*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -93.1208*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -93.1208*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -93.1208*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -86.8792*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -86.8792*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -86.8792*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -82.2371*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -82.2371*deg + + + + + + + + + + + 0, 0, 0.186*m + 0.*deg, 0.*deg, -90.2228*deg + + + + + + + + + + + 0, 0, -0.186*m + 0.*deg, 0.*deg, -90.2228*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.6776*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.6776*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.5332*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.5332*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90.2234*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90.2234*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.6782*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.6782*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -99.4324*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -99.4324*deg + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -92.9962*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -92.9962*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -92.9962*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -87.0038*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -87.0038*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -87.0038*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0729*m + 0.*deg, 0.*deg, -80.5676*deg + + + + + + + + + + + 0, 0, 1.0729*m + 0.*deg, 0.*deg, -80.5676*deg + + + + + + + + + + + 0, 0, 0.195*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -0.195*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -103.0516*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -103.0516*deg + + + + + + + + + + + 0, 0, 0.62495*m + 0.*deg, 0.*deg, -89.3702*deg + + + + + + + + + + + 0, 0, -0.62495*m + 0.*deg, 0.*deg, -89.3702*deg + + + + + + + + + + + 0, 0, 0.63395*m + 0.*deg, 0.*deg, -76.3521*deg + + + + + + + + + + + 0, 0, -0.63395*m + 0.*deg, 0.*deg, -76.3521*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.0516*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.0516*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -97.337*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -97.337*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -92.8811*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -92.8811*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -92.8811*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -90*deg + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -87.1189*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -87.1189*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -87.1189*deg + + + + + + + + + + + + + + + + + 0, 0, -1.0639*m + 0.*deg, 0.*deg, -82.0437*deg + + + + + + + + + + + 0, 0, 1.0639*m + 0.*deg, 0.*deg, -82.0437*deg + + + + + + + + + + + 0, 0, 0.186*m + 0.*deg, 0.*deg, -89.3696*deg + + + + + + + + + + + 0, 0, -0.186*m + 0.*deg, 0.*deg, -89.3696*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.3516*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.3516*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.0516*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -103.0516*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -89.3696*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -89.3696*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.3516*deg + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, -76.3516*deg + + + + + + + + + + + + 0, 0, 0.*m + 0.*deg, 0.*deg, 270.00*deg + + + From c867babe601ef95adddfb278437f9333a46b2921 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Thu, 21 Nov 2024 12:40:07 -0600 Subject: [PATCH 075/418] Modernize Multi5x5ClusterProducer - removed unnecessary member data - avoid unnecessary allocations - use new framework syntax - added fillDescriptions --- .../src/Multi5x5ClusterProducer.cc | 195 ++++++++---------- 1 file changed, 84 insertions(+), 111 deletions(-) diff --git a/RecoEcal/EgammaClusterProducers/src/Multi5x5ClusterProducer.cc b/RecoEcal/EgammaClusterProducers/src/Multi5x5ClusterProducer.cc index 513f227d5068d..993a5b36c6505 100644 --- a/RecoEcal/EgammaClusterProducers/src/Multi5x5ClusterProducer.cc +++ b/RecoEcal/EgammaClusterProducers/src/Multi5x5ClusterProducer.cc @@ -14,6 +14,7 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/ESGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" #include "FWCore/Utilities/interface/Exception.h" #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h" #include "Geometry/CaloGeometry/interface/CaloGeometry.h" @@ -24,6 +25,7 @@ #include "Geometry/Records/interface/CaloGeometryRecord.h" #include "RecoEcal/EgammaClusterAlgos/interface/Multi5x5ClusterAlgo.h" #include "RecoEcal/EgammaCoreTools/interface/PositionCalc.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include #include @@ -34,142 +36,113 @@ class Multi5x5ClusterProducer : public edm::stream::EDProducer<> { public: Multi5x5ClusterProducer(const edm::ParameterSet& ps); - ~Multi5x5ClusterProducer() override; + void produce(edm::Event&, const edm::EventSetup&) final; - void produce(edm::Event&, const edm::EventSetup&) override; + static void fillDescriptions(edm::ConfigurationDescriptions&); private: - int nMaxPrintout_; // max # of printouts - int nEvt_; // internal counter of events + const edm::EDGetTokenT barrelHitToken_; + const edm::EDGetTokenT endcapHitToken_; + const edm::ESGetToken caloGeometryToken_; - // cluster which regions - bool doBarrel_; - bool doEndcap_; - - edm::EDGetTokenT barrelHitToken_; - edm::EDGetTokenT endcapHitToken_; - edm::ESGetToken caloGeometryToken_; - - std::string barrelClusterCollection_; - std::string endcapClusterCollection_; - - PositionCalc posCalculator_; // position calculation algorithm - Multi5x5ClusterAlgo* island_p; + const edm::EDPutTokenT barrelToken_; + const edm::EDPutTokenT endcapToken_; - bool counterExceeded() const { return ((nEvt_ > nMaxPrintout_) || (nMaxPrintout_ < 0)); } + Multi5x5ClusterAlgo island_; - const EcalRecHitCollection* getCollection(edm::Event& evt, const edm::EDGetTokenT& token); - - void clusterizeECALPart(edm::Event& evt, - const edm::EventSetup& es, - const edm::EDGetTokenT& token, - const std::string& clusterCollection, - const reco::CaloID::Detectors detector); - - void outputValidationInfo(reco::CaloClusterPtrVector& clusterPtrVector); + // cluster which regions + const bool doBarrel_; + const bool doEndcap_; + + reco::BasicClusterCollection clusterizeECALPart(const EcalRecHitCollection& hits, + const edm::EventSetup& es, + const reco::CaloID::Detectors detector); + + reco::BasicClusterCollection makeClusters(const EcalRecHitCollection& hits, + const CaloSubdetectorGeometry* geom, + const CaloSubdetectorGeometry* preshower, + const CaloSubdetectorTopology* topology, + const reco::CaloID::Detectors detector); }; #include "FWCore/Framework/interface/MakerMacros.h" DEFINE_FWK_MODULE(Multi5x5ClusterProducer); -Multi5x5ClusterProducer::Multi5x5ClusterProducer(const edm::ParameterSet& ps) { - // Parameters to identify the hit collections - barrelHitToken_ = consumes(ps.getParameter("barrelHitTag")); - - endcapHitToken_ = consumes(ps.getParameter("endcapHitTag")); - - //EventSetup Token for CaloGeometry - caloGeometryToken_ = esConsumes(); - - // should cluster algo be run in barrel and endcap? - doEndcap_ = ps.getParameter("doEndcap"); - doBarrel_ = ps.getParameter("doBarrel"); - - // The names of the produced cluster collections - barrelClusterCollection_ = ps.getParameter("barrelClusterCollection"); - endcapClusterCollection_ = ps.getParameter("endcapClusterCollection"); - - // Island algorithm parameters - double barrelSeedThreshold = ps.getParameter("IslandBarrelSeedThr"); - double endcapSeedThreshold = ps.getParameter("IslandEndcapSeedThr"); - - const std::vector flagnames = ps.getParameter >("RecHitFlagToBeExcluded"); - - const std::vector v_chstatus = StringToEnumValue(flagnames); - - // Parameters for the position calculation: - edm::ParameterSet posCalcParameters = ps.getParameter("posCalcParameters"); - posCalculator_ = PositionCalc(posCalcParameters); - - // Produces a collection of barrel and a collection of endcap clusters - produces(endcapClusterCollection_); - produces(barrelClusterCollection_); - - bool reassignSeedCrysToClusterItSeeds = false; - if (ps.exists("reassignSeedCrysToClusterItSeeds")) - reassignSeedCrysToClusterItSeeds = ps.getParameter("reassignSeedCrysToClusterItSeeds"); - - island_p = new Multi5x5ClusterAlgo( - barrelSeedThreshold, endcapSeedThreshold, v_chstatus, posCalculator_, reassignSeedCrysToClusterItSeeds); - - nEvt_ = 0; +Multi5x5ClusterProducer::Multi5x5ClusterProducer(const edm::ParameterSet& ps) + : barrelHitToken_{consumes(ps.getParameter("barrelHitTag"))}, + endcapHitToken_{consumes(ps.getParameter("endcapHitTag"))}, + caloGeometryToken_{esConsumes()}, + barrelToken_{produces(ps.getParameter("barrelClusterCollection"))}, + endcapToken_{produces(ps.getParameter("endcapClusterCollection"))}, + island_{ps.getParameter("IslandBarrelSeedThr"), + ps.getParameter("IslandEndcapSeedThr"), + StringToEnumValue(ps.getParameter>("RecHitFlagToBeExcluded")), + PositionCalc(ps.getParameter("posCalcParameters")), + ps.getParameter("reassignSeedCrysToClusterItSeeds")}, + doBarrel_{ps.getParameter("doBarrel")}, + doEndcap_{ps.getParameter("doEndcap")} {} + +void Multi5x5ClusterProducer::fillDescriptions(edm::ConfigurationDescriptions& iDesc) { + edm::ParameterSetDescription ps; + ps.add("barrelHitTag"); + ps.add("endcapHitTag"); + ps.add("doEndcap"); + ps.add("doBarrel"); + ps.add("barrelClusterCollection"); + ps.add("endcapClusterCollection"); + ps.add("IslandBarrelSeedThr"); + ps.add("IslandEndcapSeedThr"); + ps.add>("RecHitFlagToBeExcluded"); + + edm::ParameterSetDescription posCal; + posCal.add("LogWeighted"); + posCal.add("T0_barl"); + posCal.add("T0_endc"); + posCal.add("T0_endcPresh"); + posCal.add("W0"); + posCal.add("X0"); + ps.add("posCalcParameters", posCal); + + ps.add("reassignSeedCrysToClusterItSeeds", false); + iDesc.addDefault(ps); } -Multi5x5ClusterProducer::~Multi5x5ClusterProducer() { delete island_p; } - void Multi5x5ClusterProducer::produce(edm::Event& evt, const edm::EventSetup& es) { if (doEndcap_) { - clusterizeECALPart(evt, es, endcapHitToken_, endcapClusterCollection_, reco::CaloID::DET_ECAL_ENDCAP); + // get the hit collection from the event: + const EcalRecHitCollection& hitCollection = evt.get(endcapHitToken_); + evt.emplace(endcapToken_, clusterizeECALPart(hitCollection, es, reco::CaloID::DET_ECAL_ENDCAP)); } if (doBarrel_) { - clusterizeECALPart(evt, es, barrelHitToken_, barrelClusterCollection_, reco::CaloID::DET_ECAL_BARREL); + // get the hit collection from the event: + const EcalRecHitCollection& hitCollection = evt.get(barrelHitToken_); + evt.emplace(barrelToken_, clusterizeECALPart(hitCollection, es, reco::CaloID::DET_ECAL_BARREL)); } - - nEvt_++; } -const EcalRecHitCollection* Multi5x5ClusterProducer::getCollection( - edm::Event& evt, const edm::EDGetTokenT& token) { - edm::Handle rhcHandle; - evt.getByToken(token, rhcHandle); - return rhcHandle.product(); +reco::BasicClusterCollection Multi5x5ClusterProducer::makeClusters(const EcalRecHitCollection& hits, + const CaloSubdetectorGeometry* geom, + const CaloSubdetectorGeometry* preshower, + const CaloSubdetectorTopology* topology, + const reco::CaloID::Detectors detector) { + // Run the clusterization algorithm: + return island_.makeClusters(&hits, geom, topology, preshower, detector); } -void Multi5x5ClusterProducer::clusterizeECALPart(edm::Event& evt, - const edm::EventSetup& es, - const edm::EDGetTokenT& token, - const std::string& clusterCollection, - const reco::CaloID::Detectors detector) { - // get the hit collection from the event: - const EcalRecHitCollection* hitCollection_p = getCollection(evt, token); - +reco::BasicClusterCollection Multi5x5ClusterProducer::clusterizeECALPart(const EcalRecHitCollection& hitCollection, + const edm::EventSetup& es, + const reco::CaloID::Detectors detector) { // get the geometry and topology from the event setup: - edm::ESHandle geoHandle = es.getHandle(caloGeometryToken_); - - const CaloSubdetectorGeometry* geometry_p; - std::unique_ptr topology_p; + CaloGeometry const& geo = es.getData(caloGeometryToken_); + const CaloSubdetectorGeometry* preshower_p = geo.getSubdetectorGeometry(DetId::Ecal, EcalPreshower); if (detector == reco::CaloID::DET_ECAL_BARREL) { - geometry_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalBarrel); - topology_p = std::make_unique(*geoHandle); + auto geometry_p = geo.getSubdetectorGeometry(DetId::Ecal, EcalBarrel); + EcalBarrelTopology topology{geo}; + return makeClusters(hitCollection, geometry_p, preshower_p, &topology, detector); } else { - geometry_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalEndcap); - topology_p = std::make_unique(*geoHandle); + auto geometry_p = geo.getSubdetectorGeometry(DetId::Ecal, EcalEndcap); + EcalEndcapTopology topology{geo}; + return makeClusters(hitCollection, geometry_p, preshower_p, &topology, detector); } - - const CaloSubdetectorGeometry* geometryES_p; - geometryES_p = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalPreshower); - - // Run the clusterization algorithm: - reco::BasicClusterCollection clusters; - clusters = island_p->makeClusters(hitCollection_p, geometry_p, topology_p.get(), geometryES_p, detector); - - // create a unique_ptr to a BasicClusterCollection, copy the barrel clusters into it and put in the Event: - auto clusters_p = std::make_unique(); - clusters_p->assign(clusters.begin(), clusters.end()); - edm::OrphanHandle bccHandle; - if (detector == reco::CaloID::DET_ECAL_BARREL) - bccHandle = evt.put(std::move(clusters_p), barrelClusterCollection_); - else - bccHandle = evt.put(std::move(clusters_p), endcapClusterCollection_); } From 0ffb4c030bd8f02b23e78cfe4a9f75d73605cabc Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Thu, 21 Nov 2024 23:21:22 +0100 Subject: [PATCH 076/418] [UBSAN][LST]Fix runtime error by keep the region object alive --- RecoTracker/LST/plugins/LSTOutputConverter.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoTracker/LST/plugins/LSTOutputConverter.cc b/RecoTracker/LST/plugins/LSTOutputConverter.cc index 0bbdd68051b87..73209db234b5e 100644 --- a/RecoTracker/LST/plugins/LSTOutputConverter.cc +++ b/RecoTracker/LST/plugins/LSTOutputConverter.cc @@ -194,8 +194,8 @@ void LSTOutputConverter::produce(edm::Event& iEvent, const edm::EventSetup& iSet hitsForSeed.emplace_back(dynamic_cast(&hit)); nHits++; } - - seedCreator_->init(GlobalTrackingRegion(), iSetup, nullptr); + GlobalTrackingRegion region; + seedCreator_->init(region, iSetup, nullptr); seedCreator_->makeSeed(seeds, hitsForSeed); if (seeds.empty()) { edm::LogInfo("LSTOutputConverter") From a1d896b97a8d6e594861b8628b68c1cdf7035310 Mon Sep 17 00:00:00 2001 From: Srecko Date: Fri, 22 Nov 2024 09:54:27 +0100 Subject: [PATCH 077/418] service template type should not be a pointer. Service was not being found due to that. --- .../JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc | 7 ++----- .../JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc | 5 +---- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc b/HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc index f69c6afb72da0..75882c1928925 100644 --- a/HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc +++ b/HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc @@ -430,11 +430,8 @@ void HLTriggerJSONMonitoring::globalEndLuminosityBlockSummary(edm::LuminosityBlo unsigned int run = lumi.run(); bool writeFiles = true; - if (edm::Service().isAvailable()) { - evf::FastMonitoringService* fms = - (evf::FastMonitoringService*)(edm::Service().operator->()); - if (fms) - writeFiles = fms->shouldWriteFiles(ls); + if (edm::Service().isAvailable()) { + writeFiles = edm::Service()->shouldWriteFiles(ls); } if (not writeFiles) return; diff --git a/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc b/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc index 3219f2ccf1670..abf28da4c70d9 100644 --- a/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc +++ b/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc @@ -367,10 +367,7 @@ void L1TriggerJSONMonitoring::globalEndLuminosityBlockSummary(edm::LuminosityBlo bool writeFiles = true; if (edm::Service().isAvailable()) { - evf::FastMonitoringService* fms = - (evf::FastMonitoringService*)(edm::Service().operator->()); - if (fms) - writeFiles = fms->shouldWriteFiles(ls); + writeFiles = edm::Service()->shouldWriteFiles(ls); } if (not writeFiles) return; From 8f13c7ac82b5727a0f7f2dc651f38a6dabe00f9a Mon Sep 17 00:00:00 2001 From: Srecko Date: Fri, 22 Nov 2024 10:37:17 +0100 Subject: [PATCH 078/418] remove writeFiles --- HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc | 6 ++---- HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc b/HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc index 75882c1928925..e2ebf47540fad 100644 --- a/HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc +++ b/HLTrigger/JSONMonitoring/plugins/HLTriggerJSONMonitoring.cc @@ -429,12 +429,10 @@ void HLTriggerJSONMonitoring::globalEndLuminosityBlockSummary(edm::LuminosityBlo unsigned int ls = lumi.luminosityBlock(); unsigned int run = lumi.run(); - bool writeFiles = true; if (edm::Service().isAvailable()) { - writeFiles = edm::Service()->shouldWriteFiles(ls); + if (!edm::Service()->shouldWriteFiles(ls)) + return; } - if (not writeFiles) - return; unsigned int processed = lumidata->processed.value().at(0); auto const& rundata = *runCache(lumi.getRun().index()); diff --git a/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc b/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc index abf28da4c70d9..325d254b4c846 100644 --- a/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc +++ b/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc @@ -365,12 +365,10 @@ void L1TriggerJSONMonitoring::globalEndLuminosityBlockSummary(edm::LuminosityBlo unsigned int ls = lumi.luminosityBlock(); unsigned int run = lumi.run(); - bool writeFiles = true; if (edm::Service().isAvailable()) { - writeFiles = edm::Service()->shouldWriteFiles(ls); + if (!edm::Service()->shouldWriteFiles(ls)) + return; } - if (not writeFiles) - return; unsigned int processed = lumidata->processed.value().at(0); auto const& rundata = *runCache(lumi.getRun().index()); From 275d4bf174104b43b797500b3cac3d49ec22a2a3 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Fri, 22 Nov 2024 15:27:05 +0100 Subject: [PATCH 079/418] Fix MTDGeometryBuilder text to avoid rounding issues with alternative architectures --- .../test/DD4hep_TestPixelTopology.cc | 219 +++++++++++------- .../test/MTDDigiGeometryAnalyzer.cc | 95 +++++--- 2 files changed, 208 insertions(+), 106 deletions(-) diff --git a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc index 156503f34650d..15d1f9baa6388 100644 --- a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc +++ b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc @@ -47,6 +47,7 @@ using namespace cms; using namespace geant_units::operators; +using namespace cms_rounding; class DD4hep_TestPixelTopology : public edm::one::EDAnalyzer<> { public: @@ -60,6 +61,18 @@ class DD4hep_TestPixelTopology : public edm::one::EDAnalyzer<> { void theBaseNumber(cms::DDFilteredView& fv); private: + inline std::string fround(const double in, const size_t prec) const { + std::stringstream ss; + ss << std::setprecision(prec) << std::fixed << std::setw(14) << roundIfNear0(in); + return ss.str(); + } + + inline std::string fvecround(const auto& vecin, const size_t prec) const { + std::stringstream ss; + ss << std::setprecision(prec) << std::fixed << std::setw(14) << roundVecIfNear0(vecin); + return ss.str(); + } + void analyseRectangle(const GeomDetUnit& det); void checkRotation(const GeomDetUnit& det); @@ -75,13 +88,12 @@ class DD4hep_TestPixelTopology : public edm::one::EDAnalyzer<> { edm::ESGetToken mtdtopoToken_; edm::ESGetToken mtdgeoToken_; - std::stringstream sunitt; + std::stringstream sunitt_; constexpr static double tolerance{0.5e-3_mm}; }; using DD3Vector = ROOT::Math::DisplacementVector3D>; using angle_units::operators::convertRadToDeg; -using cms_rounding::roundIfNear0, cms_rounding::roundVecIfNear0; DD4hep_TestPixelTopology::DD4hep_TestPixelTopology(const edm::ParameterSet& iConfig) : tag_(iConfig.getParameter("DDDetector")), @@ -125,10 +137,15 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even edm::LogError("DD4hep_TestPixelTopology") << "ESTransientHandle pTP is not valid!"; return; } else { - sunitt << "MTD topology mode = " << pTP.product()->getMTDTopologyMode() << " BtlLayout = " - << static_cast(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())) - << " EtlLayout = " - << static_cast(MTDTopologyMode::etlLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "MTD topology mode = " << pTP.product()->getMTDTopologyMode() << " BtlLayout = " + << static_cast(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())) + << " EtlLayout = " + << static_cast(MTDTopologyMode::etlLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); + sunitt_ << "MTD topology mode = " << pTP.product()->getMTDTopologyMode() << " BtlLayout = " + << static_cast(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())) + << " EtlLayout = " + << static_cast(MTDTopologyMode::etlLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); } auto pDG = iSetup.getTransientHandle(mtdgeoToken_); @@ -141,11 +158,13 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even std::string attribute("MtdDDStructure"), name; bool isBarrel = false; if (ddTopNodeName_ == "BarrelTimingLayer") { - sunitt << " BTL MTDGeometry:\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") << " BTL MTDGeometry:\n"; + sunitt_ << " BTL MTDGeometry:\n"; name = "FastTimerHitsBarrel"; isBarrel = true; } else if (ddTopNodeName_ == "EndcapTimingLayer") { - sunitt << " ETL MTDGeometry:\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") << " ETL MTDGeometry:\n"; + sunitt_ << " ETL MTDGeometry:\n"; name = "FastTimerHitsEndcap"; } else { edm::LogError("DD4hep_TestPixelTopology") << "No correct sensitive detector provided, abort" << ddTopNodeName_; @@ -273,13 +292,20 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even const GeomDetUnit theDetUnit = *(dynamic_cast(thedet)); if (isBarrel) { - sunitt << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() - << " RU/mod= " << modIdBTL.globalRunit() << " / " << modIdBTL.module(); + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() + << " RU/mod= " << modIdBTL.globalRunit() << " / " << modIdBTL.module(); + sunitt_ << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() + << " RU/mod= " << modIdBTL.globalRunit() << " / " << modIdBTL.module(); } else { - sunitt << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() - << " disc/face/sec= " << modIdETL.nDisc() << " / " << modIdETL.discSide() << " / " - << modIdETL.sector() << " mod/typ/sens= " << modIdETL.module() << " / " << modIdETL.modType() - << " / " << modIdETL.sensor(); + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() + << " disc/face/sec= " << modIdETL.nDisc() << " / " << modIdETL.discSide() << " / " << modIdETL.sector() + << " mod/typ/sens= " << modIdETL.module() << " / " << modIdETL.modType() << " / " << modIdETL.sensor(); + sunitt_ << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() + << " disc/face/sec= " << modIdETL.nDisc() << " / " << modIdETL.discSide() << " / " + << modIdETL.sector() << " mod/typ/sens= " << modIdETL.module() << " / " << modIdETL.modType() + << " / " << modIdETL.sensor(); } analyseRectangle(theDetUnit); } @@ -301,12 +327,6 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even // Test of positions for sensitive detectors // - auto fround = [&](double in) { - std::stringstream ss; - ss << std::fixed << std::setw(14) << roundIfNear0(in); - return ss.str(); - }; - if (!dd4hep::isA(fv.solid())) { throw cms::Exception("DD4hep_TestPixelTopology") << "MTD sensitive element not a DDBox"; break; @@ -347,8 +367,10 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even recoCol = thepixel.second; if (origRow != recoRow || origCol != recoCol) { - sunitt << "DIFFERENCE row/col, orig= " << origRow << " " << origCol << " reco= " << recoRow << " " - << recoCol << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") << "DIFFERENCE row/col, orig= " << origRow << " " << origCol + << " reco= " << recoRow << " " << recoCol << "\n"; + sunitt_ << "DIFFERENCE row/col, orig= " << origRow << " " << origCol << " reco= " << recoRow << " " + << recoCol << "\n"; recoRow = origRow; recoCol = origCol; } @@ -367,9 +389,11 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even const auto& modGlobal = thedet->toGlobal(modLocal); if (isNewId && iloop == nTest - 1) { - sunitt << "row/col= " << recoRow << " / " << recoCol << " local pos= " << std::fixed << std::setw(14) - << roundVecIfNear0(modLocal) << " global pos= " << std::setw(14) << roundVecIfNear0(modGlobal) - << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "row/col= " << recoRow << " / " << recoCol << " local pos= " << fvecround(modLocal, 4) + << " global pos= " << fvecround(modGlobal, 4) << "\n"; + sunitt_ << "row/col= " << recoRow << " / " << recoCol << " local pos= " << fvecround(modLocal, 2) + << " global pos= " << fvecround(modGlobal, 2) << "\n"; } const double deltax = convertCmToMm(modGlobal.x()) - (refGlobalPoints[iloop].x() / dd4hep::mm); @@ -383,38 +407,71 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even if (std::abs(deltax) > tolerance || std::abs(deltay) > tolerance || std::abs(deltaz) > tolerance || std::abs(local_deltax) > tolerance || std::abs(local_deltay) > tolerance || std::abs(local_deltaz) > tolerance) { - sunitt << print_path() << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") << print_path() << "\n"; + sunitt_ << print_path() << "\n"; if (isBarrel) { - sunitt << "rawId= " << theIdBTL.rawId() << " geoId= " << geoId.rawId() - << " side/rod= " << theIdBTL.mtdSide() << " / " << theIdBTL.mtdRR() - << " RU= " << theIdBTL.globalRunit() << " module/geomodule= " << theIdBTL.module() << " / " - << static_cast(geoId).module() << " crys= " << theIdBTL.crystal() - << " BTLDetId row/col= " << origRow << " / " << origCol << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "rawId= " << theIdBTL.rawId() << " geoId= " << geoId.rawId() << " side/rod= " << theIdBTL.mtdSide() + << " / " << theIdBTL.mtdRR() << " RU= " << theIdBTL.globalRunit() + << " module/geomodule= " << theIdBTL.module() << " / " << static_cast(geoId).module() + << " crys= " << theIdBTL.crystal() << " BTLDetId row/col= " << origRow << " / " << origCol << "\n"; + sunitt_ << "rawId= " << theIdBTL.rawId() << " geoId= " << geoId.rawId() + << " side/rod= " << theIdBTL.mtdSide() << " / " << theIdBTL.mtdRR() + << " RU= " << theIdBTL.globalRunit() << " module/geomodule= " << theIdBTL.module() << " / " + << static_cast(geoId).module() << " crys= " << theIdBTL.crystal() + << " BTLDetId row/col= " << origRow << " / " << origCol << "\n"; } else { - sunitt << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() - << " disc/face/sec= " << modIdETL.nDisc() << " / " << modIdETL.discSide() << " / " - << modIdETL.sector() << " mod/typ/sens= " << modIdETL.module() << " / " << modIdETL.modType() - << " / " << modIdETL.sensor() << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() + << " disc/face/sec= " << modIdETL.nDisc() << " / " << modIdETL.discSide() << " / " + << modIdETL.sector() << " mod/typ/sens= " << modIdETL.module() << " / " << modIdETL.modType() << " / " + << modIdETL.sensor() << "\n"; + sunitt_ << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() + << " disc/face/sec= " << modIdETL.nDisc() << " / " << modIdETL.discSide() << " / " + << modIdETL.sector() << " mod/typ/sens= " << modIdETL.module() << " / " << modIdETL.modType() + << " / " << modIdETL.sensor() << "\n"; } - sunitt << "Ref#" << iloop << " local= " << fround(refLocalPoints[iloop].x() / dd4hep::mm) - << fround(refLocalPoints[iloop].y() / dd4hep::mm) << fround(refLocalPoints[iloop].z() / dd4hep::mm) - << " Orig global= " << fround(refGlobalPoints[iloop].x() / dd4hep::mm) - << fround(refGlobalPoints[iloop].y() / dd4hep::mm) << fround(refGlobalPoints[iloop].z() / dd4hep::mm) - << " Reco global= " << fround(convertCmToMm(modGlobal.x())) << fround(convertCmToMm(modGlobal.y())) - << fround(convertCmToMm(modGlobal.z())) << " Delta= " << fround(deltax) << fround(deltay) - << fround(deltaz) << " Local Delta= " << fround(local_deltax) << fround(local_deltay) - << fround(local_deltaz) << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "Ref#" << iloop << " local= " << fround(refLocalPoints[iloop].x() / dd4hep::mm, 4) + << fround(refLocalPoints[iloop].y() / dd4hep::mm, 4) + << fround(refLocalPoints[iloop].z() / dd4hep::mm, 4) + << " Orig global= " << fround(refGlobalPoints[iloop].x() / dd4hep::mm, 4) + << fround(refGlobalPoints[iloop].y() / dd4hep::mm, 4) + << fround(refGlobalPoints[iloop].z() / dd4hep::mm, 4) + << " Reco global= " << fround(convertCmToMm(modGlobal.x()), 4) + << fround(convertCmToMm(modGlobal.y()), 4) << fround(convertCmToMm(modGlobal.z()), 4) + << " Delta= " << fround(deltax, 4) << fround(deltay, 4) << fround(deltaz, 4) + << " Local Delta= " << fround(local_deltax, 4) << fround(local_deltay, 4) << fround(local_deltaz, 4) + << "\n"; + sunitt_ << "Ref#" << iloop << " local= " << fround(refLocalPoints[iloop].x() / dd4hep::mm, 2) + << fround(refLocalPoints[iloop].y() / dd4hep::mm, 2) + << fround(refLocalPoints[iloop].z() / dd4hep::mm, 2) + << " Orig global= " << fround(refGlobalPoints[iloop].x() / dd4hep::mm, 2) + << fround(refGlobalPoints[iloop].y() / dd4hep::mm, 2) + << fround(refGlobalPoints[iloop].z() / dd4hep::mm, 2) + << " Reco global= " << fround(convertCmToMm(modGlobal.x()), 2) + << fround(convertCmToMm(modGlobal.y()), 2) << fround(convertCmToMm(modGlobal.z()), 2) + << " Delta= " << fround(deltax, 2) << fround(deltay, 2) << fround(deltaz, 2) + << " Local Delta= " << fround(local_deltax, 2) << fround(local_deltay, 2) << fround(local_deltaz, 2) + << "\n"; if (std::abs(deltax) > tolerance || std::abs(deltay) > tolerance || std::abs(deltaz) > tolerance) { - sunitt << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop << " dx/dy/dz= " << fround(deltax) - << fround(deltay) << fround(deltaz) << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop << " dx/dy/dz= " << fround(deltax, 4) + << fround(deltay, 4) << fround(deltaz, 4) << "\n"; + sunitt_ << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop << " dx/dy/dz= " << fround(deltax, 2) + << fround(deltay, 2) << fround(deltaz, 2) << "\n"; } if (std::abs(local_deltax) > tolerance || std::abs(local_deltay) > tolerance || std::abs(local_deltaz) > tolerance) { - sunitt << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop - << " local dx/dy/dz= " << fround(local_deltax) << fround(local_deltay) << fround(local_deltaz) - << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop + << " local dx/dy/dz= " << fround(local_deltax, 4) << fround(local_deltay, 4) + << fround(local_deltaz, 4) << "\n"; + sunitt_ << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop + << " local dx/dy/dz= " << fround(local_deltax, 2) << fround(local_deltay, 2) + << fround(local_deltaz, 2) << "\n"; } } } @@ -423,18 +480,23 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even } while (fv.next(0)); if (isBarrel && nSensBTL != pDG.product()->detsBTL().size()) { - sunitt << "DIFFERENCE #ideal = " << nSensBTL << " #reco = " << pDG.product()->detsBTL().size() - << " BTL module numbers are not matching!"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "DIFFERENCE #ideal = " << nSensBTL << " #reco = " << pDG.product()->detsBTL().size() + << " BTL module numbers are not matching!"; + sunitt_ << "DIFFERENCE #ideal = " << nSensBTL << " #reco = " << pDG.product()->detsBTL().size() + << " BTL module numbers are not matching!"; } if (!isBarrel && nSensETL != pDG.product()->detsETL().size()) { - sunitt << "DIFFERENCE #ideal = " << nSensETL << " #reco = " << pDG.product()->detsBTL().size() - << " ETL module numbers are not matching!"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << "DIFFERENCE #ideal = " << nSensETL << " #reco = " << pDG.product()->detsBTL().size() + << " ETL module numbers are not matching!"; + sunitt_ << "DIFFERENCE #ideal = " << nSensETL << " #reco = " << pDG.product()->detsBTL().size() + << " ETL module numbers are not matching!"; } - if (!sunitt.str().empty()) { - edm::LogVerbatim("DD4hep_TestPixelTopology") << sunitt.str(); - edm::LogVerbatim("MTDUnitTest") << sunitt.str(); + if (!sunitt_.str().empty()) { + edm::LogVerbatim("MTDUnitTest") << sunitt_.str(); } } @@ -472,33 +534,26 @@ void DD4hep_TestPixelTopology::analyseRectangle(const GeomDetUnit& det) { if (outerMiddle.perp() < innerMiddle.perp()) std::swap(outerMiddle, innerMiddle); - auto fround = [&](double in) { - std::stringstream ss; - ss << std::fixed << std::setw(14) << roundIfNear0(in); - return ss.str(); - }; - - auto fvecround = [&](GlobalPoint vecin) { - std::stringstream ss; - ss << std::fixed << std::setw(14) << roundVecIfNear0(vecin); - return ss.str(); - }; - - sunitt << " " << fvecround(pos) << " R= " << fround(std::sqrt(pos.x() * pos.x() + pos.y() * pos.y())) - << " phi= " << fround(convertRadToDeg(pos.phi())) << " outerMiddle " << fvecround(outerMiddle) << "\n" - << " l/w/t " << fround(length) << " / " << fround(width) << " / " << fround(thickness) - << " RadLeng= " << p.mediumProperties().radLen() << " Xi= " << p.mediumProperties().xi() - << " det center inside bounds? " << tb->inside(det.surface().toLocal(pos)) << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << " " << fvecround(pos, 4) << " R= " << fround(std::sqrt(pos.x() * pos.x() + pos.y() * pos.y()), 4) + << " phi= " << fround(convertRadToDeg(pos.phi()), 4) << " outerMiddle " << fvecround(outerMiddle, 4) << "\n" + << " l/w/t " << fround(length, 4) << " / " << fround(width, 4) << " / " << fround(thickness, 4) + << " RadLeng= " << p.mediumProperties().radLen() << " Xi= " << p.mediumProperties().xi() + << " det center inside bounds? " << tb->inside(det.surface().toLocal(pos)) << "\n"; + sunitt_ << " " << fvecround(pos, 2) << " R= " << fround(std::sqrt(pos.x() * pos.x() + pos.y() * pos.y()), 2) + << " phi= " << fround(convertRadToDeg(pos.phi()), 2) << " outerMiddle " << fvecround(outerMiddle, 2) << "\n" + << " l/w/t " << fround(length, 2) << " / " << fround(width, 2) << " / " << fround(thickness, 2) + << " RadLeng= " << p.mediumProperties().radLen() << " Xi= " << p.mediumProperties().xi() + << " det center inside bounds? " << tb->inside(det.surface().toLocal(pos)) << "\n"; checkRotation(det); } void DD4hep_TestPixelTopology::checkRotation(const GeomDetUnit& det) { - const double eps = std::numeric_limits::epsilon(); + const double eps = 10. * std::numeric_limits::epsilon(); static int first = 0; if (first == 0) { - edm::LogVerbatim("DD4hep_TestPixelTopology") - << "numeric_limits::epsilon() " << std::numeric_limits::epsilon(); + edm::LogVerbatim("DD4hep_TestPixelTopology") << "factor x numeric_limits::epsilon() " << eps; first = 1; } @@ -510,12 +565,18 @@ void DD4hep_TestPixelTopology::checkRotation(const GeomDetUnit& det) { GlobalVector aref = b.cross(c); GlobalVector bref = c.cross(a); if ((a - aref).mag() > eps || (b - bref).mag() > eps || (c - cref).mag() > eps) { - sunitt << " Rotation not good by cross product: " << (a - aref).mag() << ", " << (b - bref).mag() << ", " - << (c - cref).mag() << " for det at pos " << det.surface().position() << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << " DIFFERENCE Rotation not good by cross product: " << (a - aref).mag() << ", " << (b - bref).mag() << ", " + << (c - cref).mag() << " for det at pos " << det.surface().position() << "\n"; + sunitt_ << " DIFFERENCE Rotation not good by cross product: " << (a - aref).mag() << ", " << (b - bref).mag() + << ", " << (c - cref).mag() << " for det at pos " << det.surface().position() << "\n"; } if (fabs(a.mag() - 1.) > eps || fabs(b.mag() - 1.) > eps || fabs(c.mag() - 1.) > eps) { - sunitt << " Rotation not good by bector mag: " << (a).mag() << ", " << (b).mag() << ", " << (c).mag() - << " for det at pos " << det.surface().position() << "\n"; + edm::LogVerbatim("DD4hep_TestPixelTopology") + << " DIFFERENCE Rotation not good by vector mag: " << (a).mag() << ", " << (b).mag() << ", " << (c).mag() + << " for det at pos " << det.surface().position() << "\n"; + sunitt_ << " DIFFERENCE Rotation not good by vector mag: " << (a).mag() << ", " << (b).mag() << ", " << (c).mag() + << " for det at pos " << det.surface().position() << "\n"; } } diff --git a/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc b/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc index cc5852034ac6d..7a378e0054595 100644 --- a/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc +++ b/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc @@ -28,6 +28,8 @@ #include "CLHEP/Random/RandFlat.h" +using namespace cms_rounding; + // class declaration class MTDDigiGeometryAnalyzer : public edm::one::EDAnalyzer<> { @@ -40,16 +42,26 @@ class MTDDigiGeometryAnalyzer : public edm::one::EDAnalyzer<> { void endJob() override {} private: + inline std::string fround(const double in, const size_t prec) const { + std::stringstream ss; + ss << std::setprecision(prec) << std::fixed << std::setw(14) << roundIfNear0(in); + return ss.str(); + } + + inline std::string fvecround(const auto& vecin, const size_t prec) const { + std::stringstream ss; + ss << std::setprecision(prec) << std::fixed << std::setw(14) << roundVecIfNear0(vecin); + return ss.str(); + } + void checkRectangularMTDTopology(const RectangularMTDTopology&); void checkPixelsAcceptance(const GeomDetUnit& det); - std::stringstream sunitt; + std::stringstream sunitt_; edm::ESGetToken mtdgeoToken_; }; -using cms_rounding::roundIfNear0, cms_rounding::roundVecIfNear0; - MTDDigiGeometryAnalyzer::MTDDigiGeometryAnalyzer(const edm::ParameterSet& iConfig) { mtdgeoToken_ = esConsumes(); } @@ -60,49 +72,75 @@ void MTDDigiGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::Event // get the MTDGeometry // auto pDD = iSetup.getTransientHandle(mtdgeoToken_); - sunitt << "MTDGeometry:\n" - << " # detectors = " << pDD->detUnits().size() << "\n" - << " # types = " << pDD->detTypes().size() << "\n" - << " # BTL dets = " << pDD->detsBTL().size() << "\n" - << " # ETL dets = " << pDD->detsETL().size() << "\n" - << " # layers " << pDD->geomDetSubDetector(1) << " = " << pDD->numberOfLayers(1) << "\n" - << " # layers " << pDD->geomDetSubDetector(2) << " = " << pDD->numberOfLayers(2) << "\n" - << " # dets = " << pDD->dets().size() << "\n" - << " # detUnitIds = " << pDD->detUnitIds().size() << "\n" - << " # detIds = " << pDD->detIds().size() << "\n"; + edm::LogVerbatim("MTDDigiGeometryAnalyzer") + << "MTDGeometry:\n" + << " # detectors = " << pDD->detUnits().size() << "\n" + << " # types = " << pDD->detTypes().size() << "\n" + << " # BTL dets = " << pDD->detsBTL().size() << "\n" + << " # ETL dets = " << pDD->detsETL().size() << "\n" + << " # layers " << pDD->geomDetSubDetector(1) << " = " << pDD->numberOfLayers(1) << "\n" + << " # layers " << pDD->geomDetSubDetector(2) << " = " << pDD->numberOfLayers(2) << "\n" + << " # dets = " << pDD->dets().size() << "\n" + << " # detUnitIds = " << pDD->detUnitIds().size() << "\n" + << " # detIds = " << pDD->detIds().size() << "\n"; + + sunitt_ << "MTDGeometry:\n" + << " # detectors = " << pDD->detUnits().size() << "\n" + << " # types = " << pDD->detTypes().size() << "\n" + << " # BTL dets = " << pDD->detsBTL().size() << "\n" + << " # ETL dets = " << pDD->detsETL().size() << "\n" + << " # layers " << pDD->geomDetSubDetector(1) << " = " << pDD->numberOfLayers(1) << "\n" + << " # layers " << pDD->geomDetSubDetector(2) << " = " << pDD->numberOfLayers(2) << "\n" + << " # dets = " << pDD->dets().size() << "\n" + << " # detUnitIds = " << pDD->detUnitIds().size() << "\n" + << " # detIds = " << pDD->detIds().size() << "\n"; for (auto const& it : pDD->detTypes()) { if (dynamic_cast((it)) != nullptr) { const PixelTopology& p = (dynamic_cast((it)))->specificTopology(); const RectangularMTDTopology& topo = static_cast(p); auto pitchval = topo.pitch(); - sunitt << "\n Subdetector " << it->subDetector() << " MTD Det " << it->name() << "\n" - << " Rows " << topo.nrows() << " Columns " << topo.ncolumns() << " ROCS X " << topo.rocsX() - << " ROCS Y " << topo.rocsY() << " Rows/ROC " << topo.rowsperroc() << " Cols/ROC " << topo.colsperroc() - << " Pitch X " << pitchval.first << " Pitch Y " << pitchval.second << " Sensor Interpad X " - << topo.gapxInterpad() << " Sensor Interpad Y " << topo.gapyInterpad() << " Sensor Border X " - << topo.gapxBorder() << " Sensor Border Y " << topo.gapyBorder() << "\n"; + edm::LogVerbatim("MTDDigiGeometryAnalyzer") + << "\n Subdetector " << it->subDetector() << " MTD Det " << it->name() << "\n" + << " Rows " << topo.nrows() << " Columns " << topo.ncolumns() << " ROCS X " << topo.rocsX() + << " ROCS Y " << topo.rocsY() << " Rows/ROC " << topo.rowsperroc() << " Cols/ROC " << topo.colsperroc() + << " Pitch X " << fround(pitchval.first, 4) << " Pitch Y " << fround(pitchval.second, 4) + << " Sensor Interpad X " << fround(topo.gapxInterpad(), 4) << " Sensor Interpad Y " + << fround(topo.gapyInterpad(), 4) << " Sensor Border X " << fround(topo.gapxBorder(), 4) + << " Sensor Border Y " << fround(topo.gapyBorder(), 4) << "\n"; + sunitt_ << "\n Subdetector " << it->subDetector() << " MTD Det " << it->name() << "\n" + << " Rows " << topo.nrows() << " Columns " << topo.ncolumns() << " ROCS X " << topo.rocsX() + << " ROCS Y " << topo.rocsY() << " Rows/ROC " << topo.rowsperroc() << " Cols/ROC " << topo.colsperroc() + << " Pitch X " << fround(pitchval.first, 2) << " Pitch Y " << fround(pitchval.second, 2) + << " Sensor Interpad X " << fround(topo.gapxInterpad(), 2) << " Sensor Interpad Y " + << fround(topo.gapyInterpad(), 2) << " Sensor Border X " << fround(topo.gapxBorder(), 2) + << " Sensor Border Y " << fround(topo.gapyBorder(), 2) << "\n"; checkRectangularMTDTopology(topo); } } - sunitt << "\nAcceptance of BTL module:"; + edm::LogVerbatim("MTDDigiGeometryAnalyzer") << "\nAcceptance of BTL module:"; + sunitt_ << "\nAcceptance of BTL module:"; auto const& btldet = *(dynamic_cast(pDD->detsBTL().front())); checkPixelsAcceptance(btldet); - sunitt << "\nAcceptance of ETL module:"; + edm::LogVerbatim("MTDDigiGeometryAnalyzer") << "\nAcceptance of ETL module:"; + sunitt_ << "\nAcceptance of ETL module:"; auto const& etldet = *(dynamic_cast(pDD->detsETL().front())); checkPixelsAcceptance(etldet); - edm::LogVerbatim("MTDDigiGeometryAnalyzer") << sunitt.str(); - edm::LogVerbatim("MTDUnitTest") << sunitt.str(); + edm::LogVerbatim("MTDUnitTest") << sunitt_.str(); } void MTDDigiGeometryAnalyzer::checkRectangularMTDTopology(const RectangularMTDTopology& topo) { - sunitt << "Pixel center location:\n"; + edm::LogVerbatim("MTDDigiGeometryAnalyzer") << "Pixel center location:\n"; + sunitt_ << "Pixel center location:\n"; LocalPoint center(0, 0, 0); for (int r = 0; r < topo.nrows(); r++) { for (int c = 0; c < topo.ncolumns(); c++) { - sunitt << std::setw(7) << r << std::setw(7) << c << " " << topo.pixelToModuleLocalPoint(center, r, c) << "\n"; + edm::LogVerbatim("MTDDigiGeometryAnalyzer") << std::setw(7) << r << std::setw(7) << c << " " + << fvecround(topo.pixelToModuleLocalPoint(center, r, c), 4) << "\n"; + sunitt_ << std::setw(7) << r << std::setw(7) << c << " " + << fvecround(topo.pixelToModuleLocalPoint(center, r, c), 2) << "\n"; } } } @@ -115,7 +153,9 @@ void MTDDigiGeometryAnalyzer::checkPixelsAcceptance(const GeomDetUnit& det) { double length = tb->length(); double width = tb->width(); - sunitt << " X (width) = " << width << " Y (length) = " << length; + edm::LogVerbatim("MTDDigiGeometryAnalyzer") + << " X (width) = " << fround(width, 4) << " Y (length) = " << fround(length, 4); + sunitt_ << " X (width) = " << fround(width, 2) << " Y (length) = " << fround(length, 2); const ProxyMTDTopology& topoproxy = static_cast(det.topology()); const RectangularMTDTopology& topo = static_cast(topoproxy.specificTopology()); @@ -134,7 +174,8 @@ void MTDDigiGeometryAnalyzer::checkPixelsAcceptance(const GeomDetUnit& det) { } double acc = (double)inpixel / (double)maxindex; double accerr = std::sqrt(acc * (1. - acc) / (double)maxindex); - sunitt << " Acceptance: " << acc << " +/- " << accerr; + edm::LogVerbatim("MTDDigiGeometryAnalyzer") << " Acceptance: " << fround(acc, 3) << " +/- " << fround(accerr, 3); + sunitt_ << " Acceptance: " << fround(acc, 3) << " +/- " << fround(accerr, 3); } //define this as a plug-in From 4fb8f1ac5d270ea0cb2a07d7547c69029efafb01 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Fri, 22 Nov 2024 08:49:36 -0600 Subject: [PATCH 080/418] Digest::fromHexifiedString now uses a std::string_view --- DataFormats/Provenance/src/CompactHash.cc | 2 +- FWCore/Utilities/interface/Digest.h | 2 +- FWCore/Utilities/src/Digest.cc | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DataFormats/Provenance/src/CompactHash.cc b/DataFormats/Provenance/src/CompactHash.cc index de311d5a9aaf1..593544069a1b8 100644 --- a/DataFormats/Provenance/src/CompactHash.cc +++ b/DataFormats/Provenance/src/CompactHash.cc @@ -32,7 +32,7 @@ namespace edm { std::array fromHex_(std::string_view v) { cms::MD5Result temp; - temp.fromHexifiedString(std::string(v)); + temp.fromHexifiedString(v); auto hash = temp.compactForm(); std::array ret; std::copy(hash.begin(), hash.end(), ret.begin()); diff --git a/FWCore/Utilities/interface/Digest.h b/FWCore/Utilities/interface/Digest.h index c3c707b8414f5..37d8de4322e64 100644 --- a/FWCore/Utilities/interface/Digest.h +++ b/FWCore/Utilities/interface/Digest.h @@ -28,7 +28,7 @@ namespace cms { std::string compactForm() const; // Set our data from the given hexdigest string. - void fromHexifiedString(std::string const& s); + void fromHexifiedString(std::string_view); bool isValid() const; }; diff --git a/FWCore/Utilities/src/Digest.cc b/FWCore/Utilities/src/Digest.cc index 0f7ebf1229030..ba4b26ec69194 100644 --- a/FWCore/Utilities/src/Digest.cc +++ b/FWCore/Utilities/src/Digest.cc @@ -114,13 +114,13 @@ namespace cms { return std::string(p, p + bytes.size()); } - void MD5Result::fromHexifiedString(std::string const& hexy) { + void MD5Result::fromHexifiedString(std::string_view hexy) { switch (hexy.size()) { case 0: { set_to_default(*this); } break; case 32: { - std::string::const_iterator it = hexy.begin(); + auto it = hexy.cbegin(); for (size_t i = 0; i != 16; ++i) { // first nybble bytes[i] = (unhexify(*it++) << 4); From 7254dfb9607fa47a52c07cf4ebbf2f73f1244685 Mon Sep 17 00:00:00 2001 From: Jack W King III Date: Fri, 22 Nov 2024 09:54:57 -0600 Subject: [PATCH 081/418] Update ecalMultiFitUncalibRecHit_cfi.py Changed ourOfTimeThresholdGain61pEB and ...mEB parameters for CC reconstruction from 3.0 to 12.0 on lines 15 and 16 --- .../EcalRecProducers/python/ecalMultiFitUncalibRecHit_cfi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cfi.py b/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cfi.py index 13a1f8e142642..18db151c48919 100644 --- a/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cfi.py +++ b/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cfi.py @@ -12,8 +12,8 @@ EBtimeConstantTerm = 0.85, outOfTimeThresholdGain12pEB = 3.0, outOfTimeThresholdGain12mEB = 3.0, - outOfTimeThresholdGain61pEB = 3.0, - outOfTimeThresholdGain61mEB = 3.0, + outOfTimeThresholdGain61pEB = 12.0, + outOfTimeThresholdGain61mEB = 12.0, timeCalibTag = ':CC', timeOffsetTag = ':CC' ) From c26340cdb15dd9f91841ee6996c93b3f67f8256e Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:15:56 +0100 Subject: [PATCH 082/418] [ALCA-DB] py2/3 compatibility:drop use of __future__ --- Alignment/APEEstimation/test/SkimProducer/skimProducer_cfg.py | 1 - Alignment/APEEstimation/test/SkimProducer/startSkim.py | 1 - Alignment/APEEstimation/test/autoSubmitter/autoSubmitter.py | 1 - Alignment/APEEstimation/test/autoSubmitter/helpers.py | 1 - .../APEEstimation/test/cfgTemplate/apeEstimatorSummary_cfg.py | 1 - Alignment/APEEstimation/test/cfgTemplate/apeEstimator_cfg.py | 1 - Alignment/APEEstimation/test/cfgTemplate/apeLocalSetting_cfg.py | 1 - .../test/createTrackerAlignmentErrorExtendedRcd_cfg.py | 1 - Alignment/APEEstimation/test/plottingTools/trendPlotter.py | 1 - Alignment/APEEstimation/test/trackerTreeGenerator_cfg.py | 1 - Alignment/CommonAlignment/python/tools/dataset.py | 2 -- .../CommonAlignment/python/tools/trackselectionRefitting.py | 1 - Alignment/CommonAlignment/python/tools/utilities.py | 1 - Alignment/CommonAlignment/scripts/magneticFieldFilterJSON.py | 1 - Alignment/CommonAlignment/scripts/tkal_create_file_lists.py | 1 - .../scripts/AlCaHLTBitMon_ParallelJobs.py | 1 - .../scripts/AlCaHLTBitMon_QueryRunRegistry.py | 1 - .../python/OptionParser/HipPyOptionParser.py | 1 - Alignment/HIPAlignmentAlgorithm/scripts/batchHippy.py | 1 - .../HIPAlignmentAlgorithm/scripts/hippyaddtobaddatafiles.py | 1 - Alignment/HIPAlignmentAlgorithm/test/runTwoBodyDecayTest.py | 1 - .../python/alignmentsetup/GeneralSetup.py | 1 - .../python/alignmentsetup/MilleSetup.py | 1 - .../MillePedeAlignmentAlgorithm/python/mpslib/Mpslibclass.py | 1 - Alignment/MillePedeAlignmentAlgorithm/python/mpslib/tools.py | 1 - .../MillePedeAlignmentAlgorithm/python/mpsvalidate/classes.py | 1 - Alignment/MillePedeAlignmentAlgorithm/scripts/mps_alisetup.py | 1 - Alignment/MillePedeAlignmentAlgorithm/scripts/mps_check.py | 1 - Alignment/MillePedeAlignmentAlgorithm/scripts/mps_fire.py | 1 - Alignment/MillePedeAlignmentAlgorithm/scripts/mps_list_evts.py | 1 - Alignment/MillePedeAlignmentAlgorithm/scripts/mps_merge.py | 1 - .../MillePedeAlignmentAlgorithm/scripts/mps_monitormerge.py | 1 - .../scripts/mps_parse_pedechi2hist.py | 1 - Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup.py | 1 - .../MillePedeAlignmentAlgorithm/scripts/mps_setup_new_align.py | 1 - Alignment/MillePedeAlignmentAlgorithm/scripts/mps_splice.py | 1 - Alignment/MillePedeAlignmentAlgorithm/scripts/mps_update.py | 1 - Alignment/MillePedeAlignmentAlgorithm/test/trackerTree_cfg.py | 1 - Alignment/MuonAlignment/python/geometryCSVtoXML.py | 1 - Alignment/MuonAlignment/python/geometryDiff.py | 1 - Alignment/MuonAlignment/python/geometryDiffVisualization.py | 1 - Alignment/MuonAlignment/python/geometryXMLtoCSV.py | 1 - Alignment/MuonAlignment/python/makeMuonMisalignmentScenario.py | 1 - Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py | 1 - Alignment/MuonAlignmentAlgorithms/python/gather_cfg.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/alignCSCRings.py | 1 - .../MuonAlignmentAlgorithms/scripts/alignmentValidation.py | 1 - .../MuonAlignmentAlgorithms/scripts/applyRadialCorrections.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/convertSQLiteXML.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/corrVsCorr.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/createBeamHaloJobs.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/createCSCRingsJobs.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/createJobs.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/createTree.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/diffTwoXMLs.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/findQualityFiles.py | 1 - .../MuonAlignmentAlgorithms/scripts/geometryDiffVisualizer.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/groupFilesInBlocks.py | 1 - .../MuonAlignmentAlgorithms/scripts/motionPolicyChamber.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/plotscripts.py | 1 - .../MuonAlignmentAlgorithms/scripts/relativeConstraints.py | 1 - Alignment/MuonAlignmentAlgorithms/scripts/reportVsReport.py | 1 - .../OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py | 1 - .../python/TkAlAllInOneTool/betterConfigParser.py | 2 -- Alignment/OfflineValidation/python/overlapValidationPlot.py | 2 -- .../OfflineValidation/scripts/produceOfflineValidationTex.py | 1 - Alignment/OfflineValidation/scripts/submitPVResolutionJobs.py | 1 - Alignment/OfflineValidation/scripts/submitPVValidationJobs.py | 1 - Alignment/OfflineValidation/scripts/validateAlignments.py | 1 - .../OfflineValidation/test/DiElectronVertexValidation_cfg.py | 1 - Alignment/OfflineValidation/test/DiMuonVertexValidation_cfg.py | 1 - Alignment/OfflineValidation/test/submitAllJobs.py | 1 - Alignment/OfflineValidation/test/testG4Refitter_cfg.py | 1 - Alignment/TrackerAlignment/scripts/query.py | 1 - .../createRandomlyMisalignedGeometry_Phase2_cfg.py | 1 - .../test/Misalignments/createRandomlyMisalignedGeometry_cfg.py | 1 - .../test/createTrackerAlignmentRcds_Phase2_cfg.py | 1 - .../TrackerAlignment/test/createTrackerAlignmentRcds_cfg.py | 1 - Alignment/TrackerAlignment/test/mcMisalignmentScaler_cfg.py | 1 - Alignment/TrackerAlignment/test/trackerTreeGenerator_cfg.py | 1 - .../CaloMiscalibTools/test/make_ecal_miscaplibration.py | 1 - CalibCalorimetry/CaloMiscalibTools/test/make_miscalibration.py | 1 - CalibMuon/DTCalibration/python/PlottingTools/plotResiduals.py | 2 -- .../DTCalibration/python/PlottingTools/plotResidualsCosmics.py | 2 -- .../DTCalibration/python/PlottingTools/plotResidualsPerLayer.py | 2 -- .../DTCalibration/python/PlottingTools/plotT0FromHistos.py | 2 -- .../DTCalibration/python/PlottingTools/plotTTrigFromHistos.py | 2 -- .../DTCalibration/python/PlottingTools/plotVDriftFromHistos.py | 2 -- CalibMuon/DTCalibration/python/Workflow/CrabHelper.py | 2 -- .../DTCalibration/python/Workflow/Crabtools/crabFunctions.py | 1 - CalibMuon/DTCalibration/python/Workflow/DTCalibrationWorker.py | 2 -- CalibMuon/DTCalibration/python/Workflow/DTTtrigWorkflow.py | 1 - CalibMuon/DTCalibration/python/Workflow/DTVdriftWorkflow.py | 1 - CalibMuon/DTCalibration/python/Workflow/DTWorkflow.py | 2 -- CalibMuon/DTCalibration/python/Workflow/tools.py | 1 - CalibMuon/DTCalibration/scripts/allPlotsResiduals.py | 1 - CalibMuon/DTCalibration/scripts/mergeVDriftHistosByStation.py | 1 - CalibMuon/DTCalibration/test/DumpDBToFile_cfg.py | 1 - CalibMuon/DTCalibration/test/DumpFileToDB_cfg.py | 1 - .../test/testSiPixelFakeLorentzAngleESSource_cfg.py | 1 - .../test/7TeVData/automatic_RunOnCalibTree.py | 1 - CalibTracker/SiStripChannelGain/test/7TeVData/dataCert.py | 1 - CalibTracker/SiStripChannelGain/test/7TeVData/submitJob.py | 1 - .../test/CodeExample/computeGain_cfg_OnBatch.py | 1 - .../test/CodeExample/produceCalibrationTree_cfg_OnBatch.py | 1 - CalibTracker/SiStripChannelGain/test/Cosmic_B38/MergeOnBatch.py | 1 - .../SiStripChannelGain/test/Cosmic_B38/launchOnBatch.py | 1 - .../SiStripChannelGain/test/Cosmic_B38/onFarm_MergeJob_cfg.py | 1 - .../SiStripChannelGain/test/Cosmic_B38/onFarm_MultiJob_cfg.py | 1 - CalibTracker/SiStripChannelGain/test/PCL/Launch.py | 1 - .../SiStripChannelGain/test/testSSTGain_PCL_FromRECO_cfg.py | 1 - CalibTracker/SiStripCommon/python/das.py | 1 - .../SiStripCommon/test/MakeCalibrationTrees/SubmitJobs.py | 1 - .../SiStripCommon/test/MakeCalibrationTrees/cleanFolders.py | 1 - .../produceCalibrationTree_CosmicsLABP_cfg.py | 1 - .../MakeCalibrationTrees/produceCalibrationTree_template_cfg.py | 1 - .../test/MakeCalibrationTrees/submitCalibTree/Config.py | 1 - .../test/MakeCalibrationTrees/submitCalibTree/launchJobs.py | 2 -- .../test/MakeCalibrationTrees/submitCalibTree/runJob.py | 2 -- CalibTracker/SiStripCommon/test/testCalibTree_nano.py | 1 - CalibTracker/SiStripCommon/test/testCalibTree_nano_G2.py | 1 - .../SiStripCommon/test/testProduceCalibrationTree_cfg.py | 1 - CalibTracker/SiStripDCS/test/ChangeToHVmap.py | 1 - CalibTracker/SiStripDCS/test/CheckAllIOVs.py | 1 - CalibTracker/SiStripDCS/test/CheckLogs.py | 1 - CalibTracker/SiStripDCS/test/MakeList.py | 1 - CalibTracker/SiStripDCS/test/MakeTkMaps.py | 1 - CalibTracker/SiStripDCS/test/ManualO2OForRestart.py | 1 - CalibTracker/SiStripDCS/test/ParseManualO2Olog.py | 1 - CalibTracker/SiStripDCS/test/TimestampToDate.py | 1 - CalibTracker/SiStripDCS/test/convertTime.py | 1 - CalibTracker/SiStripDCS/test/templateCheckAllIOVs_cfg.py | 1 - CalibTracker/SiStripESProducers/test/python/CheckAllIOVs.py | 1 - CalibTracker/SiStripESProducers/test/python/UploadAll.py | 1 - .../SiStripESProducers/test/python/templateCheckAllIOVs_cfg.py | 1 - Calibration/EcalAlCaRecoProducers/test/alcaSkimming.py | 1 - .../test/convertSiStripRootDQMFileToEDM_cfg.py | 1 - Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py | 1 - Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py | 1 - Calibration/Tools/scripts/alcaDQMUpload.py | 1 - CondCore/CondDB/test/condTestRegression.py | 1 - CondCore/DBCommon/python/CondDBCommon_cfi.py | 1 - CondCore/DBCommon/python/CondDBSetup_cfi.py | 1 - CondCore/ESSources/python/GlobalTag.py | 1 - CondCore/ESSources/test/python/load_from_globaltag_cfg.py | 1 - CondCore/ESSources/test/python/load_record_empty_source_cfg.py | 1 - .../ESSources/test/python/loadall_from_gt_empty_source_cfg.py | 1 - .../test/python/loadall_from_one_record_empty_source_cfg.py | 1 - .../python/loadall_from_one_record_empty_source_time_cfg.py | 1 - CondCore/ESSources/test/python/read_beamspot_cfg.py | 1 - CondCore/ESSources/test/python/write_beamspot_cfg.py | 1 - CondCore/EcalPlugins/test/inspect.py | 1 - CondCore/PopCon/test/fetchCronLogTail.py | 1 - CondCore/PopCon/test/run_popcon2dropbox_DT.py | 1 - CondCore/PopCon/test/run_popcon2dropbox_RunInfo.py | 1 - CondCore/RPCPlugins/test/inspectRPCObImon.py | 1 - CondCore/RunInfoPlugins/test/inspect.py | 1 - CondCore/RunInfoPlugins/test/inspectL1Scaler.py | 1 - CondCore/RunInfoPlugins/test/inspectRunInfo.py | 1 - CondCore/RunInfoPlugins/test/inspectRunInfo_219.py | 1 - CondCore/RunInfoPlugins/test/inspectRunInfo_3XX.py | 1 - CondCore/RunInfoPlugins/test/inspectRunSummary.py | 1 - CondCore/RunInfoPlugins/test/inspectRunSummary_219.py | 1 - CondCore/RunInfoPlugins/test/plot2JsonTimeSeries.py | 1 - CondCore/SiStripPlugins/test/findPeakRuns.py | 1 - CondCore/SiStripPlugins/test/plotJson.py | 1 - CondCore/Utilities/python/CondDBFW/tests/__main__.py | 1 - CondCore/Utilities/python/CondDBFW/tests/data_formats_tests.py | 1 - CondCore/Utilities/python/CondDBFW/tests/querying_tests.py | 1 - CondCore/Utilities/python/cond2xml.py | 1 - CondCore/Utilities/python/conddb_migrate.py | 1 - CondCore/Utilities/python/o2olib.py | 1 - CondCore/Utilities/python/popcon2dropbox.py | 1 - CondCore/Utilities/python/popcon2dropbox_job_conf.py | 1 - CondCore/Utilities/python/tier0.py | 1 - CondCore/Utilities/scripts/conddb | 1 - CondCore/Utilities/scripts/conddbCopyTest.py | 1 - CondCore/Utilities/scripts/conddb_version_mgr.py | 1 - CondCore/Utilities/scripts/conditionUploadTest.py | 1 - CondCore/Utilities/scripts/getPayloadData.py | 1 - CondCore/Utilities/scripts/popconRun | 1 - CondCore/Utilities/scripts/uploadConditions.py | 1 - CondCore/Utilities/test/CondDBFW/testing_classes.py | 1 - CondCore/Utilities/test/iovInspector_test.py | 1 - CondCore/Utilities/test/listTags.py | 1 - CondFormats/Common/test/parse_output.py | 1 - CondFormats/MFObjects/test/writeAllMagFieldConfigDB.py | 1 - .../Serialization/python/condformats_serialization_generate.py | 1 - CondFormats/SiStripObjects/test/SiStripBadChannelInspector.py | 1 - CondFormats/SiStripObjects/test/SiStripConfObjectInspector.py | 1 - CondFormats/SiStripObjects/test/SiStripLatencyInspector.py | 1 - CondTools/BTau/python/bTagCalibrationDbCreation.py | 1 - CondTools/BTau/python/checkBTagCalibrationConsistency.py | 2 -- CondTools/BTau/python/combineBTagCalibrationData.py | 2 -- CondTools/BTau/python/dataLoader.py | 1 - CondTools/BTau/python/generateFlavCfromFlavB.py | 2 -- CondTools/BTau/python/generateStandaloneCode.py | 1 - CondTools/CTPPS/test/largeXMLmanipulations/script_tables.py | 1 - CondTools/CTPPS/test/retrieve_sqlite_PixGainCalib_cfg.py | 1 - CondTools/CTPPS/test/run_rp_realalignment_table.py | 1 - CondTools/CTPPS/test/testReadDB_PixGainCalib_cfg.py | 1 - CondTools/CTPPS/test/write-ctpps-pixel-gainscalibrations_cfg.py | 1 - CondTools/CTPPS/test/write-ctpps-rprealalignment_table_cfg.py | 1 - CondTools/CTPPS/test/write-ctpps-rprealalignment_table_test.py | 1 - CondTools/Ecal/python/EcalCondDB.py | 2 -- CondTools/Ecal/python/EcalCondTools.py | 2 -- CondTools/Ecal/python/SplitLinear.py | 1 - CondTools/Ecal/python/SplitSqlite.py | 1 - CondTools/Ecal/scripts/loadConditions.py | 1 - CondTools/Ecal/test/tools/inspectEcal.py | 1 - CondTools/Hcal/test/runDumpHcalCond_cfg.py | 1 - CondTools/SiPixel/test/SiPixelDynamicInefficiencyDB_cfg.py | 1 - CondTools/SiPixel/test/SiPixelDynamicInefficiencyReader_cfg.py | 1 - CondTools/SiPixel/test/SiPixelGainCalibScaler_cfg.py | 1 - CondTools/SiPixel/test/SiPixelInclusiveBuilder_cfg.py | 1 - CondTools/SiPixel/test/SiPixelLorentzAngleDB_cfg.py | 1 - CondTools/SiPixel/test/SiPixelLorentzAngleReader_cfg.py | 1 - CondTools/SiPixel/test/SiPixelQualityPlotter_cfg.py | 1 - CondTools/SiPixel/test/SiPixelVCalDB_cfg.py | 1 - CondTools/SiPixel/test/SiPixelVCalReader_cfg.py | 1 - CondTools/SiPixel/test/runPixelPopConCalib.py | 1 - CondTools/SiStrip/test/CheckDetVOff.py | 1 - .../SiStrip/test/SiStripChannelGainFromDBMiscalibrator_cfg.py | 1 - CondTools/SiStrip/test/SiStripNoiseFromDBMiscalibrator_cfg.py | 1 - CondTools/SiStrip/test/SiStripNoisesAndBadCompsChecker_cfg.py | 1 - RecoLuminosity/LumiDB/python/csvLumibyLSParser.py | 1 - RecoLuminosity/LumiDB/python/pileupParser.py | 1 - RecoLuminosity/LumiDB/python/selectionParser.py | 1 - RecoLuminosity/LumiDB/scripts/makePileupJSON.py | 1 - RecoLuminosity/LumiDB/scripts/pileupCalc.py | 1 - RecoLuminosity/LumiDB/scripts/pileupReCalc_HLTpaths.py | 1 - RecoLuminosity/LumiDB/scripts/pileupReCalc_Lumis.py | 1 - 232 files changed, 251 deletions(-) diff --git a/Alignment/APEEstimation/test/SkimProducer/skimProducer_cfg.py b/Alignment/APEEstimation/test/SkimProducer/skimProducer_cfg.py index b04d66eb6d921..3ec7546c051f7 100644 --- a/Alignment/APEEstimation/test/SkimProducer/skimProducer_cfg.py +++ b/Alignment/APEEstimation/test/SkimProducer/skimProducer_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/Alignment/APEEstimation/test/SkimProducer/startSkim.py b/Alignment/APEEstimation/test/SkimProducer/startSkim.py index e73b035f71dcb..2508a31064fde 100644 --- a/Alignment/APEEstimation/test/SkimProducer/startSkim.py +++ b/Alignment/APEEstimation/test/SkimProducer/startSkim.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys sys.path.append("../SkimProducer") # for switching to CAF queue (condor submit) diff --git a/Alignment/APEEstimation/test/autoSubmitter/autoSubmitter.py b/Alignment/APEEstimation/test/autoSubmitter/autoSubmitter.py index a182f2922c9cf..5849b9b5f1d7f 100644 --- a/Alignment/APEEstimation/test/autoSubmitter/autoSubmitter.py +++ b/Alignment/APEEstimation/test/autoSubmitter/autoSubmitter.py @@ -1,4 +1,3 @@ -from __future__ import print_function import configparser as ConfigParser import argparse import shelve diff --git a/Alignment/APEEstimation/test/autoSubmitter/helpers.py b/Alignment/APEEstimation/test/autoSubmitter/helpers.py index bb78557ff2b73..c7720a1006075 100644 --- a/Alignment/APEEstimation/test/autoSubmitter/helpers.py +++ b/Alignment/APEEstimation/test/autoSubmitter/helpers.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re import os import subprocess diff --git a/Alignment/APEEstimation/test/cfgTemplate/apeEstimatorSummary_cfg.py b/Alignment/APEEstimation/test/cfgTemplate/apeEstimatorSummary_cfg.py index d95da5e1da537..b225736b0f140 100644 --- a/Alignment/APEEstimation/test/cfgTemplate/apeEstimatorSummary_cfg.py +++ b/Alignment/APEEstimation/test/cfgTemplate/apeEstimatorSummary_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/Alignment/APEEstimation/test/cfgTemplate/apeEstimator_cfg.py b/Alignment/APEEstimation/test/cfgTemplate/apeEstimator_cfg.py index 1acef15fee026..573fb7ea9d4b3 100644 --- a/Alignment/APEEstimation/test/cfgTemplate/apeEstimator_cfg.py +++ b/Alignment/APEEstimation/test/cfgTemplate/apeEstimator_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/Alignment/APEEstimation/test/cfgTemplate/apeLocalSetting_cfg.py b/Alignment/APEEstimation/test/cfgTemplate/apeLocalSetting_cfg.py index 5de26569be289..3376710d32ab6 100644 --- a/Alignment/APEEstimation/test/cfgTemplate/apeLocalSetting_cfg.py +++ b/Alignment/APEEstimation/test/cfgTemplate/apeLocalSetting_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/Alignment/APEEstimation/test/createTrackerAlignmentErrorExtendedRcd_cfg.py b/Alignment/APEEstimation/test/createTrackerAlignmentErrorExtendedRcd_cfg.py index 141f5a1800e13..2f5da77ff8a04 100644 --- a/Alignment/APEEstimation/test/createTrackerAlignmentErrorExtendedRcd_cfg.py +++ b/Alignment/APEEstimation/test/createTrackerAlignmentErrorExtendedRcd_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function ######################################################################################## ### ### Read and write APEs to and from database and ASCII files diff --git a/Alignment/APEEstimation/test/plottingTools/trendPlotter.py b/Alignment/APEEstimation/test/plottingTools/trendPlotter.py index 8ff595aac0c95..26961fcca973c 100644 --- a/Alignment/APEEstimation/test/plottingTools/trendPlotter.py +++ b/Alignment/APEEstimation/test/plottingTools/trendPlotter.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT ROOT.gROOT.SetBatch(True) from setTDRStyle import setTDRStyle diff --git a/Alignment/APEEstimation/test/trackerTreeGenerator_cfg.py b/Alignment/APEEstimation/test/trackerTreeGenerator_cfg.py index 4727e156f1327..6376fb8d23029 100644 --- a/Alignment/APEEstimation/test/trackerTreeGenerator_cfg.py +++ b/Alignment/APEEstimation/test/trackerTreeGenerator_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os diff --git a/Alignment/CommonAlignment/python/tools/dataset.py b/Alignment/CommonAlignment/python/tools/dataset.py index 0d0f812b07b44..37a963b26528c 100644 --- a/Alignment/CommonAlignment/python/tools/dataset.py +++ b/Alignment/CommonAlignment/python/tools/dataset.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import abc import csv diff --git a/Alignment/CommonAlignment/python/tools/trackselectionRefitting.py b/Alignment/CommonAlignment/python/tools/trackselectionRefitting.py index 948f56d12aee0..c296a520b0cb3 100644 --- a/Alignment/CommonAlignment/python/tools/trackselectionRefitting.py +++ b/Alignment/CommonAlignment/python/tools/trackselectionRefitting.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import FWCore.ParameterSet.Config as cms diff --git a/Alignment/CommonAlignment/python/tools/utilities.py b/Alignment/CommonAlignment/python/tools/utilities.py index 2b38d0d34d3fa..0914b884cad7e 100644 --- a/Alignment/CommonAlignment/python/tools/utilities.py +++ b/Alignment/CommonAlignment/python/tools/utilities.py @@ -1,4 +1,3 @@ -from __future__ import print_function def cache(function): cache = {} diff --git a/Alignment/CommonAlignment/scripts/magneticFieldFilterJSON.py b/Alignment/CommonAlignment/scripts/magneticFieldFilterJSON.py index b0700add498eb..b1e636ea50279 100755 --- a/Alignment/CommonAlignment/scripts/magneticFieldFilterJSON.py +++ b/Alignment/CommonAlignment/scripts/magneticFieldFilterJSON.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import sys diff --git a/Alignment/CommonAlignment/scripts/tkal_create_file_lists.py b/Alignment/CommonAlignment/scripts/tkal_create_file_lists.py index ab70a4cd90d56..0c68a7bd26120 100755 --- a/Alignment/CommonAlignment/scripts/tkal_create_file_lists.py +++ b/Alignment/CommonAlignment/scripts/tkal_create_file_lists.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import os diff --git a/Alignment/CommonAlignmentProducer/scripts/AlCaHLTBitMon_ParallelJobs.py b/Alignment/CommonAlignmentProducer/scripts/AlCaHLTBitMon_ParallelJobs.py index fb8aad6191674..9a40a62733fb6 100755 --- a/Alignment/CommonAlignmentProducer/scripts/AlCaHLTBitMon_ParallelJobs.py +++ b/Alignment/CommonAlignmentProducer/scripts/AlCaHLTBitMon_ParallelJobs.py @@ -7,7 +7,6 @@ # by: $Author: mussgill $ #----------------------------------------------------- -from __future__ import print_function import re import json import os diff --git a/Alignment/CommonAlignmentProducer/scripts/AlCaHLTBitMon_QueryRunRegistry.py b/Alignment/CommonAlignmentProducer/scripts/AlCaHLTBitMon_QueryRunRegistry.py index 51f9ef208b68a..1f37ddee7a123 100755 --- a/Alignment/CommonAlignmentProducer/scripts/AlCaHLTBitMon_QueryRunRegistry.py +++ b/Alignment/CommonAlignmentProducer/scripts/AlCaHLTBitMon_QueryRunRegistry.py @@ -7,7 +7,6 @@ # by: $Author: taroni $ #----------------------------------------------------- -from __future__ import print_function from xml.dom import minidom import re import json diff --git a/Alignment/HIPAlignmentAlgorithm/python/OptionParser/HipPyOptionParser.py b/Alignment/HIPAlignmentAlgorithm/python/OptionParser/HipPyOptionParser.py index d2d0dc463ce62..1c456db10687c 100644 --- a/Alignment/HIPAlignmentAlgorithm/python/OptionParser/HipPyOptionParser.py +++ b/Alignment/HIPAlignmentAlgorithm/python/OptionParser/HipPyOptionParser.py @@ -1,4 +1,3 @@ -from __future__ import print_function from array import array from copy import copy from copy import deepcopy diff --git a/Alignment/HIPAlignmentAlgorithm/scripts/batchHippy.py b/Alignment/HIPAlignmentAlgorithm/scripts/batchHippy.py index 6334012a1a18d..54aacab003b42 100755 --- a/Alignment/HIPAlignmentAlgorithm/scripts/batchHippy.py +++ b/Alignment/HIPAlignmentAlgorithm/scripts/batchHippy.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import imp import copy diff --git a/Alignment/HIPAlignmentAlgorithm/scripts/hippyaddtobaddatafiles.py b/Alignment/HIPAlignmentAlgorithm/scripts/hippyaddtobaddatafiles.py index 5ea7ab7094ec1..166a5e3043aee 100755 --- a/Alignment/HIPAlignmentAlgorithm/scripts/hippyaddtobaddatafiles.py +++ b/Alignment/HIPAlignmentAlgorithm/scripts/hippyaddtobaddatafiles.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import argparse, contextlib, os, re, shutil, subprocess, tempfile, time diff --git a/Alignment/HIPAlignmentAlgorithm/test/runTwoBodyDecayTest.py b/Alignment/HIPAlignmentAlgorithm/test/runTwoBodyDecayTest.py index 18002c192d6ff..fc8d53b2ffc55 100644 --- a/Alignment/HIPAlignmentAlgorithm/test/runTwoBodyDecayTest.py +++ b/Alignment/HIPAlignmentAlgorithm/test/runTwoBodyDecayTest.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("TBDtest") diff --git a/Alignment/MillePedeAlignmentAlgorithm/python/alignmentsetup/GeneralSetup.py b/Alignment/MillePedeAlignmentAlgorithm/python/alignmentsetup/GeneralSetup.py index 1c7e4f40d9850..d11abb189d125 100644 --- a/Alignment/MillePedeAlignmentAlgorithm/python/alignmentsetup/GeneralSetup.py +++ b/Alignment/MillePedeAlignmentAlgorithm/python/alignmentsetup/GeneralSetup.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re def setup(process, global_tag, zero_tesla=False, geometry=""): diff --git a/Alignment/MillePedeAlignmentAlgorithm/python/alignmentsetup/MilleSetup.py b/Alignment/MillePedeAlignmentAlgorithm/python/alignmentsetup/MilleSetup.py index cdde258756c69..7b9261d34b26b 100644 --- a/Alignment/MillePedeAlignmentAlgorithm/python/alignmentsetup/MilleSetup.py +++ b/Alignment/MillePedeAlignmentAlgorithm/python/alignmentsetup/MilleSetup.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms diff --git a/Alignment/MillePedeAlignmentAlgorithm/python/mpslib/Mpslibclass.py b/Alignment/MillePedeAlignmentAlgorithm/python/mpslib/Mpslibclass.py index a2dc696879322..171e7babdd056 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/python/mpslib/Mpslibclass.py +++ b/Alignment/MillePedeAlignmentAlgorithm/python/mpslib/Mpslibclass.py @@ -1,4 +1,3 @@ -from __future__ import print_function # This Jobdatabas-Class interacts with the mps.db file. # It's member-variables are often called in the mps_... scripts. # diff --git a/Alignment/MillePedeAlignmentAlgorithm/python/mpslib/tools.py b/Alignment/MillePedeAlignmentAlgorithm/python/mpslib/tools.py index 8f11f81db1ccd..0cb2c5eade413 100644 --- a/Alignment/MillePedeAlignmentAlgorithm/python/mpslib/tools.py +++ b/Alignment/MillePedeAlignmentAlgorithm/python/mpslib/tools.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import os import re diff --git a/Alignment/MillePedeAlignmentAlgorithm/python/mpsvalidate/classes.py b/Alignment/MillePedeAlignmentAlgorithm/python/mpsvalidate/classes.py index b47b557f31d81..09306a6d5bede 100644 --- a/Alignment/MillePedeAlignmentAlgorithm/python/mpsvalidate/classes.py +++ b/Alignment/MillePedeAlignmentAlgorithm/python/mpsvalidate/classes.py @@ -1,4 +1,3 @@ -from __future__ import print_function ########################################################################## # Classes which are needed by the mps_validate.py file. ## diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_alisetup.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_alisetup.py index 1d0cb8339e874..3f7aae9016c49 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_alisetup.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_alisetup.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import re import sys diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_check.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_check.py index 05efad22085dc..71445577ee8f4 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_check.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_check.py @@ -11,7 +11,6 @@ # # It also retirieves number of events from alignment.log and cputime from STDOUT -from __future__ import print_function from builtins import range import Alignment.MillePedeAlignmentAlgorithm.mpslib.Mpslibclass as mpslib import subprocess diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_fire.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_fire.py index a5ac4e778c83f..2f5ee65658508 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_fire.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_fire.py @@ -12,7 +12,6 @@ # mps_fire.py [-a] [-m [-f]] [maxjobs] # mps_fire.py -h -from __future__ import print_function from builtins import range import Alignment.MillePedeAlignmentAlgorithm.mpslib.Mpslibclass as mpslib import Alignment.MillePedeAlignmentAlgorithm.mpslib.tools as mps_tools diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_list_evts.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_list_evts.py index 6e5c43efd2925..a49435e1332cb 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_list_evts.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_list_evts.py @@ -14,7 +14,6 @@ M. Schroeder, DESY Hamburg 26-May-2014 """ -from __future__ import print_function import sys diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_merge.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_merge.py index f39449f974a47..75f253d205634 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_merge.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_merge.py @@ -6,7 +6,6 @@ # # mps_merge.pl [-c] inCfg mergeCfg mergeDir njobs -from __future__ import print_function from builtins import range import Alignment.MillePedeAlignmentAlgorithm.mpslib.Mpslibclass as mpslib import re diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_monitormerge.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_monitormerge.py index 0abb64d27b2c0..6e966092683bc 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_monitormerge.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_monitormerge.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import os import subprocess diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_parse_pedechi2hist.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_parse_pedechi2hist.py index e8b63c96868c0..b6436de2433c6 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_parse_pedechi2hist.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_parse_pedechi2hist.py @@ -15,7 +15,6 @@ # # Use createChi2ndfplot.C to plot the output of this script. -from __future__ import print_function import os import sys import re diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup.py index 5863cdaf6d3aa..12959ad5de253 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import os import re diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup_new_align.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup_new_align.py index ac1484ea0ae29..ac4bec474365b 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup_new_align.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_setup_new_align.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import sys import re diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_splice.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_splice.py index ca49722a4d9d0..c7db8ceb352d7 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_splice.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_splice.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import re import argparse diff --git a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_update.py b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_update.py index 3b7af2d933fa0..bc8a1ca2fbdac 100755 --- a/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_update.py +++ b/Alignment/MillePedeAlignmentAlgorithm/scripts/mps_update.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import os import re diff --git a/Alignment/MillePedeAlignmentAlgorithm/test/trackerTree_cfg.py b/Alignment/MillePedeAlignmentAlgorithm/test/trackerTree_cfg.py index 29a788200ff00..5f3c3ae8735ab 100644 --- a/Alignment/MillePedeAlignmentAlgorithm/test/trackerTree_cfg.py +++ b/Alignment/MillePedeAlignmentAlgorithm/test/trackerTree_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function ########################################################################## # Creates the TrackerTree.root file. # Configuration file from TrackerAlignment/test/trackerTreeGenerator_cfg.py diff --git a/Alignment/MuonAlignment/python/geometryCSVtoXML.py b/Alignment/MuonAlignment/python/geometryCSVtoXML.py index 1c937acd4a4ea..6976c20e93518 100755 --- a/Alignment/MuonAlignment/python/geometryCSVtoXML.py +++ b/Alignment/MuonAlignment/python/geometryCSVtoXML.py @@ -1,7 +1,6 @@ #!/usr/bin/env python # External libraries (standard in Python >= 2.4, at least) -from __future__ import print_function from sys import stdin from re import split, sub diff --git a/Alignment/MuonAlignment/python/geometryDiff.py b/Alignment/MuonAlignment/python/geometryDiff.py index 7f7789a95677d..897728fb43ea0 100755 --- a/Alignment/MuonAlignment/python/geometryDiff.py +++ b/Alignment/MuonAlignment/python/geometryDiff.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function from builtins import range from Alignment.MuonAlignment.geometryXMLparser import MuonGeometry, dtorder, cscorder import sys, getopt diff --git a/Alignment/MuonAlignment/python/geometryDiffVisualization.py b/Alignment/MuonAlignment/python/geometryDiffVisualization.py index e2d7170dd8ec2..199757234cc56 100644 --- a/Alignment/MuonAlignment/python/geometryDiffVisualization.py +++ b/Alignment/MuonAlignment/python/geometryDiffVisualization.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import re from math import * from .svgfig import rgb, SVG, pathtoPath, load as load_svg diff --git a/Alignment/MuonAlignment/python/geometryXMLtoCSV.py b/Alignment/MuonAlignment/python/geometryXMLtoCSV.py index 6a8709eb8026f..dcbcffff370f5 100755 --- a/Alignment/MuonAlignment/python/geometryXMLtoCSV.py +++ b/Alignment/MuonAlignment/python/geometryXMLtoCSV.py @@ -24,7 +24,6 @@ # } # External libraries (standard in Python >= 2.4, at least) -from __future__ import print_function from xml.sax import handler, make_parser from sys import stdin diff --git a/Alignment/MuonAlignment/python/makeMuonMisalignmentScenario.py b/Alignment/MuonAlignment/python/makeMuonMisalignmentScenario.py index 94f73d058f1a1..d8badbbfd0a75 100644 --- a/Alignment/MuonAlignment/python/makeMuonMisalignmentScenario.py +++ b/Alignment/MuonAlignment/python/makeMuonMisalignmentScenario.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range from optparse import OptionParser from random import gauss diff --git a/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py b/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py index b70f9569d469a..51230e0b5b998 100644 --- a/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py +++ b/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/Alignment/MuonAlignmentAlgorithms/python/gather_cfg.py b/Alignment/MuonAlignmentAlgorithms/python/gather_cfg.py index a01da4e1b95cd..1d309fe237867 100644 --- a/Alignment/MuonAlignmentAlgorithms/python/gather_cfg.py +++ b/Alignment/MuonAlignmentAlgorithms/python/gather_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/alignCSCRings.py b/Alignment/MuonAlignmentAlgorithms/scripts/alignCSCRings.py index fbf3eb91276bd..c7d41ccc44d8a 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/alignCSCRings.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/alignCSCRings.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import re,os,sys,shutil import optparse diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/alignmentValidation.py b/Alignment/MuonAlignmentAlgorithms/scripts/alignmentValidation.py index 248c4d4fc332f..de94251351de6 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/alignmentValidation.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/alignmentValidation.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import re,os,sys,shutil import optparse diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/applyRadialCorrections.py b/Alignment/MuonAlignmentAlgorithms/scripts/applyRadialCorrections.py index 2a7627579dc48..335bce4cbaf8e 100644 --- a/Alignment/MuonAlignmentAlgorithms/scripts/applyRadialCorrections.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/applyRadialCorrections.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range mep11angle = 0.002 # guess mep12angle = 0.002 # guess diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/convertSQLiteXML.py b/Alignment/MuonAlignmentAlgorithms/scripts/convertSQLiteXML.py index e066cadfc6088..f856246ce0923 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/convertSQLiteXML.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/convertSQLiteXML.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os, sys, optparse, math prog = sys.argv[0] diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/corrVsCorr.py b/Alignment/MuonAlignmentAlgorithms/scripts/corrVsCorr.py index 815eaec8476ef..fd5d9e703f618 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/corrVsCorr.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/corrVsCorr.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import sys, optparse diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/createBeamHaloJobs.py b/Alignment/MuonAlignmentAlgorithms/scripts/createBeamHaloJobs.py index 85a15e8159eed..e4c9401211e9c 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/createBeamHaloJobs.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/createBeamHaloJobs.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import os, sys, re, optparse, math diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/createCSCRingsJobs.py b/Alignment/MuonAlignmentAlgorithms/scripts/createCSCRingsJobs.py index d50fc4f852629..dd224a7161f7c 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/createCSCRingsJobs.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/createCSCRingsJobs.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import os, sys, optparse, math diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/createJobs.py b/Alignment/MuonAlignmentAlgorithms/scripts/createJobs.py index 001a19ea1d997..0a457f99e6e18 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/createJobs.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/createJobs.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import os, sys, optparse, math diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/createTree.py b/Alignment/MuonAlignmentAlgorithms/scripts/createTree.py index 3b70c97743a7f..68e1ad723aa47 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/createTree.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/createTree.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import re,os,sys import optparse diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/diffTwoXMLs.py b/Alignment/MuonAlignmentAlgorithms/scripts/diffTwoXMLs.py index 0d43eca138b52..28f95b1dfed78 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/diffTwoXMLs.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/diffTwoXMLs.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import sys, ROOT ROOT.gROOT.SetBatch(1) diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/findQualityFiles.py b/Alignment/MuonAlignmentAlgorithms/scripts/findQualityFiles.py index a3b19fcefc292..715b4fb6d2bf5 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/findQualityFiles.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/findQualityFiles.py @@ -6,7 +6,6 @@ ### also run it with -h option ###################################################### -from __future__ import print_function from builtins import range import os,sys, DLFCN import optparse diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/geometryDiffVisualizer.py b/Alignment/MuonAlignmentAlgorithms/scripts/geometryDiffVisualizer.py index bdc7d3a403999..cb4cfcaf0c671 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/geometryDiffVisualizer.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/geometryDiffVisualizer.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import sys, ROOT from geometryDiffVisualization import * diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/groupFilesInBlocks.py b/Alignment/MuonAlignmentAlgorithms/scripts/groupFilesInBlocks.py index 33fe45b21cc04..1f55117a2a3e1 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/groupFilesInBlocks.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/groupFilesInBlocks.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import re,os,sys,shutil,math import optparse diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/motionPolicyChamber.py b/Alignment/MuonAlignmentAlgorithms/scripts/motionPolicyChamber.py index f6664b0136a68..1b0ad37bea713 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/motionPolicyChamber.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/motionPolicyChamber.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import os, sys, optparse, math, copy from Alignment.MuonAlignment.geometryXMLparser import MuonGeometry, dtorder, cscorder diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/plotscripts.py b/Alignment/MuonAlignmentAlgorithms/scripts/plotscripts.py index aa063b4371949..54bf8b0e1fd59 100644 --- a/Alignment/MuonAlignmentAlgorithms/scripts/plotscripts.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/plotscripts.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT, array, os, re, random from math import * diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/relativeConstraints.py b/Alignment/MuonAlignmentAlgorithms/scripts/relativeConstraints.py index cd7fff1f49451..d32ea89839594 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/relativeConstraints.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/relativeConstraints.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys, optparse, re, math from Alignment.MuonAlignment.geometryXMLparser import MuonGeometry diff --git a/Alignment/MuonAlignmentAlgorithms/scripts/reportVsReport.py b/Alignment/MuonAlignmentAlgorithms/scripts/reportVsReport.py index 3c219fa6865eb..243582a05b588 100755 --- a/Alignment/MuonAlignmentAlgorithms/scripts/reportVsReport.py +++ b/Alignment/MuonAlignmentAlgorithms/scripts/reportVsReport.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import sys, optparse diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py index 60538859f858f..3526501021f31 100644 --- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function from fnmatch import fnmatch import FWCore.ParameterSet.Config as cms import FWCore.PythonUtilities.LumiList as LumiList diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/betterConfigParser.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/betterConfigParser.py index fad339ec6c189..cd6be86c081d6 100644 --- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/betterConfigParser.py +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/betterConfigParser.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import configparser as ConfigParser import os diff --git a/Alignment/OfflineValidation/python/overlapValidationPlot.py b/Alignment/OfflineValidation/python/overlapValidationPlot.py index c15f7123631ee..b5cde3cabdb74 100644 --- a/Alignment/OfflineValidation/python/overlapValidationPlot.py +++ b/Alignment/OfflineValidation/python/overlapValidationPlot.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import -from __future__ import print_function from builtins import range import math diff --git a/Alignment/OfflineValidation/scripts/produceOfflineValidationTex.py b/Alignment/OfflineValidation/scripts/produceOfflineValidationTex.py index e2bd962e25ca9..e2dcff01428be 100755 --- a/Alignment/OfflineValidation/scripts/produceOfflineValidationTex.py +++ b/Alignment/OfflineValidation/scripts/produceOfflineValidationTex.py @@ -17,7 +17,6 @@ -from __future__ import print_function import os import stat import sys diff --git a/Alignment/OfflineValidation/scripts/submitPVResolutionJobs.py b/Alignment/OfflineValidation/scripts/submitPVResolutionJobs.py index 34e6565964bba..d1b6f81920f6c 100755 --- a/Alignment/OfflineValidation/scripts/submitPVResolutionJobs.py +++ b/Alignment/OfflineValidation/scripts/submitPVResolutionJobs.py @@ -6,7 +6,6 @@ submitPVResolutionJobs.py -i PVResolutionExample.ini -D /JetHT/Run2018C-TkAlMinBias-12Nov2019_UL2018-v2/ALCARECO ''' -from __future__ import print_function __author__ = 'Marco Musich' __copyright__ = 'Copyright 2020, CERN CMS' diff --git a/Alignment/OfflineValidation/scripts/submitPVValidationJobs.py b/Alignment/OfflineValidation/scripts/submitPVValidationJobs.py index b3629c8e8afa9..2bf5e1a8056ce 100755 --- a/Alignment/OfflineValidation/scripts/submitPVValidationJobs.py +++ b/Alignment/OfflineValidation/scripts/submitPVValidationJobs.py @@ -6,7 +6,6 @@ submitPVValidationJobs.py -j TEST -D /HLTPhysics/Run2016C-TkAlMinBias-07Dec2018-v1/ALCARECO -i testPVValidation_Relvals_DATA.ini -r ''' -from __future__ import print_function from builtins import range __author__ = 'Marco Musich' diff --git a/Alignment/OfflineValidation/scripts/validateAlignments.py b/Alignment/OfflineValidation/scripts/validateAlignments.py index b4bafa08536b5..55469cfcda309 100755 --- a/Alignment/OfflineValidation/scripts/validateAlignments.py +++ b/Alignment/OfflineValidation/scripts/validateAlignments.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 #test execute: export CMSSW_BASE=/tmp/CMSSW && ./validateAlignments.py -c defaultCRAFTValidation.ini,test.ini -n -N test -from __future__ import print_function from future.utils import lmap import subprocess import json diff --git a/Alignment/OfflineValidation/test/DiElectronVertexValidation_cfg.py b/Alignment/OfflineValidation/test/DiElectronVertexValidation_cfg.py index de1577f7d7a40..56a723b42a00b 100644 --- a/Alignment/OfflineValidation/test/DiElectronVertexValidation_cfg.py +++ b/Alignment/OfflineValidation/test/DiElectronVertexValidation_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function from fnmatch import fnmatch import FWCore.ParameterSet.Config as cms import FWCore.Utilities.FileUtils as FileUtils diff --git a/Alignment/OfflineValidation/test/DiMuonVertexValidation_cfg.py b/Alignment/OfflineValidation/test/DiMuonVertexValidation_cfg.py index 7dc9c0d280fcf..245e6e7af4695 100644 --- a/Alignment/OfflineValidation/test/DiMuonVertexValidation_cfg.py +++ b/Alignment/OfflineValidation/test/DiMuonVertexValidation_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function from fnmatch import fnmatch import FWCore.ParameterSet.Config as cms import FWCore.Utilities.FileUtils as FileUtils diff --git a/Alignment/OfflineValidation/test/submitAllJobs.py b/Alignment/OfflineValidation/test/submitAllJobs.py index 67ea198218f00..495263c18d993 100644 --- a/Alignment/OfflineValidation/test/submitAllJobs.py +++ b/Alignment/OfflineValidation/test/submitAllJobs.py @@ -2,7 +2,6 @@ '''Script that submits CMS Tracker Alignment Primary Vertex Validation workflows ''' -from __future__ import print_function from builtins import range __author__ = 'Marco Musich' diff --git a/Alignment/OfflineValidation/test/testG4Refitter_cfg.py b/Alignment/OfflineValidation/test/testG4Refitter_cfg.py index ab79fb97960a3..6ccadc426b326 100644 --- a/Alignment/OfflineValidation/test/testG4Refitter_cfg.py +++ b/Alignment/OfflineValidation/test/testG4Refitter_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys from enum import Enum diff --git a/Alignment/TrackerAlignment/scripts/query.py b/Alignment/TrackerAlignment/scripts/query.py index c7f50cc309b91..20450ed1b5a4e 100755 --- a/Alignment/TrackerAlignment/scripts/query.py +++ b/Alignment/TrackerAlignment/scripts/query.py @@ -8,7 +8,6 @@ """ DBS data discovery command line interface """ -from __future__ import print_function import httplib, urllib, types, string, os, sys from optparse import OptionParser diff --git a/Alignment/TrackerAlignment/test/Misalignments/createRandomlyMisalignedGeometry_Phase2_cfg.py b/Alignment/TrackerAlignment/test/Misalignments/createRandomlyMisalignedGeometry_Phase2_cfg.py index f2636c8ae1646..1a3e135c6d13a 100644 --- a/Alignment/TrackerAlignment/test/Misalignments/createRandomlyMisalignedGeometry_Phase2_cfg.py +++ b/Alignment/TrackerAlignment/test/Misalignments/createRandomlyMisalignedGeometry_Phase2_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import copy, sys, os diff --git a/Alignment/TrackerAlignment/test/Misalignments/createRandomlyMisalignedGeometry_cfg.py b/Alignment/TrackerAlignment/test/Misalignments/createRandomlyMisalignedGeometry_cfg.py index 3df00ed9c3def..8e0185293abea 100644 --- a/Alignment/TrackerAlignment/test/Misalignments/createRandomlyMisalignedGeometry_cfg.py +++ b/Alignment/TrackerAlignment/test/Misalignments/createRandomlyMisalignedGeometry_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import copy, sys, os diff --git a/Alignment/TrackerAlignment/test/createTrackerAlignmentRcds_Phase2_cfg.py b/Alignment/TrackerAlignment/test/createTrackerAlignmentRcds_Phase2_cfg.py index 37658b078bb43..649b874c8d878 100644 --- a/Alignment/TrackerAlignment/test/createTrackerAlignmentRcds_Phase2_cfg.py +++ b/Alignment/TrackerAlignment/test/createTrackerAlignmentRcds_Phase2_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/Alignment/TrackerAlignment/test/createTrackerAlignmentRcds_cfg.py b/Alignment/TrackerAlignment/test/createTrackerAlignmentRcds_cfg.py index 4b6451501aa72..2f16f98ee0fba 100644 --- a/Alignment/TrackerAlignment/test/createTrackerAlignmentRcds_cfg.py +++ b/Alignment/TrackerAlignment/test/createTrackerAlignmentRcds_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("Alignment") diff --git a/Alignment/TrackerAlignment/test/mcMisalignmentScaler_cfg.py b/Alignment/TrackerAlignment/test/mcMisalignmentScaler_cfg.py index 4db3edfdcce55..649c22f68e107 100644 --- a/Alignment/TrackerAlignment/test/mcMisalignmentScaler_cfg.py +++ b/Alignment/TrackerAlignment/test/mcMisalignmentScaler_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("MCMisalignmentScaler") diff --git a/Alignment/TrackerAlignment/test/trackerTreeGenerator_cfg.py b/Alignment/TrackerAlignment/test/trackerTreeGenerator_cfg.py index 746890a6d0209..c6237ed437bf5 100644 --- a/Alignment/TrackerAlignment/test/trackerTreeGenerator_cfg.py +++ b/Alignment/TrackerAlignment/test/trackerTreeGenerator_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os diff --git a/CalibCalorimetry/CaloMiscalibTools/test/make_ecal_miscaplibration.py b/CalibCalorimetry/CaloMiscalibTools/test/make_ecal_miscaplibration.py index ddadf7075c18c..5437a2e455895 100755 --- a/CalibCalorimetry/CaloMiscalibTools/test/make_ecal_miscaplibration.py +++ b/CalibCalorimetry/CaloMiscalibTools/test/make_ecal_miscaplibration.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import string,time,thread,random,math,sys #global variables diff --git a/CalibCalorimetry/CaloMiscalibTools/test/make_miscalibration.py b/CalibCalorimetry/CaloMiscalibTools/test/make_miscalibration.py index 08001752fdbc5..564eaa1b83187 100755 --- a/CalibCalorimetry/CaloMiscalibTools/test/make_miscalibration.py +++ b/CalibCalorimetry/CaloMiscalibTools/test/make_miscalibration.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import string,time,thread,random,math,sys #global variables diff --git a/CalibMuon/DTCalibration/python/PlottingTools/plotResiduals.py b/CalibMuon/DTCalibration/python/PlottingTools/plotResiduals.py index 229eab3edac98..36dd3fc267c5e 100644 --- a/CalibMuon/DTCalibration/python/PlottingTools/plotResiduals.py +++ b/CalibMuon/DTCalibration/python/PlottingTools/plotResiduals.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import ROOT from .fitResidual import fitResidual from .drawHistoAllChambers import drawHisto diff --git a/CalibMuon/DTCalibration/python/PlottingTools/plotResidualsCosmics.py b/CalibMuon/DTCalibration/python/PlottingTools/plotResidualsCosmics.py index cdd82fd7b3a11..ff000022a950c 100644 --- a/CalibMuon/DTCalibration/python/PlottingTools/plotResidualsCosmics.py +++ b/CalibMuon/DTCalibration/python/PlottingTools/plotResidualsCosmics.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import ROOT from .fitResidual import fitResidual from .drawHistoAllChambers import drawHisto diff --git a/CalibMuon/DTCalibration/python/PlottingTools/plotResidualsPerLayer.py b/CalibMuon/DTCalibration/python/PlottingTools/plotResidualsPerLayer.py index 8c11f9c55b649..c2ff08712a2e6 100644 --- a/CalibMuon/DTCalibration/python/PlottingTools/plotResidualsPerLayer.py +++ b/CalibMuon/DTCalibration/python/PlottingTools/plotResidualsPerLayer.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import ROOT from .fitResidual import fitResidual from .drawHistoAllChambers import drawHisto diff --git a/CalibMuon/DTCalibration/python/PlottingTools/plotT0FromHistos.py b/CalibMuon/DTCalibration/python/PlottingTools/plotT0FromHistos.py index 23b57c9684f19..7b4ec36cc5442 100644 --- a/CalibMuon/DTCalibration/python/PlottingTools/plotT0FromHistos.py +++ b/CalibMuon/DTCalibration/python/PlottingTools/plotT0FromHistos.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import ROOT from .drawHistoAllChambers import drawHisto diff --git a/CalibMuon/DTCalibration/python/PlottingTools/plotTTrigFromHistos.py b/CalibMuon/DTCalibration/python/PlottingTools/plotTTrigFromHistos.py index 762f0b7d835db..1de3f6ddd81a8 100644 --- a/CalibMuon/DTCalibration/python/PlottingTools/plotTTrigFromHistos.py +++ b/CalibMuon/DTCalibration/python/PlottingTools/plotTTrigFromHistos.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import ROOT from .drawHistoAllChambers import drawHisto diff --git a/CalibMuon/DTCalibration/python/PlottingTools/plotVDriftFromHistos.py b/CalibMuon/DTCalibration/python/PlottingTools/plotVDriftFromHistos.py index 3e59597c16f16..34dc77210750f 100644 --- a/CalibMuon/DTCalibration/python/PlottingTools/plotVDriftFromHistos.py +++ b/CalibMuon/DTCalibration/python/PlottingTools/plotVDriftFromHistos.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import ROOT from .drawHistoAllChambers import drawHisto diff --git a/CalibMuon/DTCalibration/python/Workflow/CrabHelper.py b/CalibMuon/DTCalibration/python/Workflow/CrabHelper.py index 0c67f4f46c5a6..c012acd64df76 100644 --- a/CalibMuon/DTCalibration/python/Workflow/CrabHelper.py +++ b/CalibMuon/DTCalibration/python/Workflow/CrabHelper.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import logging import sys import os diff --git a/CalibMuon/DTCalibration/python/Workflow/Crabtools/crabFunctions.py b/CalibMuon/DTCalibration/python/Workflow/Crabtools/crabFunctions.py index a3045f1a78389..17afc8cca4eee 100644 --- a/CalibMuon/DTCalibration/python/Workflow/Crabtools/crabFunctions.py +++ b/CalibMuon/DTCalibration/python/Workflow/Crabtools/crabFunctions.py @@ -4,7 +4,6 @@ # # This module provides common functions for tasks with crab3. # You need no create a CrabController object in order to use the functions -from __future__ import print_function import os,sys,glob import tarfile import xml.etree.ElementTree as ET diff --git a/CalibMuon/DTCalibration/python/Workflow/DTCalibrationWorker.py b/CalibMuon/DTCalibration/python/Workflow/DTCalibrationWorker.py index e158e8837c3cb..a0afe3a12e073 100755 --- a/CalibMuon/DTCalibration/python/Workflow/DTCalibrationWorker.py +++ b/CalibMuon/DTCalibration/python/Workflow/DTCalibrationWorker.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import sys,os,time import subprocess from .tools import loadCmsProcess diff --git a/CalibMuon/DTCalibration/python/Workflow/DTTtrigWorkflow.py b/CalibMuon/DTCalibration/python/Workflow/DTTtrigWorkflow.py index 2a46d72998304..465bc14b15f03 100644 --- a/CalibMuon/DTCalibration/python/Workflow/DTTtrigWorkflow.py +++ b/CalibMuon/DTCalibration/python/Workflow/DTTtrigWorkflow.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import os import logging import glob diff --git a/CalibMuon/DTCalibration/python/Workflow/DTVdriftWorkflow.py b/CalibMuon/DTCalibration/python/Workflow/DTVdriftWorkflow.py index 99c1ecea52812..fbe87cb77f674 100644 --- a/CalibMuon/DTCalibration/python/Workflow/DTVdriftWorkflow.py +++ b/CalibMuon/DTCalibration/python/Workflow/DTVdriftWorkflow.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import os import logging diff --git a/CalibMuon/DTCalibration/python/Workflow/DTWorkflow.py b/CalibMuon/DTCalibration/python/Workflow/DTWorkflow.py index 156e5310d5a1f..6ddeffd7ba934 100644 --- a/CalibMuon/DTCalibration/python/Workflow/DTWorkflow.py +++ b/CalibMuon/DTCalibration/python/Workflow/DTWorkflow.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import os,sys import glob import logging diff --git a/CalibMuon/DTCalibration/python/Workflow/tools.py b/CalibMuon/DTCalibration/python/Workflow/tools.py index b061e9d380a22..b3b42b57f1f9e 100644 --- a/CalibMuon/DTCalibration/python/Workflow/tools.py +++ b/CalibMuon/DTCalibration/python/Workflow/tools.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys,imp import subprocess import logging diff --git a/CalibMuon/DTCalibration/scripts/allPlotsResiduals.py b/CalibMuon/DTCalibration/scripts/allPlotsResiduals.py index 801fec5b6878b..9e7733a322427 100755 --- a/CalibMuon/DTCalibration/scripts/allPlotsResiduals.py +++ b/CalibMuon/DTCalibration/scripts/allPlotsResiduals.py @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function import ROOT import optparse import re diff --git a/CalibMuon/DTCalibration/scripts/mergeVDriftHistosByStation.py b/CalibMuon/DTCalibration/scripts/mergeVDriftHistosByStation.py index 21b996b06ce92..5f1b06d096289 100755 --- a/CalibMuon/DTCalibration/scripts/mergeVDriftHistosByStation.py +++ b/CalibMuon/DTCalibration/scripts/mergeVDriftHistosByStation.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import ROOT import sys diff --git a/CalibMuon/DTCalibration/test/DumpDBToFile_cfg.py b/CalibMuon/DTCalibration/test/DumpDBToFile_cfg.py index 3a10e31efc127..e561b183b02e0 100644 --- a/CalibMuon/DTCalibration/test/DumpDBToFile_cfg.py +++ b/CalibMuon/DTCalibration/test/DumpDBToFile_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/CalibMuon/DTCalibration/test/DumpFileToDB_cfg.py b/CalibMuon/DTCalibration/test/DumpFileToDB_cfg.py index c1303f43c207f..23c8be3f80347 100644 --- a/CalibMuon/DTCalibration/test/DumpFileToDB_cfg.py +++ b/CalibMuon/DTCalibration/test/DumpFileToDB_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import os diff --git a/CalibTracker/SiPixelESProducers/test/testSiPixelFakeLorentzAngleESSource_cfg.py b/CalibTracker/SiPixelESProducers/test/testSiPixelFakeLorentzAngleESSource_cfg.py index 826ac423d11d2..854d5e27e6281 100644 --- a/CalibTracker/SiPixelESProducers/test/testSiPixelFakeLorentzAngleESSource_cfg.py +++ b/CalibTracker/SiPixelESProducers/test/testSiPixelFakeLorentzAngleESSource_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/CalibTracker/SiStripChannelGain/test/7TeVData/automatic_RunOnCalibTree.py b/CalibTracker/SiStripChannelGain/test/7TeVData/automatic_RunOnCalibTree.py index e2967958f10f7..4b4b0a5ff63c0 100644 --- a/CalibTracker/SiStripChannelGain/test/7TeVData/automatic_RunOnCalibTree.py +++ b/CalibTracker/SiStripChannelGain/test/7TeVData/automatic_RunOnCalibTree.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os,sys import getopt import subprocess diff --git a/CalibTracker/SiStripChannelGain/test/7TeVData/dataCert.py b/CalibTracker/SiStripChannelGain/test/7TeVData/dataCert.py index a7a012c6d3068..47602105c292c 100644 --- a/CalibTracker/SiStripChannelGain/test/7TeVData/dataCert.py +++ b/CalibTracker/SiStripChannelGain/test/7TeVData/dataCert.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,json,sys diff --git a/CalibTracker/SiStripChannelGain/test/7TeVData/submitJob.py b/CalibTracker/SiStripChannelGain/test/7TeVData/submitJob.py index b69851410bf4d..516a975a3cf7d 100644 --- a/CalibTracker/SiStripChannelGain/test/7TeVData/submitJob.py +++ b/CalibTracker/SiStripChannelGain/test/7TeVData/submitJob.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os,sys import getopt import time diff --git a/CalibTracker/SiStripChannelGain/test/CodeExample/computeGain_cfg_OnBatch.py b/CalibTracker/SiStripChannelGain/test/CodeExample/computeGain_cfg_OnBatch.py index 046a0c8c2c4f0..f286cad2266d1 100644 --- a/CalibTracker/SiStripChannelGain/test/CodeExample/computeGain_cfg_OnBatch.py +++ b/CalibTracker/SiStripChannelGain/test/CodeExample/computeGain_cfg_OnBatch.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import urllib import string import os diff --git a/CalibTracker/SiStripChannelGain/test/CodeExample/produceCalibrationTree_cfg_OnBatch.py b/CalibTracker/SiStripChannelGain/test/CodeExample/produceCalibrationTree_cfg_OnBatch.py index 2b7975aae84d7..ce39c8132267a 100644 --- a/CalibTracker/SiStripChannelGain/test/CodeExample/produceCalibrationTree_cfg_OnBatch.py +++ b/CalibTracker/SiStripChannelGain/test/CodeExample/produceCalibrationTree_cfg_OnBatch.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import urllib import string import os diff --git a/CalibTracker/SiStripChannelGain/test/Cosmic_B38/MergeOnBatch.py b/CalibTracker/SiStripChannelGain/test/Cosmic_B38/MergeOnBatch.py index ba2f517047824..01b05e5437b49 100644 --- a/CalibTracker/SiStripChannelGain/test/Cosmic_B38/MergeOnBatch.py +++ b/CalibTracker/SiStripChannelGain/test/Cosmic_B38/MergeOnBatch.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import urllib import string import os diff --git a/CalibTracker/SiStripChannelGain/test/Cosmic_B38/launchOnBatch.py b/CalibTracker/SiStripChannelGain/test/Cosmic_B38/launchOnBatch.py index 4434bdc2123aa..9230b355e8feb 100644 --- a/CalibTracker/SiStripChannelGain/test/Cosmic_B38/launchOnBatch.py +++ b/CalibTracker/SiStripChannelGain/test/Cosmic_B38/launchOnBatch.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import urllib import string import os diff --git a/CalibTracker/SiStripChannelGain/test/Cosmic_B38/onFarm_MergeJob_cfg.py b/CalibTracker/SiStripChannelGain/test/Cosmic_B38/onFarm_MergeJob_cfg.py index 0e32c7d281f7a..e4712971219c0 100644 --- a/CalibTracker/SiStripChannelGain/test/Cosmic_B38/onFarm_MergeJob_cfg.py +++ b/CalibTracker/SiStripChannelGain/test/Cosmic_B38/onFarm_MergeJob_cfg.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import urllib import string import os diff --git a/CalibTracker/SiStripChannelGain/test/Cosmic_B38/onFarm_MultiJob_cfg.py b/CalibTracker/SiStripChannelGain/test/Cosmic_B38/onFarm_MultiJob_cfg.py index 0e32c7d281f7a..e4712971219c0 100644 --- a/CalibTracker/SiStripChannelGain/test/Cosmic_B38/onFarm_MultiJob_cfg.py +++ b/CalibTracker/SiStripChannelGain/test/Cosmic_B38/onFarm_MultiJob_cfg.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import urllib import string import os diff --git a/CalibTracker/SiStripChannelGain/test/PCL/Launch.py b/CalibTracker/SiStripChannelGain/test/PCL/Launch.py index 28a13eea2819c..b42a96babbe59 100644 --- a/CalibTracker/SiStripChannelGain/test/PCL/Launch.py +++ b/CalibTracker/SiStripChannelGain/test/PCL/Launch.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import urllib import string import os diff --git a/CalibTracker/SiStripChannelGain/test/testSSTGain_PCL_FromRECO_cfg.py b/CalibTracker/SiStripChannelGain/test/testSSTGain_PCL_FromRECO_cfg.py index 8235a468266c7..443e08a36dc85 100644 --- a/CalibTracker/SiStripChannelGain/test/testSSTGain_PCL_FromRECO_cfg.py +++ b/CalibTracker/SiStripChannelGain/test/testSSTGain_PCL_FromRECO_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # with command line options: stepALCA --datatier ALCARECO --conditions auto:run2_data -s ALCA:PromptCalibProdSiStripGains --eventcontent ALCARECO -n 1000 --dasquery=file dataset=/ZeroBias/Run2016C-SiStripCalMinBias-18Apr2017-v1/ALCARECO run=276243 --no_exec import warnings diff --git a/CalibTracker/SiStripCommon/python/das.py b/CalibTracker/SiStripCommon/python/das.py index 4fbfff8ad8819..60e88386b8345 100644 --- a/CalibTracker/SiStripCommon/python/das.py +++ b/CalibTracker/SiStripCommon/python/das.py @@ -1,4 +1,3 @@ -from __future__ import print_function from das_client import get_data import subprocess #from pdb import set_trace diff --git a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/SubmitJobs.py b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/SubmitJobs.py index fce16f8dbd9f4..c4e4d4fa167d2 100644 --- a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/SubmitJobs.py +++ b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/SubmitJobs.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import urllib import string import os diff --git a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/cleanFolders.py b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/cleanFolders.py index ba367029c7311..9bbc162f7830b 100644 --- a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/cleanFolders.py +++ b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/cleanFolders.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os def getName(log): diff --git a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/produceCalibrationTree_CosmicsLABP_cfg.py b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/produceCalibrationTree_CosmicsLABP_cfg.py index bc5062a7a833b..5b824fa9649a9 100644 --- a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/produceCalibrationTree_CosmicsLABP_cfg.py +++ b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/produceCalibrationTree_CosmicsLABP_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from FWCore.ParameterSet.VarParsing import VarParsing diff --git a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/produceCalibrationTree_template_cfg.py b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/produceCalibrationTree_template_cfg.py index ac3583de352b0..ee489f9962b28 100644 --- a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/produceCalibrationTree_template_cfg.py +++ b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/produceCalibrationTree_template_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing from CalibTracker.SiStripCommon.shallowTree_test_template import * diff --git a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/Config.py b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/Config.py index 5cfcdffcee5a9..0fefcf9856fee 100644 --- a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/Config.py +++ b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/Config.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import os, time,sys class configuration: diff --git a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/launchJobs.py b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/launchJobs.py index dd2a02ee61646..63a689b02c2f6 100644 --- a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/launchJobs.py +++ b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/launchJobs.py @@ -1,6 +1,4 @@ #!/usr/bin/env python3 -from __future__ import absolute_import -from __future__ import print_function import urllib from . import Config import string diff --git a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/runJob.py b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/runJob.py index 7649413e7f30d..4ee2e97f07e38 100644 --- a/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/runJob.py +++ b/CalibTracker/SiStripCommon/test/MakeCalibrationTrees/submitCalibTree/runJob.py @@ -1,6 +1,4 @@ #!/usr/bin/env python3 -from __future__ import absolute_import -from __future__ import print_function import os import sys import subprocess diff --git a/CalibTracker/SiStripCommon/test/testCalibTree_nano.py b/CalibTracker/SiStripCommon/test/testCalibTree_nano.py index ffdf36102538f..c02d719092be8 100644 --- a/CalibTracker/SiStripCommon/test/testCalibTree_nano.py +++ b/CalibTracker/SiStripCommon/test/testCalibTree_nano.py @@ -1,4 +1,3 @@ -from __future__ import print_function ## adapted from produceCalibrationTree_template_cfg.py diff --git a/CalibTracker/SiStripCommon/test/testCalibTree_nano_G2.py b/CalibTracker/SiStripCommon/test/testCalibTree_nano_G2.py index b532ee28b5dff..0c6676f909472 100644 --- a/CalibTracker/SiStripCommon/test/testCalibTree_nano_G2.py +++ b/CalibTracker/SiStripCommon/test/testCalibTree_nano_G2.py @@ -1,4 +1,3 @@ -from __future__ import print_function ## adapted from produceCalibrationTree_template_cfg.py diff --git a/CalibTracker/SiStripCommon/test/testProduceCalibrationTree_cfg.py b/CalibTracker/SiStripCommon/test/testProduceCalibrationTree_cfg.py index 8391465d5a7e7..ca9b0e201ebf1 100644 --- a/CalibTracker/SiStripCommon/test/testProduceCalibrationTree_cfg.py +++ b/CalibTracker/SiStripCommon/test/testProduceCalibrationTree_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.patInputFiles_cff import filesRelValTTbarPileUpGENSIMRECO import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/CalibTracker/SiStripDCS/test/ChangeToHVmap.py b/CalibTracker/SiStripDCS/test/ChangeToHVmap.py index 98d1796d27815..5634fe191f4ad 100755 --- a/CalibTracker/SiStripDCS/test/ChangeToHVmap.py +++ b/CalibTracker/SiStripDCS/test/ChangeToHVmap.py @@ -4,7 +4,6 @@ map derived from pedestal runs studies with the old db map into a new accurate map. """ -from __future__ import print_function import sys diff --git a/CalibTracker/SiStripDCS/test/CheckAllIOVs.py b/CalibTracker/SiStripDCS/test/CheckAllIOVs.py index 02b11a13ebecf..235e3238016c3 100755 --- a/CalibTracker/SiStripDCS/test/CheckAllIOVs.py +++ b/CalibTracker/SiStripDCS/test/CheckAllIOVs.py @@ -7,7 +7,6 @@ 3- creates 2 log files per IOV (Summary/Debug) with all the SiStripDetVOff information in ASCII format It is recommended to redirect the output to a file. """ -from __future__ import print_function #3- takes the output of each job and builds a single output with the content of each iov import os diff --git a/CalibTracker/SiStripDCS/test/CheckLogs.py b/CalibTracker/SiStripDCS/test/CheckLogs.py index 6d8572b0dfde3..da9882b12467e 100755 --- a/CalibTracker/SiStripDCS/test/CheckLogs.py +++ b/CalibTracker/SiStripDCS/test/CheckLogs.py @@ -1,7 +1,6 @@ #! /usr/bin/env python #Quick and dirty script to "analyze" the log of the CheckAllIOVs.py to validate #plotting macro ExtractTrends.C -from __future__ import print_function import sys #print "Opening logfile %s"%sys.argv[1] log=open(sys.argv[1]) diff --git a/CalibTracker/SiStripDCS/test/MakeList.py b/CalibTracker/SiStripDCS/test/MakeList.py index dd5a11ea5b251..b35adbd0c6e91 100644 --- a/CalibTracker/SiStripDCS/test/MakeList.py +++ b/CalibTracker/SiStripDCS/test/MakeList.py @@ -1,6 +1,5 @@ #! /usr/bin/env python #Quick and dirty script to provide the necessary (ordered by timestamp list of logs in the) list.txt file used by the ExtractTrends.C root macro -from __future__ import print_function import os import time diff --git a/CalibTracker/SiStripDCS/test/MakeTkMaps.py b/CalibTracker/SiStripDCS/test/MakeTkMaps.py index 1bdadd37554da..bc5ade6af394f 100755 --- a/CalibTracker/SiStripDCS/test/MakeTkMaps.py +++ b/CalibTracker/SiStripDCS/test/MakeTkMaps.py @@ -11,7 +11,6 @@ #TODO: #In the future can put it in scripts/ and take dir to run from and write to as options. -from __future__ import print_function import os, subprocess def ProduceTkMapVoltageInputFiles(workdir=os.getcwd()): #Setting the dir by default to the current working directory... diff --git a/CalibTracker/SiStripDCS/test/ManualO2OForRestart.py b/CalibTracker/SiStripDCS/test/ManualO2OForRestart.py index d22e8ee443f6d..81e5f1b99c855 100755 --- a/CalibTracker/SiStripDCS/test/ManualO2OForRestart.py +++ b/CalibTracker/SiStripDCS/test/ManualO2OForRestart.py @@ -6,7 +6,6 @@ By splitting it in smaller intervals of a given DeltaT it is possible to keep under control the memory used. """ -from __future__ import print_function import os import datetime diff --git a/CalibTracker/SiStripDCS/test/ParseManualO2Olog.py b/CalibTracker/SiStripDCS/test/ParseManualO2Olog.py index f8fd3b651140b..7442dbe32753c 100755 --- a/CalibTracker/SiStripDCS/test/ParseManualO2Olog.py +++ b/CalibTracker/SiStripDCS/test/ParseManualO2Olog.py @@ -2,7 +2,6 @@ #Script to parse the output of ManualO2O.py for various debugging tasks #First use case is to debug issue with HV1/HV2 channels handling -from __future__ import print_function import os,datetime, pickle def GetLogTimestamps(ManualO2Ologfilename): """ diff --git a/CalibTracker/SiStripDCS/test/TimestampToDate.py b/CalibTracker/SiStripDCS/test/TimestampToDate.py index 8d4358373f78c..686ddb03a413c 100644 --- a/CalibTracker/SiStripDCS/test/TimestampToDate.py +++ b/CalibTracker/SiStripDCS/test/TimestampToDate.py @@ -1,4 +1,3 @@ -from __future__ import print_function def pack(high,low): """pack high,low 32bit unsigned int to one unsigned 64bit long long Note:the print value of result number may appear signed, if the sign bit is used. diff --git a/CalibTracker/SiStripDCS/test/convertTime.py b/CalibTracker/SiStripDCS/test/convertTime.py index b30faca3e4d54..02e58fe1106ce 100755 --- a/CalibTracker/SiStripDCS/test/convertTime.py +++ b/CalibTracker/SiStripDCS/test/convertTime.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys import time import calendar diff --git a/CalibTracker/SiStripDCS/test/templateCheckAllIOVs_cfg.py b/CalibTracker/SiStripDCS/test/templateCheckAllIOVs_cfg.py index dedede5b04bfe..3c85cd005c964 100644 --- a/CalibTracker/SiStripDCS/test/templateCheckAllIOVs_cfg.py +++ b/CalibTracker/SiStripDCS/test/templateCheckAllIOVs_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function def pack(high,low): """pack high,low 32bit unsigned int to one unsigned 64bit long long Note:the print value of result number may appear signed, if the sign bit is used. diff --git a/CalibTracker/SiStripESProducers/test/python/CheckAllIOVs.py b/CalibTracker/SiStripESProducers/test/python/CheckAllIOVs.py index 10332a5c2ee3d..b742066230f49 100755 --- a/CalibTracker/SiStripESProducers/test/python/CheckAllIOVs.py +++ b/CalibTracker/SiStripESProducers/test/python/CheckAllIOVs.py @@ -1,7 +1,6 @@ #!/usr/bin/env python """ Helper functions for time conversions """ -from __future__ import print_function def pack(high,low): """pack high,low 32bit unsigned int to one unsigned 64bit long long diff --git a/CalibTracker/SiStripESProducers/test/python/UploadAll.py b/CalibTracker/SiStripESProducers/test/python/UploadAll.py index b0b312ef2bbf9..a325af9bf4a53 100755 --- a/CalibTracker/SiStripESProducers/test/python/UploadAll.py +++ b/CalibTracker/SiStripESProducers/test/python/UploadAll.py @@ -5,7 +5,6 @@ # The tagList needs: tag name, tag type (e.g. Ideal, StartUp, ...) and possible additional # sed commands where the " are escaped as \". -from __future__ import print_function import os import sys diff --git a/CalibTracker/SiStripESProducers/test/python/templateCheckAllIOVs_cfg.py b/CalibTracker/SiStripESProducers/test/python/templateCheckAllIOVs_cfg.py index 1c4193dd25e08..939487f76f3d8 100644 --- a/CalibTracker/SiStripESProducers/test/python/templateCheckAllIOVs_cfg.py +++ b/CalibTracker/SiStripESProducers/test/python/templateCheckAllIOVs_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function def pack(high,low): """pack high,low 32bit unsigned int to one unsigned 64bit long long Note:the print value of result number may appear signed, if the sign bit is used. diff --git a/Calibration/EcalAlCaRecoProducers/test/alcaSkimming.py b/Calibration/EcalAlCaRecoProducers/test/alcaSkimming.py index e196e9ddd676e..f1e9e098f9071 100644 --- a/Calibration/EcalAlCaRecoProducers/test/alcaSkimming.py +++ b/Calibration/EcalAlCaRecoProducers/test/alcaSkimming.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os, sys, imp, re import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/Calibration/TkAlCaRecoProducers/test/convertSiStripRootDQMFileToEDM_cfg.py b/Calibration/TkAlCaRecoProducers/test/convertSiStripRootDQMFileToEDM_cfg.py index a9617c910d25b..04a23a1e01b83 100644 --- a/Calibration/TkAlCaRecoProducers/test/convertSiStripRootDQMFileToEDM_cfg.py +++ b/Calibration/TkAlCaRecoProducers/test/convertSiStripRootDQMFileToEDM_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms """ This python cfg converts a plain DQM root file in a EDM file that can be used to run the SiStrip bad channel calibration as done @ Tier0""" diff --git a/Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py b/Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py index a809da3fb3fb6..87913bf47d566 100644 --- a/Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py +++ b/Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py @@ -1,4 +1,3 @@ -from __future__ import print_function import xml.etree.ElementTree as ET import sys diff --git a/Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py b/Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py index 7d4d2b22f8afb..a969800b1d6c5 100644 --- a/Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py +++ b/Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py @@ -1,4 +1,3 @@ -from __future__ import print_function import calendar import CondCore.Utilities.conddblib as conddb diff --git a/Calibration/Tools/scripts/alcaDQMUpload.py b/Calibration/Tools/scripts/alcaDQMUpload.py index afa42d28634a9..924514cc39b7d 100755 --- a/Calibration/Tools/scripts/alcaDQMUpload.py +++ b/Calibration/Tools/scripts/alcaDQMUpload.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys, os, os.path, re, string, httplib, mimetypes, urllib, urllib2, httplib, gzip, md5 from cStringIO import StringIO from stat import * diff --git a/CondCore/CondDB/test/condTestRegression.py b/CondCore/CondDB/test/condTestRegression.py index 5e5f532fd2636..31815a0876cad 100755 --- a/CondCore/CondDB/test/condTestRegression.py +++ b/CondCore/CondDB/test/condTestRegression.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys, os import glob import time diff --git a/CondCore/DBCommon/python/CondDBCommon_cfi.py b/CondCore/DBCommon/python/CondDBCommon_cfi.py index e0f872cc80f19..017ef518c4716 100644 --- a/CondCore/DBCommon/python/CondDBCommon_cfi.py +++ b/CondCore/DBCommon/python/CondDBCommon_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function print(" ##################################################################### ") print(" # WARNING: the module CondCore.DBCommon.CondDBCommon is deprecated. # ") print(" # Please import CondCore.CondDB.CondDB_cfi # ") diff --git a/CondCore/DBCommon/python/CondDBSetup_cfi.py b/CondCore/DBCommon/python/CondDBSetup_cfi.py index fee069b652bc8..35f3824e84898 100644 --- a/CondCore/DBCommon/python/CondDBSetup_cfi.py +++ b/CondCore/DBCommon/python/CondDBSetup_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function print(" ##################################################################### ") print(" # WARNING: the module CondCore.DBCommon.CondDBSetup is deprecated. # ") print(" # Please import CondCore.CondDB.CondDB_cfi # ") diff --git a/CondCore/ESSources/python/GlobalTag.py b/CondCore/ESSources/python/GlobalTag.py index b330212c35d38..afa0ffc331425 100644 --- a/CondCore/ESSources/python/GlobalTag.py +++ b/CondCore/ESSources/python/GlobalTag.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys from Configuration.AlCa.autoCond import aliases diff --git a/CondCore/ESSources/test/python/load_from_globaltag_cfg.py b/CondCore/ESSources/test/python/load_from_globaltag_cfg.py index 32d83b9aa11ca..2f858642b2ffb 100644 --- a/CondCore/ESSources/test/python/load_from_globaltag_cfg.py +++ b/CondCore/ESSources/test/python/load_from_globaltag_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from Configuration.AlCa.autoCond import autoCond diff --git a/CondCore/ESSources/test/python/load_record_empty_source_cfg.py b/CondCore/ESSources/test/python/load_record_empty_source_cfg.py index a8e015d53d8fa..14875fde673e0 100644 --- a/CondCore/ESSources/test/python/load_record_empty_source_cfg.py +++ b/CondCore/ESSources/test/python/load_record_empty_source_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import time import FWCore.ParameterSet.Config as cms diff --git a/CondCore/ESSources/test/python/loadall_from_gt_empty_source_cfg.py b/CondCore/ESSources/test/python/loadall_from_gt_empty_source_cfg.py index f91c6fdcc08bd..f60c4c7bf71c1 100644 --- a/CondCore/ESSources/test/python/loadall_from_gt_empty_source_cfg.py +++ b/CondCore/ESSources/test/python/loadall_from_gt_empty_source_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import time import FWCore.ParameterSet.Config as cms diff --git a/CondCore/ESSources/test/python/loadall_from_one_record_empty_source_cfg.py b/CondCore/ESSources/test/python/loadall_from_one_record_empty_source_cfg.py index 692585fd34f23..d0e2c9abaef06 100644 --- a/CondCore/ESSources/test/python/loadall_from_one_record_empty_source_cfg.py +++ b/CondCore/ESSources/test/python/loadall_from_one_record_empty_source_cfg.py @@ -1,5 +1,4 @@ -from __future__ import print_function import time import FWCore.ParameterSet.Config as cms diff --git a/CondCore/ESSources/test/python/loadall_from_one_record_empty_source_time_cfg.py b/CondCore/ESSources/test/python/loadall_from_one_record_empty_source_time_cfg.py index 6b8d448ae872f..cd3c0569a2f1b 100644 --- a/CondCore/ESSources/test/python/loadall_from_one_record_empty_source_time_cfg.py +++ b/CondCore/ESSources/test/python/loadall_from_one_record_empty_source_time_cfg.py @@ -1,5 +1,4 @@ -from __future__ import print_function import time import FWCore.ParameterSet.Config as cms diff --git a/CondCore/ESSources/test/python/read_beamspot_cfg.py b/CondCore/ESSources/test/python/read_beamspot_cfg.py index f0f5e60c0279d..2eb22d1f16832 100644 --- a/CondCore/ESSources/test/python/read_beamspot_cfg.py +++ b/CondCore/ESSources/test/python/read_beamspot_cfg.py @@ -1,5 +1,4 @@ -from __future__ import print_function import time import FWCore.ParameterSet.Config as cms diff --git a/CondCore/ESSources/test/python/write_beamspot_cfg.py b/CondCore/ESSources/test/python/write_beamspot_cfg.py index 510f8c84adced..d7440d461eb7e 100644 --- a/CondCore/ESSources/test/python/write_beamspot_cfg.py +++ b/CondCore/ESSources/test/python/write_beamspot_cfg.py @@ -1,5 +1,4 @@ -from __future__ import print_function import time import FWCore.ParameterSet.Config as cms diff --git a/CondCore/EcalPlugins/test/inspect.py b/CondCore/EcalPlugins/test/inspect.py index 65aa1339949e6..f770e2c197fc5 100644 --- a/CondCore/EcalPlugins/test/inspect.py +++ b/CondCore/EcalPlugins/test/inspect.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # I should write a decent test of the python binding... # diff --git a/CondCore/PopCon/test/fetchCronLogTail.py b/CondCore/PopCon/test/fetchCronLogTail.py index 54e51e6450328..b20911450c355 100644 --- a/CondCore/PopCon/test/fetchCronLogTail.py +++ b/CondCore/PopCon/test/fetchCronLogTail.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os, sys, re import string import math diff --git a/CondCore/PopCon/test/run_popcon2dropbox_DT.py b/CondCore/PopCon/test/run_popcon2dropbox_DT.py index e65ec743f0ad8..7f1c628898727 100644 --- a/CondCore/PopCon/test/run_popcon2dropbox_DT.py +++ b/CondCore/PopCon/test/run_popcon2dropbox_DT.py @@ -1,7 +1,6 @@ #!/usr/bin/env python '''Script that directs the popcon output to the dropbox ''' -from __future__ import print_function __author__ = 'Giacomo Govi' diff --git a/CondCore/PopCon/test/run_popcon2dropbox_RunInfo.py b/CondCore/PopCon/test/run_popcon2dropbox_RunInfo.py index 24696db678b4d..daed736ccce82 100644 --- a/CondCore/PopCon/test/run_popcon2dropbox_RunInfo.py +++ b/CondCore/PopCon/test/run_popcon2dropbox_RunInfo.py @@ -1,7 +1,6 @@ #!/usr/bin/env python '''Script that directs the popcon output to the dropbox ''' -from __future__ import print_function __author__ = 'Giacomo Govi' diff --git a/CondCore/RPCPlugins/test/inspectRPCObImon.py b/CondCore/RPCPlugins/test/inspectRPCObImon.py index 6f38a6c97fdc2..7577a36ce4e3d 100755 --- a/CondCore/RPCPlugins/test/inspectRPCObImon.py +++ b/CondCore/RPCPlugins/test/inspectRPCObImon.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os,sys, DLFCN, time, datetime import matplotlib import numpy diff --git a/CondCore/RunInfoPlugins/test/inspect.py b/CondCore/RunInfoPlugins/test/inspect.py index eae920bd16ade..e57da4bcf5928 100644 --- a/CondCore/RunInfoPlugins/test/inspect.py +++ b/CondCore/RunInfoPlugins/test/inspect.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys, DLFCN sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondCore/RunInfoPlugins/test/inspectL1Scaler.py b/CondCore/RunInfoPlugins/test/inspectL1Scaler.py index c489c04be0158..4c11953973f88 100644 --- a/CondCore/RunInfoPlugins/test/inspectL1Scaler.py +++ b/CondCore/RunInfoPlugins/test/inspectL1Scaler.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys, DLFCN sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondCore/RunInfoPlugins/test/inspectRunInfo.py b/CondCore/RunInfoPlugins/test/inspectRunInfo.py index 985298812e295..fbf83b8114cd4 100644 --- a/CondCore/RunInfoPlugins/test/inspectRunInfo.py +++ b/CondCore/RunInfoPlugins/test/inspectRunInfo.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys, DLFCN sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondCore/RunInfoPlugins/test/inspectRunInfo_219.py b/CondCore/RunInfoPlugins/test/inspectRunInfo_219.py index efcca18775aa5..8d2068a26186f 100644 --- a/CondCore/RunInfoPlugins/test/inspectRunInfo_219.py +++ b/CondCore/RunInfoPlugins/test/inspectRunInfo_219.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys, DLFCN sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondCore/RunInfoPlugins/test/inspectRunInfo_3XX.py b/CondCore/RunInfoPlugins/test/inspectRunInfo_3XX.py index d2379f44e6b91..eaf3ff6937c8c 100644 --- a/CondCore/RunInfoPlugins/test/inspectRunInfo_3XX.py +++ b/CondCore/RunInfoPlugins/test/inspectRunInfo_3XX.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys, DLFCN sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondCore/RunInfoPlugins/test/inspectRunSummary.py b/CondCore/RunInfoPlugins/test/inspectRunSummary.py index 4a4aeaf878a1a..65d623c908b98 100644 --- a/CondCore/RunInfoPlugins/test/inspectRunSummary.py +++ b/CondCore/RunInfoPlugins/test/inspectRunSummary.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys, DLFCN sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondCore/RunInfoPlugins/test/inspectRunSummary_219.py b/CondCore/RunInfoPlugins/test/inspectRunSummary_219.py index 4ffe7aaff0d57..bf066589762cf 100644 --- a/CondCore/RunInfoPlugins/test/inspectRunSummary_219.py +++ b/CondCore/RunInfoPlugins/test/inspectRunSummary_219.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys, DLFCN sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondCore/RunInfoPlugins/test/plot2JsonTimeSeries.py b/CondCore/RunInfoPlugins/test/plot2JsonTimeSeries.py index 3323b9723a923..3b1c23f52cb06 100755 --- a/CondCore/RunInfoPlugins/test/plot2JsonTimeSeries.py +++ b/CondCore/RunInfoPlugins/test/plot2JsonTimeSeries.py @@ -4,7 +4,6 @@ ## ################################################ -from __future__ import print_function import json import ROOT from array import array diff --git a/CondCore/SiStripPlugins/test/findPeakRuns.py b/CondCore/SiStripPlugins/test/findPeakRuns.py index 2a5f1a032130b..2a9a507032331 100644 --- a/CondCore/SiStripPlugins/test/findPeakRuns.py +++ b/CondCore/SiStripPlugins/test/findPeakRuns.py @@ -18,7 +18,6 @@ python findPeakRuns.py -f log.json -r isTrackerIn.json > & allTrackerRuns.csv & ''' -from __future__ import print_function import json import ROOT from pprint import pprint diff --git a/CondCore/SiStripPlugins/test/plotJson.py b/CondCore/SiStripPlugins/test/plotJson.py index cd4cf6815d7f5..f29411f9cd48d 100644 --- a/CondCore/SiStripPlugins/test/plotJson.py +++ b/CondCore/SiStripPlugins/test/plotJson.py @@ -1,4 +1,3 @@ -from __future__ import print_function import json import ROOT from pprint import pprint diff --git a/CondCore/Utilities/python/CondDBFW/tests/__main__.py b/CondCore/Utilities/python/CondDBFW/tests/__main__.py index 1dccf59333786..6a8e68d58644f 100644 --- a/CondCore/Utilities/python/CondDBFW/tests/__main__.py +++ b/CondCore/Utilities/python/CondDBFW/tests/__main__.py @@ -3,7 +3,6 @@ Unit tests for python conddblib framework. """ -from __future__ import absolute_import import unittest import sys diff --git a/CondCore/Utilities/python/CondDBFW/tests/data_formats_tests.py b/CondCore/Utilities/python/CondDBFW/tests/data_formats_tests.py index 8c975d56c9f87..e2c7ad11de073 100644 --- a/CondCore/Utilities/python/CondDBFW/tests/data_formats_tests.py +++ b/CondCore/Utilities/python/CondDBFW/tests/data_formats_tests.py @@ -1,4 +1,3 @@ -from __future__ import print_function import unittest import sys import datetime diff --git a/CondCore/Utilities/python/CondDBFW/tests/querying_tests.py b/CondCore/Utilities/python/CondDBFW/tests/querying_tests.py index 0ae64fbf36187..08ccf9dab6855 100644 --- a/CondCore/Utilities/python/CondDBFW/tests/querying_tests.py +++ b/CondCore/Utilities/python/CondDBFW/tests/querying_tests.py @@ -1,4 +1,3 @@ -from __future__ import print_function import unittest import sys import datetime diff --git a/CondCore/Utilities/python/cond2xml.py b/CondCore/Utilities/python/cond2xml.py index 91f3bd79042f9..bf6405faef39a 100644 --- a/CondCore/Utilities/python/cond2xml.py +++ b/CondCore/Utilities/python/cond2xml.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import shutil diff --git a/CondCore/Utilities/python/conddb_migrate.py b/CondCore/Utilities/python/conddb_migrate.py index badb7da179692..591de38f66305 100755 --- a/CondCore/Utilities/python/conddb_migrate.py +++ b/CondCore/Utilities/python/conddb_migrate.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 '''CMS Conditions DB migration script. ''' -from __future__ import print_function import os diff --git a/CondCore/Utilities/python/o2olib.py b/CondCore/Utilities/python/o2olib.py index ea873305c9028..7a92d45b35189 100644 --- a/CondCore/Utilities/python/o2olib.py +++ b/CondCore/Utilities/python/o2olib.py @@ -1,4 +1,3 @@ -from __future__ import print_function __author__ = 'Giacomo Govi' import sqlalchemy diff --git a/CondCore/Utilities/python/popcon2dropbox.py b/CondCore/Utilities/python/popcon2dropbox.py index fac71834088db..16d30794ccbdd 100644 --- a/CondCore/Utilities/python/popcon2dropbox.py +++ b/CondCore/Utilities/python/popcon2dropbox.py @@ -1,4 +1,3 @@ -from __future__ import print_function import subprocess import json import netrc diff --git a/CondCore/Utilities/python/popcon2dropbox_job_conf.py b/CondCore/Utilities/python/popcon2dropbox_job_conf.py index 1e983212134cd..f4e4e67d9fa6d 100644 --- a/CondCore/Utilities/python/popcon2dropbox_job_conf.py +++ b/CondCore/Utilities/python/popcon2dropbox_job_conf.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing from . import popcon2dropbox diff --git a/CondCore/Utilities/python/tier0.py b/CondCore/Utilities/python/tier0.py index b8eb3d6c349ac..4c00b2330e67b 100644 --- a/CondCore/Utilities/python/tier0.py +++ b/CondCore/Utilities/python/tier0.py @@ -1,4 +1,3 @@ -from __future__ import print_function #-toDo: move this to common? diff --git a/CondCore/Utilities/scripts/conddb b/CondCore/Utilities/scripts/conddb index 30abef9257088..701eb3c939dfb 100755 --- a/CondCore/Utilities/scripts/conddb +++ b/CondCore/Utilities/scripts/conddb @@ -1,7 +1,6 @@ #!/usr/bin/env python3 '''CMS Conditions DB command-line tool. ''' -from __future__ import print_function import argparse import datetime diff --git a/CondCore/Utilities/scripts/conddbCopyTest.py b/CondCore/Utilities/scripts/conddbCopyTest.py index de74647a4741d..599ca894f608c 100644 --- a/CondCore/Utilities/scripts/conddbCopyTest.py +++ b/CondCore/Utilities/scripts/conddbCopyTest.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sqlite3 import subprocess import json diff --git a/CondCore/Utilities/scripts/conddb_version_mgr.py b/CondCore/Utilities/scripts/conddb_version_mgr.py index 475a6149e4926..bbc96dd54abb2 100755 --- a/CondCore/Utilities/scripts/conddb_version_mgr.py +++ b/CondCore/Utilities/scripts/conddb_version_mgr.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import cx_Oracle import datetime import calendar diff --git a/CondCore/Utilities/scripts/conditionUploadTest.py b/CondCore/Utilities/scripts/conditionUploadTest.py index 493f865133d45..615c516d0bb44 100644 --- a/CondCore/Utilities/scripts/conditionUploadTest.py +++ b/CondCore/Utilities/scripts/conditionUploadTest.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import cx_Oracle import subprocess import json diff --git a/CondCore/Utilities/scripts/getPayloadData.py b/CondCore/Utilities/scripts/getPayloadData.py index a052e69123f80..20aab2d1042b5 100755 --- a/CondCore/Utilities/scripts/getPayloadData.py +++ b/CondCore/Utilities/scripts/getPayloadData.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 -from __future__ import print_function import shutil import glob import json diff --git a/CondCore/Utilities/scripts/popconRun b/CondCore/Utilities/scripts/popconRun index 66c5edc744dc1..9a0ece0bd99a1 100755 --- a/CondCore/Utilities/scripts/popconRun +++ b/CondCore/Utilities/scripts/popconRun @@ -1,7 +1,6 @@ #!/usr/bin/env python3 '''Script that directs the popcon output to the condition uploader ''' -from __future__ import print_function import os import sys from CondCore.Utilities import popcon2dropbox diff --git a/CondCore/Utilities/scripts/uploadConditions.py b/CondCore/Utilities/scripts/uploadConditions.py index 7a01863e00d6f..55f6e64978d50 100755 --- a/CondCore/Utilities/scripts/uploadConditions.py +++ b/CondCore/Utilities/scripts/uploadConditions.py @@ -2,7 +2,6 @@ '''Script that uploads to the new CMS conditions uploader. Adapted to the new infrastructure from v6 of the upload.py script for the DropBox from Miguel Ojeda. ''' -from __future__ import print_function __author__ = 'Andreas Pfeiffer' __copyright__ = 'Copyright 2015, CERN CMS' diff --git a/CondCore/Utilities/test/CondDBFW/testing_classes.py b/CondCore/Utilities/test/CondDBFW/testing_classes.py index 138fab20d0d7e..1c431b03d7991 100644 --- a/CondCore/Utilities/test/CondDBFW/testing_classes.py +++ b/CondCore/Utilities/test/CondDBFW/testing_classes.py @@ -8,7 +8,6 @@ TODO: Change code so that all connections are used when testing queries - if this isn't too bad a thing to do with the DBs. """ -from __future__ import print_function import unittest import sys diff --git a/CondCore/Utilities/test/iovInspector_test.py b/CondCore/Utilities/test/iovInspector_test.py index 009ea9bc2c42e..b2846fc0af033 100644 --- a/CondCore/Utilities/test/iovInspector_test.py +++ b/CondCore/Utilities/test/iovInspector_test.py @@ -1,4 +1,3 @@ -from __future__ import print_function # test of iovInpector import os,os.path,string diff --git a/CondCore/Utilities/test/listTags.py b/CondCore/Utilities/test/listTags.py index 7017b67206177..310ecfaa6c340 100644 --- a/CondCore/Utilities/test/listTags.py +++ b/CondCore/Utilities/test/listTags.py @@ -1,4 +1,3 @@ -from __future__ import print_function import DLFCN, sys, os, time sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondFormats/Common/test/parse_output.py b/CondFormats/Common/test/parse_output.py index 8c0619e18713d..284326aec1d0f 100644 --- a/CondFormats/Common/test/parse_output.py +++ b/CondFormats/Common/test/parse_output.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function import os import json diff --git a/CondFormats/MFObjects/test/writeAllMagFieldConfigDB.py b/CondFormats/MFObjects/test/writeAllMagFieldConfigDB.py index 3d38b4b707d26..e7155e866fbc8 100755 --- a/CondFormats/MFObjects/test/writeAllMagFieldConfigDB.py +++ b/CondFormats/MFObjects/test/writeAllMagFieldConfigDB.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os import sys diff --git a/CondFormats/Serialization/python/condformats_serialization_generate.py b/CondFormats/Serialization/python/condformats_serialization_generate.py index 43253e6233490..404ab9a512b6d 100755 --- a/CondFormats/Serialization/python/condformats_serialization_generate.py +++ b/CondFormats/Serialization/python/condformats_serialization_generate.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function '''CMS Conditions DB Serialization generator. Generates the non-intrusive serialization code required for the classes diff --git a/CondFormats/SiStripObjects/test/SiStripBadChannelInspector.py b/CondFormats/SiStripObjects/test/SiStripBadChannelInspector.py index 689e10cd75b70..5c10f2d98768b 100644 --- a/CondFormats/SiStripObjects/test/SiStripBadChannelInspector.py +++ b/CondFormats/SiStripObjects/test/SiStripBadChannelInspector.py @@ -1,4 +1,3 @@ -from __future__ import print_function import DLFCN, sys, os sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) import pluginCondDBPyInterface as condDB diff --git a/CondFormats/SiStripObjects/test/SiStripConfObjectInspector.py b/CondFormats/SiStripObjects/test/SiStripConfObjectInspector.py index b3aef5b58b187..69fe1180949be 100644 --- a/CondFormats/SiStripObjects/test/SiStripConfObjectInspector.py +++ b/CondFormats/SiStripObjects/test/SiStripConfObjectInspector.py @@ -1,4 +1,3 @@ -from __future__ import print_function import DLFCN, sys, os sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) import pluginCondDBPyInterface as condDB diff --git a/CondFormats/SiStripObjects/test/SiStripLatencyInspector.py b/CondFormats/SiStripObjects/test/SiStripLatencyInspector.py index f8e6300fa2a11..bbf6fd8649b02 100644 --- a/CondFormats/SiStripObjects/test/SiStripLatencyInspector.py +++ b/CondFormats/SiStripObjects/test/SiStripLatencyInspector.py @@ -1,4 +1,3 @@ -from __future__ import print_function import DLFCN, sys, os sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) import pluginCondDBPyInterface as condDB diff --git a/CondTools/BTau/python/bTagCalibrationDbCreation.py b/CondTools/BTau/python/bTagCalibrationDbCreation.py index a6bb9430940aa..6c428db415e4b 100644 --- a/CondTools/BTau/python/bTagCalibrationDbCreation.py +++ b/CondTools/BTau/python/bTagCalibrationDbCreation.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import sys import FWCore.ParameterSet.Config as cms diff --git a/CondTools/BTau/python/checkBTagCalibrationConsistency.py b/CondTools/BTau/python/checkBTagCalibrationConsistency.py index 5db9ddb02a527..e278ff0df6d9e 100755 --- a/CondTools/BTau/python/checkBTagCalibrationConsistency.py +++ b/CondTools/BTau/python/checkBTagCalibrationConsistency.py @@ -1,7 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function -from __future__ import absolute_import import itertools import unittest import sys diff --git a/CondTools/BTau/python/combineBTagCalibrationData.py b/CondTools/BTau/python/combineBTagCalibrationData.py index a581c357b3ac0..b0cf0ab8b7809 100755 --- a/CondTools/BTau/python/combineBTagCalibrationData.py +++ b/CondTools/BTau/python/combineBTagCalibrationData.py @@ -1,7 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function -from __future__ import absolute_import import os import sys import itertools diff --git a/CondTools/BTau/python/dataLoader.py b/CondTools/BTau/python/dataLoader.py index d7559de8924b3..993ffe797e350 100644 --- a/CondTools/BTau/python/dataLoader.py +++ b/CondTools/BTau/python/dataLoader.py @@ -1,4 +1,3 @@ -from __future__ import print_function import itertools import ROOT try: diff --git a/CondTools/BTau/python/generateFlavCfromFlavB.py b/CondTools/BTau/python/generateFlavCfromFlavB.py index 665a500a48e50..435ad0b2f552d 100755 --- a/CondTools/BTau/python/generateFlavCfromFlavB.py +++ b/CondTools/BTau/python/generateFlavCfromFlavB.py @@ -1,7 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function -from __future__ import absolute_import import os import sys import itertools diff --git a/CondTools/BTau/python/generateStandaloneCode.py b/CondTools/BTau/python/generateStandaloneCode.py index 902a6b96b833c..22d716a7424ab 100755 --- a/CondTools/BTau/python/generateStandaloneCode.py +++ b/CondTools/BTau/python/generateStandaloneCode.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os from os.path import join diff --git a/CondTools/CTPPS/test/largeXMLmanipulations/script_tables.py b/CondTools/CTPPS/test/largeXMLmanipulations/script_tables.py index 89db9ee287a22..4e1d0937dbcac 100644 --- a/CondTools/CTPPS/test/largeXMLmanipulations/script_tables.py +++ b/CondTools/CTPPS/test/largeXMLmanipulations/script_tables.py @@ -1,5 +1,4 @@ import subprocess -from __future__ import print_function infile = open("alignment_export_2018_12_07.1.xml","rt") xmllines = infile.readlines() diff --git a/CondTools/CTPPS/test/retrieve_sqlite_PixGainCalib_cfg.py b/CondTools/CTPPS/test/retrieve_sqlite_PixGainCalib_cfg.py index fe07e30927c6b..31dffc1a28ea2 100644 --- a/CondTools/CTPPS/test/retrieve_sqlite_PixGainCalib_cfg.py +++ b/CondTools/CTPPS/test/retrieve_sqlite_PixGainCalib_cfg.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms import sys,os -from __future__ import print_function arguments=sys.argv sqlitename="ctppspixgain.db" diff --git a/CondTools/CTPPS/test/run_rp_realalignment_table.py b/CondTools/CTPPS/test/run_rp_realalignment_table.py index a75f5988593b9..3c3f1be527852 100644 --- a/CondTools/CTPPS/test/run_rp_realalignment_table.py +++ b/CondTools/CTPPS/test/run_rp_realalignment_table.py @@ -1,6 +1,5 @@ #! python3 -from __future__ import print_function ### this script takes a file with a list of IOVs and subdir name where separated xmls files are located ### the xml files have the iov start runno in the name and in the body (iov node of the xml) which should match diff --git a/CondTools/CTPPS/test/testReadDB_PixGainCalib_cfg.py b/CondTools/CTPPS/test/testReadDB_PixGainCalib_cfg.py index 581d2c8c17ede..48e5ecd9bf31a 100644 --- a/CondTools/CTPPS/test/testReadDB_PixGainCalib_cfg.py +++ b/CondTools/CTPPS/test/testReadDB_PixGainCalib_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys,os diff --git a/CondTools/CTPPS/test/write-ctpps-pixel-gainscalibrations_cfg.py b/CondTools/CTPPS/test/write-ctpps-pixel-gainscalibrations_cfg.py index 3300f0f3f1d4b..7a03587ace4e1 100644 --- a/CondTools/CTPPS/test/write-ctpps-pixel-gainscalibrations_cfg.py +++ b/CondTools/CTPPS/test/write-ctpps-pixel-gainscalibrations_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys,os diff --git a/CondTools/CTPPS/test/write-ctpps-rprealalignment_table_cfg.py b/CondTools/CTPPS/test/write-ctpps-rprealalignment_table_cfg.py index d62baf1602d30..e57b4dd4bcbf2 100644 --- a/CondTools/CTPPS/test/write-ctpps-rprealalignment_table_cfg.py +++ b/CondTools/CTPPS/test/write-ctpps-rprealalignment_table_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process('test') diff --git a/CondTools/CTPPS/test/write-ctpps-rprealalignment_table_test.py b/CondTools/CTPPS/test/write-ctpps-rprealalignment_table_test.py index 125e03f49af50..c4ca04f71518e 100644 --- a/CondTools/CTPPS/test/write-ctpps-rprealalignment_table_test.py +++ b/CondTools/CTPPS/test/write-ctpps-rprealalignment_table_test.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process('test') diff --git a/CondTools/Ecal/python/EcalCondDB.py b/CondTools/Ecal/python/EcalCondDB.py index 7f3ca0131fe8c..1fc468259a9a7 100755 --- a/CondTools/Ecal/python/EcalCondDB.py +++ b/CondTools/Ecal/python/EcalCondDB.py @@ -5,8 +5,6 @@ # Main script to list, plot, draw, dump Ecal conditions # # -from __future__ import print_function -from __future__ import absolute_import import os,sys,getopt diff --git a/CondTools/Ecal/python/EcalCondTools.py b/CondTools/Ecal/python/EcalCondTools.py index c24ca3f84165c..41eca56fb0522 100644 --- a/CondTools/Ecal/python/EcalCondTools.py +++ b/CondTools/Ecal/python/EcalCondTools.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import # # Misc functions to manipulate Ecal records # author: Stefano Argiro diff --git a/CondTools/Ecal/python/SplitLinear.py b/CondTools/Ecal/python/SplitLinear.py index 1721939bd5ca6..31a5d35eea43f 100644 --- a/CondTools/Ecal/python/SplitLinear.py +++ b/CondTools/Ecal/python/SplitLinear.py @@ -2,7 +2,6 @@ #from G.Benelli and Arun Mittal # 2016 November 17 #Quick script to split a large sqlite file (holding all of our Noise payloads (Run1+Run2) into a set of smaller ones. -from __future__ import print_function import subprocess IOVs=[] for line in subprocess.Popen("conddb --noLimit --db Linear.db list EcalLinearCorrections_from2011_offline",shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT).stdout.readlines(): diff --git a/CondTools/Ecal/python/SplitSqlite.py b/CondTools/Ecal/python/SplitSqlite.py index e79fead99f113..53543346588eb 100644 --- a/CondTools/Ecal/python/SplitSqlite.py +++ b/CondTools/Ecal/python/SplitSqlite.py @@ -2,7 +2,6 @@ #from G.Benelli and Arun Mittal # 2016 November 17 #Quick script to split a large sqlite file (holding all of our Noise payloads (Run1+Run2) into a set of smaller ones. -from __future__ import print_function import subprocess #Input IOVs: #Reference for the use of subprocess Popen to execute a command: diff --git a/CondTools/Ecal/scripts/loadConditions.py b/CondTools/Ecal/scripts/loadConditions.py index 305bed440ea2b..8d3032ddba641 100644 --- a/CondTools/Ecal/scripts/loadConditions.py +++ b/CondTools/Ecal/scripts/loadConditions.py @@ -1,4 +1,3 @@ -from __future__ import print_function # $Id: loadConditions.py,v 1.4 2008/12/19 11:02:21 argiro Exp $ # # Author: Stefano Argiro' diff --git a/CondTools/Ecal/test/tools/inspectEcal.py b/CondTools/Ecal/test/tools/inspectEcal.py index 7052b592186ce..09cf617926fbf 100755 --- a/CondTools/Ecal/test/tools/inspectEcal.py +++ b/CondTools/Ecal/test/tools/inspectEcal.py @@ -1,6 +1,5 @@ #! /usr/bin/env python -from __future__ import print_function import os,sys, DLFCN,getopt sys.setdlopenflags(DLFCN.RTLD_GLOBAL+DLFCN.RTLD_LAZY) diff --git a/CondTools/Hcal/test/runDumpHcalCond_cfg.py b/CondTools/Hcal/test/runDumpHcalCond_cfg.py index fa56c00e7ff8a..a9f9b805d4ddd 100644 --- a/CondTools/Hcal/test/runDumpHcalCond_cfg.py +++ b/CondTools/Hcal/test/runDumpHcalCond_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import FWCore.ParameterSet.Config as cms from FWCore.ParameterSet.VarParsing import VarParsing diff --git a/CondTools/SiPixel/test/SiPixelDynamicInefficiencyDB_cfg.py b/CondTools/SiPixel/test/SiPixelDynamicInefficiencyDB_cfg.py index e69046695247d..2667a025d820b 100644 --- a/CondTools/SiPixel/test/SiPixelDynamicInefficiencyDB_cfg.py +++ b/CondTools/SiPixel/test/SiPixelDynamicInefficiencyDB_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import shlex, shutil, getpass #import subprocess diff --git a/CondTools/SiPixel/test/SiPixelDynamicInefficiencyReader_cfg.py b/CondTools/SiPixel/test/SiPixelDynamicInefficiencyReader_cfg.py index 884b95bfa1ba4..c259cc5b9ce85 100644 --- a/CondTools/SiPixel/test/SiPixelDynamicInefficiencyReader_cfg.py +++ b/CondTools/SiPixel/test/SiPixelDynamicInefficiencyReader_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("Test") diff --git a/CondTools/SiPixel/test/SiPixelGainCalibScaler_cfg.py b/CondTools/SiPixel/test/SiPixelGainCalibScaler_cfg.py index 883987ffef159..62f14fb6fe1c9 100644 --- a/CondTools/SiPixel/test/SiPixelGainCalibScaler_cfg.py +++ b/CondTools/SiPixel/test/SiPixelGainCalibScaler_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/CondTools/SiPixel/test/SiPixelInclusiveBuilder_cfg.py b/CondTools/SiPixel/test/SiPixelInclusiveBuilder_cfg.py index e7a89d06ff697..eabe5aa88f89c 100644 --- a/CondTools/SiPixel/test/SiPixelInclusiveBuilder_cfg.py +++ b/CondTools/SiPixel/test/SiPixelInclusiveBuilder_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import shlex, subprocess import shutil, getpass diff --git a/CondTools/SiPixel/test/SiPixelLorentzAngleDB_cfg.py b/CondTools/SiPixel/test/SiPixelLorentzAngleDB_cfg.py index 16e96ab480f3d..c9c3fd77c3eaf 100644 --- a/CondTools/SiPixel/test/SiPixelLorentzAngleDB_cfg.py +++ b/CondTools/SiPixel/test/SiPixelLorentzAngleDB_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import shlex, shutil, getpass #import subprocess diff --git a/CondTools/SiPixel/test/SiPixelLorentzAngleReader_cfg.py b/CondTools/SiPixel/test/SiPixelLorentzAngleReader_cfg.py index b1197d86b6372..182dd4227b6a2 100644 --- a/CondTools/SiPixel/test/SiPixelLorentzAngleReader_cfg.py +++ b/CondTools/SiPixel/test/SiPixelLorentzAngleReader_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("Test") diff --git a/CondTools/SiPixel/test/SiPixelQualityPlotter_cfg.py b/CondTools/SiPixel/test/SiPixelQualityPlotter_cfg.py index 90682233d0fda..e65e7f7225ec3 100644 --- a/CondTools/SiPixel/test/SiPixelQualityPlotter_cfg.py +++ b/CondTools/SiPixel/test/SiPixelQualityPlotter_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import shlex, shutil, getpass import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/CondTools/SiPixel/test/SiPixelVCalDB_cfg.py b/CondTools/SiPixel/test/SiPixelVCalDB_cfg.py index a7650efb88a8c..a73648bd2184d 100755 --- a/CondTools/SiPixel/test/SiPixelVCalDB_cfg.py +++ b/CondTools/SiPixel/test/SiPixelVCalDB_cfg.py @@ -1,6 +1,5 @@ #! /usr/bin/env cmsRun # Author: Izaak Neutelings (March 2020) -from __future__ import print_function #import os import os, shlex, shutil, getpass #import subprocess diff --git a/CondTools/SiPixel/test/SiPixelVCalReader_cfg.py b/CondTools/SiPixel/test/SiPixelVCalReader_cfg.py index a8ac21fb9fea5..1330fca79ba85 100644 --- a/CondTools/SiPixel/test/SiPixelVCalReader_cfg.py +++ b/CondTools/SiPixel/test/SiPixelVCalReader_cfg.py @@ -1,6 +1,5 @@ #! /usr/bin/env cmsRun # Author: Izaak Neutelings (March 2020) -from __future__ import print_function import FWCore.ParameterSet.Config as cms from Configuration.StandardSequences.Eras import eras diff --git a/CondTools/SiPixel/test/runPixelPopConCalib.py b/CondTools/SiPixel/test/runPixelPopConCalib.py index a5d8810f01f87..15e8f66cf7534 100755 --- a/CondTools/SiPixel/test/runPixelPopConCalib.py +++ b/CondTools/SiPixel/test/runPixelPopConCalib.py @@ -6,7 +6,6 @@ Initial version: M. Eads, Sep 2008 """ -from __future__ import print_function import os, sys, getopt, shutil from socket import getfqdn diff --git a/CondTools/SiStrip/test/CheckDetVOff.py b/CondTools/SiStrip/test/CheckDetVOff.py index 3ff6077fa96bf..4c3bd8ec4c2e5 100755 --- a/CondTools/SiStrip/test/CheckDetVOff.py +++ b/CondTools/SiStrip/test/CheckDetVOff.py @@ -4,7 +4,6 @@ This script checks the outputs from SiStripDetVOffFakeBuilder and reader. It compares the status of all detIds both for low and high voltage and it checks that the values written in the database are correctly read back. ''' -from __future__ import print_function import os diff --git a/CondTools/SiStrip/test/SiStripChannelGainFromDBMiscalibrator_cfg.py b/CondTools/SiStrip/test/SiStripChannelGainFromDBMiscalibrator_cfg.py index 66e8bf63752c1..b1b06b707fb70 100644 --- a/CondTools/SiStrip/test/SiStripChannelGainFromDBMiscalibrator_cfg.py +++ b/CondTools/SiStrip/test/SiStripChannelGainFromDBMiscalibrator_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/CondTools/SiStrip/test/SiStripNoiseFromDBMiscalibrator_cfg.py b/CondTools/SiStrip/test/SiStripNoiseFromDBMiscalibrator_cfg.py index ddbd9e5c3c33b..d576ae21d2ce4 100644 --- a/CondTools/SiStrip/test/SiStripNoiseFromDBMiscalibrator_cfg.py +++ b/CondTools/SiStrip/test/SiStripNoiseFromDBMiscalibrator_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import copy diff --git a/CondTools/SiStrip/test/SiStripNoisesAndBadCompsChecker_cfg.py b/CondTools/SiStrip/test/SiStripNoisesAndBadCompsChecker_cfg.py index e71f29c1dbded..340bf468f6315 100644 --- a/CondTools/SiStrip/test/SiStripNoisesAndBadCompsChecker_cfg.py +++ b/CondTools/SiStrip/test/SiStripNoisesAndBadCompsChecker_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import copy diff --git a/RecoLuminosity/LumiDB/python/csvLumibyLSParser.py b/RecoLuminosity/LumiDB/python/csvLumibyLSParser.py index cd03ee6ff538e..605b4411a4f32 100755 --- a/RecoLuminosity/LumiDB/python/csvLumibyLSParser.py +++ b/RecoLuminosity/LumiDB/python/csvLumibyLSParser.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Note: this is specifically to parse a .csv file generated from a command like # pixelLumiCalc.py lumibyls -i json_DCSONLY_pp.txt --hltpath "HLT_Photon75_CaloIdVL_IsoL*" -o myHLTtest.out # format: Run,LS,HLTpath,L1bit,HLTpresc,L1presc,Recorded(/ub),Effective(/ub) diff --git a/RecoLuminosity/LumiDB/python/pileupParser.py b/RecoLuminosity/LumiDB/python/pileupParser.py index 6d50fcc03bceb..4194e385f294f 100755 --- a/RecoLuminosity/LumiDB/python/pileupParser.py +++ b/RecoLuminosity/LumiDB/python/pileupParser.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function import json class pileupParser(object): def __init__(self,selectStr): diff --git a/RecoLuminosity/LumiDB/python/selectionParser.py b/RecoLuminosity/LumiDB/python/selectionParser.py index 1a3e70167f479..d29ab3bceda82 100644 --- a/RecoLuminosity/LumiDB/python/selectionParser.py +++ b/RecoLuminosity/LumiDB/python/selectionParser.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import json class selectionParser(object): diff --git a/RecoLuminosity/LumiDB/scripts/makePileupJSON.py b/RecoLuminosity/LumiDB/scripts/makePileupJSON.py index b2e3c1fc57d1f..5bd02ea247c0e 100755 --- a/RecoLuminosity/LumiDB/scripts/makePileupJSON.py +++ b/RecoLuminosity/LumiDB/scripts/makePileupJSON.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import argparse import RecoLuminosity.LumiDB.LumiConstants as LumiConstants import re diff --git a/RecoLuminosity/LumiDB/scripts/pileupCalc.py b/RecoLuminosity/LumiDB/scripts/pileupCalc.py index 60740decba23e..232b3b0802a13 100755 --- a/RecoLuminosity/LumiDB/scripts/pileupCalc.py +++ b/RecoLuminosity/LumiDB/scripts/pileupCalc.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range VERSION='1.00' import os, sys, time diff --git a/RecoLuminosity/LumiDB/scripts/pileupReCalc_HLTpaths.py b/RecoLuminosity/LumiDB/scripts/pileupReCalc_HLTpaths.py index beb6fd6598ee3..0264b80962433 100755 --- a/RecoLuminosity/LumiDB/scripts/pileupReCalc_HLTpaths.py +++ b/RecoLuminosity/LumiDB/scripts/pileupReCalc_HLTpaths.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function VERSION='1.00' import os,sys,time import optparse diff --git a/RecoLuminosity/LumiDB/scripts/pileupReCalc_Lumis.py b/RecoLuminosity/LumiDB/scripts/pileupReCalc_Lumis.py index f290faf45b00e..c9b28a4ab8e18 100755 --- a/RecoLuminosity/LumiDB/scripts/pileupReCalc_Lumis.py +++ b/RecoLuminosity/LumiDB/scripts/pileupReCalc_Lumis.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function VERSION='1.00' import os,sys,time import optparse From e9abdc4bb806a8670e236a1a94585d7cbdd29f66 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:16:06 +0100 Subject: [PATCH 083/418] [RECONSTRUCTION] py2/3 compatibility:drop use of __future__ --- CommonTools/ParticleFlow/test/PF2PAT_cfg.py | 1 - EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py | 1 - EventFilter/HcalRawToDigi/test/GetBadEvents.py | 1 - .../python/test/Validate_DigiToRawToClusters_cfg.py | 1 - .../python/test/Validate_DigiToRawToDigi_cfg.py | 1 - JetMETCorrections/Modules/test/uploadConstants.py | 1 - MagneticField/Engine/test/regression.py | 1 - .../Interpolation/test/BinaryTablesGeneration/convertTables.py | 1 - .../IsolationAlgos/python/boostedElectronIsolation_cff.py | 1 - PhysicsTools/IsolationAlgos/python/boostedMuonIsolation_cff.py | 1 - PhysicsTools/SelectorUtils/python/VIDSelectorBase.py | 1 - PhysicsTools/SelectorUtils/python/VIDSelectorValidator.py | 1 - PhysicsTools/SelectorUtils/test/pyfwlite_test.py | 1 - RecoBTag/CTagging/test/test_discriminator_presence.py | 1 - .../python/pfMassIndependentDeepDoubleXJetTags_cff.py | 1 - .../python/pfMassIndependentDeepDoubleXV2JetTags_cff.py | 1 - RecoBTag/ONNXRuntime/test/plotDDX.py | 1 - RecoBTag/ONNXRuntime/test/test_deep_doubleb_cfg_AOD.py | 1 - RecoBTag/PerformanceDB/test/plotPerformanceDB.py | 1 - RecoEgamma/EgammaElectronProducers/test/dbs_discovery.py | 1 - RecoLocalCalo/EcalRecProducers/test/compare_csv.py | 1 - RecoLocalCalo/HcalRecAlgos/python/RemoveAddSevLevel.py | 2 -- RecoLocalCalo/HcalRecAlgos/test/test_RecHitReflagger_cfg.py | 1 - .../SiStripClusterizer/test/shotTest_withReClustering_cfg.py | 1 - RecoMET/METFilters/python/GenerateHcalLaserBadRunList.py | 2 -- RecoMET/METFilters/python/hcalLaserEventFilter_cfi.py | 2 -- RecoMET/METFilters/test/filters_cfg.py | 1 - .../python/particleFlowClusterECALUncorrected_cfi.py | 1 - RecoTauTag/Configuration/test/compareTauVariables.py | 1 - RecoTauTag/RecoTau/python/tools/runTauIdMVA.py | 1 - .../python/GlobalSeedsFromTripletsWithVertices_cff.py | 1 - TrackPropagation/RungeKutta/test/findDiff.py | 1 - 32 files changed, 35 deletions(-) diff --git a/CommonTools/ParticleFlow/test/PF2PAT_cfg.py b/CommonTools/ParticleFlow/test/PF2PAT_cfg.py index 69c77aac5a17a..d761be45851f0 100644 --- a/CommonTools/ParticleFlow/test/PF2PAT_cfg.py +++ b/CommonTools/ParticleFlow/test/PF2PAT_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # official example for PF2PAT import FWCore.ParameterSet.Config as cms diff --git a/EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py b/EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py index a48b6ad29930a..5df038cbaaec1 100644 --- a/EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py +++ b/EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from FWCore.ParameterSet.VarParsing import VarParsing diff --git a/EventFilter/HcalRawToDigi/test/GetBadEvents.py b/EventFilter/HcalRawToDigi/test/GetBadEvents.py index 8ecd705ce3931..7cf6ca1718c59 100755 --- a/EventFilter/HcalRawToDigi/test/GetBadEvents.py +++ b/EventFilter/HcalRawToDigi/test/GetBadEvents.py @@ -5,7 +5,6 @@ Jeff Temple Oct. 19, 2012 ''' -from __future__ import print_function import sys,os,string from optparse import OptionParser diff --git a/EventFilter/SiStripRawToDigi/python/test/Validate_DigiToRawToClusters_cfg.py b/EventFilter/SiStripRawToDigi/python/test/Validate_DigiToRawToClusters_cfg.py index 57ae489eefcf2..d25e7fa387fb8 100644 --- a/EventFilter/SiStripRawToDigi/python/test/Validate_DigiToRawToClusters_cfg.py +++ b/EventFilter/SiStripRawToDigi/python/test/Validate_DigiToRawToClusters_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms Mode = str("ZS") # Options: "ZS", "VR", "PR", "FK" diff --git a/EventFilter/SiStripRawToDigi/python/test/Validate_DigiToRawToDigi_cfg.py b/EventFilter/SiStripRawToDigi/python/test/Validate_DigiToRawToDigi_cfg.py index 3cc6e0e683cd2..d96134bd04e81 100644 --- a/EventFilter/SiStripRawToDigi/python/test/Validate_DigiToRawToDigi_cfg.py +++ b/EventFilter/SiStripRawToDigi/python/test/Validate_DigiToRawToDigi_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms Mode = str("ZS") # Options: "ZS", "VR", "PR", "FK" diff --git a/JetMETCorrections/Modules/test/uploadConstants.py b/JetMETCorrections/Modules/test/uploadConstants.py index 884a270784180..9bf32bc02cf49 100644 --- a/JetMETCorrections/Modules/test/uploadConstants.py +++ b/JetMETCorrections/Modules/test/uploadConstants.py @@ -1,5 +1,4 @@ #! /usr/bin/env python -from __future__ import print_function import os import re import sys diff --git a/MagneticField/Engine/test/regression.py b/MagneticField/Engine/test/regression.py index b6c703e9f1934..54a8f1d59c299 100644 --- a/MagneticField/Engine/test/regression.py +++ b/MagneticField/Engine/test/regression.py @@ -1,5 +1,4 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import sys diff --git a/MagneticField/Interpolation/test/BinaryTablesGeneration/convertTables.py b/MagneticField/Interpolation/test/BinaryTablesGeneration/convertTables.py index 5e8d32e09c586..027d5eb827967 100755 --- a/MagneticField/Interpolation/test/BinaryTablesGeneration/convertTables.py +++ b/MagneticField/Interpolation/test/BinaryTablesGeneration/convertTables.py @@ -1,6 +1,5 @@ #!/bin/env python -from __future__ import print_function import os # Path of the input tables diff --git a/PhysicsTools/IsolationAlgos/python/boostedElectronIsolation_cff.py b/PhysicsTools/IsolationAlgos/python/boostedElectronIsolation_cff.py index 29f9213419dfd..ef3616634400c 100644 --- a/PhysicsTools/IsolationAlgos/python/boostedElectronIsolation_cff.py +++ b/PhysicsTools/IsolationAlgos/python/boostedElectronIsolation_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from CommonTools.ParticleFlow.Isolation.pfElectronIsolation_cff import * diff --git a/PhysicsTools/IsolationAlgos/python/boostedMuonIsolation_cff.py b/PhysicsTools/IsolationAlgos/python/boostedMuonIsolation_cff.py index 46e6afee67b36..e2702ba5cec65 100644 --- a/PhysicsTools/IsolationAlgos/python/boostedMuonIsolation_cff.py +++ b/PhysicsTools/IsolationAlgos/python/boostedMuonIsolation_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from RecoMuon.MuonIsolation.muonPFIsolation_cff import * diff --git a/PhysicsTools/SelectorUtils/python/VIDSelectorBase.py b/PhysicsTools/SelectorUtils/python/VIDSelectorBase.py index ecfa4e5f29383..15b766f201153 100644 --- a/PhysicsTools/SelectorUtils/python/VIDSelectorBase.py +++ b/PhysicsTools/SelectorUtils/python/VIDSelectorBase.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT import string import random diff --git a/PhysicsTools/SelectorUtils/python/VIDSelectorValidator.py b/PhysicsTools/SelectorUtils/python/VIDSelectorValidator.py index 045617c66a676..931650c160add 100644 --- a/PhysicsTools/SelectorUtils/python/VIDSelectorValidator.py +++ b/PhysicsTools/SelectorUtils/python/VIDSelectorValidator.py @@ -1,4 +1,3 @@ -from __future__ import print_function import md5 import ROOT diff --git a/PhysicsTools/SelectorUtils/test/pyfwlite_test.py b/PhysicsTools/SelectorUtils/test/pyfwlite_test.py index 8549f427ab043..71e56d3065e32 100755 --- a/PhysicsTools/SelectorUtils/test/pyfwlite_test.py +++ b/PhysicsTools/SelectorUtils/test/pyfwlite_test.py @@ -1,7 +1,6 @@ #! /usr/bin/env python # import ROOT in batch mode -from __future__ import print_function import sys oldargv = sys.argv[:] sys.argv = [ '-b-' ] diff --git a/RecoBTag/CTagging/test/test_discriminator_presence.py b/RecoBTag/CTagging/test/test_discriminator_presence.py index e25fd83654749..42cad897c8b5d 100644 --- a/RecoBTag/CTagging/test/test_discriminator_presence.py +++ b/RecoBTag/CTagging/test/test_discriminator_presence.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT import pprint import sys diff --git a/RecoBTag/ONNXRuntime/python/pfMassIndependentDeepDoubleXJetTags_cff.py b/RecoBTag/ONNXRuntime/python/pfMassIndependentDeepDoubleXJetTags_cff.py index 7563a491a4bb0..cc7e0ac071dea 100644 --- a/RecoBTag/ONNXRuntime/python/pfMassIndependentDeepDoubleXJetTags_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfMassIndependentDeepDoubleXJetTags_cff.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from .pfDeepDoubleBvLJetTags_cfi import pfDeepDoubleBvLJetTags from .pfDeepDoubleCvLJetTags_cfi import pfDeepDoubleCvLJetTags diff --git a/RecoBTag/ONNXRuntime/python/pfMassIndependentDeepDoubleXV2JetTags_cff.py b/RecoBTag/ONNXRuntime/python/pfMassIndependentDeepDoubleXV2JetTags_cff.py index d2082204cb5a3..3435d4f802f4c 100644 --- a/RecoBTag/ONNXRuntime/python/pfMassIndependentDeepDoubleXV2JetTags_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfMassIndependentDeepDoubleXV2JetTags_cff.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from .pfDeepDoubleBvLJetTags_cfi import pfDeepDoubleBvLJetTags from .pfDeepDoubleCvLJetTags_cfi import pfDeepDoubleCvLJetTags diff --git a/RecoBTag/ONNXRuntime/test/plotDDX.py b/RecoBTag/ONNXRuntime/test/plotDDX.py index 4ce6ba9d8720c..1ac931dca7258 100644 --- a/RecoBTag/ONNXRuntime/test/plotDDX.py +++ b/RecoBTag/ONNXRuntime/test/plotDDX.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT from DataFormats.FWLite import Handle, Events import numpy as np diff --git a/RecoBTag/ONNXRuntime/test/test_deep_doubleb_cfg_AOD.py b/RecoBTag/ONNXRuntime/test/test_deep_doubleb_cfg_AOD.py index b21627033eb71..630dee6cbc9cf 100644 --- a/RecoBTag/ONNXRuntime/test/test_deep_doubleb_cfg_AOD.py +++ b/RecoBTag/ONNXRuntime/test/test_deep_doubleb_cfg_AOD.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.tools.helpers import getPatAlgosToolsTask diff --git a/RecoBTag/PerformanceDB/test/plotPerformanceDB.py b/RecoBTag/PerformanceDB/test/plotPerformanceDB.py index 97644cf79afde..56ba02cc545e4 100644 --- a/RecoBTag/PerformanceDB/test/plotPerformanceDB.py +++ b/RecoBTag/PerformanceDB/test/plotPerformanceDB.py @@ -8,7 +8,6 @@ # #____________________________________________________________ -from __future__ import print_function from builtins import range import sys import math diff --git a/RecoEgamma/EgammaElectronProducers/test/dbs_discovery.py b/RecoEgamma/EgammaElectronProducers/test/dbs_discovery.py index 18254a1772376..14045f60114c5 100644 --- a/RecoEgamma/EgammaElectronProducers/test/dbs_discovery.py +++ b/RecoEgamma/EgammaElectronProducers/test/dbs_discovery.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import httplib, urllib, urllib2, types, string, os, sys # return the list of files obtained from the data discovery and based upon environnement variables: diff --git a/RecoLocalCalo/EcalRecProducers/test/compare_csv.py b/RecoLocalCalo/EcalRecProducers/test/compare_csv.py index 967833409ade7..fc788ab411b38 100644 --- a/RecoLocalCalo/EcalRecProducers/test/compare_csv.py +++ b/RecoLocalCalo/EcalRecProducers/test/compare_csv.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys def compare(fn1, fn2): diff --git a/RecoLocalCalo/HcalRecAlgos/python/RemoveAddSevLevel.py b/RecoLocalCalo/HcalRecAlgos/python/RemoveAddSevLevel.py index 5e1be9d5d4113..5fe2f1aeb94f1 100644 --- a/RecoLocalCalo/HcalRecAlgos/python/RemoveAddSevLevel.py +++ b/RecoLocalCalo/HcalRecAlgos/python/RemoveAddSevLevel.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms diff --git a/RecoLocalCalo/HcalRecAlgos/test/test_RecHitReflagger_cfg.py b/RecoLocalCalo/HcalRecAlgos/test/test_RecHitReflagger_cfg.py index f721f976f94d6..e59054e7fbc70 100644 --- a/RecoLocalCalo/HcalRecAlgos/test/test_RecHitReflagger_cfg.py +++ b/RecoLocalCalo/HcalRecAlgos/test/test_RecHitReflagger_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms maxevents=10 diff --git a/RecoLocalTracker/SiStripClusterizer/test/shotTest_withReClustering_cfg.py b/RecoLocalTracker/SiStripClusterizer/test/shotTest_withReClustering_cfg.py index 4f3455655a44c..9b653e67dde62 100644 --- a/RecoLocalTracker/SiStripClusterizer/test/shotTest_withReClustering_cfg.py +++ b/RecoLocalTracker/SiStripClusterizer/test/shotTest_withReClustering_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process('CALIB') diff --git a/RecoMET/METFilters/python/GenerateHcalLaserBadRunList.py b/RecoMET/METFilters/python/GenerateHcalLaserBadRunList.py index 240a783cbc538..261f154edf841 100644 --- a/RecoMET/METFilters/python/GenerateHcalLaserBadRunList.py +++ b/RecoMET/METFilters/python/GenerateHcalLaserBadRunList.py @@ -1,7 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function -from __future__ import absolute_import from builtins import range import sys, os, string import time diff --git a/RecoMET/METFilters/python/hcalLaserEventFilter_cfi.py b/RecoMET/METFilters/python/hcalLaserEventFilter_cfi.py index 24a13b64d31e4..87915a4523391 100644 --- a/RecoMET/METFilters/python/hcalLaserEventFilter_cfi.py +++ b/RecoMET/METFilters/python/hcalLaserEventFilter_cfi.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from RecoMET.METFilters.hcallaserevent_cfi import * # from fillDescriptions try: diff --git a/RecoMET/METFilters/test/filters_cfg.py b/RecoMET/METFilters/test/filters_cfg.py index f5d8092df8281..1b50d35a65472 100644 --- a/RecoMET/METFilters/test/filters_cfg.py +++ b/RecoMET/METFilters/test/filters_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function ##____________________________________________________________________________|| from PhysicsTools.PatAlgos.patTemplate_cfg import * diff --git a/RecoParticleFlow/PFClusterProducer/python/particleFlowClusterECALUncorrected_cfi.py b/RecoParticleFlow/PFClusterProducer/python/particleFlowClusterECALUncorrected_cfi.py index e86856d6a048b..42e37f7aa692d 100644 --- a/RecoParticleFlow/PFClusterProducer/python/particleFlowClusterECALUncorrected_cfi.py +++ b/RecoParticleFlow/PFClusterProducer/python/particleFlowClusterECALUncorrected_cfi.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from .particleFlowCaloResolution_cfi import _timeResolutionECALBarrel, _timeResolutionECALEndcap diff --git a/RecoTauTag/Configuration/test/compareTauVariables.py b/RecoTauTag/Configuration/test/compareTauVariables.py index e117387df1a93..fdc4375cb855c 100644 --- a/RecoTauTag/Configuration/test/compareTauVariables.py +++ b/RecoTauTag/Configuration/test/compareTauVariables.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import sys import numpy as np diff --git a/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py b/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py index d3d0bdd1a3594..92a124d26c4a5 100644 --- a/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py +++ b/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from RecoTauTag.RecoTau.TauDiscriminatorTools import noPrediscriminants from RecoTauTag.RecoTau.PATTauDiscriminationByMVAIsolationRun2_cff import patDiscriminationByIsolationMVArun2v1raw, patDiscriminationByIsolationMVArun2v1 diff --git a/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromTripletsWithVertices_cff.py b/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromTripletsWithVertices_cff.py index c4282b6351786..4eab3c5176e92 100644 --- a/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromTripletsWithVertices_cff.py +++ b/RecoTracker/TkSeedGenerator/python/GlobalSeedsFromTripletsWithVertices_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms print() diff --git a/TrackPropagation/RungeKutta/test/findDiff.py b/TrackPropagation/RungeKutta/test/findDiff.py index 2d729a0d29a9c..4c4753be9e3d4 100644 --- a/TrackPropagation/RungeKutta/test/findDiff.py +++ b/TrackPropagation/RungeKutta/test/findDiff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys if len(sys.argv) !=3 : print("usage:" + sys.argv[0] + " bla bla") From 6a1a334cce7087132debf89c3593e9d45d8d6b35 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:16:15 +0100 Subject: [PATCH 084/418] [OPERATIONS] py2/3 compatibility:drop use of __future__ --- Configuration/DataProcessing/python/Impl/AlCa.py | 1 - Configuration/DataProcessing/python/Impl/AlCaNano.py | 1 - Configuration/DataProcessing/python/Impl/AlCaPPS_Run3.py | 1 - Configuration/DataProcessing/python/Impl/hltScouting.py | 1 - Configuration/DataProcessing/python/Reco.py | 1 - Configuration/DataProcessing/python/RecoTLR.py | 1 - Configuration/DataProcessing/test/RunAlcaHarvesting.py | 1 - Configuration/DataProcessing/test/RunAlcaSkimming.py | 1 - Configuration/DataProcessing/test/RunDQMHarvesting.py | 1 - Configuration/DataProcessing/test/RunExpressProcessing.py | 1 - Configuration/DataProcessing/test/RunMerge.py | 1 - Configuration/DataProcessing/test/RunPromptReco.py | 1 - Configuration/DataProcessing/test/RunRepack.py | 1 - Configuration/DataProcessing/test/RunVisualizationProcessing.py | 1 - Configuration/EventContent/test/fragments.py | 1 - Configuration/EventContent/test/makeSkim.py | 1 - Configuration/EventContent/test/makeSkimDriver.py | 1 - Configuration/StandardSequences/python/Eras.py | 1 - Configuration/StandardSequences/python/Mixing.py | 1 - .../StandardSequences/python/SimL1EmulatorRepack_CalouGT_cff.py | 1 - .../python/SimL1EmulatorRepack_Full2015Data_cff.py | 1 - .../StandardSequences/python/SimL1EmulatorRepack_FullMC_cff.py | 1 - .../python/SimL1EmulatorRepack_FullSimTP_cff.py | 1 - .../StandardSequences/python/SimL1EmulatorRepack_Full_cff.py | 1 - .../StandardSequences/python/SimL1EmulatorRepack_uGT_cff.py | 1 - Configuration/StandardSequences/python/SkimsCosmics_cff.py | 1 - Configuration/StandardSequences/python/SkimsHeavyIons_cff.py | 1 - Configuration/StandardSequences/python/Skims_cff.py | 1 - 28 files changed, 28 deletions(-) diff --git a/Configuration/DataProcessing/python/Impl/AlCa.py b/Configuration/DataProcessing/python/Impl/AlCa.py index f460660712f54..f1e9d72e96ad5 100644 --- a/Configuration/DataProcessing/python/Impl/AlCa.py +++ b/Configuration/DataProcessing/python/Impl/AlCa.py @@ -5,7 +5,6 @@ Scenario supporting proton collisions """ -from __future__ import print_function import os import sys diff --git a/Configuration/DataProcessing/python/Impl/AlCaNano.py b/Configuration/DataProcessing/python/Impl/AlCaNano.py index 883e74f253db9..4bd92c2bed64c 100644 --- a/Configuration/DataProcessing/python/Impl/AlCaNano.py +++ b/Configuration/DataProcessing/python/Impl/AlCaNano.py @@ -5,7 +5,6 @@ Scenario supporting proton collisions for AlCa needs when ALCANANO is produced """ -from __future__ import print_function import os import sys diff --git a/Configuration/DataProcessing/python/Impl/AlCaPPS_Run3.py b/Configuration/DataProcessing/python/Impl/AlCaPPS_Run3.py index f7ce53355fef8..8f7b8ebd078e1 100644 --- a/Configuration/DataProcessing/python/Impl/AlCaPPS_Run3.py +++ b/Configuration/DataProcessing/python/Impl/AlCaPPS_Run3.py @@ -5,7 +5,6 @@ Scenario supporting proton collisions for AlCa needs for the CT-PPS detector """ -from __future__ import print_function import os import sys diff --git a/Configuration/DataProcessing/python/Impl/hltScouting.py b/Configuration/DataProcessing/python/Impl/hltScouting.py index 4734e5b8caa14..44dcc38ce8dab 100644 --- a/Configuration/DataProcessing/python/Impl/hltScouting.py +++ b/Configuration/DataProcessing/python/Impl/hltScouting.py @@ -6,7 +6,6 @@ """ -from __future__ import print_function import os import sys diff --git a/Configuration/DataProcessing/python/Reco.py b/Configuration/DataProcessing/python/Reco.py index f5c199c6ff344..9fa987c34b5de 100644 --- a/Configuration/DataProcessing/python/Reco.py +++ b/Configuration/DataProcessing/python/Reco.py @@ -5,7 +5,6 @@ Scenario supporting proton collisions """ -from __future__ import print_function import os import sys diff --git a/Configuration/DataProcessing/python/RecoTLR.py b/Configuration/DataProcessing/python/RecoTLR.py index d78af0520ea68..9d85cfea56cb1 100644 --- a/Configuration/DataProcessing/python/RecoTLR.py +++ b/Configuration/DataProcessing/python/RecoTLR.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ############################################################################## diff --git a/Configuration/DataProcessing/test/RunAlcaHarvesting.py b/Configuration/DataProcessing/test/RunAlcaHarvesting.py index 4695ad58df987..b909742b2e063 100644 --- a/Configuration/DataProcessing/test/RunAlcaHarvesting.py +++ b/Configuration/DataProcessing/test/RunAlcaHarvesting.py @@ -6,7 +6,6 @@ testing with a few input files etc from the command line """ -from __future__ import print_function import sys import getopt diff --git a/Configuration/DataProcessing/test/RunAlcaSkimming.py b/Configuration/DataProcessing/test/RunAlcaSkimming.py index 0670e5b2b2125..b84bd6862df62 100644 --- a/Configuration/DataProcessing/test/RunAlcaSkimming.py +++ b/Configuration/DataProcessing/test/RunAlcaSkimming.py @@ -6,7 +6,6 @@ testing with a few input files etc from the command line """ -from __future__ import print_function import sys import getopt diff --git a/Configuration/DataProcessing/test/RunDQMHarvesting.py b/Configuration/DataProcessing/test/RunDQMHarvesting.py index a74f5c6b57621..a17bfe335db84 100644 --- a/Configuration/DataProcessing/test/RunDQMHarvesting.py +++ b/Configuration/DataProcessing/test/RunDQMHarvesting.py @@ -6,7 +6,6 @@ testing with a few input files etc from the command line """ -from __future__ import print_function import sys import getopt diff --git a/Configuration/DataProcessing/test/RunExpressProcessing.py b/Configuration/DataProcessing/test/RunExpressProcessing.py index 6672301909dfa..90d1d0609799a 100644 --- a/Configuration/DataProcessing/test/RunExpressProcessing.py +++ b/Configuration/DataProcessing/test/RunExpressProcessing.py @@ -6,7 +6,6 @@ it into cmsRun for testing with a few input files etc from the command line """ -from __future__ import print_function import sys import getopt diff --git a/Configuration/DataProcessing/test/RunMerge.py b/Configuration/DataProcessing/test/RunMerge.py index 3ef6f7473fb46..a78e7e18471cb 100644 --- a/Configuration/DataProcessing/test/RunMerge.py +++ b/Configuration/DataProcessing/test/RunMerge.py @@ -5,7 +5,6 @@ Test/Debugging harness for the merge configuration builder """ -from __future__ import print_function diff --git a/Configuration/DataProcessing/test/RunPromptReco.py b/Configuration/DataProcessing/test/RunPromptReco.py index 919c00a1a4f1e..ba6d81a9f1a58 100644 --- a/Configuration/DataProcessing/test/RunPromptReco.py +++ b/Configuration/DataProcessing/test/RunPromptReco.py @@ -4,7 +4,6 @@ Test wrapper to generate a reco config and actually push it into cmsRun for testing with a few input files etc from the command line """ -from __future__ import print_function import sys import getopt diff --git a/Configuration/DataProcessing/test/RunRepack.py b/Configuration/DataProcessing/test/RunRepack.py index dac4c8c725a86..677adaa73ac1e 100644 --- a/Configuration/DataProcessing/test/RunRepack.py +++ b/Configuration/DataProcessing/test/RunRepack.py @@ -5,7 +5,6 @@ Test/Debugging harness for the repack configuration builder """ -from __future__ import print_function import sys import getopt diff --git a/Configuration/DataProcessing/test/RunVisualizationProcessing.py b/Configuration/DataProcessing/test/RunVisualizationProcessing.py index 46017dab3721f..60006a906182f 100644 --- a/Configuration/DataProcessing/test/RunVisualizationProcessing.py +++ b/Configuration/DataProcessing/test/RunVisualizationProcessing.py @@ -6,7 +6,6 @@ it into cmsRun for testing with a few input files etc from the command line """ -from __future__ import print_function import sys import getopt diff --git a/Configuration/EventContent/test/fragments.py b/Configuration/EventContent/test/fragments.py index 37b7ca025bd18..985e00b0a18d7 100644 --- a/Configuration/EventContent/test/fragments.py +++ b/Configuration/EventContent/test/fragments.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os import pickle diff --git a/Configuration/EventContent/test/makeSkim.py b/Configuration/EventContent/test/makeSkim.py index 3af507a3e739c..e2beffa40549d 100644 --- a/Configuration/EventContent/test/makeSkim.py +++ b/Configuration/EventContent/test/makeSkim.py @@ -4,7 +4,6 @@ cmsRun Configuration file that skims the data from the reconstructed events. It is very general and allows to set in the metaconfig the parameters for the skimming. ''' -from __future__ import print_function import FWCore.ParameterSet.Config as cms # The meta configuration: 3 parameters diff --git a/Configuration/EventContent/test/makeSkimDriver.py b/Configuration/EventContent/test/makeSkimDriver.py index fc73c8077f43d..b83662f34fad6 100755 --- a/Configuration/EventContent/test/makeSkimDriver.py +++ b/Configuration/EventContent/test/makeSkimDriver.py @@ -3,7 +3,6 @@ r''' The Wrapper for makeSkim.py, the general config for cmsRun. ''' -from __future__ import print_function import optparse import os diff --git a/Configuration/StandardSequences/python/Eras.py b/Configuration/StandardSequences/python/Eras.py index eff87151e2ae9..014863af1f699 100644 --- a/Configuration/StandardSequences/python/Eras.py +++ b/Configuration/StandardSequences/python/Eras.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from FWCore.ParameterSet.Config import ModifierChain,Modifier diff --git a/Configuration/StandardSequences/python/Mixing.py b/Configuration/StandardSequences/python/Mixing.py index 04f3658249ebe..a660f308a9d2e 100644 --- a/Configuration/StandardSequences/python/Mixing.py +++ b/Configuration/StandardSequences/python/Mixing.py @@ -1,4 +1,3 @@ -from __future__ import print_function Mixing = {} diff --git a/Configuration/StandardSequences/python/SimL1EmulatorRepack_CalouGT_cff.py b/Configuration/StandardSequences/python/SimL1EmulatorRepack_CalouGT_cff.py index 106932da70449..bfd1afa670514 100644 --- a/Configuration/StandardSequences/python/SimL1EmulatorRepack_CalouGT_cff.py +++ b/Configuration/StandardSequences/python/SimL1EmulatorRepack_CalouGT_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ## L1REPACK CalouGT : Re-Emulate all of L1 and repack into RAW diff --git a/Configuration/StandardSequences/python/SimL1EmulatorRepack_Full2015Data_cff.py b/Configuration/StandardSequences/python/SimL1EmulatorRepack_Full2015Data_cff.py index 2a38f819206cd..dd9f23257405c 100644 --- a/Configuration/StandardSequences/python/SimL1EmulatorRepack_Full2015Data_cff.py +++ b/Configuration/StandardSequences/python/SimL1EmulatorRepack_Full2015Data_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ## L1REPACK Full2015Data : Re-Emulate all of L1 and repack into RAW diff --git a/Configuration/StandardSequences/python/SimL1EmulatorRepack_FullMC_cff.py b/Configuration/StandardSequences/python/SimL1EmulatorRepack_FullMC_cff.py index fadeac86e278b..a2824f04d1299 100644 --- a/Configuration/StandardSequences/python/SimL1EmulatorRepack_FullMC_cff.py +++ b/Configuration/StandardSequences/python/SimL1EmulatorRepack_FullMC_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ## L1REPACK FullMC : Re-Emulate all of L1 and repack into RAW diff --git a/Configuration/StandardSequences/python/SimL1EmulatorRepack_FullSimTP_cff.py b/Configuration/StandardSequences/python/SimL1EmulatorRepack_FullSimTP_cff.py index 6853c631973ae..c782e4c03a7be 100644 --- a/Configuration/StandardSequences/python/SimL1EmulatorRepack_FullSimTP_cff.py +++ b/Configuration/StandardSequences/python/SimL1EmulatorRepack_FullSimTP_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ## L1REPACK FullSimTP : Re-Emulate all of L1 and repack into RAW diff --git a/Configuration/StandardSequences/python/SimL1EmulatorRepack_Full_cff.py b/Configuration/StandardSequences/python/SimL1EmulatorRepack_Full_cff.py index cf9c0cfef67ce..6734bd73c2835 100644 --- a/Configuration/StandardSequences/python/SimL1EmulatorRepack_Full_cff.py +++ b/Configuration/StandardSequences/python/SimL1EmulatorRepack_Full_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ## L1REPACK Full : Re-Emulate all of L1 and repack into RAW diff --git a/Configuration/StandardSequences/python/SimL1EmulatorRepack_uGT_cff.py b/Configuration/StandardSequences/python/SimL1EmulatorRepack_uGT_cff.py index 824627b19b80f..b0ec0768b74ba 100644 --- a/Configuration/StandardSequences/python/SimL1EmulatorRepack_uGT_cff.py +++ b/Configuration/StandardSequences/python/SimL1EmulatorRepack_uGT_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ## L1REPACK uGT : Re-Emulate L1 uGT and repack into RAW diff --git a/Configuration/StandardSequences/python/SkimsCosmics_cff.py b/Configuration/StandardSequences/python/SkimsCosmics_cff.py index 99a42318a0012..3441479a3c1d1 100644 --- a/Configuration/StandardSequences/python/SkimsCosmics_cff.py +++ b/Configuration/StandardSequences/python/SkimsCosmics_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def documentSkims(): diff --git a/Configuration/StandardSequences/python/SkimsHeavyIons_cff.py b/Configuration/StandardSequences/python/SkimsHeavyIons_cff.py index e46c1ce02f7f6..ff9390556cf0f 100644 --- a/Configuration/StandardSequences/python/SkimsHeavyIons_cff.py +++ b/Configuration/StandardSequences/python/SkimsHeavyIons_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def documentSkims(): diff --git a/Configuration/StandardSequences/python/Skims_cff.py b/Configuration/StandardSequences/python/Skims_cff.py index a33b6bd0c53d2..fe03d9658b3f8 100644 --- a/Configuration/StandardSequences/python/Skims_cff.py +++ b/Configuration/StandardSequences/python/Skims_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def documentSkims(): From c8d1f6736c4f3d3e4911cb9eaa9db336d00f4c28 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:16:23 +0100 Subject: [PATCH 085/418] [PDMV-UPGRADE] py2/3 compatibility:drop use of __future__ --- Configuration/PyReleaseValidation/data/runall.py | 1 - Configuration/PyReleaseValidation/python/MatrixInjector.py | 1 - Configuration/PyReleaseValidation/python/MatrixReader.py | 1 - Configuration/PyReleaseValidation/python/MatrixRunner.py | 1 - Configuration/PyReleaseValidation/python/MatrixToProcess.py | 1 - Configuration/PyReleaseValidation/python/MatrixUtil.py | 1 - Configuration/PyReleaseValidation/python/Options.py | 1 - Configuration/PyReleaseValidation/python/WorkFlowRunner.py | 1 - Configuration/PyReleaseValidation/python/cmsDriverOptions.py | 1 - Configuration/PyReleaseValidation/python/relval_machine.py | 1 - Configuration/PyReleaseValidation/python/relval_steps.py | 1 - Configuration/PyReleaseValidation/scripts/das-selected-lumis.py | 1 - Configuration/PyReleaseValidation/scripts/runTheMatrix.py | 1 - 13 files changed, 13 deletions(-) diff --git a/Configuration/PyReleaseValidation/data/runall.py b/Configuration/PyReleaseValidation/data/runall.py index 9f427da86f1ad..5d7677632d96b 100755 --- a/Configuration/PyReleaseValidation/data/runall.py +++ b/Configuration/PyReleaseValidation/data/runall.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os import time import sys diff --git a/Configuration/PyReleaseValidation/python/MatrixInjector.py b/Configuration/PyReleaseValidation/python/MatrixInjector.py index 331461774c5b7..b0524b71860e9 100644 --- a/Configuration/PyReleaseValidation/python/MatrixInjector.py +++ b/Configuration/PyReleaseValidation/python/MatrixInjector.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import json import os diff --git a/Configuration/PyReleaseValidation/python/MatrixReader.py b/Configuration/PyReleaseValidation/python/MatrixReader.py index 68c94a0c0952b..15bbc4fc31655 100644 --- a/Configuration/PyReleaseValidation/python/MatrixReader.py +++ b/Configuration/PyReleaseValidation/python/MatrixReader.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys, os from Configuration.PyReleaseValidation.WorkFlow import WorkFlow diff --git a/Configuration/PyReleaseValidation/python/MatrixRunner.py b/Configuration/PyReleaseValidation/python/MatrixRunner.py index 0120e65f5b865..752272ab11cff 100644 --- a/Configuration/PyReleaseValidation/python/MatrixRunner.py +++ b/Configuration/PyReleaseValidation/python/MatrixRunner.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os, sys, time from Configuration.PyReleaseValidation.WorkFlow import WorkFlow diff --git a/Configuration/PyReleaseValidation/python/MatrixToProcess.py b/Configuration/PyReleaseValidation/python/MatrixToProcess.py index 6ed9282085fe2..5800a87070358 100644 --- a/Configuration/PyReleaseValidation/python/MatrixToProcess.py +++ b/Configuration/PyReleaseValidation/python/MatrixToProcess.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 -from __future__ import print_function class MatrixToProcess: def __init__(self,what='standard',strict=True): diff --git a/Configuration/PyReleaseValidation/python/MatrixUtil.py b/Configuration/PyReleaseValidation/python/MatrixUtil.py index 8dcc10ce98fdc..bd10cf37a2079 100644 --- a/Configuration/PyReleaseValidation/python/MatrixUtil.py +++ b/Configuration/PyReleaseValidation/python/MatrixUtil.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os class Matrix(dict): def __setitem__(self,key,value): diff --git a/Configuration/PyReleaseValidation/python/Options.py b/Configuration/PyReleaseValidation/python/Options.py index 37a2def3d9976..87c8af8743e78 100644 --- a/Configuration/PyReleaseValidation/python/Options.py +++ b/Configuration/PyReleaseValidation/python/Options.py @@ -1,3 +1,2 @@ -from __future__ import print_function print("This file has moved to Configuration/Applications; please update") from Configuration.Applications.Options import * diff --git a/Configuration/PyReleaseValidation/python/WorkFlowRunner.py b/Configuration/PyReleaseValidation/python/WorkFlowRunner.py index 78a11ed4c09f3..2cf5b8a0d4184 100644 --- a/Configuration/PyReleaseValidation/python/WorkFlowRunner.py +++ b/Configuration/PyReleaseValidation/python/WorkFlowRunner.py @@ -1,4 +1,3 @@ -from __future__ import print_function from threading import Thread from Configuration.PyReleaseValidation import WorkFlow import os,time diff --git a/Configuration/PyReleaseValidation/python/cmsDriverOptions.py b/Configuration/PyReleaseValidation/python/cmsDriverOptions.py index 16f6f769bbcf1..2caa156130cff 100755 --- a/Configuration/PyReleaseValidation/python/cmsDriverOptions.py +++ b/Configuration/PyReleaseValidation/python/cmsDriverOptions.py @@ -1,3 +1,2 @@ -from __future__ import print_function print("This file has moved to Configuration/Applications; please update") from Configuration.Applications.cmsDriverOptions import * diff --git a/Configuration/PyReleaseValidation/python/relval_machine.py b/Configuration/PyReleaseValidation/python/relval_machine.py index 66bd00577629d..9d19080779eab 100644 --- a/Configuration/PyReleaseValidation/python/relval_machine.py +++ b/Configuration/PyReleaseValidation/python/relval_machine.py @@ -1,4 +1,3 @@ -from __future__ import print_function from Configuration.PyReleaseValidation.relval_steps import Matrix, InputInfo, Steps import os import json diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 455bcb17a0976..5458f87c75fdb 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import from .MatrixUtil import * from Configuration.HLT.autoHLT import autoHLT diff --git a/Configuration/PyReleaseValidation/scripts/das-selected-lumis.py b/Configuration/PyReleaseValidation/scripts/das-selected-lumis.py index 9edc6d9438779..055c7fb6b3f93 100755 --- a/Configuration/PyReleaseValidation/scripts/das-selected-lumis.py +++ b/Configuration/PyReleaseValidation/scripts/das-selected-lumis.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import json , sys input_range = [] output_files_list = [] diff --git a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py index 1f771c621b5c2..a6608f9dba521 100755 --- a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py +++ b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys, os from Configuration.PyReleaseValidation.MatrixReader import MatrixReader From e462f8e29e5b0fc9697269651e9d28fe49285f35 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:16:34 +0100 Subject: [PATCH 086/418] [DQM] py2/3 compatibility:drop use of __future__ --- DPGAnalysis/HcalTools/scripts/cmt/das_client.py | 1 - DQM/CSCMonitorModule/data/bookConverter.py | 1 - DQM/CSCMonitorModule/data/buildHistoTypes.py | 1 - DQM/CSCMonitorModule/data/combine.py | 1 - DQM/CSCMonitorModule/test/dqm_dev_test_new_unpacker.py | 1 - DQM/CSCMonitorModule/test/dqm_repacker_test.py | 1 - DQM/DTMonitorModule/python/slice_test_customizations_cff.py | 1 - .../python/test/dt_dqm_sourceclient-live_GlobalRun_cfg.py | 1 - DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_cfg.py | 1 - DQM/DTMonitorModule/python/test/inputsource_live_cfi.py | 1 - .../python/clients/beam_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/beamfake_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/beamhlt_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/beamhltfake_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/beampixel_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/beamspotdip_dqm_sourceclient-live_cfg.py | 1 - DQM/Integration/python/clients/bril_dqm_clientPB-live_cfg.py | 1 - .../python/clients/castor_dqm_sourceclient-live_cfg.py | 1 - DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/dt4ml_dqm_sourceclient-live_cfg.py | 1 - DQM/Integration/python/clients/dt_dqm_sourceclient-live_cfg.py | 1 - DQM/Integration/python/clients/es_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/hcalreco_dqm_sourceclient-live_cfg.py | 1 - DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/l1temulator_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/l1tstage1_dqm_sourceclient-live_cfg.py | 1 - .../clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/mutracking_dqm_sourceclient-live_cfg.py | 1 - .../clients/onlinebeammonitor_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/physics_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/pixel_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/pixellumi_dqm_sourceclient-live_cfg.py | 1 - DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/sistrip_dqm_sourceclient-live_cfg.py | 1 - .../python/clients/visualization-live-secondInstance_cfg.py | 1 - DQM/Integration/python/clients/visualization-live_cfg.py | 1 - .../python/config/FrontierCondition_GT_autoExpress_cfi.py | 1 - DQM/Integration/python/config/environment_cfi.py | 1 - DQM/Integration/python/config/fileinputsource_cfi.py | 2 -- DQM/Integration/python/config/inputsource_cfi.py | 2 -- DQM/Integration/python/config/pbsource_cfi.py | 2 -- DQM/Integration/python/config/unittestinputsource_cfi.py | 2 -- .../python/config/unitteststreamerinputsource_cfi.py | 2 -- DQM/Integration/scripts/XMLcfgfiles/ExtractAppInfoFromXML.py | 1 - DQM/Integration/scripts/XMLcfgfiles/getRunAppsInfo.py | 1 - DQM/Integration/scripts/XMLcfgfiles/psClasses.py | 1 - DQM/Integration/scripts/contentValuesCheck.py | 1 - DQM/Integration/scripts/contentValuesLib.py | 1 - DQM/Integration/scripts/contentValuesToDBS.py | 1 - DQM/Integration/scripts/contentValuesToRR.py | 1 - DQM/Integration/scripts/dqmd_manager.py | 1 - DQM/Integration/scripts/filecollector/fileCollector.py | 1 - DQM/Integration/scripts/filecollector/fileCollector2.py | 1 - DQM/Integration/scripts/filecollector/producerFileCleanner.py | 1 - .../scripts/fileregistration/dqmPostProcessing_online.py | 1 - DQM/Integration/scripts/fileregistration/fileTransfer.py | 1 - DQM/Integration/scripts/fileregistration/mergeAndRegister.py | 1 - DQM/Integration/scripts/harvesting_tools/cmsHarvester.py | 1 - DQM/L1TMonitor/python/inputsource_file_cfi.py | 1 - DQM/L1TMonitor/test/l1t_dqm_sourceclient-file_cfg.py | 1 - DQM/L1TMonitor/test/l1temulator_dqm_sourceclient-file_cfg.py | 1 - DQM/MuonMonitor/test/mutracking_dqm_sourceclient-live_cfg.py | 1 - DQM/SiStripMonitorClient/scripts/DeadROCCounter.py | 1 - DQM/SiStripMonitorClient/scripts/DeadROCCounter_Phase1.py | 1 - DQM/SiStripMonitorClient/scripts/DeadROC_duringRun.py | 1 - DQM/SiStripMonitorClient/scripts/InefficientDoubleROC.py | 1 - DQM/SiStripMonitorClient/scripts/MergeOccDeadROC.py | 1 - DQM/SiStripMonitorClient/scripts/MergePCLDeadROC.py | 1 - DQM/SiStripMonitorClient/scripts/MergePCLFedErr.py | 1 - DQM/SiStripMonitorClient/scripts/PCLOthers.py | 1 - DQM/SiStripMonitorClient/scripts/PhaseITreeProducer.py | 1 - DQM/SiStripMonitorClient/scripts/PixelMapPlotter.py | 1 - DQM/SiStripMonitorClient/scripts/TH2PolyOfflineMaps.py | 1 - DQM/SiStripMonitorClient/scripts/TkMap_script_phase1.py | 1 - DQM/SiStripMonitorClient/scripts/getGTfromDQMFile.py | 1 - DQM/SiStripMonitorClient/scripts/getGTfromDQMFile_V2.py | 1 - DQM/SiStripMonitorClient/scripts/getRunInfo.py | 1 - DQM/SiStripMonitorClient/scripts/submitDQMOfflineCAF.py | 1 - DQM/SiStripMonitorHardware/test/makeInputlist.py | 1 - DQM/SiStripMonitorSummary/scripts/iov_list_tag.py | 1 - DQM/TrackerCommon/bin/getRunRegistry.py | 1 - DQM/TrackerCommon/test/DQMXMLFile_SiPixelDQM_create_cfg.py | 1 - DQM/TrackerCommon/test/DQMXMLFile_SiStripDQM_create_cfg.py | 1 - DQM/TrackerRemapper/test/PrintTkMap.py | 1 - DQMOffline/Alignment/test/alcarecoTester.py | 1 - DQMOffline/CalibCalo/test/dohistos.py | 1 - .../test/testSuite/CheckSiStripBadCompoentnsDQMService.py | 1 - DQMOffline/Configuration/scripts/cmsswConfigtrace.py | 1 - DQMOffline/Configuration/scripts/cmsswFiletrace.py | 1 - DQMOffline/EGamma/python/electronDataDiscovery.py | 1 - DQMOffline/EGamma/scripts/electronCompare.py | 1 - DQMOffline/EGamma/scripts/electronDataDiscovery.py | 1 - DQMOffline/EGamma/scripts/electronStore.py | 1 - DQMOffline/EGamma/test/dbs_discovery.py | 1 - DQMOffline/JetMET/test/DDSearchCLI.py | 1 - DQMOffline/JetMET/test/publish/make_html_output.py | 1 - DQMOffline/JetMET/test/run_PromptAna33X.py | 1 - DQMOffline/JetMET/test/run_PromptAnaHI.py | 1 - DQMOffline/JetMET/test/run_PromptAna_CAF.py | 1 - DQMOffline/JetMET/test/run_PromptAna_CAF33x.py | 1 - DQMOffline/JetMET/test/run_PromptAna_CRT.py | 1 - DQMOffline/Trigger/test/testTriggerBTV.py | 1 - DQMOffline/Trigger/test/triggerSequenceTest_cfg.py | 1 - DQMServices/Components/python/ROOTData.py | 1 - DQMServices/Components/scripts/dqmdumpme.py | 1 - DQMServices/Components/scripts/dqmiodatasetharvest.py | 1 - DQMServices/Components/scripts/dqmiodumpindices.py | 1 - DQMServices/Components/scripts/dqmiodumpmetadata.py | 1 - DQMServices/Components/scripts/dqmiolistmes.py | 1 - DQMServices/Components/scripts/dqmiolumiharvest.py | 1 - DQMServices/Components/scripts/root2sqlite.py | 1 - DQMServices/Components/test/test_fastHaddMerge.py | 1 - DQMServices/FileIO/python/DQM.py | 1 - DQMServices/FileIO/scripts/compareHistograms.py | 1 - DQMServices/FileIO/scripts/dqmMemoryStats.py | 1 - DQMServices/FileIO/scripts/visDQMUpload.py | 1 - DQMServices/FwkIO/scripts/DQMIO2histo.py | 1 - DQMServices/FwkIO/test/check_guid_file1.py | 1 - DQMServices/FwkIO/test/check_lumi_only_file.py | 1 - DQMServices/FwkIO/test/check_merged_file1_file2.py | 1 - .../test/check_merged_file1_file3_file2_filterOnRun1_cfg.py | 1 - .../check_merged_file1_file3_file2_filterOnRun1_copy_cfg.py | 1 - DQMServices/FwkIO/test/check_multi_types.py | 1 - DQMServices/FwkIO/test/check_run_lumi_file.py | 1 - DQMServices/FwkIO/test/check_run_only_file.py | 1 - DQMServices/StreamerIO/scripts/personalPlayback.py | 1 - .../StreamerIO/test/DQMStreamerOutputRepackerTest_cfg.py | 1 - HLTriggerOffline/Btag/python/helper.py | 1 - HLTriggerOffline/Btag/python/readConfig.py | 1 - HLTriggerOffline/Btag/test/compareDQM.py | 1 - HLTriggerOffline/Btag/test/test.py | 1 - HLTriggerOffline/Common/python/HltComparatorCreateWorkflow.py | 1 - HLTriggerOffline/Common/relval/doHarvest.py | 1 - HLTriggerOffline/Common/relval/harvestRelVal.py | 1 - HLTriggerOffline/Egamma/python/EgammaHLTValidationUtils.py | 1 - .../Egamma/test/egammaHltPrintRelvalEfficiencies.py | 1 - HLTriggerOffline/Egamma/test/egammaHltPrintValidationDQMurl.py | 1 - HLTriggerOffline/Egamma/test/egammaHltValidate.py | 1 - HLTriggerOffline/Egamma/test/exampleHLTanalysis.py | 1 - HLTriggerOffline/Egamma/test/makePerPathConfigFiles.py | 1 - HLTriggerOffline/Exotica/test/hltExoticaPostProcessor_cfg.py | 1 - HLTriggerOffline/Exotica/test/hltExoticaValidator_cfg.py | 1 - .../HeavyFlavor/test/heavyFlavorValidationHarvesting_cfg.py | 1 - HLTriggerOffline/Muon/test/compareReleases.py | 1 - Utilities/RelMon/python/authentication.py | 1 - Utilities/RelMon/python/directories2html.py | 2 -- Utilities/RelMon/python/dirstructure.py | 2 -- Utilities/RelMon/python/dqm_interfaces.py | 2 -- Utilities/RelMon/python/utils.py | 2 -- Utilities/RelMon/python/utils_v2.py | 2 -- Utilities/RelMon/python/web/app_utils.py | 1 - Utilities/RelMon/python/web/browse_db.py | 1 - Utilities/RelMon/python/web/dbfile2html.py | 2 -- Utilities/RelMon/scripts/ValidationMatrix.py | 1 - Utilities/RelMon/scripts/ValidationMatrix_v2.py | 1 - Utilities/RelMon/scripts/compare_using_db.py | 1 - Utilities/RelMon/scripts/compare_using_files.py | 1 - Utilities/RelMon/scripts/compare_using_files_v2.py | 1 - Utilities/RelMon/scripts/dir2webdir.py | 1 - Utilities/RelMon/scripts/dqm_diff.py | 1 - Utilities/RelMon/scripts/fetchall_from_DQM.py | 1 - Utilities/RelMon/scripts/fetchall_from_DQM_v2.py | 1 - Utilities/RelMon/scripts/relmon_authenticated_wget.py | 1 - Utilities/RelMon/scripts/relmon_rootfiles_spy.py | 1 - Validation/CaloTowers/test/client_cfg.py | 1 - Validation/HGCalValidation/python/hgcalPlots.py | 1 - .../HGCalValidation/scripts/harvestHGCalValidationPlots.py | 1 - Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py | 1 - Validation/HcalDigis/test/ZdcSimHitStudy_cfg.py | 1 - Validation/RecoB/scripts/Inspector.py | 1 - Validation/RecoB/scripts/cuy.py | 1 - Validation/RecoB/scripts/histoStyle.py | 1 - Validation/RecoB/scripts/plotFactory.py | 1 - .../RecoB/test/GridValidation/validation_FirstStepOnGrid.py | 1 - Validation/RecoB/test/validation_customJet_cfg.py | 1 - Validation/RecoB/test/validation_fromRECO_cfg.py | 1 - .../test/ElectronMcFakeValidation_gedGsfElectrons_cfg.py | 1 - .../RecoEgamma/test/ElectronMcSignalValidationMiniAOD_cfg.py | 1 - .../ElectronMcSignalValidationPt1000_gedGsfElectrons_cfg.py | 1 - .../test/ElectronMcSignalValidation_gedGsfElectrons_cfg.py | 1 - Validation/RecoEgamma/test/electronValidationCheck_Env.py | 1 - Validation/RecoEgamma/test/makeWebpage.py | 1 - Validation/RecoMuon/test/genericMuonReleaseSummary.py | 1 - Validation/RecoMuon/test/muonReleaseSummary.py | 1 - Validation/RecoMuon/test/muonReleaseValidation.py | 1 - Validation/RecoMuon/test/muonReleaseValidationFastSim.py | 1 - Validation/RecoMuon/test/new_muonReleaseSummary.py | 1 - Validation/RecoParticleFlow/test/datasets.py | 1 - Validation/RecoTau/Tools/GetRecoTauVFromDQM_MC_cff.py | 1 - .../RecoTau/Tools/MergeFilesAndCalculateEfficiencies_cfg.py | 1 - Validation/RecoTau/Tools/MultipleCompare.py | 1 - Validation/RecoTau/Tools/RefreshWebPage.py | 1 - Validation/RecoTau/Tools/SteerMultipleCompare.py | 1 - Validation/RecoTau/python/DBSApi_cff.py | 1 - Validation/RecoTau/python/DeltaR.py | 1 - Validation/RecoTau/python/RecoTauValidation_cfi.py | 1 - Validation/RecoTau/python/ValidationOptions_cff.py | 1 - Validation/RecoTau/python/ValidationUtils.py | 1 - Validation/RecoTau/python/compare.py | 2 -- Validation/RecoTau/python/runTauDisplay.py | 2 -- Validation/RecoTau/test/LXBatchValidation.py | 1 - Validation/RecoTau/test/RunValidation_VtXCutScan.py | 1 - Validation/RecoTau/test/RunValidation_cfg.py | 1 - Validation/RecoTrack/python/TrackValidation_cff.py | 1 - Validation/RecoTrack/python/customiseMTVForBPix123Holes.py | 1 - Validation/RecoTrack/python/plotting/plotting.py | 2 -- Validation/RecoTrack/python/plotting/trackingPlots.py | 1 - Validation/RecoTrack/python/plotting/validation.py | 2 -- Validation/RecoTrack/scripts/diffTrackingNtuple.py | 1 - Validation/RecoTrack/scripts/harvestTrackValidationPlots.py | 1 - Validation/RecoTrack/scripts/makeTrackValidationPlots.py | 1 - Validation/RecoTrack/scripts/printTrackingNtuple.py | 1 - Validation/RecoTrack/test/analyseDuplicateFake.py | 1 - Validation/RecoTrack/test/fakeAnalysis/analysis.py | 1 - Validation/RecoTrack/test/fakeAnalysis/graphics.py | 1 - Validation/RecoTrack/test/fakeAnalysis/graphics_vertical.py | 1 - Validation/RecoTrack/test/publicPlots/plot.py | 1 - Validation/RecoTrack/test/trackingNtupleExample.py | 1 - Validation/RecoVertex/test/V0PerformanceValidation.py | 1 - Validation/RecoVertex/test/makePlots.py | 1 - 221 files changed, 236 deletions(-) diff --git a/DPGAnalysis/HcalTools/scripts/cmt/das_client.py b/DPGAnalysis/HcalTools/scripts/cmt/das_client.py index 10c9292748a76..c6d2ee3de9d80 100755 --- a/DPGAnalysis/HcalTools/scripts/cmt/das_client.py +++ b/DPGAnalysis/HcalTools/scripts/cmt/das_client.py @@ -5,7 +5,6 @@ """ DAS command line tool """ -from __future__ import print_function __author__ = "Valentin Kuznetsov" # system modules diff --git a/DQM/CSCMonitorModule/data/bookConverter.py b/DQM/CSCMonitorModule/data/bookConverter.py index 357ea0d5023e7..09cf3134e4740 100644 --- a/DQM/CSCMonitorModule/data/bookConverter.py +++ b/DQM/CSCMonitorModule/data/bookConverter.py @@ -1,4 +1,3 @@ -from __future__ import print_function import xml.dom.minidom as dom import sys, os, optparse diff --git a/DQM/CSCMonitorModule/data/buildHistoTypes.py b/DQM/CSCMonitorModule/data/buildHistoTypes.py index 31571709f24d8..f5f064d9f66f0 100644 --- a/DQM/CSCMonitorModule/data/buildHistoTypes.py +++ b/DQM/CSCMonitorModule/data/buildHistoTypes.py @@ -1,4 +1,3 @@ -from __future__ import print_function from Cheetah.Template import Template from getopt import getopt from sys import argv, exit diff --git a/DQM/CSCMonitorModule/data/combine.py b/DQM/CSCMonitorModule/data/combine.py index a275ae6311906..af14e4303e3e3 100644 --- a/DQM/CSCMonitorModule/data/combine.py +++ b/DQM/CSCMonitorModule/data/combine.py @@ -1,6 +1,5 @@ #!python -from __future__ import print_function histos={} missing={} diff --git a/DQM/CSCMonitorModule/test/dqm_dev_test_new_unpacker.py b/DQM/CSCMonitorModule/test/dqm_dev_test_new_unpacker.py index 215e58463bc54..62cf063e692de 100644 --- a/DQM/CSCMonitorModule/test/dqm_dev_test_new_unpacker.py +++ b/DQM/CSCMonitorModule/test/dqm_dev_test_new_unpacker.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("CSCDQMLIVE") diff --git a/DQM/CSCMonitorModule/test/dqm_repacker_test.py b/DQM/CSCMonitorModule/test/dqm_repacker_test.py index 379d741b67f25..c86b6ab983a06 100644 --- a/DQM/CSCMonitorModule/test/dqm_repacker_test.py +++ b/DQM/CSCMonitorModule/test/dqm_repacker_test.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("CSCDQMLIVE") diff --git a/DQM/DTMonitorModule/python/slice_test_customizations_cff.py b/DQM/DTMonitorModule/python/slice_test_customizations_cff.py index 2c2825a265f30..574d13338a4ef 100644 --- a/DQM/DTMonitorModule/python/slice_test_customizations_cff.py +++ b/DQM/DTMonitorModule/python/slice_test_customizations_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def customise_for_slice_test(process, enableDigis, enableTPs): diff --git a/DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_GlobalRun_cfg.py b/DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_GlobalRun_cfg.py index 8f0fe3692c39b..41788228eddec 100644 --- a/DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_GlobalRun_cfg.py +++ b/DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_GlobalRun_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("DTDQM") diff --git a/DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_cfg.py b/DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_cfg.py index 27e21c9f6cb29..3c120c2d88b4a 100644 --- a/DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_cfg.py +++ b/DQM/DTMonitorModule/python/test/dt_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/DQM/DTMonitorModule/python/test/inputsource_live_cfi.py b/DQM/DTMonitorModule/python/test/inputsource_live_cfi.py index 2e669174cbe7c..bfee66971cde0 100644 --- a/DQM/DTMonitorModule/python/test/inputsource_live_cfi.py +++ b/DQM/DTMonitorModule/python/test/inputsource_live_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py index 6580b1b1dd87b..32f1a9537eddf 100644 --- a/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # Define here the BeamSpotOnline record name, diff --git a/DQM/Integration/python/clients/beamfake_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamfake_dqm_sourceclient-live_cfg.py index 2a688c7679ac6..c331068132f3b 100644 --- a/DQM/Integration/python/clients/beamfake_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamfake_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import time diff --git a/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py index 04a93a4f7ce84..36a7e11a3a0a4 100644 --- a/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # Define once the BeamSpotOnline record name, diff --git a/DQM/Integration/python/clients/beamhltfake_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamhltfake_dqm_sourceclient-live_cfg.py index 038ce6108f5a8..8f41e248d8674 100644 --- a/DQM/Integration/python/clients/beamhltfake_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamhltfake_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # Define here the BeamSpotOnline record name, diff --git a/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py index fa0dfe4f02a3f..3c9b75122dfa9 100644 --- a/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/beamspotdip_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamspotdip_dqm_sourceclient-live_cfg.py index 4f471e92d66bf..b5d5e5f600a9f 100644 --- a/DQM/Integration/python/clients/beamspotdip_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamspotdip_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # copy log4cplus.properties from >script directory< to >local< diff --git a/DQM/Integration/python/clients/bril_dqm_clientPB-live_cfg.py b/DQM/Integration/python/clients/bril_dqm_clientPB-live_cfg.py index 39e4ec38e8c33..31a73c81e77ba 100644 --- a/DQM/Integration/python/clients/bril_dqm_clientPB-live_cfg.py +++ b/DQM/Integration/python/clients/bril_dqm_clientPB-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from DQMServices.Core.DQMEDHarvester import DQMEDHarvester diff --git a/DQM/Integration/python/clients/castor_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/castor_dqm_sourceclient-live_cfg.py index 4d0f8dc1a516a..5b89df198fc7b 100644 --- a/DQM/Integration/python/clients/castor_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/castor_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py index f7ad69aa15d20..e09887f21c8ad 100644 --- a/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/dt4ml_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/dt4ml_dqm_sourceclient-live_cfg.py index 5df19e6f7932e..f22af9badb086 100644 --- a/DQM/Integration/python/clients/dt4ml_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/dt4ml_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys import os diff --git a/DQM/Integration/python/clients/dt_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/dt_dqm_sourceclient-live_cfg.py index 379fd3b09766b..d34118cad4038 100644 --- a/DQM/Integration/python/clients/dt_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/dt_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/es_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/es_dqm_sourceclient-live_cfg.py index b6e8e82e36bb5..962ce22ee5efd 100644 --- a/DQM/Integration/python/clients/es_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/es_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/hcalreco_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/hcalreco_dqm_sourceclient-live_cfg.py index 317406a5bf439..b33c7cd506d34 100644 --- a/DQM/Integration/python/clients/hcalreco_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/hcalreco_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function #------------------------------------- # Hcal DQM Application using New DQM Sources/Clients # Online Mode diff --git a/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py index 58dc5a8bb48bb..c28be18e08d06 100644 --- a/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # L1 Trigger DQM sequence (L1T) # # authors previous versions - see CVS diff --git a/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py index 9ac36fc05f694..b189cb730d78b 100644 --- a/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # L1 Emulator DQM sequence # # authors previous versions - see CVS diff --git a/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py index 4d17c03ee10f7..9a7068ab5b2d7 100644 --- a/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # L1 Trigger DQM sequence (L1T) # # authors previous versions - see CVS diff --git a/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py index 723f31b85e5c3..000daa236ecc0 100644 --- a/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # L1 Emulator DQM sequence # # authors previous versions - see CVS diff --git a/DQM/Integration/python/clients/mutracking_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/mutracking_dqm_sourceclient-live_cfg.py index ea25adfae8049..edc26a8b49f00 100644 --- a/DQM/Integration/python/clients/mutracking_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/mutracking_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/onlinebeammonitor_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/onlinebeammonitor_dqm_sourceclient-live_cfg.py index 01fa655da1e47..969fd8ef43cc4 100644 --- a/DQM/Integration/python/clients/onlinebeammonitor_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/onlinebeammonitor_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # Define once the BeamSpotOnline record name, diff --git a/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py index ff5f4c5b2d66d..b9a8baef18c87 100644 --- a/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys # $Id: physics_dqm_sourceclient-live_cfg.py,v 1.11 2012/02/13 15:09:30 lilopera Exp $ diff --git a/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py index 8a1ddc6c676b1..aee5a5157257c 100644 --- a/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py index 444783b10b291..d4dba8722178f 100644 --- a/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py index 73f2d95671265..3bd40eb11b55f 100644 --- a/DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import FWCore.ParameterSet.Config as cms diff --git a/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py index 675a74462b5a0..4a462e5c2602d 100644 --- a/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py index e3d68942069b9..108e0d61e9db5 100644 --- a/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/DQM/Integration/python/clients/visualization-live-secondInstance_cfg.py b/DQM/Integration/python/clients/visualization-live-secondInstance_cfg.py index 3a648a7cf7501..56b331ea9235e 100644 --- a/DQM/Integration/python/clients/visualization-live-secondInstance_cfg.py +++ b/DQM/Integration/python/clients/visualization-live-secondInstance_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re, os, sys import FWCore.ParameterSet.Config as cms from Configuration.DataProcessing.GetScenario import getScenario diff --git a/DQM/Integration/python/clients/visualization-live_cfg.py b/DQM/Integration/python/clients/visualization-live_cfg.py index 774be0eccc717..05b42f2130785 100644 --- a/DQM/Integration/python/clients/visualization-live_cfg.py +++ b/DQM/Integration/python/clients/visualization-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re, os, sys import FWCore.ParameterSet.Config as cms from Configuration.DataProcessing.GetScenario import getScenario diff --git a/DQM/Integration/python/config/FrontierCondition_GT_autoExpress_cfi.py b/DQM/Integration/python/config/FrontierCondition_GT_autoExpress_cfi.py index 189f5d662729b..eb59f027a3442 100644 --- a/DQM/Integration/python/config/FrontierCondition_GT_autoExpress_cfi.py +++ b/DQM/Integration/python/config/FrontierCondition_GT_autoExpress_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from Configuration.StandardSequences.FrontierConditions_GlobalTag_cff import * from Configuration.AlCa.autoCond import autoCond diff --git a/DQM/Integration/python/config/environment_cfi.py b/DQM/Integration/python/config/environment_cfi.py index 4da2045cdd296..e83c5b9bf91ee 100644 --- a/DQM/Integration/python/config/environment_cfi.py +++ b/DQM/Integration/python/config/environment_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms import configparser as ConfigParser diff --git a/DQM/Integration/python/config/fileinputsource_cfi.py b/DQM/Integration/python/config/fileinputsource_cfi.py index 62a1787242a9d..e4540cfdcd8f2 100644 --- a/DQM/Integration/python/config/fileinputsource_cfi.py +++ b/DQM/Integration/python/config/fileinputsource_cfi.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from builtins import range import FWCore.ParameterSet.Config as cms diff --git a/DQM/Integration/python/config/inputsource_cfi.py b/DQM/Integration/python/config/inputsource_cfi.py index 240c5445fe968..acca76f667ecb 100644 --- a/DQM/Integration/python/config/inputsource_cfi.py +++ b/DQM/Integration/python/config/inputsource_cfi.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/DQM/Integration/python/config/pbsource_cfi.py b/DQM/Integration/python/config/pbsource_cfi.py index 15619260fcd26..e94588379217f 100644 --- a/DQM/Integration/python/config/pbsource_cfi.py +++ b/DQM/Integration/python/config/pbsource_cfi.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/DQM/Integration/python/config/unittestinputsource_cfi.py b/DQM/Integration/python/config/unittestinputsource_cfi.py index 51e6e23abec7e..b5b4183a68b8f 100644 --- a/DQM/Integration/python/config/unittestinputsource_cfi.py +++ b/DQM/Integration/python/config/unittestinputsource_cfi.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from builtins import range import FWCore.ParameterSet.Config as cms diff --git a/DQM/Integration/python/config/unitteststreamerinputsource_cfi.py b/DQM/Integration/python/config/unitteststreamerinputsource_cfi.py index 5ba032cbafbe9..035cc3710a107 100644 --- a/DQM/Integration/python/config/unitteststreamerinputsource_cfi.py +++ b/DQM/Integration/python/config/unitteststreamerinputsource_cfi.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from builtins import range import os, sys import FWCore.ParameterSet.Config as cms diff --git a/DQM/Integration/scripts/XMLcfgfiles/ExtractAppInfoFromXML.py b/DQM/Integration/scripts/XMLcfgfiles/ExtractAppInfoFromXML.py index 44b4d0e014f5f..24e6b8e96289a 100755 --- a/DQM/Integration/scripts/XMLcfgfiles/ExtractAppInfoFromXML.py +++ b/DQM/Integration/scripts/XMLcfgfiles/ExtractAppInfoFromXML.py @@ -19,7 +19,6 @@ OUTPUT is always unique in a per row bases """ -from __future__ import print_function ################################################################################ from builtins import range import sys, os.path diff --git a/DQM/Integration/scripts/XMLcfgfiles/getRunAppsInfo.py b/DQM/Integration/scripts/XMLcfgfiles/getRunAppsInfo.py index f74a285df7785..43899c14b2bb6 100755 --- a/DQM/Integration/scripts/XMLcfgfiles/getRunAppsInfo.py +++ b/DQM/Integration/scripts/XMLcfgfiles/getRunAppsInfo.py @@ -7,7 +7,6 @@ -f Show all columns -h show headers """ -from __future__ import print_function import sys import os.path import getopt as gop diff --git a/DQM/Integration/scripts/XMLcfgfiles/psClasses.py b/DQM/Integration/scripts/XMLcfgfiles/psClasses.py index 805c9ceac9530..5416e47358c5d 100644 --- a/DQM/Integration/scripts/XMLcfgfiles/psClasses.py +++ b/DQM/Integration/scripts/XMLcfgfiles/psClasses.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import os,subprocess,sys,re,time,random from threading import * diff --git a/DQM/Integration/scripts/contentValuesCheck.py b/DQM/Integration/scripts/contentValuesCheck.py index d2d473cc2c47d..edd966dd8194a 100755 --- a/DQM/Integration/scripts/contentValuesCheck.py +++ b/DQM/Integration/scripts/contentValuesCheck.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from contentValuesLib import * class OptionParser(optparse.OptionParser): diff --git a/DQM/Integration/scripts/contentValuesLib.py b/DQM/Integration/scripts/contentValuesLib.py index c6f0ac877756f..3a68485e75287 100755 --- a/DQM/Integration/scripts/contentValuesLib.py +++ b/DQM/Integration/scripts/contentValuesLib.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys, os, optparse, re, json import ROOT, xmlrpclib diff --git a/DQM/Integration/scripts/contentValuesToDBS.py b/DQM/Integration/scripts/contentValuesToDBS.py index e2180107216cd..92716e6ccdd8a 100755 --- a/DQM/Integration/scripts/contentValuesToDBS.py +++ b/DQM/Integration/scripts/contentValuesToDBS.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from contentValuesLib import * class OptionParser(optparse.OptionParser): diff --git a/DQM/Integration/scripts/contentValuesToRR.py b/DQM/Integration/scripts/contentValuesToRR.py index dc1b53703d11e..8d83b0a288380 100755 --- a/DQM/Integration/scripts/contentValuesToRR.py +++ b/DQM/Integration/scripts/contentValuesToRR.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from contentValuesLib import * class OptionParser(optparse.OptionParser): diff --git a/DQM/Integration/scripts/dqmd_manager.py b/DQM/Integration/scripts/dqmd_manager.py index 6a95cf3563174..1208d4ccc833b 100755 --- a/DQM/Integration/scripts/dqmd_manager.py +++ b/DQM/Integration/scripts/dqmd_manager.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import subprocess diff --git a/DQM/Integration/scripts/filecollector/fileCollector.py b/DQM/Integration/scripts/filecollector/fileCollector.py index d2b67125be418..1dde4309b7de0 100755 --- a/DQM/Integration/scripts/filecollector/fileCollector.py +++ b/DQM/Integration/scripts/filecollector/fileCollector.py @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import os, time, sys, glob, re, shutil, stat, smtplib, socket from email.MIMEText import MIMEText diff --git a/DQM/Integration/scripts/filecollector/fileCollector2.py b/DQM/Integration/scripts/filecollector/fileCollector2.py index ffd125df7ee9c..e6bb9c9608d97 100755 --- a/DQM/Integration/scripts/filecollector/fileCollector2.py +++ b/DQM/Integration/scripts/filecollector/fileCollector2.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import os,time,sys,zipfile,re,shutil,stat from fcntl import lockf, LOCK_EX, LOCK_UN diff --git a/DQM/Integration/scripts/filecollector/producerFileCleanner.py b/DQM/Integration/scripts/filecollector/producerFileCleanner.py index b03764a82260c..d9cd15d3381f8 100755 --- a/DQM/Integration/scripts/filecollector/producerFileCleanner.py +++ b/DQM/Integration/scripts/filecollector/producerFileCleanner.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import os, time, sys, glob, re, smtplib, socket from email.MIMEText import MIMEText from traceback import print_exc, format_exc diff --git a/DQM/Integration/scripts/fileregistration/dqmPostProcessing_online.py b/DQM/Integration/scripts/fileregistration/dqmPostProcessing_online.py index bcc10b0fa96ba..9ca3a31970831 100755 --- a/DQM/Integration/scripts/fileregistration/dqmPostProcessing_online.py +++ b/DQM/Integration/scripts/fileregistration/dqmPostProcessing_online.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os, time, sys, shutil, glob, smtplib, re from datetime import datetime from email.MIMEText import MIMEText diff --git a/DQM/Integration/scripts/fileregistration/fileTransfer.py b/DQM/Integration/scripts/fileregistration/fileTransfer.py index 307528ab7bc2e..d6ca50707dfef 100755 --- a/DQM/Integration/scripts/fileregistration/fileTransfer.py +++ b/DQM/Integration/scripts/fileregistration/fileTransfer.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os, time, sys, shutil, glob, smtplib, re, subprocess import getopt as gop import zipfile as zp diff --git a/DQM/Integration/scripts/fileregistration/mergeAndRegister.py b/DQM/Integration/scripts/fileregistration/mergeAndRegister.py index e57040f9c4e2f..69506b100684e 100755 --- a/DQM/Integration/scripts/fileregistration/mergeAndRegister.py +++ b/DQM/Integration/scripts/fileregistration/mergeAndRegister.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os,time,sys,shutil,glob from sets import Set from datetime import datetime diff --git a/DQM/Integration/scripts/harvesting_tools/cmsHarvester.py b/DQM/Integration/scripts/harvesting_tools/cmsHarvester.py index a2a1d14837692..35a15bb1afb6f 100755 --- a/DQM/Integration/scripts/harvesting_tools/cmsHarvester.py +++ b/DQM/Integration/scripts/harvesting_tools/cmsHarvester.py @@ -31,7 +31,6 @@ methods. """ -from __future__ import print_function ########################################################################### diff --git a/DQM/L1TMonitor/python/inputsource_file_cfi.py b/DQM/L1TMonitor/python/inputsource_file_cfi.py index 3a4bafeb8d418..add7a7fd785d8 100644 --- a/DQM/L1TMonitor/python/inputsource_file_cfi.py +++ b/DQM/L1TMonitor/python/inputsource_file_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # provide online L1 Trigger DQM input from file(s) # diff --git a/DQM/L1TMonitor/test/l1t_dqm_sourceclient-file_cfg.py b/DQM/L1TMonitor/test/l1t_dqm_sourceclient-file_cfg.py index 972e2a4ef756e..376af091fd978 100644 --- a/DQM/L1TMonitor/test/l1t_dqm_sourceclient-file_cfg.py +++ b/DQM/L1TMonitor/test/l1t_dqm_sourceclient-file_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to run online L1 Trigger DQM # the user can choose the environment (live, playback, file-P5, file) diff --git a/DQM/L1TMonitor/test/l1temulator_dqm_sourceclient-file_cfg.py b/DQM/L1TMonitor/test/l1temulator_dqm_sourceclient-file_cfg.py index d67b8240e482a..c5d76b24a03f9 100644 --- a/DQM/L1TMonitor/test/l1temulator_dqm_sourceclient-file_cfg.py +++ b/DQM/L1TMonitor/test/l1temulator_dqm_sourceclient-file_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to run online L1 Trigger emulator DQM # the user can choose the environment (live, playback, file-P5, file) diff --git a/DQM/MuonMonitor/test/mutracking_dqm_sourceclient-live_cfg.py b/DQM/MuonMonitor/test/mutracking_dqm_sourceclient-live_cfg.py index 3bfab1e21b5a5..445ffdd587bd9 100644 --- a/DQM/MuonMonitor/test/mutracking_dqm_sourceclient-live_cfg.py +++ b/DQM/MuonMonitor/test/mutracking_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from Configuration.Eras.Era_Run2_2018_pp_on_AA_cff import Run2_2018_pp_on_AA diff --git a/DQM/SiStripMonitorClient/scripts/DeadROCCounter.py b/DQM/SiStripMonitorClient/scripts/DeadROCCounter.py index d43518becdf60..0e1001b236167 100755 --- a/DQM/SiStripMonitorClient/scripts/DeadROCCounter.py +++ b/DQM/SiStripMonitorClient/scripts/DeadROCCounter.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from ROOT import TFile, gStyle,gPad ,TObject, TCanvas, TH1, TH1F, TH2F, TLegend, TPaletteAxis, TList, TLine, TAttLine, TF1,TAxis import re import sys, string diff --git a/DQM/SiStripMonitorClient/scripts/DeadROCCounter_Phase1.py b/DQM/SiStripMonitorClient/scripts/DeadROCCounter_Phase1.py index 0d1c02561f4c1..31e5df50878cf 100755 --- a/DQM/SiStripMonitorClient/scripts/DeadROCCounter_Phase1.py +++ b/DQM/SiStripMonitorClient/scripts/DeadROCCounter_Phase1.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from ROOT import TFile, gStyle,gPad ,TObject, TCanvas, TH1, TH1F, TH2F, TLegend, TPaletteAxis, TList, TLine, TAttLine, TF1,TAxis import re import sys, string diff --git a/DQM/SiStripMonitorClient/scripts/DeadROC_duringRun.py b/DQM/SiStripMonitorClient/scripts/DeadROC_duringRun.py index 6bda8f2c2a0e0..3f89406b72acc 100755 --- a/DQM/SiStripMonitorClient/scripts/DeadROC_duringRun.py +++ b/DQM/SiStripMonitorClient/scripts/DeadROC_duringRun.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import string from ROOT import TFile diff --git a/DQM/SiStripMonitorClient/scripts/InefficientDoubleROC.py b/DQM/SiStripMonitorClient/scripts/InefficientDoubleROC.py index 22adff7dad1c6..b4691b645625d 100755 --- a/DQM/SiStripMonitorClient/scripts/InefficientDoubleROC.py +++ b/DQM/SiStripMonitorClient/scripts/InefficientDoubleROC.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import math from ROOT import gROOT, TClass, TFile diff --git a/DQM/SiStripMonitorClient/scripts/MergeOccDeadROC.py b/DQM/SiStripMonitorClient/scripts/MergeOccDeadROC.py index c42f347dcdf17..8a8558431f319 100755 --- a/DQM/SiStripMonitorClient/scripts/MergeOccDeadROC.py +++ b/DQM/SiStripMonitorClient/scripts/MergeOccDeadROC.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import ROOT from ROOT import TBufferFile, TH1F, TProfile, TProfile2D, TH2F, TFile, TH1D, TH2D import re diff --git a/DQM/SiStripMonitorClient/scripts/MergePCLDeadROC.py b/DQM/SiStripMonitorClient/scripts/MergePCLDeadROC.py index 4e9d8a5a5108f..110e9cb1294ae 100755 --- a/DQM/SiStripMonitorClient/scripts/MergePCLDeadROC.py +++ b/DQM/SiStripMonitorClient/scripts/MergePCLDeadROC.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import ROOT from ROOT import TBufferFile, TH1F, TProfile, TProfile2D, TH2F, TFile, TH1D, TH2D import re diff --git a/DQM/SiStripMonitorClient/scripts/MergePCLFedErr.py b/DQM/SiStripMonitorClient/scripts/MergePCLFedErr.py index 331e9b6634338..69caf5e23d1d0 100755 --- a/DQM/SiStripMonitorClient/scripts/MergePCLFedErr.py +++ b/DQM/SiStripMonitorClient/scripts/MergePCLFedErr.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import ROOT from ROOT import TBufferFile, TH1F, TProfile, TProfile2D, TH2F, TFile, TH1D, TH2D import re diff --git a/DQM/SiStripMonitorClient/scripts/PCLOthers.py b/DQM/SiStripMonitorClient/scripts/PCLOthers.py index 322d31e2daa75..0b1b812e49690 100755 --- a/DQM/SiStripMonitorClient/scripts/PCLOthers.py +++ b/DQM/SiStripMonitorClient/scripts/PCLOthers.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import ROOT from ROOT import TBufferFile, TH1F, TProfile, TProfile2D, TH2F, TFile, TH1D, TH2D import re diff --git a/DQM/SiStripMonitorClient/scripts/PhaseITreeProducer.py b/DQM/SiStripMonitorClient/scripts/PhaseITreeProducer.py index a1ed4718aa5b6..659c9da81761b 100644 --- a/DQM/SiStripMonitorClient/scripts/PhaseITreeProducer.py +++ b/DQM/SiStripMonitorClient/scripts/PhaseITreeProducer.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys from ROOT import TTree, TFile, gROOT, TClass from array import array diff --git a/DQM/SiStripMonitorClient/scripts/PixelMapPlotter.py b/DQM/SiStripMonitorClient/scripts/PixelMapPlotter.py index 6ffb2ec24d3c6..c23222d05567b 100755 --- a/DQM/SiStripMonitorClient/scripts/PixelMapPlotter.py +++ b/DQM/SiStripMonitorClient/scripts/PixelMapPlotter.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import ROOT import sys import getopt diff --git a/DQM/SiStripMonitorClient/scripts/TH2PolyOfflineMaps.py b/DQM/SiStripMonitorClient/scripts/TH2PolyOfflineMaps.py index 770dca30e0bc7..5cfd1faca209a 100644 --- a/DQM/SiStripMonitorClient/scripts/TH2PolyOfflineMaps.py +++ b/DQM/SiStripMonitorClient/scripts/TH2PolyOfflineMaps.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import os from ROOT import gROOT, gStyle, gPad, TCanvas, TClass, TGraph, TFile, TArrow, TLatex, TH2Poly, kBlack diff --git a/DQM/SiStripMonitorClient/scripts/TkMap_script_phase1.py b/DQM/SiStripMonitorClient/scripts/TkMap_script_phase1.py index e3b72c956794a..7635bb0be6e42 100755 --- a/DQM/SiStripMonitorClient/scripts/TkMap_script_phase1.py +++ b/DQM/SiStripMonitorClient/scripts/TkMap_script_phase1.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import os from subprocess import call diff --git a/DQM/SiStripMonitorClient/scripts/getGTfromDQMFile.py b/DQM/SiStripMonitorClient/scripts/getGTfromDQMFile.py index 1588ec0e7ecd5..0a6ebdebbf4c6 100755 --- a/DQM/SiStripMonitorClient/scripts/getGTfromDQMFile.py +++ b/DQM/SiStripMonitorClient/scripts/getGTfromDQMFile.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from math import * from ROOT import TFile, TObject, TTree from array import array diff --git a/DQM/SiStripMonitorClient/scripts/getGTfromDQMFile_V2.py b/DQM/SiStripMonitorClient/scripts/getGTfromDQMFile_V2.py index f40ee6b3f8eba..c6754e1f67f67 100755 --- a/DQM/SiStripMonitorClient/scripts/getGTfromDQMFile_V2.py +++ b/DQM/SiStripMonitorClient/scripts/getGTfromDQMFile_V2.py @@ -5,7 +5,6 @@ from ROOT import gDirectory import sys import os -from __future__ import print_function def getGTfromDQMFile(DQMfile, RunNumber, globalTagVar): if not os.path.isfile(DQMfile):# print "Error: file", DQMfile, "not found, exit" diff --git a/DQM/SiStripMonitorClient/scripts/getRunInfo.py b/DQM/SiStripMonitorClient/scripts/getRunInfo.py index 2dd9bf3d86451..4f3b061d5ab74 100755 --- a/DQM/SiStripMonitorClient/scripts/getRunInfo.py +++ b/DQM/SiStripMonitorClient/scripts/getRunInfo.py @@ -10,7 +10,6 @@ # Questions and comments to: volker.adler@cern.ch -from __future__ import print_function import sys import os import string diff --git a/DQM/SiStripMonitorClient/scripts/submitDQMOfflineCAF.py b/DQM/SiStripMonitorClient/scripts/submitDQMOfflineCAF.py index c7b138308ff55..a54ebe9dab201 100755 --- a/DQM/SiStripMonitorClient/scripts/submitDQMOfflineCAF.py +++ b/DQM/SiStripMonitorClient/scripts/submitDQMOfflineCAF.py @@ -10,7 +10,6 @@ # Questions and comments to: volker.adler@cern.ch -from __future__ import print_function import sys import os import os.path diff --git a/DQM/SiStripMonitorHardware/test/makeInputlist.py b/DQM/SiStripMonitorHardware/test/makeInputlist.py index 3ff80af29cbe3..1101281926bd0 100644 --- a/DQM/SiStripMonitorHardware/test/makeInputlist.py +++ b/DQM/SiStripMonitorHardware/test/makeInputlist.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os,sys, glob spyInput = '/eos/cms/store/group/dpg_tracker_strip/tracker/Online/store/streamer/SiStripSpy/Commissioning11/' diff --git a/DQM/SiStripMonitorSummary/scripts/iov_list_tag.py b/DQM/SiStripMonitorSummary/scripts/iov_list_tag.py index 024296bbc7a56..10fad5998aef8 100755 --- a/DQM/SiStripMonitorSummary/scripts/iov_list_tag.py +++ b/DQM/SiStripMonitorSummary/scripts/iov_list_tag.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from optparse import OptionParser, Option, OptionValueError import DLFCN import sys diff --git a/DQM/TrackerCommon/bin/getRunRegistry.py b/DQM/TrackerCommon/bin/getRunRegistry.py index e211eb870b957..1fcc1bf11fdc6 100755 --- a/DQM/TrackerCommon/bin/getRunRegistry.py +++ b/DQM/TrackerCommon/bin/getRunRegistry.py @@ -2,7 +2,6 @@ # For documentation of the RR XML-RPC handler, look into https://twiki.cern.ch/twiki//bin/view/CMS/DqmRrApi -from __future__ import print_function import sys import xmlrpclib diff --git a/DQM/TrackerCommon/test/DQMXMLFile_SiPixelDQM_create_cfg.py b/DQM/TrackerCommon/test/DQMXMLFile_SiPixelDQM_create_cfg.py index 861d2164dc1ac..8e55d7b2727a3 100644 --- a/DQM/TrackerCommon/test/DQMXMLFile_SiPixelDQM_create_cfg.py +++ b/DQM/TrackerCommon/test/DQMXMLFile_SiPixelDQM_create_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os diff --git a/DQM/TrackerCommon/test/DQMXMLFile_SiStripDQM_create_cfg.py b/DQM/TrackerCommon/test/DQMXMLFile_SiStripDQM_create_cfg.py index 67f1b5da79c6a..91e70be55c929 100644 --- a/DQM/TrackerCommon/test/DQMXMLFile_SiStripDQM_create_cfg.py +++ b/DQM/TrackerCommon/test/DQMXMLFile_SiStripDQM_create_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os diff --git a/DQM/TrackerRemapper/test/PrintTkMap.py b/DQM/TrackerRemapper/test/PrintTkMap.py index a504a159786ae..a4c35fa8070c6 100644 --- a/DQM/TrackerRemapper/test/PrintTkMap.py +++ b/DQM/TrackerRemapper/test/PrintTkMap.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import os from ROOT import gROOT, TArrow, TCanvas, TGraph, TH2Poly, gPad, TLatex diff --git a/DQMOffline/Alignment/test/alcarecoTester.py b/DQMOffline/Alignment/test/alcarecoTester.py index d617df0300135..2388e3870e90d 100755 --- a/DQMOffline/Alignment/test/alcarecoTester.py +++ b/DQMOffline/Alignment/test/alcarecoTester.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import sys import configparser as ConfigParser diff --git a/DQMOffline/CalibCalo/test/dohistos.py b/DQMOffline/CalibCalo/test/dohistos.py index 795fcfdf7b095..379ee2a1f8168 100755 --- a/DQMOffline/CalibCalo/test/dohistos.py +++ b/DQMOffline/CalibCalo/test/dohistos.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os import sys import errno diff --git a/DQMOffline/CalibTracker/test/testSuite/CheckSiStripBadCompoentnsDQMService.py b/DQMOffline/CalibTracker/test/testSuite/CheckSiStripBadCompoentnsDQMService.py index cdc8de42175db..f9985369d3a83 100755 --- a/DQMOffline/CalibTracker/test/testSuite/CheckSiStripBadCompoentnsDQMService.py +++ b/DQMOffline/CalibTracker/test/testSuite/CheckSiStripBadCompoentnsDQMService.py @@ -10,7 +10,6 @@ # The output will be all the matching lines and a final count of them # The check is positive if the total number of lines matches the total number of detids in the log -from __future__ import print_function import sys fileIN = open(sys.argv[1], "r") diff --git a/DQMOffline/Configuration/scripts/cmsswConfigtrace.py b/DQMOffline/Configuration/scripts/cmsswConfigtrace.py index e44a58244daab..f62a56e2e7621 100755 --- a/DQMOffline/Configuration/scripts/cmsswConfigtrace.py +++ b/DQMOffline/Configuration/scripts/cmsswConfigtrace.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import re import sys diff --git a/DQMOffline/Configuration/scripts/cmsswFiletrace.py b/DQMOffline/Configuration/scripts/cmsswFiletrace.py index 91889c9ad6511..d85c2cad361c1 100755 --- a/DQMOffline/Configuration/scripts/cmsswFiletrace.py +++ b/DQMOffline/Configuration/scripts/cmsswFiletrace.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import re import sys diff --git a/DQMOffline/EGamma/python/electronDataDiscovery.py b/DQMOffline/EGamma/python/electronDataDiscovery.py index 642399f69db0a..4ceb6d517167f 100755 --- a/DQMOffline/EGamma/python/electronDataDiscovery.py +++ b/DQMOffline/EGamma/python/electronDataDiscovery.py @@ -1,4 +1,3 @@ -from __future__ import print_function # =================================================================== # So to get the list of input files. One must call : diff --git a/DQMOffline/EGamma/scripts/electronCompare.py b/DQMOffline/EGamma/scripts/electronCompare.py index 17f8994b6e7c9..9ca2b784da3a5 100755 --- a/DQMOffline/EGamma/scripts/electronCompare.py +++ b/DQMOffline/EGamma/scripts/electronCompare.py @@ -21,7 +21,6 @@ #========================================================================= -from __future__ import print_function import os, sys, datetime, shutil, optparse diff --git a/DQMOffline/EGamma/scripts/electronDataDiscovery.py b/DQMOffline/EGamma/scripts/electronDataDiscovery.py index 128662d237128..9a89e6684650d 100755 --- a/DQMOffline/EGamma/scripts/electronDataDiscovery.py +++ b/DQMOffline/EGamma/scripts/electronDataDiscovery.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os, sys if len(sys.argv) > 1: os.environ['DD_SOURCE'] = sys.argv[1] diff --git a/DQMOffline/EGamma/scripts/electronStore.py b/DQMOffline/EGamma/scripts/electronStore.py index 7fce0af1e0c06..80b51a8de2b94 100755 --- a/DQMOffline/EGamma/scripts/electronStore.py +++ b/DQMOffline/EGamma/scripts/electronStore.py @@ -23,7 +23,6 @@ #========================================================================= -from __future__ import print_function import os, sys, datetime, shutil, optparse diff --git a/DQMOffline/EGamma/test/dbs_discovery.py b/DQMOffline/EGamma/test/dbs_discovery.py index bf13da4b40bb5..c17db6aabd017 100755 --- a/DQMOffline/EGamma/test/dbs_discovery.py +++ b/DQMOffline/EGamma/test/dbs_discovery.py @@ -22,7 +22,6 @@ #=================================================================== -from __future__ import print_function import httplib, urllib, urllib2, types, string, os, sys if 'DBS_RELEASE' not in os.environ: diff --git a/DQMOffline/JetMET/test/DDSearchCLI.py b/DQMOffline/JetMET/test/DDSearchCLI.py index 0f90aab2bb2a6..09a878f418d93 100755 --- a/DQMOffline/JetMET/test/DDSearchCLI.py +++ b/DQMOffline/JetMET/test/DDSearchCLI.py @@ -7,7 +7,6 @@ """ DBS data discovery command line interface """ -from __future__ import print_function import httplib, urllib, urllib2, types, string, os, sys from optparse import OptionParser diff --git a/DQMOffline/JetMET/test/publish/make_html_output.py b/DQMOffline/JetMET/test/publish/make_html_output.py index ec3772d456f94..2890b08443c17 100755 --- a/DQMOffline/JetMET/test/publish/make_html_output.py +++ b/DQMOffline/JetMET/test/publish/make_html_output.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import ROOT import sys,os,string,errno,shutil import code diff --git a/DQMOffline/JetMET/test/run_PromptAna33X.py b/DQMOffline/JetMET/test/run_PromptAna33X.py index 8a9bf6e049921..24156bddfbd2a 100644 --- a/DQMOffline/JetMET/test/run_PromptAna33X.py +++ b/DQMOffline/JetMET/test/run_PromptAna33X.py @@ -1,4 +1,3 @@ -from __future__ import print_function ##----- # Set job-specific inputs based on shell # the following enviromental variables diff --git a/DQMOffline/JetMET/test/run_PromptAnaHI.py b/DQMOffline/JetMET/test/run_PromptAnaHI.py index febf5563977d6..2f793367191aa 100644 --- a/DQMOffline/JetMET/test/run_PromptAnaHI.py +++ b/DQMOffline/JetMET/test/run_PromptAnaHI.py @@ -1,4 +1,3 @@ -from __future__ import print_function ##----- # Set job-specific inputs based on shell # the following enviromental variables diff --git a/DQMOffline/JetMET/test/run_PromptAna_CAF.py b/DQMOffline/JetMET/test/run_PromptAna_CAF.py index 7846b723d6244..7ad96c1fae482 100644 --- a/DQMOffline/JetMET/test/run_PromptAna_CAF.py +++ b/DQMOffline/JetMET/test/run_PromptAna_CAF.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/DQMOffline/JetMET/test/run_PromptAna_CAF33x.py b/DQMOffline/JetMET/test/run_PromptAna_CAF33x.py index 0ed3ed78701ba..982c2299a816e 100644 --- a/DQMOffline/JetMET/test/run_PromptAna_CAF33x.py +++ b/DQMOffline/JetMET/test/run_PromptAna_CAF33x.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/DQMOffline/JetMET/test/run_PromptAna_CRT.py b/DQMOffline/JetMET/test/run_PromptAna_CRT.py index f0b54777a39df..f98481694245d 100644 --- a/DQMOffline/JetMET/test/run_PromptAna_CRT.py +++ b/DQMOffline/JetMET/test/run_PromptAna_CRT.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/DQMOffline/Trigger/test/testTriggerBTV.py b/DQMOffline/Trigger/test/testTriggerBTV.py index 8a621f2e2f8ce..9ca02b447d05e 100644 --- a/DQMOffline/Trigger/test/testTriggerBTV.py +++ b/DQMOffline/Trigger/test/testTriggerBTV.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("DQM") diff --git a/DQMOffline/Trigger/test/triggerSequenceTest_cfg.py b/DQMOffline/Trigger/test/triggerSequenceTest_cfg.py index 8517a4c4adbca..9da5e230c6e26 100644 --- a/DQMOffline/Trigger/test/triggerSequenceTest_cfg.py +++ b/DQMOffline/Trigger/test/triggerSequenceTest_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("DQM") diff --git a/DQMServices/Components/python/ROOTData.py b/DQMServices/Components/python/ROOTData.py index b857e5bf0e5e6..d4922297c9a85 100644 --- a/DQMServices/Components/python/ROOTData.py +++ b/DQMServices/Components/python/ROOTData.py @@ -1,4 +1,3 @@ -from __future__ import print_function from ROOT import gDirectory, TBufferFile, TClass from array import array diff --git a/DQMServices/Components/scripts/dqmdumpme.py b/DQMServices/Components/scripts/dqmdumpme.py index cf001965024ba..e56768996f16e 100755 --- a/DQMServices/Components/scripts/dqmdumpme.py +++ b/DQMServices/Components/scripts/dqmdumpme.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import numpy import uproot diff --git a/DQMServices/Components/scripts/dqmiodatasetharvest.py b/DQMServices/Components/scripts/dqmiodatasetharvest.py index 8cc0e10edc750..181b9a84d9ae8 100755 --- a/DQMServices/Components/scripts/dqmiodatasetharvest.py +++ b/DQMServices/Components/scripts/dqmiodatasetharvest.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import re import json import ROOT diff --git a/DQMServices/Components/scripts/dqmiodumpindices.py b/DQMServices/Components/scripts/dqmiodumpindices.py index 6c89be8534981..97707f76972a1 100755 --- a/DQMServices/Components/scripts/dqmiodumpindices.py +++ b/DQMServices/Components/scripts/dqmiodumpindices.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import uproot import argparse diff --git a/DQMServices/Components/scripts/dqmiodumpmetadata.py b/DQMServices/Components/scripts/dqmiodumpmetadata.py index c02d6577e030e..ee62d68a37f24 100755 --- a/DQMServices/Components/scripts/dqmiodumpmetadata.py +++ b/DQMServices/Components/scripts/dqmiodumpmetadata.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import uproot import argparse diff --git a/DQMServices/Components/scripts/dqmiolistmes.py b/DQMServices/Components/scripts/dqmiolistmes.py index ad59532b01b14..1b7ca32578ce5 100755 --- a/DQMServices/Components/scripts/dqmiolistmes.py +++ b/DQMServices/Components/scripts/dqmiolistmes.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import uproot import argparse diff --git a/DQMServices/Components/scripts/dqmiolumiharvest.py b/DQMServices/Components/scripts/dqmiolumiharvest.py index 3b331d2ad8f0a..fe85d079830d4 100755 --- a/DQMServices/Components/scripts/dqmiolumiharvest.py +++ b/DQMServices/Components/scripts/dqmiolumiharvest.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import json import ROOT diff --git a/DQMServices/Components/scripts/root2sqlite.py b/DQMServices/Components/scripts/root2sqlite.py index 73486d5d360c2..0fd626f4618ca 100755 --- a/DQMServices/Components/scripts/root2sqlite.py +++ b/DQMServices/Components/scripts/root2sqlite.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import re import json import ROOT diff --git a/DQMServices/Components/test/test_fastHaddMerge.py b/DQMServices/Components/test/test_fastHaddMerge.py index c57bca239c12d..e4f5f8ed176ab 100644 --- a/DQMServices/Components/test/test_fastHaddMerge.py +++ b/DQMServices/Components/test/test_fastHaddMerge.py @@ -5,7 +5,6 @@ Produce a custom number of identical ROOT files and check that their final merged output matches what is expected. """ -from __future__ import print_function from builtins import range from optparse import OptionParser diff --git a/DQMServices/FileIO/python/DQM.py b/DQMServices/FileIO/python/DQM.py index c4af24b897c37..1958f99b7566a 100644 --- a/DQMServices/FileIO/python/DQM.py +++ b/DQMServices/FileIO/python/DQM.py @@ -1,6 +1,5 @@ #!/bin/env python3 -from __future__ import print_function from builtins import range import ROOT as R import os, re diff --git a/DQMServices/FileIO/scripts/compareHistograms.py b/DQMServices/FileIO/scripts/compareHistograms.py index 070050162bb54..6def3c50d7755 100755 --- a/DQMServices/FileIO/scripts/compareHistograms.py +++ b/DQMServices/FileIO/scripts/compareHistograms.py @@ -1,6 +1,5 @@ #!/bin/env python3 -from __future__ import print_function import ROOT ROOT.PyConfig.IgnoreCommandLineOptions = True import os diff --git a/DQMServices/FileIO/scripts/dqmMemoryStats.py b/DQMServices/FileIO/scripts/dqmMemoryStats.py index e64cf36847ad2..7bbefb83465c8 100755 --- a/DQMServices/FileIO/scripts/dqmMemoryStats.py +++ b/DQMServices/FileIO/scripts/dqmMemoryStats.py @@ -1,6 +1,5 @@ #!/bin/env python3 -from __future__ import print_function import sys from DQMServices.FileIO.DQM import DQMReader diff --git a/DQMServices/FileIO/scripts/visDQMUpload.py b/DQMServices/FileIO/scripts/visDQMUpload.py index a851d150cfb7f..5adfa2ee991b6 100755 --- a/DQMServices/FileIO/scripts/visDQMUpload.py +++ b/DQMServices/FileIO/scripts/visDQMUpload.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import os import re diff --git a/DQMServices/FwkIO/scripts/DQMIO2histo.py b/DQMServices/FwkIO/scripts/DQMIO2histo.py index 253fa3caac43e..a8fb233022a21 100755 --- a/DQMServices/FwkIO/scripts/DQMIO2histo.py +++ b/DQMServices/FwkIO/scripts/DQMIO2histo.py @@ -7,7 +7,6 @@ Thanks for Marco Rovere for giving example script/class needed to browse DQM I/O formatted input. """ -from __future__ import print_function from builtins import range import ROOT as R diff --git a/DQMServices/FwkIO/test/check_guid_file1.py b/DQMServices/FwkIO/test/check_guid_file1.py index e43080c870eca..5abc03d8c1427 100644 --- a/DQMServices/FwkIO/test/check_guid_file1.py +++ b/DQMServices/FwkIO/test/check_guid_file1.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re import sys import ROOT diff --git a/DQMServices/FwkIO/test/check_lumi_only_file.py b/DQMServices/FwkIO/test/check_lumi_only_file.py index 8dff09c8a46de..e9595e7d0b982 100644 --- a/DQMServices/FwkIO/test/check_lumi_only_file.py +++ b/DQMServices/FwkIO/test/check_lumi_only_file.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT as R import sys diff --git a/DQMServices/FwkIO/test/check_merged_file1_file2.py b/DQMServices/FwkIO/test/check_merged_file1_file2.py index 3ac54143eb6da..4c91826d434f5 100644 --- a/DQMServices/FwkIO/test/check_merged_file1_file2.py +++ b/DQMServices/FwkIO/test/check_merged_file1_file2.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT as R import sys diff --git a/DQMServices/FwkIO/test/check_merged_file1_file3_file2_filterOnRun1_cfg.py b/DQMServices/FwkIO/test/check_merged_file1_file3_file2_filterOnRun1_cfg.py index 0ec5ca6a77804..595f710d9c8bf 100644 --- a/DQMServices/FwkIO/test/check_merged_file1_file3_file2_filterOnRun1_cfg.py +++ b/DQMServices/FwkIO/test/check_merged_file1_file3_file2_filterOnRun1_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT as R import sys diff --git a/DQMServices/FwkIO/test/check_merged_file1_file3_file2_filterOnRun1_copy_cfg.py b/DQMServices/FwkIO/test/check_merged_file1_file3_file2_filterOnRun1_copy_cfg.py index e4dafcdb6b6ac..544e9625a7621 100644 --- a/DQMServices/FwkIO/test/check_merged_file1_file3_file2_filterOnRun1_copy_cfg.py +++ b/DQMServices/FwkIO/test/check_merged_file1_file3_file2_filterOnRun1_copy_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT as R import sys diff --git a/DQMServices/FwkIO/test/check_multi_types.py b/DQMServices/FwkIO/test/check_multi_types.py index 27881a08d3aa5..8946138eb3973 100644 --- a/DQMServices/FwkIO/test/check_multi_types.py +++ b/DQMServices/FwkIO/test/check_multi_types.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT as R import sys diff --git a/DQMServices/FwkIO/test/check_run_lumi_file.py b/DQMServices/FwkIO/test/check_run_lumi_file.py index 83e6d6767c086..9277d71b7f246 100644 --- a/DQMServices/FwkIO/test/check_run_lumi_file.py +++ b/DQMServices/FwkIO/test/check_run_lumi_file.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT as R import sys diff --git a/DQMServices/FwkIO/test/check_run_only_file.py b/DQMServices/FwkIO/test/check_run_only_file.py index 7da1dc3ed51f4..4905d58e7cb85 100644 --- a/DQMServices/FwkIO/test/check_run_only_file.py +++ b/DQMServices/FwkIO/test/check_run_only_file.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT as R import sys diff --git a/DQMServices/StreamerIO/scripts/personalPlayback.py b/DQMServices/StreamerIO/scripts/personalPlayback.py index ed622153fff38..526933f08afde 100755 --- a/DQMServices/StreamerIO/scripts/personalPlayback.py +++ b/DQMServices/StreamerIO/scripts/personalPlayback.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import sys import argparse diff --git a/DQMServices/StreamerIO/test/DQMStreamerOutputRepackerTest_cfg.py b/DQMServices/StreamerIO/test/DQMStreamerOutputRepackerTest_cfg.py index 757a3e00fd513..67f9deba48f0c 100644 --- a/DQMServices/StreamerIO/test/DQMStreamerOutputRepackerTest_cfg.py +++ b/DQMServices/StreamerIO/test/DQMStreamerOutputRepackerTest_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/HLTriggerOffline/Btag/python/helper.py b/HLTriggerOffline/Btag/python/helper.py index 0cd01c64dd633..f76c946f56e7e 100644 --- a/HLTriggerOffline/Btag/python/helper.py +++ b/HLTriggerOffline/Btag/python/helper.py @@ -3,7 +3,6 @@ http://wiki.python.org/moin/ConfigParserExamples http://stackoverflow.com/questions/3220670/read-all-the-contents-in-ini-file-into-dictionary-with-python """ -from __future__ import print_function import configparser as cp diff --git a/HLTriggerOffline/Btag/python/readConfig.py b/HLTriggerOffline/Btag/python/readConfig.py index b5e998838d18c..d6a8e795d687d 100644 --- a/HLTriggerOffline/Btag/python/readConfig.py +++ b/HLTriggerOffline/Btag/python/readConfig.py @@ -1,4 +1,3 @@ -from __future__ import print_function # set up variables #def readConfig(fileName) import FWCore.ParameterSet.Config as cms diff --git a/HLTriggerOffline/Btag/test/compareDQM.py b/HLTriggerOffline/Btag/test/compareDQM.py index f43c81a26e933..f97522d7f81ea 100755 --- a/HLTriggerOffline/Btag/test/compareDQM.py +++ b/HLTriggerOffline/Btag/test/compareDQM.py @@ -6,7 +6,6 @@ # This script compares the plots cointained in two DQM files and save the superimposed plots # -from __future__ import print_function DQMfileOld="/afs/cern.ch/user/s/sdonato/AFSwork/public/DQM_V0001_R000000001__CMSSW_X_Y_Z__RelVal__TrigVal.root" DQMfileNew="/afs/cern.ch/user/s/sdonato/AFSwork/public/DQM_V0001_R000000002__CMSSW_X_Y_Z__RelVal__TrigVal.root" labelNew = "New" diff --git a/HLTriggerOffline/Btag/test/test.py b/HLTriggerOffline/Btag/test/test.py index 4905f940d70c9..942effea60057 100644 --- a/HLTriggerOffline/Btag/test/test.py +++ b/HLTriggerOffline/Btag/test/test.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from DQMServices.Core.DQMEDHarvester import DQMEDHarvester process = cms.Process("HLTBTAG") diff --git a/HLTriggerOffline/Common/python/HltComparatorCreateWorkflow.py b/HLTriggerOffline/Common/python/HltComparatorCreateWorkflow.py index 848355b154d6d..e0ca0f5765f4b 100755 --- a/HLTriggerOffline/Common/python/HltComparatorCreateWorkflow.py +++ b/HLTriggerOffline/Common/python/HltComparatorCreateWorkflow.py @@ -5,7 +5,6 @@ # Makes CMSSW config for prompt validation of a given run number, # HLT Key or HLT Config -from __future__ import print_function from optparse import OptionParser import os, time, re diff --git a/HLTriggerOffline/Common/relval/doHarvest.py b/HLTriggerOffline/Common/relval/doHarvest.py index 8edf810790b01..53c949ea66f8a 100755 --- a/HLTriggerOffline/Common/relval/doHarvest.py +++ b/HLTriggerOffline/Common/relval/doHarvest.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys import os diff --git a/HLTriggerOffline/Common/relval/harvestRelVal.py b/HLTriggerOffline/Common/relval/harvestRelVal.py index ca051c7f1b182..3a6e6844a8ba3 100755 --- a/HLTriggerOffline/Common/relval/harvestRelVal.py +++ b/HLTriggerOffline/Common/relval/harvestRelVal.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys import os diff --git a/HLTriggerOffline/Egamma/python/EgammaHLTValidationUtils.py b/HLTriggerOffline/Egamma/python/EgammaHLTValidationUtils.py index 95677fa4197c0..28ce1bc1685b5 100755 --- a/HLTriggerOffline/Egamma/python/EgammaHLTValidationUtils.py +++ b/HLTriggerOffline/Egamma/python/EgammaHLTValidationUtils.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys, os, re diff --git a/HLTriggerOffline/Egamma/test/egammaHltPrintRelvalEfficiencies.py b/HLTriggerOffline/Egamma/test/egammaHltPrintRelvalEfficiencies.py index 76812d6f6d591..5c0e7b1c9c146 100755 --- a/HLTriggerOffline/Egamma/test/egammaHltPrintRelvalEfficiencies.py +++ b/HLTriggerOffline/Egamma/test/egammaHltPrintRelvalEfficiencies.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys, os try: diff --git a/HLTriggerOffline/Egamma/test/egammaHltPrintValidationDQMurl.py b/HLTriggerOffline/Egamma/test/egammaHltPrintValidationDQMurl.py index acadd029400df..c270225a1f8d6 100755 --- a/HLTriggerOffline/Egamma/test/egammaHltPrintValidationDQMurl.py +++ b/HLTriggerOffline/Egamma/test/egammaHltPrintValidationDQMurl.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys, os, urllib diff --git a/HLTriggerOffline/Egamma/test/egammaHltValidate.py b/HLTriggerOffline/Egamma/test/egammaHltValidate.py index d43360cebc99a..58fda8d021ffc 100755 --- a/HLTriggerOffline/Egamma/test/egammaHltValidate.py +++ b/HLTriggerOffline/Egamma/test/egammaHltValidate.py @@ -11,7 +11,6 @@ # Michael Anderson # Sept 15, 2009 -from __future__ import print_function import sys, os, shutil #---------------------------------------------------------------------- # parameters diff --git a/HLTriggerOffline/Egamma/test/exampleHLTanalysis.py b/HLTriggerOffline/Egamma/test/exampleHLTanalysis.py index 528e46e9a23d7..065453c5a486a 100644 --- a/HLTriggerOffline/Egamma/test/exampleHLTanalysis.py +++ b/HLTriggerOffline/Egamma/test/exampleHLTanalysis.py @@ -5,7 +5,6 @@ # adapted from PhysicsTools/PatExamples/bin/PatBasicFWLiteAnalyzer.py -from __future__ import print_function import ROOT import sys from DataFormats.FWLite import Events, Handle diff --git a/HLTriggerOffline/Egamma/test/makePerPathConfigFiles.py b/HLTriggerOffline/Egamma/test/makePerPathConfigFiles.py index cf313691bf730..35348d128c2ea 100755 --- a/HLTriggerOffline/Egamma/test/makePerPathConfigFiles.py +++ b/HLTriggerOffline/Egamma/test/makePerPathConfigFiles.py @@ -8,7 +8,6 @@ # see an example file at HLTriggerOffline/Egamma/python/HLT_Ele17_SW_TighterEleIdIsol_L1RDQM_cfi.py #---------------------------------------------------------------------- -from __future__ import print_function import FWCore.ParameterSet.Config as cms import HLTriggerOffline.Egamma.EgammaHLTValidationUtils as EgammaHLTValidationUtils import sys, os diff --git a/HLTriggerOffline/Exotica/test/hltExoticaPostProcessor_cfg.py b/HLTriggerOffline/Exotica/test/hltExoticaPostProcessor_cfg.py index acdc55582a533..9b809c8c7cce0 100644 --- a/HLTriggerOffline/Exotica/test/hltExoticaPostProcessor_cfg.py +++ b/HLTriggerOffline/Exotica/test/hltExoticaPostProcessor_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os,sys diff --git a/HLTriggerOffline/Exotica/test/hltExoticaValidator_cfg.py b/HLTriggerOffline/Exotica/test/hltExoticaValidator_cfg.py index 5c3a0cf169b2e..3771cae485ca6 100644 --- a/HLTriggerOffline/Exotica/test/hltExoticaValidator_cfg.py +++ b/HLTriggerOffline/Exotica/test/hltExoticaValidator_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os, sys import FWCore.ParameterSet.Config as cms diff --git a/HLTriggerOffline/HeavyFlavor/test/heavyFlavorValidationHarvesting_cfg.py b/HLTriggerOffline/HeavyFlavor/test/heavyFlavorValidationHarvesting_cfg.py index f7c89b8d51ff9..df2912a34ab20 100644 --- a/HLTriggerOffline/HeavyFlavor/test/heavyFlavorValidationHarvesting_cfg.py +++ b/HLTriggerOffline/HeavyFlavor/test/heavyFlavorValidationHarvesting_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function sampleName = "/RelValJpsiMM/CMSSW_3_5_0_pre2-STARTUP3X_V14-v1/GEN-SIM-RECO" import FWCore.ParameterSet.Config as cms diff --git a/HLTriggerOffline/Muon/test/compareReleases.py b/HLTriggerOffline/Muon/test/compareReleases.py index ffe5fd1421c59..f959cf68a77b4 100755 --- a/HLTriggerOffline/Muon/test/compareReleases.py +++ b/HLTriggerOffline/Muon/test/compareReleases.py @@ -6,7 +6,6 @@ ## ./compareReleases.py -h ## Import python libraries -from __future__ import print_function import sys import optparse import os diff --git a/Utilities/RelMon/python/authentication.py b/Utilities/RelMon/python/authentication.py index ab9016a80c1ac..ebb2c2b668514 100755 --- a/Utilities/RelMon/python/authentication.py +++ b/Utilities/RelMon/python/authentication.py @@ -1,4 +1,3 @@ -from __future__ import print_function ################################################################################ # RelMon: a tool for automatic Release Comparison # https://twiki.cern.ch/twiki/bin/view/CMSPublic/RelMon diff --git a/Utilities/RelMon/python/directories2html.py b/Utilities/RelMon/python/directories2html.py index c15509f4cf249..ca057a93d0de2 100755 --- a/Utilities/RelMon/python/directories2html.py +++ b/Utilities/RelMon/python/directories2html.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import ################################################################################ # RelMon: a tool for automatic Release Comparison # https://twiki.cern.ch/twiki/bin/view/CMSPublic/RelMon diff --git a/Utilities/RelMon/python/dirstructure.py b/Utilities/RelMon/python/dirstructure.py index a2b407d5aa159..8db7c18ddd60d 100755 --- a/Utilities/RelMon/python/dirstructure.py +++ b/Utilities/RelMon/python/dirstructure.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import ################################################################################ # RelMon: a tool for automatic Release Comparison # https://twiki.cern.ch/twiki/bin/view/CMSPublic/RelMon diff --git a/Utilities/RelMon/python/dqm_interfaces.py b/Utilities/RelMon/python/dqm_interfaces.py index 1a9ec54b08665..7684dad65a4fd 100755 --- a/Utilities/RelMon/python/dqm_interfaces.py +++ b/Utilities/RelMon/python/dqm_interfaces.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import ################################################################################ # RelMon: a tool for automatic Release Comparison # https://twiki.cern.ch/twiki/bin/view/CMSPublic/RelMon diff --git a/Utilities/RelMon/python/utils.py b/Utilities/RelMon/python/utils.py index 7010f9f1ba0e9..f05e032225b88 100755 --- a/Utilities/RelMon/python/utils.py +++ b/Utilities/RelMon/python/utils.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import ################################################################################ # RelMon: a tool for automatic Release Comparison # https://twiki.cern.ch/twiki/bin/view/CMSPublic/RelMon diff --git a/Utilities/RelMon/python/utils_v2.py b/Utilities/RelMon/python/utils_v2.py index 0313e592f0c62..2a4dcfc7dd238 100755 --- a/Utilities/RelMon/python/utils_v2.py +++ b/Utilities/RelMon/python/utils_v2.py @@ -5,8 +5,6 @@ Author: Albertas Gimbutas, Vilnius University (LT) e-mail: albertasgim@gmail.com ''' -from __future__ import print_function -from __future__ import absolute_import from builtins import range import sys import re diff --git a/Utilities/RelMon/python/web/app_utils.py b/Utilities/RelMon/python/web/app_utils.py index 964d0d0b90d2d..614466b6a88d2 100755 --- a/Utilities/RelMon/python/web/app_utils.py +++ b/Utilities/RelMon/python/web/app_utils.py @@ -6,7 +6,6 @@ Author: Albertas Gimbutas, Vilnius University (LT) e-mail: albertasgim@gmail.com ''' -from __future__ import print_function import sqlite3 import re diff --git a/Utilities/RelMon/python/web/browse_db.py b/Utilities/RelMon/python/web/browse_db.py index 9dac54a7cde10..fef11bc47fc0a 100755 --- a/Utilities/RelMon/python/web/browse_db.py +++ b/Utilities/RelMon/python/web/browse_db.py @@ -8,7 +8,6 @@ Author: Albertas Gimbutas, Vilnius University (LT) e-mail: albertasgim@gmail.com ''' -from __future__ import absolute_import import cherrypy as cpy import sqlite3 from os.path import isfile diff --git a/Utilities/RelMon/python/web/dbfile2html.py b/Utilities/RelMon/python/web/dbfile2html.py index 7a8f12f9fd443..536808aed9346 100755 --- a/Utilities/RelMon/python/web/dbfile2html.py +++ b/Utilities/RelMon/python/web/dbfile2html.py @@ -7,8 +7,6 @@ Author: Albertas Gimbutas, Vilnius University (LT) e-mail: albertasgim@gmail.com ''' -from __future__ import absolute_import -from __future__ import print_function import sqlite3 import re from os import listdir, makedirs, getcwd diff --git a/Utilities/RelMon/scripts/ValidationMatrix.py b/Utilities/RelMon/scripts/ValidationMatrix.py index d4c1087b71f2e..e5590e965fdbf 100755 --- a/Utilities/RelMon/scripts/ValidationMatrix.py +++ b/Utilities/RelMon/scripts/ValidationMatrix.py @@ -9,7 +9,6 @@ # ################################################################################ -from __future__ import print_function from builtins import range from optparse import OptionParser diff --git a/Utilities/RelMon/scripts/ValidationMatrix_v2.py b/Utilities/RelMon/scripts/ValidationMatrix_v2.py index c7ac7e9359797..6375010790465 100755 --- a/Utilities/RelMon/scripts/ValidationMatrix_v2.py +++ b/Utilities/RelMon/scripts/ValidationMatrix_v2.py @@ -9,7 +9,6 @@ Note: default Pool size for file comparison is 7. Note: did NOT finish static HTML generation implementation. """ -from __future__ import print_function import sqlite3 from datetime import datetime from multiprocessing import Pool, Queue, Process diff --git a/Utilities/RelMon/scripts/compare_using_db.py b/Utilities/RelMon/scripts/compare_using_db.py index 04980a1586190..9a700432d6c16 100755 --- a/Utilities/RelMon/scripts/compare_using_db.py +++ b/Utilities/RelMon/scripts/compare_using_db.py @@ -9,7 +9,6 @@ # ################################################################################ -from __future__ import print_function from sys import argv,exit from optparse import OptionParser import cPickle diff --git a/Utilities/RelMon/scripts/compare_using_files.py b/Utilities/RelMon/scripts/compare_using_files.py index bd906c1d5fb0f..9c596b506ae91 100755 --- a/Utilities/RelMon/scripts/compare_using_files.py +++ b/Utilities/RelMon/scripts/compare_using_files.py @@ -9,7 +9,6 @@ ################################################################################ -from __future__ import print_function def getInfoFromFilename(filename): prefix,sample,cmssw_release,tier = filename[:-5].split("__")[:5] run=int(prefix.split("_")[-1][1:]) diff --git a/Utilities/RelMon/scripts/compare_using_files_v2.py b/Utilities/RelMon/scripts/compare_using_files_v2.py index f8986d92d9469..5d7fe71dbabdb 100755 --- a/Utilities/RelMon/scripts/compare_using_files_v2.py +++ b/Utilities/RelMon/scripts/compare_using_files_v2.py @@ -8,7 +8,6 @@ Note: balcklist support not implemented. """ -from __future__ import print_function import sys import sqlite3 from datetime import datetime diff --git a/Utilities/RelMon/scripts/dir2webdir.py b/Utilities/RelMon/scripts/dir2webdir.py index 3cf9bba97aa51..8d071332c8d54 100755 --- a/Utilities/RelMon/scripts/dir2webdir.py +++ b/Utilities/RelMon/scripts/dir2webdir.py @@ -13,7 +13,6 @@ # ################################################################################ -from __future__ import print_function htaccess_content=""" RewriteEngine on diff --git a/Utilities/RelMon/scripts/dqm_diff.py b/Utilities/RelMon/scripts/dqm_diff.py index 010e0cba7f895..3d6518f41894c 100644 --- a/Utilities/RelMon/scripts/dqm_diff.py +++ b/Utilities/RelMon/scripts/dqm_diff.py @@ -5,7 +5,6 @@ Author: Albertas Gimbutas, Vilnius University (LT) e-mail: albertasgim@gmail.com ''' -from __future__ import print_function from datetime import datetime, timedelta from optparse import OptionParser diff --git a/Utilities/RelMon/scripts/fetchall_from_DQM.py b/Utilities/RelMon/scripts/fetchall_from_DQM.py index bb13f42b5a59b..1092381c9f8c5 100755 --- a/Utilities/RelMon/scripts/fetchall_from_DQM.py +++ b/Utilities/RelMon/scripts/fetchall_from_DQM.py @@ -9,7 +9,6 @@ # ################################################################################ -from __future__ import print_function import subprocess as sub import sys from optparse import OptionParser diff --git a/Utilities/RelMon/scripts/fetchall_from_DQM_v2.py b/Utilities/RelMon/scripts/fetchall_from_DQM_v2.py index f4a2c2401d586..0f86c4fc7a2b2 100755 --- a/Utilities/RelMon/scripts/fetchall_from_DQM_v2.py +++ b/Utilities/RelMon/scripts/fetchall_from_DQM_v2.py @@ -5,7 +5,6 @@ Author: Albertas Gimbutas, Vilnius University (LT) e-mail: albertasgim@gmail.com ''' -from __future__ import print_function ################################################################################ # Change logs: # 2012-10-22 11:31 - Checking to Download also files <1MB (like GEN samples) diff --git a/Utilities/RelMon/scripts/relmon_authenticated_wget.py b/Utilities/RelMon/scripts/relmon_authenticated_wget.py index f5c7c28f7b99a..0ba2beda313d1 100755 --- a/Utilities/RelMon/scripts/relmon_authenticated_wget.py +++ b/Utilities/RelMon/scripts/relmon_authenticated_wget.py @@ -9,7 +9,6 @@ # ################################################################################ -from __future__ import print_function from sys import argv,exit from utils import wget diff --git a/Utilities/RelMon/scripts/relmon_rootfiles_spy.py b/Utilities/RelMon/scripts/relmon_rootfiles_spy.py index e53802291fe41..d6ea24bba0319 100755 --- a/Utilities/RelMon/scripts/relmon_rootfiles_spy.py +++ b/Utilities/RelMon/scripts/relmon_rootfiles_spy.py @@ -12,7 +12,6 @@ """ Just a draft of the real program...It is very ugly still. """ -from __future__ import print_function from os.path import basename diff --git a/Validation/CaloTowers/test/client_cfg.py b/Validation/CaloTowers/test/client_cfg.py index 85824a9b3a1a7..754307cd8bf5e 100644 --- a/Validation/CaloTowers/test/client_cfg.py +++ b/Validation/CaloTowers/test/client_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from DQMServices.Core.DQMEDHarvester import DQMEDHarvester diff --git a/Validation/HGCalValidation/python/hgcalPlots.py b/Validation/HGCalValidation/python/hgcalPlots.py index 556b3d4fd291f..2988c808fae82 100644 --- a/Validation/HGCalValidation/python/hgcalPlots.py +++ b/Validation/HGCalValidation/python/hgcalPlots.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import sys import copy diff --git a/Validation/HGCalValidation/scripts/harvestHGCalValidationPlots.py b/Validation/HGCalValidation/scripts/harvestHGCalValidationPlots.py index fd1dce9fc7256..9ebefb6e0a6d8 100755 --- a/Validation/HGCalValidation/scripts/harvestHGCalValidationPlots.py +++ b/Validation/HGCalValidation/scripts/harvestHGCalValidationPlots.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys,os,tempfile,shutil,subprocess,glob import argparse diff --git a/Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py b/Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py index 80259923b0abe..ebe15bcae0be6 100755 --- a/Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py +++ b/Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import argparse import datetime diff --git a/Validation/HcalDigis/test/ZdcSimHitStudy_cfg.py b/Validation/HcalDigis/test/ZdcSimHitStudy_cfg.py index 1efbf1b4f38b2..0a0a66325e058 100644 --- a/Validation/HcalDigis/test/ZdcSimHitStudy_cfg.py +++ b/Validation/HcalDigis/test/ZdcSimHitStudy_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os diff --git a/Validation/RecoB/scripts/Inspector.py b/Validation/RecoB/scripts/Inspector.py index a1d51e96b6c21..c5f90b44894c0 100644 --- a/Validation/RecoB/scripts/Inspector.py +++ b/Validation/RecoB/scripts/Inspector.py @@ -1,4 +1,3 @@ -from __future__ import print_function #____________________________________________________________ # # cuy diff --git a/Validation/RecoB/scripts/cuy.py b/Validation/RecoB/scripts/cuy.py index 8de1976c55d2c..cfd6b7ecbc510 100755 --- a/Validation/RecoB/scripts/cuy.py +++ b/Validation/RecoB/scripts/cuy.py @@ -11,7 +11,6 @@ # Fermilab, 2008 # # imported from UserCode/Yumiceva/cuy -from __future__ import print_function # # modified by Adrien Caudron to create TGraphErrors for b-tag performance plots # UCLouvain, 2012 diff --git a/Validation/RecoB/scripts/histoStyle.py b/Validation/RecoB/scripts/histoStyle.py index 56e485c1c6083..d6b84e09fd47b 100644 --- a/Validation/RecoB/scripts/histoStyle.py +++ b/Validation/RecoB/scripts/histoStyle.py @@ -1,4 +1,3 @@ -from __future__ import print_function ####### diff --git a/Validation/RecoB/scripts/plotFactory.py b/Validation/RecoB/scripts/plotFactory.py index 72f3d51005af9..c5d54a7ec8942 100755 --- a/Validation/RecoB/scripts/plotFactory.py +++ b/Validation/RecoB/scripts/plotFactory.py @@ -8,7 +8,6 @@ ####### #import all what is needed -from __future__ import print_function from histoStyle import * #parser options from optparse import OptionParser diff --git a/Validation/RecoB/test/GridValidation/validation_FirstStepOnGrid.py b/Validation/RecoB/test/GridValidation/validation_FirstStepOnGrid.py index 105b840d14331..e155a1b5f7225 100644 --- a/Validation/RecoB/test/GridValidation/validation_FirstStepOnGrid.py +++ b/Validation/RecoB/test/GridValidation/validation_FirstStepOnGrid.py @@ -1,4 +1,3 @@ -from __future__ import print_function # The following comments couldn't be translated into the new config version: #! /bin/env cmsRun diff --git a/Validation/RecoB/test/validation_customJet_cfg.py b/Validation/RecoB/test/validation_customJet_cfg.py index 98b68f2658c42..8f229af3400ae 100644 --- a/Validation/RecoB/test/validation_customJet_cfg.py +++ b/Validation/RecoB/test/validation_customJet_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # The following comments couldn't be translated into the new config version: #! /bin/env cmsRun diff --git a/Validation/RecoB/test/validation_fromRECO_cfg.py b/Validation/RecoB/test/validation_fromRECO_cfg.py index eee1521d4d022..466b1308a58da 100644 --- a/Validation/RecoB/test/validation_fromRECO_cfg.py +++ b/Validation/RecoB/test/validation_fromRECO_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function #Basic example configration file to run the b-tagging validation sequence. import FWCore.ParameterSet.Config as cms process = cms.Process("validation") diff --git a/Validation/RecoEgamma/test/ElectronMcFakeValidation_gedGsfElectrons_cfg.py b/Validation/RecoEgamma/test/ElectronMcFakeValidation_gedGsfElectrons_cfg.py index c59c7f1cb6262..1258b8993b214 100644 --- a/Validation/RecoEgamma/test/ElectronMcFakeValidation_gedGsfElectrons_cfg.py +++ b/Validation/RecoEgamma/test/ElectronMcFakeValidation_gedGsfElectrons_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import os diff --git a/Validation/RecoEgamma/test/ElectronMcSignalValidationMiniAOD_cfg.py b/Validation/RecoEgamma/test/ElectronMcSignalValidationMiniAOD_cfg.py index 40116cb180472..637fa3f99eace 100644 --- a/Validation/RecoEgamma/test/ElectronMcSignalValidationMiniAOD_cfg.py +++ b/Validation/RecoEgamma/test/ElectronMcSignalValidationMiniAOD_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import os diff --git a/Validation/RecoEgamma/test/ElectronMcSignalValidationPt1000_gedGsfElectrons_cfg.py b/Validation/RecoEgamma/test/ElectronMcSignalValidationPt1000_gedGsfElectrons_cfg.py index 36e1db6ed02e7..f349642c85a93 100644 --- a/Validation/RecoEgamma/test/ElectronMcSignalValidationPt1000_gedGsfElectrons_cfg.py +++ b/Validation/RecoEgamma/test/ElectronMcSignalValidationPt1000_gedGsfElectrons_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import os diff --git a/Validation/RecoEgamma/test/ElectronMcSignalValidation_gedGsfElectrons_cfg.py b/Validation/RecoEgamma/test/ElectronMcSignalValidation_gedGsfElectrons_cfg.py index b0de4c25ebf16..eebccfb6c0281 100644 --- a/Validation/RecoEgamma/test/ElectronMcSignalValidation_gedGsfElectrons_cfg.py +++ b/Validation/RecoEgamma/test/ElectronMcSignalValidation_gedGsfElectrons_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import os diff --git a/Validation/RecoEgamma/test/electronValidationCheck_Env.py b/Validation/RecoEgamma/test/electronValidationCheck_Env.py index 065daadee15e7..349596c8f76f6 100644 --- a/Validation/RecoEgamma/test/electronValidationCheck_Env.py +++ b/Validation/RecoEgamma/test/electronValidationCheck_Env.py @@ -1,7 +1,6 @@ #! /usr/bin/env python3 # -*-coding: utf-8 -*- -from __future__ import print_function import os, sys diff --git a/Validation/RecoEgamma/test/makeWebpage.py b/Validation/RecoEgamma/test/makeWebpage.py index 5a7729c8bca35..db48d1fb41d65 100755 --- a/Validation/RecoEgamma/test/makeWebpage.py +++ b/Validation/RecoEgamma/test/makeWebpage.py @@ -24,7 +24,6 @@ ## index.html to an apropriate place. ## (This can be autmated too, if needed.) -from __future__ import print_function import sys import os import re diff --git a/Validation/RecoMuon/test/genericMuonReleaseSummary.py b/Validation/RecoMuon/test/genericMuonReleaseSummary.py index 7dc183c0b1851..fde5de281db97 100644 --- a/Validation/RecoMuon/test/genericMuonReleaseSummary.py +++ b/Validation/RecoMuon/test/genericMuonReleaseSummary.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os import sys import fileinput diff --git a/Validation/RecoMuon/test/muonReleaseSummary.py b/Validation/RecoMuon/test/muonReleaseSummary.py index 84aaedcf82531..ce623f46467ca 100644 --- a/Validation/RecoMuon/test/muonReleaseSummary.py +++ b/Validation/RecoMuon/test/muonReleaseSummary.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os import shutil import sys diff --git a/Validation/RecoMuon/test/muonReleaseValidation.py b/Validation/RecoMuon/test/muonReleaseValidation.py index f5046d5415ea6..3e1999b447f30 100755 --- a/Validation/RecoMuon/test/muonReleaseValidation.py +++ b/Validation/RecoMuon/test/muonReleaseValidation.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os import sys import fileinput diff --git a/Validation/RecoMuon/test/muonReleaseValidationFastSim.py b/Validation/RecoMuon/test/muonReleaseValidationFastSim.py index d5dbf59b173c2..2b333cd46a4d4 100755 --- a/Validation/RecoMuon/test/muonReleaseValidationFastSim.py +++ b/Validation/RecoMuon/test/muonReleaseValidationFastSim.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os import sys import fileinput diff --git a/Validation/RecoMuon/test/new_muonReleaseSummary.py b/Validation/RecoMuon/test/new_muonReleaseSummary.py index 3f86fafd8f61d..097b60e879652 100644 --- a/Validation/RecoMuon/test/new_muonReleaseSummary.py +++ b/Validation/RecoMuon/test/new_muonReleaseSummary.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os import shutil import sys diff --git a/Validation/RecoParticleFlow/test/datasets.py b/Validation/RecoParticleFlow/test/datasets.py index 31d56b9e8b804..306777fa70bd3 100644 --- a/Validation/RecoParticleFlow/test/datasets.py +++ b/Validation/RecoParticleFlow/test/datasets.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function #Hack to get ROOT to ignore command line arguments that we want #to pass to Python diff --git a/Validation/RecoTau/Tools/GetRecoTauVFromDQM_MC_cff.py b/Validation/RecoTau/Tools/GetRecoTauVFromDQM_MC_cff.py index 9e65453b8c8b6..eabae5a74b294 100644 --- a/Validation/RecoTau/Tools/GetRecoTauVFromDQM_MC_cff.py +++ b/Validation/RecoTau/Tools/GetRecoTauVFromDQM_MC_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import sys import ROOT diff --git a/Validation/RecoTau/Tools/MergeFilesAndCalculateEfficiencies_cfg.py b/Validation/RecoTau/Tools/MergeFilesAndCalculateEfficiencies_cfg.py index 30683d60597bb..4137deb64b0a9 100644 --- a/Validation/RecoTau/Tools/MergeFilesAndCalculateEfficiencies_cfg.py +++ b/Validation/RecoTau/Tools/MergeFilesAndCalculateEfficiencies_cfg.py @@ -12,7 +12,6 @@ Example: ./MergeFilesAndCalculateEfficiencies.py CMSSW_3_1_0_Signal.root CMSSW_3_1_0_ZTT_*.root """ -from __future__ import print_function import os import sys diff --git a/Validation/RecoTau/Tools/MultipleCompare.py b/Validation/RecoTau/Tools/MultipleCompare.py index 3aa0863d4b90d..daae632d592dc 100644 --- a/Validation/RecoTau/Tools/MultipleCompare.py +++ b/Validation/RecoTau/Tools/MultipleCompare.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import FWCore.ParameterSet.Config as cms import sys diff --git a/Validation/RecoTau/Tools/RefreshWebPage.py b/Validation/RecoTau/Tools/RefreshWebPage.py index b4f0e1bef50f2..3288f0b903991 100644 --- a/Validation/RecoTau/Tools/RefreshWebPage.py +++ b/Validation/RecoTau/Tools/RefreshWebPage.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import glob import sys diff --git a/Validation/RecoTau/Tools/SteerMultipleCompare.py b/Validation/RecoTau/Tools/SteerMultipleCompare.py index 1b7891467ea36..7c1ee70224487 100644 --- a/Validation/RecoTau/Tools/SteerMultipleCompare.py +++ b/Validation/RecoTau/Tools/SteerMultipleCompare.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import sys import os import re diff --git a/Validation/RecoTau/python/DBSApi_cff.py b/Validation/RecoTau/python/DBSApi_cff.py index a1015840ce31c..11741d578ef4e 100644 --- a/Validation/RecoTau/python/DBSApi_cff.py +++ b/Validation/RecoTau/python/DBSApi_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function def GetDbsInfo(toFind, requirements): "Interface with the DBS API to get the whatever you want of a requirements. ALWAYS RETURN A LIST OF STRINGS" from xml.dom.minidom import parseString diff --git a/Validation/RecoTau/python/DeltaR.py b/Validation/RecoTau/python/DeltaR.py index 3be11d9d2dc14..a9b92906b9ff1 100644 --- a/Validation/RecoTau/python/DeltaR.py +++ b/Validation/RecoTau/python/DeltaR.py @@ -1,4 +1,3 @@ -from __future__ import print_function #ROOTTOOLS import math import copy diff --git a/Validation/RecoTau/python/RecoTauValidation_cfi.py b/Validation/RecoTau/python/RecoTauValidation_cfi.py index f6521ca9f8386..a91b0392ce709 100644 --- a/Validation/RecoTau/python/RecoTauValidation_cfi.py +++ b/Validation/RecoTau/python/RecoTauValidation_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import Validation.RecoTau.ValidationUtils as Utils import copy diff --git a/Validation/RecoTau/python/ValidationOptions_cff.py b/Validation/RecoTau/python/ValidationOptions_cff.py index 022273e4469cb..6e9667072f30b 100644 --- a/Validation/RecoTau/python/ValidationOptions_cff.py +++ b/Validation/RecoTau/python/ValidationOptions_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import sys try: diff --git a/Validation/RecoTau/python/ValidationUtils.py b/Validation/RecoTau/python/ValidationUtils.py index d10d54c8bdba3..2ea4b8a61402c 100644 --- a/Validation/RecoTau/python/ValidationUtils.py +++ b/Validation/RecoTau/python/ValidationUtils.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import copy diff --git a/Validation/RecoTau/python/compare.py b/Validation/RecoTau/python/compare.py index f1b74f571a0ea..8a33632d728c2 100644 --- a/Validation/RecoTau/python/compare.py +++ b/Validation/RecoTau/python/compare.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from builtins import range from .officialStyle import officialStyle from array import array diff --git a/Validation/RecoTau/python/runTauDisplay.py b/Validation/RecoTau/python/runTauDisplay.py index 1349b05498965..0e078251d6cad 100644 --- a/Validation/RecoTau/python/runTauDisplay.py +++ b/Validation/RecoTau/python/runTauDisplay.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from builtins import range import ROOT, os, math, sys import numpy as num diff --git a/Validation/RecoTau/test/LXBatchValidation.py b/Validation/RecoTau/test/LXBatchValidation.py index f0d9e92cbc94a..e227218027d86 100755 --- a/Validation/RecoTau/test/LXBatchValidation.py +++ b/Validation/RecoTau/test/LXBatchValidation.py @@ -2,7 +2,6 @@ # Script to submit Tau Validation jobs to lxbatch # Author: Evan Friis evan.klose.friis@cern.ch -from __future__ import print_function from builtins import range import time import random diff --git a/Validation/RecoTau/test/RunValidation_VtXCutScan.py b/Validation/RecoTau/test/RunValidation_VtXCutScan.py index 0014c2d7025cd..511ffb4bb2cc3 100755 --- a/Validation/RecoTau/test/RunValidation_VtXCutScan.py +++ b/Validation/RecoTau/test/RunValidation_VtXCutScan.py @@ -1,4 +1,3 @@ -from __future__ import print_function #!/usr/bin/env cmsRun import shutil diff --git a/Validation/RecoTau/test/RunValidation_cfg.py b/Validation/RecoTau/test/RunValidation_cfg.py index fd145cc2f497c..a3bbe28fb7df5 100755 --- a/Validation/RecoTau/test/RunValidation_cfg.py +++ b/Validation/RecoTau/test/RunValidation_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function #!/usr/bin/env cmsRun import shutil diff --git a/Validation/RecoTrack/python/TrackValidation_cff.py b/Validation/RecoTrack/python/TrackValidation_cff.py index 268e83f743db2..37063ed169dbe 100644 --- a/Validation/RecoTrack/python/TrackValidation_cff.py +++ b/Validation/RecoTrack/python/TrackValidation_cff.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from SimTracker.TrackAssociatorProducers.trackAssociatorByChi2_cfi import * diff --git a/Validation/RecoTrack/python/customiseMTVForBPix123Holes.py b/Validation/RecoTrack/python/customiseMTVForBPix123Holes.py index d78a10d27ddc8..2cc3bb85c5a27 100644 --- a/Validation/RecoTrack/python/customiseMTVForBPix123Holes.py +++ b/Validation/RecoTrack/python/customiseMTVForBPix123Holes.py @@ -1,4 +1,3 @@ -from __future__ import print_function # This customise file provides an example (in the form of holes in # BPix L1-L2 and L3-L3) on how to select a subset of generalTracks # (e.g. by phi and eta) and setup various MTV instances for those diff --git a/Validation/RecoTrack/python/plotting/plotting.py b/Validation/RecoTrack/python/plotting/plotting.py index 7c053b0672b2b..b24de37cd7c8c 100644 --- a/Validation/RecoTrack/python/plotting/plotting.py +++ b/Validation/RecoTrack/python/plotting/plotting.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from builtins import range import os import sys diff --git a/Validation/RecoTrack/python/plotting/trackingPlots.py b/Validation/RecoTrack/python/plotting/trackingPlots.py index 1976a6eaa894a..7a8d790a481d1 100644 --- a/Validation/RecoTrack/python/plotting/trackingPlots.py +++ b/Validation/RecoTrack/python/plotting/trackingPlots.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import from builtins import range import os import copy diff --git a/Validation/RecoTrack/python/plotting/validation.py b/Validation/RecoTrack/python/plotting/validation.py index 94619af17a2e6..77d057e077962 100644 --- a/Validation/RecoTrack/python/plotting/validation.py +++ b/Validation/RecoTrack/python/plotting/validation.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import os import re import sys diff --git a/Validation/RecoTrack/scripts/diffTrackingNtuple.py b/Validation/RecoTrack/scripts/diffTrackingNtuple.py index aab8997e50fea..b66b4de87c109 100755 --- a/Validation/RecoTrack/scripts/diffTrackingNtuple.py +++ b/Validation/RecoTrack/scripts/diffTrackingNtuple.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import argparse import itertools import collections diff --git a/Validation/RecoTrack/scripts/harvestTrackValidationPlots.py b/Validation/RecoTrack/scripts/harvestTrackValidationPlots.py index 9a0936fc66047..23fbd9ea954dc 100755 --- a/Validation/RecoTrack/scripts/harvestTrackValidationPlots.py +++ b/Validation/RecoTrack/scripts/harvestTrackValidationPlots.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys,os,tempfile,shutil,subprocess,glob import argparse diff --git a/Validation/RecoTrack/scripts/makeTrackValidationPlots.py b/Validation/RecoTrack/scripts/makeTrackValidationPlots.py index c95298ee54b4c..18004355f9496 100755 --- a/Validation/RecoTrack/scripts/makeTrackValidationPlots.py +++ b/Validation/RecoTrack/scripts/makeTrackValidationPlots.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os import argparse diff --git a/Validation/RecoTrack/scripts/printTrackingNtuple.py b/Validation/RecoTrack/scripts/printTrackingNtuple.py index 8c5b477b35710..e0d3d7daed8ca 100755 --- a/Validation/RecoTrack/scripts/printTrackingNtuple.py +++ b/Validation/RecoTrack/scripts/printTrackingNtuple.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import argparse import Validation.RecoTrack.plotting.ntuple as ntuple diff --git a/Validation/RecoTrack/test/analyseDuplicateFake.py b/Validation/RecoTrack/test/analyseDuplicateFake.py index 98d9489261164..bfd441fd8f354 100755 --- a/Validation/RecoTrack/test/analyseDuplicateFake.py +++ b/Validation/RecoTrack/test/analyseDuplicateFake.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import ROOT from Validation.RecoTrack.plotting.ntuple import * diff --git a/Validation/RecoTrack/test/fakeAnalysis/analysis.py b/Validation/RecoTrack/test/fakeAnalysis/analysis.py index eb8e180630e7d..6b8a812b50433 100644 --- a/Validation/RecoTrack/test/fakeAnalysis/analysis.py +++ b/Validation/RecoTrack/test/fakeAnalysis/analysis.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import ROOT from array import array diff --git a/Validation/RecoTrack/test/fakeAnalysis/graphics.py b/Validation/RecoTrack/test/fakeAnalysis/graphics.py index 11f223ea2d7c4..8130c0515e236 100644 --- a/Validation/RecoTrack/test/fakeAnalysis/graphics.py +++ b/Validation/RecoTrack/test/fakeAnalysis/graphics.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import ROOT from array import array diff --git a/Validation/RecoTrack/test/fakeAnalysis/graphics_vertical.py b/Validation/RecoTrack/test/fakeAnalysis/graphics_vertical.py index ffd4582a34c44..8f34b71f5d139 100644 --- a/Validation/RecoTrack/test/fakeAnalysis/graphics_vertical.py +++ b/Validation/RecoTrack/test/fakeAnalysis/graphics_vertical.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import ROOT from array import array diff --git a/Validation/RecoTrack/test/publicPlots/plot.py b/Validation/RecoTrack/test/publicPlots/plot.py index aaece04b2f5dd..f11f627cc77cc 100755 --- a/Validation/RecoTrack/test/publicPlots/plot.py +++ b/Validation/RecoTrack/test/publicPlots/plot.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import copy import math diff --git a/Validation/RecoTrack/test/trackingNtupleExample.py b/Validation/RecoTrack/test/trackingNtupleExample.py index 75cd3625bee50..ac61c9a40937e 100755 --- a/Validation/RecoTrack/test/trackingNtupleExample.py +++ b/Validation/RecoTrack/test/trackingNtupleExample.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import ROOT from Validation.RecoTrack.plotting.ntuple import * diff --git a/Validation/RecoVertex/test/V0PerformanceValidation.py b/Validation/RecoVertex/test/V0PerformanceValidation.py index d700eae5feda0..3c6e210fbd05e 100644 --- a/Validation/RecoVertex/test/V0PerformanceValidation.py +++ b/Validation/RecoVertex/test/V0PerformanceValidation.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import os import sys import fileinput diff --git a/Validation/RecoVertex/test/makePlots.py b/Validation/RecoVertex/test/makePlots.py index 85c183285b15d..ee216c8c9cf87 100644 --- a/Validation/RecoVertex/test/makePlots.py +++ b/Validation/RecoVertex/test/makePlots.py @@ -1,4 +1,3 @@ -from __future__ import print_function from ROOT import gPad, gStyle, TCanvas import re From 8d027ccafffd7a15c0994390a805a5577adeb979 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:16:45 +0100 Subject: [PATCH 087/418] [ANALYSIS] py2/3 compatibility:drop use of __future__ --- DPGAnalysis/SiStripTools/test/MultiplicityMonitor_cfg.py | 1 - .../MuonAssociators/python/patMuonsWithTrigger_8E29_cff.py | 1 - MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_cff.py | 1 - PhysicsTools/FWLite/scripts/newFWLiteAna.py | 1 - PhysicsTools/Heppy/python/analyzers/core/Analyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/core/AutoHandle.py | 1 - PhysicsTools/Heppy/python/analyzers/core/EventSelector.py | 1 - PhysicsTools/Heppy/python/analyzers/core/ProvenanceAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/core/SkimAnalyzerCount.py | 1 - PhysicsTools/Heppy/python/analyzers/core/TreeAnalyzerNumpy.py | 1 - PhysicsTools/Heppy/python/analyzers/core/TriggerBitAnalyzer.py | 1 - .../Heppy/python/analyzers/core/TriggerMatchAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/examples/MetAnalyzer.py | 1 - .../Heppy/python/analyzers/examples/SimpleTreeAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/examples/TriggerAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/examples/ZEleEleAnalyzer.py | 1 - .../Heppy/python/analyzers/examples/ZJetsTreeAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/examples/ZMuMuAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/examples/ntuple.py | 1 - PhysicsTools/Heppy/python/analyzers/gen/GeneratorAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/objects/IsoTrackAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/objects/JetAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/objects/LeptonAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/objects/PhotonAnalyzer.py | 1 - PhysicsTools/Heppy/python/analyzers/objects/VertexAnalyzer.py | 1 - PhysicsTools/Heppy/python/loadlibs.py | 1 - PhysicsTools/Heppy/python/physicsobjects/Photon.py | 1 - PhysicsTools/Heppy/python/physicsutils/BTagSF.py | 1 - PhysicsTools/Heppy/python/physicsutils/BTagWeightCalculator.py | 1 - PhysicsTools/Heppy/python/physicsutils/EnergyCorrector.py | 1 - PhysicsTools/Heppy/python/physicsutils/JetReCalibrator.py | 1 - .../Heppy/python/physicsutils/QGLikelihoodCalculator.py | 1 - PhysicsTools/Heppy/python/physicsutils/TauDecayModes.py | 1 - PhysicsTools/Heppy/python/utils/cmsswPreprocessor.py | 1 - PhysicsTools/Heppy/python/utils/miniAodFiles.py | 1 - PhysicsTools/Heppy/python/utils/rltinfo.py | 1 - PhysicsTools/Heppy/scripts/cmsBatch.py | 1 - PhysicsTools/Heppy/scripts/cmsStageWithFailover.py | 1 - PhysicsTools/Heppy/scripts/heppy_report.py | 1 - PhysicsTools/Heppy/test/crab/heppy_crab_script.py | 1 - PhysicsTools/Heppy/test/example_autofill_multipleTrees.py | 1 - PhysicsTools/Heppy/test/simple_example_cfg.py | 1 - PhysicsTools/HeppyCore/python/analyzers/CMSTestAnalyzer.py | 1 - PhysicsTools/HeppyCore/python/analyzers/Printer.py | 1 - PhysicsTools/HeppyCore/python/framework/analyzer.py | 1 - PhysicsTools/HeppyCore/python/framework/chain_test.py | 1 - PhysicsTools/HeppyCore/python/framework/config.py | 2 -- PhysicsTools/HeppyCore/python/framework/config_test.py | 1 - PhysicsTools/HeppyCore/python/framework/eventsfwlite.py | 1 - PhysicsTools/HeppyCore/python/framework/eventstfile_test.py | 1 - PhysicsTools/HeppyCore/python/framework/heppy_loop.py | 1 - PhysicsTools/HeppyCore/python/framework/looper.py | 2 -- .../HeppyCore/python/framework/services/service_test.py | 1 - PhysicsTools/HeppyCore/python/framework/weight.py | 1 - PhysicsTools/HeppyCore/python/statistics/average_test.py | 1 - PhysicsTools/HeppyCore/python/statistics/counter_test.py | 1 - PhysicsTools/HeppyCore/python/statistics/tree_test.py | 1 - PhysicsTools/HeppyCore/python/statistics/value_test.py | 1 - PhysicsTools/HeppyCore/python/utils/addToDatasets.py | 1 - PhysicsTools/HeppyCore/python/utils/batchmanager.py | 2 -- PhysicsTools/HeppyCore/python/utils/castorBaseDir.py | 2 -- PhysicsTools/HeppyCore/python/utils/das.py | 1 - PhysicsTools/HeppyCore/python/utils/dataset.py | 2 -- PhysicsTools/HeppyCore/python/utils/datasetToSource.py | 1 - PhysicsTools/HeppyCore/python/utils/dataset_test.py | 1 - PhysicsTools/HeppyCore/python/utils/diclist_test.py | 1 - PhysicsTools/HeppyCore/python/utils/edmIntegrityCheck.py | 2 -- PhysicsTools/HeppyCore/python/utils/eostools.py | 1 - PhysicsTools/HeppyCore/python/utils/logger.py | 2 -- PhysicsTools/HeppyCore/python/utils/production_tasks.py | 2 -- PhysicsTools/HeppyCore/python/utils/testtree.py | 1 - PhysicsTools/HeppyCore/scripts/edmIntegrityCheck.py | 1 - PhysicsTools/HeppyCore/scripts/heppy_batch.py | 1 - PhysicsTools/HeppyCore/scripts/heppy_check.py | 1 - PhysicsTools/HeppyCore/scripts/heppy_hadd.py | 1 - PhysicsTools/JetMCAlgos/test/testttHFGenFilter.py | 1 - PhysicsTools/PatExamples/bin/PatBasicFWLiteAnalyzer.py | 1 - PhysicsTools/PythonAnalysis/examples/MCTruth.py | 1 - PhysicsTools/PythonAnalysis/examples/MCTruth2.py | 1 - PhysicsTools/PythonAnalysis/examples/interactiveExample.py | 1 - PhysicsTools/PythonAnalysis/python/ParticleDecayDrawer.py | 1 - PhysicsTools/PythonAnalysis/python/__init__.py | 1 - PhysicsTools/PythonAnalysis/python/cmscompleter.py | 2 -- PhysicsTools/PythonAnalysis/python/cmstools.py | 2 -- PhysicsTools/PythonAnalysis/python/diffProv.py | 1 - PhysicsTools/PythonAnalysis/python/rootplot/__init__.py | 1 - PhysicsTools/PythonAnalysis/python/rootplot/core.py | 2 -- PhysicsTools/PythonAnalysis/python/rootplot/rootinfo.py | 2 -- PhysicsTools/PythonAnalysis/python/rootplot/rootmath.py | 2 -- PhysicsTools/PythonAnalysis/python/rootplot/tree2hists.py | 1 - PhysicsTools/PythonAnalysis/python/rootplot/utilities.py | 1 - PhysicsTools/PythonAnalysis/test/test.py | 1 - PhysicsTools/PythonAnalysis/test/testNumExpr.py | 1 - PhysicsTools/PythonAnalysis/test/testPandas.py | 1 - PhysicsTools/PythonAnalysis/test/testUncertainties.py | 1 - PhysicsTools/PythonAnalysis/test/testXGBoost_and_sklearn.py | 1 - PhysicsTools/TagAndProbe/test/utilities/dumpPileup.py | 1 - TopQuarkAnalysis/Configuration/test/TestForTTGenEvents.py | 1 - TopQuarkAnalysis/Configuration/test/patRefSel_muJets_cfg.py | 1 - .../TopEventProducers/python/producers/TtDecaySelection_cfi.py | 1 - .../TopEventProducers/python/sequences/ttGenEventFilters_cff.py | 1 - .../python/stringResolutions_etEtaPhi_Fall11_cff.py | 1 - .../python/stringResolutions_etEtaPhi_Spring10_cff.py | 1 - .../python/stringResolutions_etEtaPhi_Summer11_cff.py | 1 - .../python/stringResolutions_etEtaPhi_cff.py | 1 - .../TopSkimming/python/TtFullyHadronicFilter_cfi.py | 1 - .../TopSkimming/python/TtFullyLeptonicFilter_cfi.py | 1 - TopQuarkAnalysis/TopSkimming/python/TtSemiLeptonicFilter_cfi.py | 1 - 108 files changed, 121 deletions(-) diff --git a/DPGAnalysis/SiStripTools/test/MultiplicityMonitor_cfg.py b/DPGAnalysis/SiStripTools/test/MultiplicityMonitor_cfg.py index 2ad8e34df7113..c9e238daf702b 100644 --- a/DPGAnalysis/SiStripTools/test/MultiplicityMonitor_cfg.py +++ b/DPGAnalysis/SiStripTools/test/MultiplicityMonitor_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_8E29_cff.py b/MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_8E29_cff.py index 6cb28818387f9..4486eb5646ed8 100644 --- a/MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_8E29_cff.py +++ b/MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_8E29_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function print("MuonAnalysis.MuonAssociators.patMuonsWithTrigger_8E29_cff is deprecated.\nUse use MuonAnalysis.MuonAssociators.patMuonsWithTrigger_cff instead.\n") from MuonAnalysis.MuonAssociators.patMuonsWithTrigger_cff import * diff --git a/MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_cff.py b/MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_cff.py index 6fa1cdefcb803..fad71d7c4826c 100644 --- a/MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_cff.py +++ b/MuonAnalysis/MuonAssociators/python/patMuonsWithTrigger_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ## __ __ _ ____ _ _____ __ __ diff --git a/PhysicsTools/FWLite/scripts/newFWLiteAna.py b/PhysicsTools/FWLite/scripts/newFWLiteAna.py index 3612b46d46a90..27a70553addf7 100755 --- a/PhysicsTools/FWLite/scripts/newFWLiteAna.py +++ b/PhysicsTools/FWLite/scripts/newFWLiteAna.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter import os import sys diff --git a/PhysicsTools/Heppy/python/analyzers/core/Analyzer.py b/PhysicsTools/Heppy/python/analyzers/core/Analyzer.py index 328d884a6270a..bebaddddcdd09 100644 --- a/PhysicsTools/Heppy/python/analyzers/core/Analyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/core/Analyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import logging diff --git a/PhysicsTools/Heppy/python/analyzers/core/AutoHandle.py b/PhysicsTools/Heppy/python/analyzers/core/AutoHandle.py index 02ec275ec0c19..05a5b853474cf 100644 --- a/PhysicsTools/Heppy/python/analyzers/core/AutoHandle.py +++ b/PhysicsTools/Heppy/python/analyzers/core/AutoHandle.py @@ -1,4 +1,3 @@ -from __future__ import print_function #ROOTTOOLS from DataFormats.FWLite import Events, Handle diff --git a/PhysicsTools/Heppy/python/analyzers/core/EventSelector.py b/PhysicsTools/Heppy/python/analyzers/core/EventSelector.py index 34fbece883d2e..419d1129ca044 100644 --- a/PhysicsTools/Heppy/python/analyzers/core/EventSelector.py +++ b/PhysicsTools/Heppy/python/analyzers/core/EventSelector.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.HeppyCore.framework.analyzer import Analyzer diff --git a/PhysicsTools/Heppy/python/analyzers/core/ProvenanceAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/core/ProvenanceAnalyzer.py index ab61f6b1bc819..68c0fd9a24a07 100644 --- a/PhysicsTools/Heppy/python/analyzers/core/ProvenanceAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/core/ProvenanceAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import itertools diff --git a/PhysicsTools/Heppy/python/analyzers/core/SkimAnalyzerCount.py b/PhysicsTools/Heppy/python/analyzers/core/SkimAnalyzerCount.py index f705c51665ca8..f43b635ad72ec 100644 --- a/PhysicsTools/Heppy/python/analyzers/core/SkimAnalyzerCount.py +++ b/PhysicsTools/Heppy/python/analyzers/core/SkimAnalyzerCount.py @@ -1,4 +1,3 @@ -from __future__ import print_function import itertools from PhysicsTools.Heppy.analyzers.core.Analyzer import Analyzer diff --git a/PhysicsTools/Heppy/python/analyzers/core/TreeAnalyzerNumpy.py b/PhysicsTools/Heppy/python/analyzers/core/TreeAnalyzerNumpy.py index 722044946e6c7..36318789aed17 100644 --- a/PhysicsTools/Heppy/python/analyzers/core/TreeAnalyzerNumpy.py +++ b/PhysicsTools/Heppy/python/analyzers/core/TreeAnalyzerNumpy.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.Heppy.analyzers.core.Analyzer import Analyzer from PhysicsTools.HeppyCore.statistics.tree import Tree as Tree from ROOT import TFile diff --git a/PhysicsTools/Heppy/python/analyzers/core/TriggerBitAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/core/TriggerBitAnalyzer.py index 5cbc62e741c10..88fada3786029 100644 --- a/PhysicsTools/Heppy/python/analyzers/core/TriggerBitAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/core/TriggerBitAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT from PhysicsTools.Heppy.analyzers.core.Analyzer import Analyzer diff --git a/PhysicsTools/Heppy/python/analyzers/core/TriggerMatchAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/core/TriggerMatchAnalyzer.py index f3f79e08e08dc..3bf49c5d5bf13 100644 --- a/PhysicsTools/Heppy/python/analyzers/core/TriggerMatchAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/core/TriggerMatchAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT from PhysicsTools.Heppy.analyzers.core.Analyzer import Analyzer diff --git a/PhysicsTools/Heppy/python/analyzers/examples/MetAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/examples/MetAnalyzer.py index fece5fd6ecde2..7e6b31228e895 100644 --- a/PhysicsTools/Heppy/python/analyzers/examples/MetAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/examples/MetAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function import copy from PhysicsTools.HeppyCore.framework.analyzer import Analyzer from PhysicsTools.Heppy.analyzers.AutoHandle import AutoHandle diff --git a/PhysicsTools/Heppy/python/analyzers/examples/SimpleTreeAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/examples/SimpleTreeAnalyzer.py index 9c44cfc3eec0c..5b162eba8d200 100644 --- a/PhysicsTools/Heppy/python/analyzers/examples/SimpleTreeAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/examples/SimpleTreeAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import from PhysicsTools.Heppy.analyzers.core.TreeAnalyzerNumpy import TreeAnalyzerNumpy from . import ntuple diff --git a/PhysicsTools/Heppy/python/analyzers/examples/TriggerAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/examples/TriggerAnalyzer.py index 71b9ac203379c..91d1e7b169f43 100644 --- a/PhysicsTools/Heppy/python/analyzers/examples/TriggerAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/examples/TriggerAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.HeppyCore.framework.analyzer import Analyzer from PhysicsTools.Heppy.analyzers.AutoHandle import AutoHandle from PhysicsTools.HeppyCore.statistics.counter import Counter diff --git a/PhysicsTools/Heppy/python/analyzers/examples/ZEleEleAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/examples/ZEleEleAnalyzer.py index ba449924928f2..f4ae8bda6dece 100644 --- a/PhysicsTools/Heppy/python/analyzers/examples/ZEleEleAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/examples/ZEleEleAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.Heppy.analyzers.DiLeptonAnalyzer import DiLeptonAnalyzer from PhysicsTools.Heppy.analyzers.AutoHandle import AutoHandle from PhysicsTools.Heppy.physicsobjects.DiObject import DiElectron diff --git a/PhysicsTools/Heppy/python/analyzers/examples/ZJetsTreeAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/examples/ZJetsTreeAnalyzer.py index e652aa3358a31..801e711dece79 100644 --- a/PhysicsTools/Heppy/python/analyzers/examples/ZJetsTreeAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/examples/ZJetsTreeAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import from PhysicsTools.Heppy.analyzers.core.TreeAnalyzerNumpy import TreeAnalyzerNumpy from . import ntuple diff --git a/PhysicsTools/Heppy/python/analyzers/examples/ZMuMuAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/examples/ZMuMuAnalyzer.py index c567c63c964cd..0e32296803421 100644 --- a/PhysicsTools/Heppy/python/analyzers/examples/ZMuMuAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/examples/ZMuMuAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.Heppy.analyzers.DiLeptonAnalyzer import DiLeptonAnalyzer from PhysicsTools.Heppy.analyzers.AutoHandle import AutoHandle from PhysicsTools.Heppy.physicsobjects.DiObject import DiMuon diff --git a/PhysicsTools/Heppy/python/analyzers/examples/ntuple.py b/PhysicsTools/Heppy/python/analyzers/examples/ntuple.py index 9b398d8717702..e28f57cdacb17 100644 --- a/PhysicsTools/Heppy/python/analyzers/examples/ntuple.py +++ b/PhysicsTools/Heppy/python/analyzers/examples/ntuple.py @@ -1,5 +1,4 @@ #!/bin/env python -from __future__ import print_function def var( tree, varName, type=float ): tree.var(varName, type) diff --git a/PhysicsTools/Heppy/python/analyzers/gen/GeneratorAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/gen/GeneratorAnalyzer.py index 64ff16a6f9798..6836a76506f33 100644 --- a/PhysicsTools/Heppy/python/analyzers/gen/GeneratorAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/gen/GeneratorAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range from PhysicsTools.Heppy.analyzers.core.Analyzer import Analyzer from PhysicsTools.Heppy.analyzers.core.AutoHandle import AutoHandle diff --git a/PhysicsTools/Heppy/python/analyzers/objects/IsoTrackAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/objects/IsoTrackAnalyzer.py index 9aef59928ed18..f79cc7dff61b1 100755 --- a/PhysicsTools/Heppy/python/analyzers/objects/IsoTrackAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/objects/IsoTrackAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function import operator import itertools import copy diff --git a/PhysicsTools/Heppy/python/analyzers/objects/JetAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/objects/JetAnalyzer.py index ca8c82ec25554..f2e360965acd1 100644 --- a/PhysicsTools/Heppy/python/analyzers/objects/JetAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/objects/JetAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import math, os from PhysicsTools.Heppy.analyzers.core.Analyzer import Analyzer diff --git a/PhysicsTools/Heppy/python/analyzers/objects/LeptonAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/objects/LeptonAnalyzer.py index 5560f7eca56f2..2e4fe7e6c37d2 100644 --- a/PhysicsTools/Heppy/python/analyzers/objects/LeptonAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/objects/LeptonAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range from PhysicsTools.Heppy.analyzers.core.Analyzer import Analyzer from PhysicsTools.Heppy.analyzers.core.AutoHandle import AutoHandle diff --git a/PhysicsTools/Heppy/python/analyzers/objects/PhotonAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/objects/PhotonAnalyzer.py index b00a7af7eb5d7..ee8691f1416e7 100644 --- a/PhysicsTools/Heppy/python/analyzers/objects/PhotonAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/objects/PhotonAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function import operator import itertools import copy diff --git a/PhysicsTools/Heppy/python/analyzers/objects/VertexAnalyzer.py b/PhysicsTools/Heppy/python/analyzers/objects/VertexAnalyzer.py index c7dbac7ad4526..416c9ba224c8e 100644 --- a/PhysicsTools/Heppy/python/analyzers/objects/VertexAnalyzer.py +++ b/PhysicsTools/Heppy/python/analyzers/objects/VertexAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function import itertools from PhysicsTools.Heppy.analyzers.core.VertexHistograms import VertexHistograms diff --git a/PhysicsTools/Heppy/python/loadlibs.py b/PhysicsTools/Heppy/python/loadlibs.py index ce42f92fb3787..cf3ed186bc18e 100644 --- a/PhysicsTools/Heppy/python/loadlibs.py +++ b/PhysicsTools/Heppy/python/loadlibs.py @@ -1,4 +1,3 @@ -from __future__ import print_function from ROOT import gROOT,gSystem def load_libs(): diff --git a/PhysicsTools/Heppy/python/physicsobjects/Photon.py b/PhysicsTools/Heppy/python/physicsobjects/Photon.py index 52dedba80e524..c28d6eabf8694 100644 --- a/PhysicsTools/Heppy/python/physicsobjects/Photon.py +++ b/PhysicsTools/Heppy/python/physicsobjects/Photon.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.Heppy.physicsobjects.PhysicsObject import * from math import exp import re diff --git a/PhysicsTools/Heppy/python/physicsutils/BTagSF.py b/PhysicsTools/Heppy/python/physicsutils/BTagSF.py index 0ad6fb33661b1..04ffd980cde3a 100644 --- a/PhysicsTools/Heppy/python/physicsutils/BTagSF.py +++ b/PhysicsTools/Heppy/python/physicsutils/BTagSF.py @@ -1,4 +1,3 @@ -from __future__ import print_function # importing the python binding to the C++ class from ROOT from ROOT import heppy diff --git a/PhysicsTools/Heppy/python/physicsutils/BTagWeightCalculator.py b/PhysicsTools/Heppy/python/physicsutils/BTagWeightCalculator.py index cd8067ce8b494..01193fbd9b1c8 100644 --- a/PhysicsTools/Heppy/python/physicsutils/BTagWeightCalculator.py +++ b/PhysicsTools/Heppy/python/physicsutils/BTagWeightCalculator.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT import numpy as np diff --git a/PhysicsTools/Heppy/python/physicsutils/EnergyCorrector.py b/PhysicsTools/Heppy/python/physicsutils/EnergyCorrector.py index 932006ffbbbfc..c76ab30acbeee 100644 --- a/PhysicsTools/Heppy/python/physicsutils/EnergyCorrector.py +++ b/PhysicsTools/Heppy/python/physicsutils/EnergyCorrector.py @@ -1,4 +1,3 @@ -from __future__ import print_function from ROOT import TH1F, TH2F, TFile diff --git a/PhysicsTools/Heppy/python/physicsutils/JetReCalibrator.py b/PhysicsTools/Heppy/python/physicsutils/JetReCalibrator.py index e2bb4911af36d..3332d2520fa42 100644 --- a/PhysicsTools/Heppy/python/physicsutils/JetReCalibrator.py +++ b/PhysicsTools/Heppy/python/physicsutils/JetReCalibrator.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT import os, types diff --git a/PhysicsTools/Heppy/python/physicsutils/QGLikelihoodCalculator.py b/PhysicsTools/Heppy/python/physicsutils/QGLikelihoodCalculator.py index 3adc2fab81510..3ee615905a56a 100644 --- a/PhysicsTools/Heppy/python/physicsutils/QGLikelihoodCalculator.py +++ b/PhysicsTools/Heppy/python/physicsutils/QGLikelihoodCalculator.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import ROOT import math diff --git a/PhysicsTools/Heppy/python/physicsutils/TauDecayModes.py b/PhysicsTools/Heppy/python/physicsutils/TauDecayModes.py index a443957c4b4f6..a8f60cfc534d7 100644 --- a/PhysicsTools/Heppy/python/physicsutils/TauDecayModes.py +++ b/PhysicsTools/Heppy/python/physicsutils/TauDecayModes.py @@ -1,4 +1,3 @@ -from __future__ import print_function class TauDecayModes( object ): diff --git a/PhysicsTools/Heppy/python/utils/cmsswPreprocessor.py b/PhysicsTools/Heppy/python/utils/cmsswPreprocessor.py index 9fa4287c1c30b..7db006b2824f8 100644 --- a/PhysicsTools/Heppy/python/utils/cmsswPreprocessor.py +++ b/PhysicsTools/Heppy/python/utils/cmsswPreprocessor.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import sys import re diff --git a/PhysicsTools/Heppy/python/utils/miniAodFiles.py b/PhysicsTools/Heppy/python/utils/miniAodFiles.py index ae86ac7033dfc..c8c268da203ef 100644 --- a/PhysicsTools/Heppy/python/utils/miniAodFiles.py +++ b/PhysicsTools/Heppy/python/utils/miniAodFiles.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.Heppy.utils.cmsswRelease import cmsswRelease, releaseNumber def miniAodFiles(): diff --git a/PhysicsTools/Heppy/python/utils/rltinfo.py b/PhysicsTools/Heppy/python/utils/rltinfo.py index 16c0da8719806..63b689061da29 100644 --- a/PhysicsTools/Heppy/python/utils/rltinfo.py +++ b/PhysicsTools/Heppy/python/utils/rltinfo.py @@ -1,4 +1,3 @@ -from __future__ import print_function from ROOT import TFile from PhysicsTools.HeppyCore.statistics.tree import Tree as Tree diff --git a/PhysicsTools/Heppy/scripts/cmsBatch.py b/PhysicsTools/Heppy/scripts/cmsBatch.py index 5e3151ef59ec9..44d407a333921 100755 --- a/PhysicsTools/Heppy/scripts/cmsBatch.py +++ b/PhysicsTools/Heppy/scripts/cmsBatch.py @@ -2,7 +2,6 @@ # Colin # batch mode for cmsRun, March 2009 -from __future__ import print_function from builtins import range import os, sys, imp, re, pprint, string, time,shutil,copy,pickle,math from optparse import OptionParser diff --git a/PhysicsTools/Heppy/scripts/cmsStageWithFailover.py b/PhysicsTools/Heppy/scripts/cmsStageWithFailover.py index 925654979dc5d..ca40114d141ce 100755 --- a/PhysicsTools/Heppy/scripts/cmsStageWithFailover.py +++ b/PhysicsTools/Heppy/scripts/cmsStageWithFailover.py @@ -2,7 +2,6 @@ #this script runs cmsStage multiple times in the case where it failes for some reason -from __future__ import print_function from builtins import range if __name__ == '__main__': diff --git a/PhysicsTools/Heppy/scripts/heppy_report.py b/PhysicsTools/Heppy/scripts/heppy_report.py index ff63e2e5df708..9e27cd05ac080 100755 --- a/PhysicsTools/Heppy/scripts/heppy_report.py +++ b/PhysicsTools/Heppy/scripts/heppy_report.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range from optparse import OptionParser import json diff --git a/PhysicsTools/Heppy/test/crab/heppy_crab_script.py b/PhysicsTools/Heppy/test/crab/heppy_crab_script.py index 906474c12894f..b57063b1ba011 100755 --- a/PhysicsTools/Heppy/test/crab/heppy_crab_script.py +++ b/PhysicsTools/Heppy/test/crab/heppy_crab_script.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function from builtins import range import os # probably easier to fetch everything without subdirs, but that's up to user preferences diff --git a/PhysicsTools/Heppy/test/example_autofill_multipleTrees.py b/PhysicsTools/Heppy/test/example_autofill_multipleTrees.py index 64152c8e72e46..906f202f01c20 100644 --- a/PhysicsTools/Heppy/test/example_autofill_multipleTrees.py +++ b/PhysicsTools/Heppy/test/example_autofill_multipleTrees.py @@ -3,7 +3,6 @@ # In particular here we create a second tree producer containing only information and then, # cloning it in two copies, we store it both in the same file as the main tree and in separate file -from __future__ import print_function import ROOT import PhysicsTools.HeppyCore.framework.config as cfg # avoid creating subdirs, in case subdirs are wanted the treeProducer should have different names (set name="blabla" in the config) diff --git a/PhysicsTools/Heppy/test/simple_example_cfg.py b/PhysicsTools/Heppy/test/simple_example_cfg.py index be8950881f5af..45671d0d34716 100644 --- a/PhysicsTools/Heppy/test/simple_example_cfg.py +++ b/PhysicsTools/Heppy/test/simple_example_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import PhysicsTools.HeppyCore.framework.config as cfg from PhysicsTools.Heppy.utils.miniAodFiles import miniAodFiles diff --git a/PhysicsTools/HeppyCore/python/analyzers/CMSTestAnalyzer.py b/PhysicsTools/HeppyCore/python/analyzers/CMSTestAnalyzer.py index 5ee4abd954cc1..983a1a0953921 100644 --- a/PhysicsTools/HeppyCore/python/analyzers/CMSTestAnalyzer.py +++ b/PhysicsTools/HeppyCore/python/analyzers/CMSTestAnalyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.HeppyCore.framework.analyzer import Analyzer class CMSTestAnalyzer(Analyzer): diff --git a/PhysicsTools/HeppyCore/python/analyzers/Printer.py b/PhysicsTools/HeppyCore/python/analyzers/Printer.py index 20b2fd77ef30c..32ff7951809ea 100644 --- a/PhysicsTools/HeppyCore/python/analyzers/Printer.py +++ b/PhysicsTools/HeppyCore/python/analyzers/Printer.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.HeppyCore.framework.analyzer import Analyzer class Printer(Analyzer): diff --git a/PhysicsTools/HeppyCore/python/framework/analyzer.py b/PhysicsTools/HeppyCore/python/framework/analyzer.py index c09eaf5936de0..ef89fefd9e322 100644 --- a/PhysicsTools/HeppyCore/python/framework/analyzer.py +++ b/PhysicsTools/HeppyCore/python/framework/analyzer.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Copyright (C) 2014 Colin Bernet # https://github.com/cbernet/heppy/blob/master/LICENSE diff --git a/PhysicsTools/HeppyCore/python/framework/chain_test.py b/PhysicsTools/HeppyCore/python/framework/chain_test.py index a059a9416a4ea..cfe16eaa699c3 100644 --- a/PhysicsTools/HeppyCore/python/framework/chain_test.py +++ b/PhysicsTools/HeppyCore/python/framework/chain_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest import os import shutil diff --git a/PhysicsTools/HeppyCore/python/framework/config.py b/PhysicsTools/HeppyCore/python/framework/config.py index a3663451cb89f..3f7259dae947a 100644 --- a/PhysicsTools/HeppyCore/python/framework/config.py +++ b/PhysicsTools/HeppyCore/python/framework/config.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import # Copyright (C) 2014 Colin Bernet # https://github.com/cbernet/heppy/blob/master/LICENSE diff --git a/PhysicsTools/HeppyCore/python/framework/config_test.py b/PhysicsTools/HeppyCore/python/framework/config_test.py index 8d665c30acd00..ee28df920c7d4 100644 --- a/PhysicsTools/HeppyCore/python/framework/config_test.py +++ b/PhysicsTools/HeppyCore/python/framework/config_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest import os import shutil diff --git a/PhysicsTools/HeppyCore/python/framework/eventsfwlite.py b/PhysicsTools/HeppyCore/python/framework/eventsfwlite.py index af1711609c22a..7fc79eecf6f83 100644 --- a/PhysicsTools/HeppyCore/python/framework/eventsfwlite.py +++ b/PhysicsTools/HeppyCore/python/framework/eventsfwlite.py @@ -1,4 +1,3 @@ -from __future__ import print_function from DataFormats.FWLite import Events as FWLiteEvents from ROOT import gROOT, gSystem, AutoLibraryLoader diff --git a/PhysicsTools/HeppyCore/python/framework/eventstfile_test.py b/PhysicsTools/HeppyCore/python/framework/eventstfile_test.py index fa969b5a2a2bc..cc2d7d8324535 100644 --- a/PhysicsTools/HeppyCore/python/framework/eventstfile_test.py +++ b/PhysicsTools/HeppyCore/python/framework/eventstfile_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest from .eventstfile import Events diff --git a/PhysicsTools/HeppyCore/python/framework/heppy_loop.py b/PhysicsTools/HeppyCore/python/framework/heppy_loop.py index 4e8bceae7ce20..1d82b63711471 100755 --- a/PhysicsTools/HeppyCore/python/framework/heppy_loop.py +++ b/PhysicsTools/HeppyCore/python/framework/heppy_loop.py @@ -2,7 +2,6 @@ # Copyright (C) 2014 Colin Bernet # https://github.com/cbernet/heppy/blob/master/LICENSE -from __future__ import print_function from builtins import range import os import shutil diff --git a/PhysicsTools/HeppyCore/python/framework/looper.py b/PhysicsTools/HeppyCore/python/framework/looper.py index d8415f4c3a590..3b4969f3bb67c 100644 --- a/PhysicsTools/HeppyCore/python/framework/looper.py +++ b/PhysicsTools/HeppyCore/python/framework/looper.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import # Copyright (C) 2014 Colin Bernet # https://github.com/cbernet/heppy/blob/master/LICENSE diff --git a/PhysicsTools/HeppyCore/python/framework/services/service_test.py b/PhysicsTools/HeppyCore/python/framework/services/service_test.py index 9c7943eb905dc..f0b5be0416f4a 100644 --- a/PhysicsTools/HeppyCore/python/framework/services/service_test.py +++ b/PhysicsTools/HeppyCore/python/framework/services/service_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest import os import shutil diff --git a/PhysicsTools/HeppyCore/python/framework/weight.py b/PhysicsTools/HeppyCore/python/framework/weight.py index 0bf53ba308317..64c700a176b9b 100644 --- a/PhysicsTools/HeppyCore/python/framework/weight.py +++ b/PhysicsTools/HeppyCore/python/framework/weight.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Copyright (C) 2014 Colin Bernet # https://github.com/cbernet/heppy/blob/master/LICENSE diff --git a/PhysicsTools/HeppyCore/python/statistics/average_test.py b/PhysicsTools/HeppyCore/python/statistics/average_test.py index 650591d67236f..d6721efced933 100644 --- a/PhysicsTools/HeppyCore/python/statistics/average_test.py +++ b/PhysicsTools/HeppyCore/python/statistics/average_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest from .average import Average diff --git a/PhysicsTools/HeppyCore/python/statistics/counter_test.py b/PhysicsTools/HeppyCore/python/statistics/counter_test.py index d2891db92f434..05b9f64f2ab9d 100644 --- a/PhysicsTools/HeppyCore/python/statistics/counter_test.py +++ b/PhysicsTools/HeppyCore/python/statistics/counter_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest import os import shutil diff --git a/PhysicsTools/HeppyCore/python/statistics/tree_test.py b/PhysicsTools/HeppyCore/python/statistics/tree_test.py index a6e1e69294a18..3b90a2ec1dc17 100644 --- a/PhysicsTools/HeppyCore/python/statistics/tree_test.py +++ b/PhysicsTools/HeppyCore/python/statistics/tree_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest from ROOT import TFile from .tree import Tree diff --git a/PhysicsTools/HeppyCore/python/statistics/value_test.py b/PhysicsTools/HeppyCore/python/statistics/value_test.py index 3a78914c729ec..f3f58f3c6e96b 100644 --- a/PhysicsTools/HeppyCore/python/statistics/value_test.py +++ b/PhysicsTools/HeppyCore/python/statistics/value_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest import math from .value import Value diff --git a/PhysicsTools/HeppyCore/python/utils/addToDatasets.py b/PhysicsTools/HeppyCore/python/utils/addToDatasets.py index 24b7d0837f293..7e725f18d5295 100644 --- a/PhysicsTools/HeppyCore/python/utils/addToDatasets.py +++ b/PhysicsTools/HeppyCore/python/utils/addToDatasets.py @@ -2,7 +2,6 @@ # Colin # additional layer, on top of cmsBatch.py -from __future__ import absolute_import import os from .castorBaseDir import getUserAndArea diff --git a/PhysicsTools/HeppyCore/python/utils/batchmanager.py b/PhysicsTools/HeppyCore/python/utils/batchmanager.py index 03dc86ff4a0fc..418984b7ada33 100644 --- a/PhysicsTools/HeppyCore/python/utils/batchmanager.py +++ b/PhysicsTools/HeppyCore/python/utils/batchmanager.py @@ -1,7 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function -from __future__ import absolute_import from datetime import datetime from optparse import OptionParser diff --git a/PhysicsTools/HeppyCore/python/utils/castorBaseDir.py b/PhysicsTools/HeppyCore/python/utils/castorBaseDir.py index cb17990a7167d..eca6c161e2a3e 100755 --- a/PhysicsTools/HeppyCore/python/utils/castorBaseDir.py +++ b/PhysicsTools/HeppyCore/python/utils/castorBaseDir.py @@ -1,6 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function -from __future__ import absolute_import import os, sys from . import eostools as castortools diff --git a/PhysicsTools/HeppyCore/python/utils/das.py b/PhysicsTools/HeppyCore/python/utils/das.py index f59cb70d40a31..b963c294619ab 100644 --- a/PhysicsTools/HeppyCore/python/utils/das.py +++ b/PhysicsTools/HeppyCore/python/utils/das.py @@ -4,7 +4,6 @@ """ DAS command line tool """ -from __future__ import print_function __author__ = "Valentin Kuznetsov" import sys diff --git a/PhysicsTools/HeppyCore/python/utils/dataset.py b/PhysicsTools/HeppyCore/python/utils/dataset.py index 2fabf260cad42..317f6d1e16112 100644 --- a/PhysicsTools/HeppyCore/python/utils/dataset.py +++ b/PhysicsTools/HeppyCore/python/utils/dataset.py @@ -1,7 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function -from __future__ import absolute_import from builtins import range import os import pprint diff --git a/PhysicsTools/HeppyCore/python/utils/datasetToSource.py b/PhysicsTools/HeppyCore/python/utils/datasetToSource.py index 4740178c0a126..923c8bc0276e6 100644 --- a/PhysicsTools/HeppyCore/python/utils/datasetToSource.py +++ b/PhysicsTools/HeppyCore/python/utils/datasetToSource.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import os from .dataset import Dataset, CMSDataset, LocalDataset, createDataset, PrivateDataset, createMyDataset diff --git a/PhysicsTools/HeppyCore/python/utils/dataset_test.py b/PhysicsTools/HeppyCore/python/utils/dataset_test.py index 1ceec0aa34ce7..5e28e1d0bbdc6 100644 --- a/PhysicsTools/HeppyCore/python/utils/dataset_test.py +++ b/PhysicsTools/HeppyCore/python/utils/dataset_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import from builtins import range from .dataset import * diff --git a/PhysicsTools/HeppyCore/python/utils/diclist_test.py b/PhysicsTools/HeppyCore/python/utils/diclist_test.py index 2e64f03859861..f3ff4849d6180 100644 --- a/PhysicsTools/HeppyCore/python/utils/diclist_test.py +++ b/PhysicsTools/HeppyCore/python/utils/diclist_test.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import unittest from .diclist import diclist diff --git a/PhysicsTools/HeppyCore/python/utils/edmIntegrityCheck.py b/PhysicsTools/HeppyCore/python/utils/edmIntegrityCheck.py index 9f231f5497254..eb29e7ba6d96d 100644 --- a/PhysicsTools/HeppyCore/python/utils/edmIntegrityCheck.py +++ b/PhysicsTools/HeppyCore/python/utils/edmIntegrityCheck.py @@ -2,8 +2,6 @@ """ Classes to check that a set of ROOT files are OK and publish a report """ -from __future__ import print_function -from __future__ import absolute_import from builtins import range import datetime, fnmatch, json, os, shutil, sys, tempfile, time diff --git a/PhysicsTools/HeppyCore/python/utils/eostools.py b/PhysicsTools/HeppyCore/python/utils/eostools.py index dbe1e9528a905..6f93c259f5f2e 100644 --- a/PhysicsTools/HeppyCore/python/utils/eostools.py +++ b/PhysicsTools/HeppyCore/python/utils/eostools.py @@ -2,7 +2,6 @@ """ A module to manipulate files on EOS or on the local file system. Intended to have the same interface as castortools.py. """ -from __future__ import print_function import sys import os import re diff --git a/PhysicsTools/HeppyCore/python/utils/logger.py b/PhysicsTools/HeppyCore/python/utils/logger.py index f4b75ca3d2bda..dfb979ef6a5b0 100644 --- a/PhysicsTools/HeppyCore/python/utils/logger.py +++ b/PhysicsTools/HeppyCore/python/utils/logger.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from optparse import OptionParser import sys,os, re, subprocess, datetime diff --git a/PhysicsTools/HeppyCore/python/utils/production_tasks.py b/PhysicsTools/HeppyCore/python/utils/production_tasks.py index 1cb348fa2b92b..0a396db47c48f 100644 --- a/PhysicsTools/HeppyCore/python/utils/production_tasks.py +++ b/PhysicsTools/HeppyCore/python/utils/production_tasks.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import from builtins import range import copy, datetime, inspect, fnmatch, os, re, subprocess, sys, tempfile, time diff --git a/PhysicsTools/HeppyCore/python/utils/testtree.py b/PhysicsTools/HeppyCore/python/utils/testtree.py index 4b4bc2164a9eb..f58d67606af4c 100644 --- a/PhysicsTools/HeppyCore/python/utils/testtree.py +++ b/PhysicsTools/HeppyCore/python/utils/testtree.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range from ROOT import TFile from PhysicsTools.HeppyCore.statistics.tree import Tree diff --git a/PhysicsTools/HeppyCore/scripts/edmIntegrityCheck.py b/PhysicsTools/HeppyCore/scripts/edmIntegrityCheck.py index 28f7765cf5810..9d7c422cbd7b5 100755 --- a/PhysicsTools/HeppyCore/scripts/edmIntegrityCheck.py +++ b/PhysicsTools/HeppyCore/scripts/edmIntegrityCheck.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from PhysicsTools.HeppyCore.utils.edmIntegrityCheck import PublishToFileSystem, IntegrityCheck import das diff --git a/PhysicsTools/HeppyCore/scripts/heppy_batch.py b/PhysicsTools/HeppyCore/scripts/heppy_batch.py index 93c8dc51d0fac..1c65e9c8d90ee 100755 --- a/PhysicsTools/HeppyCore/scripts/heppy_batch.py +++ b/PhysicsTools/HeppyCore/scripts/heppy_batch.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import sys import imp diff --git a/PhysicsTools/HeppyCore/scripts/heppy_check.py b/PhysicsTools/HeppyCore/scripts/heppy_check.py index 66d4fad81a54f..6323b88ffc9f9 100755 --- a/PhysicsTools/HeppyCore/scripts/heppy_check.py +++ b/PhysicsTools/HeppyCore/scripts/heppy_check.py @@ -2,7 +2,6 @@ # Copyright (C) 2014 Colin Bernet # https://github.com/cbernet/heppy/blob/master/LICENSE -from __future__ import print_function import sys import re import os diff --git a/PhysicsTools/HeppyCore/scripts/heppy_hadd.py b/PhysicsTools/HeppyCore/scripts/heppy_hadd.py index faf2ef406f954..374a3c7658dfb 100755 --- a/PhysicsTools/HeppyCore/scripts/heppy_hadd.py +++ b/PhysicsTools/HeppyCore/scripts/heppy_hadd.py @@ -2,7 +2,6 @@ # Copyright (C) 2014 Colin Bernet # https://github.com/cbernet/heppy/blob/master/LICENSE -from __future__ import print_function import os import pprint import pickle diff --git a/PhysicsTools/JetMCAlgos/test/testttHFGenFilter.py b/PhysicsTools/JetMCAlgos/test/testttHFGenFilter.py index 10b1083d78d2d..b1ba750949bd7 100644 --- a/PhysicsTools/JetMCAlgos/test/testttHFGenFilter.py +++ b/PhysicsTools/JetMCAlgos/test/testttHFGenFilter.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from FWCore.ParameterSet.VarParsing import VarParsing from PhysicsTools.PatAlgos.tools.helpers import getPatAlgosToolsTask diff --git a/PhysicsTools/PatExamples/bin/PatBasicFWLiteAnalyzer.py b/PhysicsTools/PatExamples/bin/PatBasicFWLiteAnalyzer.py index ef061f19eefb1..fb34feedf6225 100644 --- a/PhysicsTools/PatExamples/bin/PatBasicFWLiteAnalyzer.py +++ b/PhysicsTools/PatExamples/bin/PatBasicFWLiteAnalyzer.py @@ -1,6 +1,5 @@ #! /usr/bin/env python -from __future__ import print_function import ROOT import sys from DataFormats.FWLite import Events, Handle diff --git a/PhysicsTools/PythonAnalysis/examples/MCTruth.py b/PhysicsTools/PythonAnalysis/examples/MCTruth.py index af829121c660b..4fed072349463 100644 --- a/PhysicsTools/PythonAnalysis/examples/MCTruth.py +++ b/PhysicsTools/PythonAnalysis/examples/MCTruth.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.PythonAnalysis import * import ROOT from ROOT import gSystem, TFile diff --git a/PhysicsTools/PythonAnalysis/examples/MCTruth2.py b/PhysicsTools/PythonAnalysis/examples/MCTruth2.py index bae9042e8e728..e0375b86d786d 100644 --- a/PhysicsTools/PythonAnalysis/examples/MCTruth2.py +++ b/PhysicsTools/PythonAnalysis/examples/MCTruth2.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.PythonAnalysis import * from ROOT import gSystem diff --git a/PhysicsTools/PythonAnalysis/examples/interactiveExample.py b/PhysicsTools/PythonAnalysis/examples/interactiveExample.py index 39bcc5bdee722..add902a27ba45 100644 --- a/PhysicsTools/PythonAnalysis/examples/interactiveExample.py +++ b/PhysicsTools/PythonAnalysis/examples/interactiveExample.py @@ -1,4 +1,3 @@ -from __future__ import print_function # has to be called with python -i interactiveExample.py from PhysicsTools.PythonAnalysis import * diff --git a/PhysicsTools/PythonAnalysis/python/ParticleDecayDrawer.py b/PhysicsTools/PythonAnalysis/python/ParticleDecayDrawer.py index b49343b06757f..e21e50d92ea40 100644 --- a/PhysicsTools/PythonAnalysis/python/ParticleDecayDrawer.py +++ b/PhysicsTools/PythonAnalysis/python/ParticleDecayDrawer.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Benedikt Hegner, DESY # benedikt.hegner@cern.ch # diff --git a/PhysicsTools/PythonAnalysis/python/__init__.py b/PhysicsTools/PythonAnalysis/python/__init__.py index 7b123ce45734f..2d9ee47e3025f 100644 --- a/PhysicsTools/PythonAnalysis/python/__init__.py +++ b/PhysicsTools/PythonAnalysis/python/__init__.py @@ -1,2 +1 @@ -from __future__ import absolute_import from .cmstools import * diff --git a/PhysicsTools/PythonAnalysis/python/cmscompleter.py b/PhysicsTools/PythonAnalysis/python/cmscompleter.py index 2b6a111d850a6..6577b0a88cbfe 100644 --- a/PhysicsTools/PythonAnalysis/python/cmscompleter.py +++ b/PhysicsTools/PythonAnalysis/python/cmscompleter.py @@ -5,8 +5,6 @@ benedikt.hegner@cern.ch """ -from __future__ import absolute_import -from __future__ import print_function # TODO: sometimes results are doubled. clean global_matches list! import readline diff --git a/PhysicsTools/PythonAnalysis/python/cmstools.py b/PhysicsTools/PythonAnalysis/python/cmstools.py index f37da3a0925b6..4bba8004cf710 100644 --- a/PhysicsTools/PythonAnalysis/python/cmstools.py +++ b/PhysicsTools/PythonAnalysis/python/cmstools.py @@ -3,8 +3,6 @@ benedikt.hegner@cern.ch """ -from __future__ import absolute_import -from __future__ import print_function from builtins import range import re import ROOT diff --git a/PhysicsTools/PythonAnalysis/python/diffProv.py b/PhysicsTools/PythonAnalysis/python/diffProv.py index 582544bc2dec6..aa9ff3fbad085 100644 --- a/PhysicsTools/PythonAnalysis/python/diffProv.py +++ b/PhysicsTools/PythonAnalysis/python/diffProv.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range class difference : diff --git a/PhysicsTools/PythonAnalysis/python/rootplot/__init__.py b/PhysicsTools/PythonAnalysis/python/rootplot/__init__.py index a061c6fa2f0c2..2bf53e0b795c6 100644 --- a/PhysicsTools/PythonAnalysis/python/rootplot/__init__.py +++ b/PhysicsTools/PythonAnalysis/python/rootplot/__init__.py @@ -1,3 +1,2 @@ -from __future__ import absolute_import from .core import rootplot, rootplotmpl, plot, plotmpl from .version import __version__ diff --git a/PhysicsTools/PythonAnalysis/python/rootplot/core.py b/PhysicsTools/PythonAnalysis/python/rootplot/core.py index 483f5865d6a63..6a91cbf687c11 100644 --- a/PhysicsTools/PythonAnalysis/python/rootplot/core.py +++ b/PhysicsTools/PythonAnalysis/python/rootplot/core.py @@ -1,8 +1,6 @@ """ An API and a CLI for quickly building complex figures. """ -from __future__ import absolute_import -from __future__ import print_function from builtins import range __license__ = '''\ diff --git a/PhysicsTools/PythonAnalysis/python/rootplot/rootinfo.py b/PhysicsTools/PythonAnalysis/python/rootplot/rootinfo.py index 12483ff6fbffd..c56528d3148be 100644 --- a/PhysicsTools/PythonAnalysis/python/rootplot/rootinfo.py +++ b/PhysicsTools/PythonAnalysis/python/rootplot/rootinfo.py @@ -1,8 +1,6 @@ """ Print information about objects in a ROOT file. """ -from __future__ import absolute_import -from __future__ import print_function from builtins import range from .version import __version__ diff --git a/PhysicsTools/PythonAnalysis/python/rootplot/rootmath.py b/PhysicsTools/PythonAnalysis/python/rootplot/rootmath.py index 80fdb4b1265f9..09c1ba694356b 100644 --- a/PhysicsTools/PythonAnalysis/python/rootplot/rootmath.py +++ b/PhysicsTools/PythonAnalysis/python/rootplot/rootmath.py @@ -1,8 +1,6 @@ """ rootmath description """ -from __future__ import absolute_import -from __future__ import print_function from builtins import range __license__ = '''\ diff --git a/PhysicsTools/PythonAnalysis/python/rootplot/tree2hists.py b/PhysicsTools/PythonAnalysis/python/rootplot/tree2hists.py index d6cf8bed637f0..b66fba285a488 100644 --- a/PhysicsTools/PythonAnalysis/python/rootplot/tree2hists.py +++ b/PhysicsTools/PythonAnalysis/python/rootplot/tree2hists.py @@ -4,7 +4,6 @@ Options are specified in the given configuration file. """ -from __future__ import print_function # Create configuration file: # tree2hists.py diff --git a/PhysicsTools/PythonAnalysis/python/rootplot/utilities.py b/PhysicsTools/PythonAnalysis/python/rootplot/utilities.py index 6ba4368b11930..bfa6021f16da9 100644 --- a/PhysicsTools/PythonAnalysis/python/rootplot/utilities.py +++ b/PhysicsTools/PythonAnalysis/python/rootplot/utilities.py @@ -1,7 +1,6 @@ """ Utilities for rootplot including histogram classes. """ -from __future__ import print_function from builtins import range __license__ = '''\ diff --git a/PhysicsTools/PythonAnalysis/test/test.py b/PhysicsTools/PythonAnalysis/test/test.py index 27e742816d541..6196f59c2b9db 100755 --- a/PhysicsTools/PythonAnalysis/test/test.py +++ b/PhysicsTools/PythonAnalysis/test/test.py @@ -1,4 +1,3 @@ -from __future__ import print_function from readProv import * from diffProv import * import unittest diff --git a/PhysicsTools/PythonAnalysis/test/testNumExpr.py b/PhysicsTools/PythonAnalysis/test/testNumExpr.py index f68854063d670..9008bc2cdbd1d 100755 --- a/PhysicsTools/PythonAnalysis/test/testNumExpr.py +++ b/PhysicsTools/PythonAnalysis/test/testNumExpr.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 #https://github.com/pydata/numexpr/wiki/Numexpr-Users-Guide -from __future__ import print_function import numpy as np import numexpr as ne a = np.arange(10) diff --git a/PhysicsTools/PythonAnalysis/test/testPandas.py b/PhysicsTools/PythonAnalysis/test/testPandas.py index 49e7b0a40fb56..2c7943342542b 100755 --- a/PhysicsTools/PythonAnalysis/test/testPandas.py +++ b/PhysicsTools/PythonAnalysis/test/testPandas.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as pyplot diff --git a/PhysicsTools/PythonAnalysis/test/testUncertainties.py b/PhysicsTools/PythonAnalysis/test/testUncertainties.py index ccd510bc7c22b..c4d41e60f0632 100755 --- a/PhysicsTools/PythonAnalysis/test/testUncertainties.py +++ b/PhysicsTools/PythonAnalysis/test/testUncertainties.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 #example taken from https://pypi.python.org/pypi/uncertainties/3.0.1 -from __future__ import print_function from uncertainties import ufloat x = ufloat(2, 0.25) print(x) diff --git a/PhysicsTools/PythonAnalysis/test/testXGBoost_and_sklearn.py b/PhysicsTools/PythonAnalysis/test/testXGBoost_and_sklearn.py index d4d14dbf0d170..4ccbce069e4c1 100755 --- a/PhysicsTools/PythonAnalysis/test/testXGBoost_and_sklearn.py +++ b/PhysicsTools/PythonAnalysis/test/testXGBoost_and_sklearn.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 # from https://gist.github.com/IevaZarina/ef63197e089169a9ea9f3109058a9679 -from __future__ import print_function import numpy as np import xgboost as xgb from sklearn import datasets diff --git a/PhysicsTools/TagAndProbe/test/utilities/dumpPileup.py b/PhysicsTools/TagAndProbe/test/utilities/dumpPileup.py index c545c9d6b1d17..99a60e0400b27 100644 --- a/PhysicsTools/TagAndProbe/test/utilities/dumpPileup.py +++ b/PhysicsTools/TagAndProbe/test/utilities/dumpPileup.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function from builtins import range import sys import ROOT diff --git a/TopQuarkAnalysis/Configuration/test/TestForTTGenEvents.py b/TopQuarkAnalysis/Configuration/test/TestForTTGenEvents.py index ed2c3344d6c7f..4a720b120ed3b 100644 --- a/TopQuarkAnalysis/Configuration/test/TestForTTGenEvents.py +++ b/TopQuarkAnalysis/Configuration/test/TestForTTGenEvents.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import sys diff --git a/TopQuarkAnalysis/Configuration/test/patRefSel_muJets_cfg.py b/TopQuarkAnalysis/Configuration/test/patRefSel_muJets_cfg.py index 7ad4d5c8dcc66..a0bf9c6f1507d 100644 --- a/TopQuarkAnalysis/Configuration/test/patRefSel_muJets_cfg.py +++ b/TopQuarkAnalysis/Configuration/test/patRefSel_muJets_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # As of 1 Feb 2017: # This configuration appears to be already broken in more # than one way. It fails to even run only under python. diff --git a/TopQuarkAnalysis/TopEventProducers/python/producers/TtDecaySelection_cfi.py b/TopQuarkAnalysis/TopEventProducers/python/producers/TtDecaySelection_cfi.py index 315384c3e4f22..50a6cfbb13f26 100644 --- a/TopQuarkAnalysis/TopEventProducers/python/producers/TtDecaySelection_cfi.py +++ b/TopQuarkAnalysis/TopEventProducers/python/producers/TtDecaySelection_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function print("*** Warning: TopQuarkAnalysis/TopEventProducers/python/producers/TtDecaySelection_cfi.py will be deprecated") print("*** Please use TopQuarkAnalysis/TopSkimming/python/TtDecayChannelFilter_cfi.py instead") print("*** (you can still use 'genEvent' instead of 'genParticles' as input)") diff --git a/TopQuarkAnalysis/TopEventProducers/python/sequences/ttGenEventFilters_cff.py b/TopQuarkAnalysis/TopEventProducers/python/sequences/ttGenEventFilters_cff.py index 499c6d05f2a16..c99e766a735aa 100644 --- a/TopQuarkAnalysis/TopEventProducers/python/sequences/ttGenEventFilters_cff.py +++ b/TopQuarkAnalysis/TopEventProducers/python/sequences/ttGenEventFilters_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function print("*** Warning: TopQuarkAnalysis/TopEventProducers/python/sequences/ttGenEventFilters_cff.py will be deprecated") print("*** Please use TopQuarkAnalysis/TopSkimming/python/ttDecayChannelFilters_cff.py instead") print("*** (you can still use 'genEvent' instead of 'genParticles' as input)") diff --git a/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Fall11_cff.py b/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Fall11_cff.py index 53f9b988a175c..ae23282ea5363 100644 --- a/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Fall11_cff.py +++ b/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Fall11_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.recoLayer0.stringResolutionProvider_cfi import * diff --git a/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Spring10_cff.py b/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Spring10_cff.py index 4917d9e82236c..47d6e76a3fcea 100644 --- a/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Spring10_cff.py +++ b/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Spring10_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.recoLayer0.stringResolutionProvider_cfi import * diff --git a/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Summer11_cff.py b/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Summer11_cff.py index 02309a27632d7..342068ee2e540 100644 --- a/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Summer11_cff.py +++ b/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_Summer11_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.recoLayer0.stringResolutionProvider_cfi import * diff --git a/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_cff.py b/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_cff.py index 96b69ade57795..3a54a449d5d3b 100644 --- a/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_cff.py +++ b/TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function print("*** WARNING: The file TopQuarkAnalysis/TopObjectResolutions/python/stringResolutions_etEtaPhi_cff.py is outdated.") print("*** Please migrate to a more recent one (possibly found in the same directory).") diff --git a/TopQuarkAnalysis/TopSkimming/python/TtFullyHadronicFilter_cfi.py b/TopQuarkAnalysis/TopSkimming/python/TtFullyHadronicFilter_cfi.py index e63af98dfd1e5..e547e3c67344a 100644 --- a/TopQuarkAnalysis/TopSkimming/python/TtFullyHadronicFilter_cfi.py +++ b/TopQuarkAnalysis/TopSkimming/python/TtFullyHadronicFilter_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function print("*** Warning: TopQuarkAnalysis/TopSkimming/python/TtFullyHadronicFilter_cfi.py will be deprecated") print("*** Please use TopQuarkAnalysis/TopSkimming/python/TtDecayChannelFilter_cfi.py or") print("*** TopQuarkAnalysis/TopSkimming/python/ttDecayChannelFilter_cff.py instead") diff --git a/TopQuarkAnalysis/TopSkimming/python/TtFullyLeptonicFilter_cfi.py b/TopQuarkAnalysis/TopSkimming/python/TtFullyLeptonicFilter_cfi.py index 5f01118cffeed..6cdba727f0203 100644 --- a/TopQuarkAnalysis/TopSkimming/python/TtFullyLeptonicFilter_cfi.py +++ b/TopQuarkAnalysis/TopSkimming/python/TtFullyLeptonicFilter_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function print("*** Warning: TopQuarkAnalysis/TopSkimming/python/TtFullyLeptonicFilter_cfi.py will be deprecated") print("*** Please use TopQuarkAnalysis/TopSkimming/python/TtDecayChannelFilter_cfi.py or") print("*** TopQuarkAnalysis/TopSkimming/python/ttDecayChannelFilter_cff.py instead") diff --git a/TopQuarkAnalysis/TopSkimming/python/TtSemiLeptonicFilter_cfi.py b/TopQuarkAnalysis/TopSkimming/python/TtSemiLeptonicFilter_cfi.py index 5cef56ed3048f..34261dd65eaf6 100644 --- a/TopQuarkAnalysis/TopSkimming/python/TtSemiLeptonicFilter_cfi.py +++ b/TopQuarkAnalysis/TopSkimming/python/TtSemiLeptonicFilter_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function print("*** Warning: TopQuarkAnalysis/TopSkimming/python/TtSemiLeptonicFilter_cfi.py will be deprecated") print("*** Please use TopQuarkAnalysis/TopSkimming/python/TtDecayChannelFilter_cfi.py or") print("*** TopQuarkAnalysis/TopSkimming/python/ttDecayChannelFilter_cff.py instead") From 4759e534d2c66a5c7c158a4501b3f619a6c226cb Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:16:55 +0100 Subject: [PATCH 088/418] [CORE] py2/3 compatibility:drop use of __future__ --- DataFormats/FWLite/test/chainEvent_python.py | 1 - DataFormats/FWLite/test/pyroot_multichain.py | 1 - Documentation/DataFormats/python/dataformats.py | 1 - .../ReferenceManualScripts/python/MainPageGenerator.py | 2 -- Documentation/ReferenceManualScripts/python/TableParser.py | 2 -- FWCore/Concurrency/scripts/edmStreamStallGrapher.py | 1 - FWCore/Framework/test/transition_test_cfg.py | 1 - FWCore/Integration/python/allowed_cff.py | 1 - FWCore/Integration/python/forbidden_cff.py | 1 - FWCore/MessageLogger/scripts/edmFjrDump | 1 - FWCore/MessageLogger/scripts/edmMLParser | 1 - FWCore/Modules/python/customiseCheckEventSetup.py | 1 - FWCore/ParameterSet/examples/varParsingExample.py | 1 - FWCore/ParameterSet/python/Config.py | 2 -- FWCore/ParameterSet/python/MassReplace.py | 1 - FWCore/ParameterSet/python/Mixins.py | 1 - FWCore/ParameterSet/python/Modules.py | 1 - FWCore/ParameterSet/python/OrderedSet.py | 1 - FWCore/ParameterSet/python/SequenceTypes.py | 1 - FWCore/ParameterSet/python/SequenceVisitors.py | 1 - FWCore/ParameterSet/python/TreeCrawler.py | 1 - FWCore/ParameterSet/python/Types.py | 1 - FWCore/ParameterSet/python/VarParsing.py | 1 - FWCore/ParameterSet/python/test/MessWithGeometry_cfg.py | 1 - FWCore/ParameterSet/scripts/edmConfigIncludeChecker | 1 - FWCore/ParameterSet/test/cmsconfig.py | 1 - FWCore/PythonUtilities/python/XML2Python.py | 1 - FWCore/PythonUtilities/scripts/interactivePythonTest.py | 1 - FWCore/Services/scripts/edmTracerCompactLogViewer.py | 1 - FWCore/Services/scripts/edmTracerLogToSimpleConfig.py | 1 - FWCore/Skeletons/python/cms.py | 1 - FWCore/Skeletons/python/main.py | 1 - FWCore/Skeletons/python/pkg.py | 1 - FWCore/Skeletons/python/utils.py | 1 - FWCore/Utilities/python/FileUtils.py | 1 - IOMC/Input/test/hepmc2gen.py | 1 - IOMC/RandomEngine/python/RandomServiceHelper.py | 1 - Utilities/ReleaseScripts/data/edmScanValgrind.py | 1 - Utilities/ReleaseScripts/python/cmsCodeRules/Formatter.py | 1 - .../ReleaseScripts/python/cmsCodeRules/cppFunctionSkipper.py | 1 - .../ReleaseScripts/python/cmsCodeRules/pickleFileCreater.py | 1 - Utilities/ReleaseScripts/python/cmsCodeRules/showPage.py | 1 - .../ReleaseScripts/python/commentSkipper/commentSkipper.py | 1 - Utilities/ReleaseScripts/scripts/MakeBuildSet | 1 - Utilities/ReleaseScripts/scripts/addOnTests.py | 1 - Utilities/ReleaseScripts/scripts/cmsCodeRulesChecker.py | 1 - .../ReleaseScripts/scripts/duplicateReflexLibrarySearch.py | 1 - Utilities/ReleaseScripts/scripts/storeTreeInfo.py | 1 - Utilities/ReleaseScripts/scripts/ws_sso_content_reader.py | 1 - Utilities/StaticAnalyzers/scripts/callgraph.py | 1 - Utilities/StaticAnalyzers/scripts/class-composition.py | 1 - Utilities/StaticAnalyzers/scripts/data-class-funcs.py | 1 - Utilities/StaticAnalyzers/scripts/edm-global-class.py | 1 - Utilities/StaticAnalyzers/scripts/statics.py | 1 - Utilities/StaticAnalyzers/scripts/symbols.py | 1 - Validation/Performance/scripts/cmsSimplememchecker_parser.py | 1 - Validation/Performance/scripts/cmsTiming_parser.py | 1 - Validation/Tools/examples/printConversionInfo.py | 1 - Validation/Tools/python/GenObject.py | 1 - Validation/Tools/scripts/diffTreeTool.py | 1 - Validation/Tools/scripts/edmOneToOneComparison.py | 1 - Validation/Tools/scripts/runEdmFileComparison.py | 1 - Validation/Tools/scripts/simpleEdmComparison.py | 1 - Validation/Tools/scripts/summarizeEdmComparisonLogfiles.py | 1 - Validation/Tools/scripts/useReflexToDescribeForGenObject.py | 1 - 65 files changed, 68 deletions(-) diff --git a/DataFormats/FWLite/test/chainEvent_python.py b/DataFormats/FWLite/test/chainEvent_python.py index 81337732ceb33..c87fae6f65dfa 100644 --- a/DataFormats/FWLite/test/chainEvent_python.py +++ b/DataFormats/FWLite/test/chainEvent_python.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range from DataFormats.FWLite import Events, Handle diff --git a/DataFormats/FWLite/test/pyroot_multichain.py b/DataFormats/FWLite/test/pyroot_multichain.py index 5683fb82d6c94..61243c2a23725 100644 --- a/DataFormats/FWLite/test/pyroot_multichain.py +++ b/DataFormats/FWLite/test/pyroot_multichain.py @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function import ROOT from DataFormats.FWLite import Events, Handle import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/Documentation/DataFormats/python/dataformats.py b/Documentation/DataFormats/python/dataformats.py index 3fe6fa7628a51..2978092e3d68a 100755 --- a/Documentation/DataFormats/python/dataformats.py +++ b/Documentation/DataFormats/python/dataformats.py @@ -1,4 +1,3 @@ -from __future__ import print_function import cStringIO,operator from functools import reduce diff --git a/Documentation/ReferenceManualScripts/python/MainPageGenerator.py b/Documentation/ReferenceManualScripts/python/MainPageGenerator.py index 3fad773f49dc8..87b4aa0845dcb 100644 --- a/Documentation/ReferenceManualScripts/python/MainPageGenerator.py +++ b/Documentation/ReferenceManualScripts/python/MainPageGenerator.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import json, urllib2, os, sys from bs4 import BeautifulSoup diff --git a/Documentation/ReferenceManualScripts/python/TableParser.py b/Documentation/ReferenceManualScripts/python/TableParser.py index 1d64a6080b0b8..3e88af836680a 100644 --- a/Documentation/ReferenceManualScripts/python/TableParser.py +++ b/Documentation/ReferenceManualScripts/python/TableParser.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import # email: cmsdoxy@cern.ch, ali.mehmet.altundag@cern.ch # please have a look at the namespaces.html (namespace list) and annotated.html diff --git a/FWCore/Concurrency/scripts/edmStreamStallGrapher.py b/FWCore/Concurrency/scripts/edmStreamStallGrapher.py index 34ea19b1fd0ec..9a717fea5c851 100755 --- a/FWCore/Concurrency/scripts/edmStreamStallGrapher.py +++ b/FWCore/Concurrency/scripts/edmStreamStallGrapher.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range from itertools import groupby from operator import attrgetter,itemgetter diff --git a/FWCore/Framework/test/transition_test_cfg.py b/FWCore/Framework/test/transition_test_cfg.py index e168e70bc931b..8ac5db30e85e5 100644 --- a/FWCore/Framework/test/transition_test_cfg.py +++ b/FWCore/Framework/test/transition_test_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/FWCore/Integration/python/allowed_cff.py b/FWCore/Integration/python/allowed_cff.py index d00cd96410f06..c2ec497c0fd03 100644 --- a/FWCore/Integration/python/allowed_cff.py +++ b/FWCore/Integration/python/allowed_cff.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from . import restricted_cff diff --git a/FWCore/Integration/python/forbidden_cff.py b/FWCore/Integration/python/forbidden_cff.py index d00cd96410f06..c2ec497c0fd03 100644 --- a/FWCore/Integration/python/forbidden_cff.py +++ b/FWCore/Integration/python/forbidden_cff.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from . import restricted_cff diff --git a/FWCore/MessageLogger/scripts/edmFjrDump b/FWCore/MessageLogger/scripts/edmFjrDump index 8825e623cf368..43296969ceb6d 100755 --- a/FWCore/MessageLogger/scripts/edmFjrDump +++ b/FWCore/MessageLogger/scripts/edmFjrDump @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import xml.etree.ElementTree as ET import argparse diff --git a/FWCore/MessageLogger/scripts/edmMLParser b/FWCore/MessageLogger/scripts/edmMLParser index d8d719376fb79..153d5ae8aeda4 100755 --- a/FWCore/MessageLogger/scripts/edmMLParser +++ b/FWCore/MessageLogger/scripts/edmMLParser @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function def manipulate_log(logfile_name,category_names,printBeginEvent,printMessageLabel,verbosityLevel): diff --git a/FWCore/Modules/python/customiseCheckEventSetup.py b/FWCore/Modules/python/customiseCheckEventSetup.py index 691f2afa1769b..3cda491ea772a 100644 --- a/FWCore/Modules/python/customiseCheckEventSetup.py +++ b/FWCore/Modules/python/customiseCheckEventSetup.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def customise(process): diff --git a/FWCore/ParameterSet/examples/varParsingExample.py b/FWCore/ParameterSet/examples/varParsingExample.py index e0e129149991a..8814ea7aa4c46 100755 --- a/FWCore/ParameterSet/examples/varParsingExample.py +++ b/FWCore/ParameterSet/examples/varParsingExample.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from FWCore.ParameterSet.VarParsing import VarParsing options = VarParsing ('python') options.inputFiles = 'bob','peter' diff --git a/FWCore/ParameterSet/python/Config.py b/FWCore/ParameterSet/python/Config.py index 33f712b1a4df8..f8c881389b423 100644 --- a/FWCore/ParameterSet/python/Config.py +++ b/FWCore/ParameterSet/python/Config.py @@ -1,8 +1,6 @@ #!/usr/bin/env python3 ### command line options helper -from __future__ import print_function -from __future__ import absolute_import import os from .Options import Options options = Options() diff --git a/FWCore/ParameterSet/python/MassReplace.py b/FWCore/ParameterSet/python/MassReplace.py index 8fceb80f51868..405c2f7f50508 100644 --- a/FWCore/ParameterSet/python/MassReplace.py +++ b/FWCore/ParameterSet/python/MassReplace.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms class MassSearchReplaceAnyInputTagVisitor(object): diff --git a/FWCore/ParameterSet/python/Mixins.py b/FWCore/ParameterSet/python/Mixins.py index e6d4b1517fe3d..2c0ce691cbd3f 100644 --- a/FWCore/ParameterSet/python/Mixins.py +++ b/FWCore/ParameterSet/python/Mixins.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range, object import inspect from typing import Union diff --git a/FWCore/ParameterSet/python/Modules.py b/FWCore/ParameterSet/python/Modules.py index cef1799a78918..69ad504e39f32 100644 --- a/FWCore/ParameterSet/python/Modules.py +++ b/FWCore/ParameterSet/python/Modules.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import from .Mixins import _ConfigureComponent, saveOrigin from .Mixins import _Unlabelable, _Labelable from .Mixins import _TypedParameterizable, _Parameterizable, PrintOptions, specialImportRegistry diff --git a/FWCore/ParameterSet/python/OrderedSet.py b/FWCore/ParameterSet/python/OrderedSet.py index 4544d66a57e04..6687052cbc6ff 100644 --- a/FWCore/ParameterSet/python/OrderedSet.py +++ b/FWCore/ParameterSet/python/OrderedSet.py @@ -1,4 +1,3 @@ -from __future__ import print_function # The MIT License (MIT) # # Copyright (c) 19 March 2009 Created by Raymond Hettinger (MIT) diff --git a/FWCore/ParameterSet/python/SequenceTypes.py b/FWCore/ParameterSet/python/SequenceTypes.py index d0ffb7a7751a4..07bf14f45f1de 100644 --- a/FWCore/ParameterSet/python/SequenceTypes.py +++ b/FWCore/ParameterSet/python/SequenceTypes.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import sys from builtins import range diff --git a/FWCore/ParameterSet/python/SequenceVisitors.py b/FWCore/ParameterSet/python/SequenceVisitors.py index 85eed841bb6c9..a9c642813e0d4 100644 --- a/FWCore/ParameterSet/python/SequenceVisitors.py +++ b/FWCore/ParameterSet/python/SequenceVisitors.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import from .SequenceTypes import * from .Modules import OutputModule, EDProducer, EDFilter, EDAnalyzer, Service, ESProducer, ESSource, _Module from .Mixins import _Labelable diff --git a/FWCore/ParameterSet/python/TreeCrawler.py b/FWCore/ParameterSet/python/TreeCrawler.py index d91b1c7487264..32b6b99077709 100755 --- a/FWCore/ParameterSet/python/TreeCrawler.py +++ b/FWCore/ParameterSet/python/TreeCrawler.py @@ -1,4 +1,3 @@ -from __future__ import print_function # This CMS code is based on previous work done by Toby Dickenson, as indiciated below # # for questions: Benedikt.Hegner@cern.ch diff --git a/FWCore/ParameterSet/python/Types.py b/FWCore/ParameterSet/python/Types.py index 1511dcb470e8c..b674a6ad94d45 100644 --- a/FWCore/ParameterSet/python/Types.py +++ b/FWCore/ParameterSet/python/Types.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import from .Mixins import PrintOptions, _SimpleParameterTypeBase, _ParameterTypeBase, _Parameterizable, _ConfigureComponent, _Labelable, _TypedParameterizable, _Unlabelable, _modifyParametersFromDict from .Mixins import _ValidatingParameterListBase, specialImportRegistry from .Mixins import saveOrigin diff --git a/FWCore/ParameterSet/python/VarParsing.py b/FWCore/ParameterSet/python/VarParsing.py index 5ac0ece250cd9..321b5b8de96e8 100644 --- a/FWCore/ParameterSet/python/VarParsing.py +++ b/FWCore/ParameterSet/python/VarParsing.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import os import re diff --git a/FWCore/ParameterSet/python/test/MessWithGeometry_cfg.py b/FWCore/ParameterSet/python/test/MessWithGeometry_cfg.py index b3d07702d9edd..552e212fcf34f 100644 --- a/FWCore/ParameterSet/python/test/MessWithGeometry_cfg.py +++ b/FWCore/ParameterSet/python/test/MessWithGeometry_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("P") diff --git a/FWCore/ParameterSet/scripts/edmConfigIncludeChecker b/FWCore/ParameterSet/scripts/edmConfigIncludeChecker index 3f38cd7a33aff..bf72e74583256 100755 --- a/FWCore/ParameterSet/scripts/edmConfigIncludeChecker +++ b/FWCore/ParameterSet/scripts/edmConfigIncludeChecker @@ -5,7 +5,6 @@ # # for questions: benedikt.hegner@cern.ch -from __future__ import print_function from builtins import object import os.path import sys diff --git a/FWCore/ParameterSet/test/cmsconfig.py b/FWCore/ParameterSet/test/cmsconfig.py index c18db9c0deebf..193651f3abcfe 100644 --- a/FWCore/ParameterSet/test/cmsconfig.py +++ b/FWCore/ParameterSet/test/cmsconfig.py @@ -1,4 +1,3 @@ -from __future__ import print_function #------------------------------------------------------------ # # diff --git a/FWCore/PythonUtilities/python/XML2Python.py b/FWCore/PythonUtilities/python/XML2Python.py index 50263ce924956..aca8935e01260 100644 --- a/FWCore/PythonUtilities/python/XML2Python.py +++ b/FWCore/PythonUtilities/python/XML2Python.py @@ -1,4 +1,3 @@ -from __future__ import print_function ## Original version of code heavily based on recipe written by Wai Yip ## Tung, released under PSF license. ## http://code.activestate.com/recipes/534109/ diff --git a/FWCore/PythonUtilities/scripts/interactivePythonTest.py b/FWCore/PythonUtilities/scripts/interactivePythonTest.py index e4a092cb89020..b6508dfbadc8f 100755 --- a/FWCore/PythonUtilities/scripts/interactivePythonTest.py +++ b/FWCore/PythonUtilities/scripts/interactivePythonTest.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys import os import readline diff --git a/FWCore/Services/scripts/edmTracerCompactLogViewer.py b/FWCore/Services/scripts/edmTracerCompactLogViewer.py index b222c62ef771e..6bcda5638094c 100755 --- a/FWCore/Services/scripts/edmTracerCompactLogViewer.py +++ b/FWCore/Services/scripts/edmTracerCompactLogViewer.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range from itertools import groupby from operator import attrgetter,itemgetter diff --git a/FWCore/Services/scripts/edmTracerLogToSimpleConfig.py b/FWCore/Services/scripts/edmTracerLogToSimpleConfig.py index 012169732c240..8e7ebbc14a54c 100644 --- a/FWCore/Services/scripts/edmTracerLogToSimpleConfig.py +++ b/FWCore/Services/scripts/edmTracerLogToSimpleConfig.py @@ -1,4 +1,3 @@ -from __future__ import print_function #============================== # # First argument is a log file from cmsRun diff --git a/FWCore/Skeletons/python/cms.py b/FWCore/Skeletons/python/cms.py index a324f3cedc909..15a7d50e54c3b 100644 --- a/FWCore/Skeletons/python/cms.py +++ b/FWCore/Skeletons/python/cms.py @@ -6,7 +6,6 @@ Author : Valentin Kuznetsov Description: CMS-related utils """ -from __future__ import print_function # system modules from builtins import range diff --git a/FWCore/Skeletons/python/main.py b/FWCore/Skeletons/python/main.py index e7ebf5462a196..d7f21a8d98e4c 100755 --- a/FWCore/Skeletons/python/main.py +++ b/FWCore/Skeletons/python/main.py @@ -6,7 +6,6 @@ Author : Valentin Kuznetsov Description: """ -from __future__ import print_function # system modules import os diff --git a/FWCore/Skeletons/python/pkg.py b/FWCore/Skeletons/python/pkg.py index 1a31cb62fad46..0e16029c185ed 100644 --- a/FWCore/Skeletons/python/pkg.py +++ b/FWCore/Skeletons/python/pkg.py @@ -8,7 +8,6 @@ Description: AbstractGenerator class provides basic functionality to generate CMSSW class from given template """ -from __future__ import print_function # system modules import os diff --git a/FWCore/Skeletons/python/utils.py b/FWCore/Skeletons/python/utils.py index 6812c7c6c6475..20a8e172a8493 100644 --- a/FWCore/Skeletons/python/utils.py +++ b/FWCore/Skeletons/python/utils.py @@ -6,7 +6,6 @@ Author : Valentin Kuznetsov Description: Utilities module """ -from __future__ import print_function # system modules from builtins import range diff --git a/FWCore/Utilities/python/FileUtils.py b/FWCore/Utilities/python/FileUtils.py index 86f7f720009ed..48d156abd7ee4 100644 --- a/FWCore/Utilities/python/FileUtils.py +++ b/FWCore/Utilities/python/FileUtils.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import re import pprint as pprint # for testing diff --git a/IOMC/Input/test/hepmc2gen.py b/IOMC/Input/test/hepmc2gen.py index 30d3dbc8f9c72..375122b1d414c 100644 --- a/IOMC/Input/test/hepmc2gen.py +++ b/IOMC/Input/test/hepmc2gen.py @@ -1,4 +1,3 @@ -from __future__ import print_function #!/usr/bin/env cmsRun ## Original Author: Andrea Carlo Marini diff --git a/IOMC/RandomEngine/python/RandomServiceHelper.py b/IOMC/RandomEngine/python/RandomServiceHelper.py index c271f7f91ac77..7474099ca9506 100644 --- a/IOMC/RandomEngine/python/RandomServiceHelper.py +++ b/IOMC/RandomEngine/python/RandomServiceHelper.py @@ -1,7 +1,6 @@ #!/usr/bin/env python -from __future__ import print_function from FWCore.ParameterSet.Config import Service import FWCore.ParameterSet.Types as CfgTypes diff --git a/Utilities/ReleaseScripts/data/edmScanValgrind.py b/Utilities/ReleaseScripts/data/edmScanValgrind.py index 3d06ac5f448d7..7148383f488aa 100755 --- a/Utilities/ReleaseScripts/data/edmScanValgrind.py +++ b/Utilities/ReleaseScripts/data/edmScanValgrind.py @@ -1,5 +1,4 @@ #!/bin/env python -from __future__ import print_function import sys fileName = sys.argv[1] diff --git a/Utilities/ReleaseScripts/python/cmsCodeRules/Formatter.py b/Utilities/ReleaseScripts/python/cmsCodeRules/Formatter.py index 2e2a520c8cdf9..893119f63d566 100644 --- a/Utilities/ReleaseScripts/python/cmsCodeRules/Formatter.py +++ b/Utilities/ReleaseScripts/python/cmsCodeRules/Formatter.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import os, sys, string from xml.parsers import expat diff --git a/Utilities/ReleaseScripts/python/cmsCodeRules/cppFunctionSkipper.py b/Utilities/ReleaseScripts/python/cmsCodeRules/cppFunctionSkipper.py index 304e0b2707a83..0784887260d35 100644 --- a/Utilities/ReleaseScripts/python/cmsCodeRules/cppFunctionSkipper.py +++ b/Utilities/ReleaseScripts/python/cmsCodeRules/cppFunctionSkipper.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range __author__="Aurelija" __date__ ="$2010-09-23 15.00.20$" diff --git a/Utilities/ReleaseScripts/python/cmsCodeRules/pickleFileCreater.py b/Utilities/ReleaseScripts/python/cmsCodeRules/pickleFileCreater.py index bc2dbdf287a1d..e04c5929ea4a5 100644 --- a/Utilities/ReleaseScripts/python/cmsCodeRules/pickleFileCreater.py +++ b/Utilities/ReleaseScripts/python/cmsCodeRules/pickleFileCreater.py @@ -1,4 +1,3 @@ -from __future__ import print_function __author__="Aurelija" __date__ ="$2010-07-26 12.51.12$" diff --git a/Utilities/ReleaseScripts/python/cmsCodeRules/showPage.py b/Utilities/ReleaseScripts/python/cmsCodeRules/showPage.py index 58ad0b9b11edf..ec3b82e3a125c 100755 --- a/Utilities/ReleaseScripts/python/cmsCodeRules/showPage.py +++ b/Utilities/ReleaseScripts/python/cmsCodeRules/showPage.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range __author__="Aurelija" __date__ ="$2010-08-12 10.50.40$" diff --git a/Utilities/ReleaseScripts/python/commentSkipper/commentSkipper.py b/Utilities/ReleaseScripts/python/commentSkipper/commentSkipper.py index 01f11bccf5e06..8c9293e8b6dd5 100644 --- a/Utilities/ReleaseScripts/python/commentSkipper/commentSkipper.py +++ b/Utilities/ReleaseScripts/python/commentSkipper/commentSkipper.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import __author__="Aurelija" __date__ ="$2010-08-09 14.23.54$" diff --git a/Utilities/ReleaseScripts/scripts/MakeBuildSet b/Utilities/ReleaseScripts/scripts/MakeBuildSet index 3fe59469acb5c..36632ece1f1ac 100755 --- a/Utilities/ReleaseScripts/scripts/MakeBuildSet +++ b/Utilities/ReleaseScripts/scripts/MakeBuildSet @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function #pylint: disable-msg=W0403 """ MakeBuildSet - utilizes dependency discovery mechanism for Partial Releases. diff --git a/Utilities/ReleaseScripts/scripts/addOnTests.py b/Utilities/ReleaseScripts/scripts/addOnTests.py index 68bc1f9176d4e..a7f50edce7da5 100755 --- a/Utilities/ReleaseScripts/scripts/addOnTests.py +++ b/Utilities/ReleaseScripts/scripts/addOnTests.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import os import time diff --git a/Utilities/ReleaseScripts/scripts/cmsCodeRulesChecker.py b/Utilities/ReleaseScripts/scripts/cmsCodeRulesChecker.py index 276b8c956e66d..37b92272c16bc 100755 --- a/Utilities/ReleaseScripts/scripts/cmsCodeRulesChecker.py +++ b/Utilities/ReleaseScripts/scripts/cmsCodeRulesChecker.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range __author__="Aurelija" __date__ ="$2010-07-14 16.48.55$" diff --git a/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py b/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py index 494c2146c5d7d..2312960db78fb 100755 --- a/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py +++ b/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import optparse import os import re diff --git a/Utilities/ReleaseScripts/scripts/storeTreeInfo.py b/Utilities/ReleaseScripts/scripts/storeTreeInfo.py index ad11a32be6ddf..1089a82dd72b8 100755 --- a/Utilities/ReleaseScripts/scripts/storeTreeInfo.py +++ b/Utilities/ReleaseScripts/scripts/storeTreeInfo.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import os, sys, stat from operator import itemgetter diff --git a/Utilities/ReleaseScripts/scripts/ws_sso_content_reader.py b/Utilities/ReleaseScripts/scripts/ws_sso_content_reader.py index 3fbb334381735..0d84e569f1a57 100755 --- a/Utilities/ReleaseScripts/scripts/ws_sso_content_reader.py +++ b/Utilities/ReleaseScripts/scripts/ws_sso_content_reader.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 ###Description: The tool reads cern web services behind SSO using user certificates -from __future__ import print_function import os, urllib, urllib2, httplib, cookielib, sys, HTMLParser, re from optparse import OptionParser diff --git a/Utilities/StaticAnalyzers/scripts/callgraph.py b/Utilities/StaticAnalyzers/scripts/callgraph.py index c66564cec746e..c1be9f7302f04 100755 --- a/Utilities/StaticAnalyzers/scripts/callgraph.py +++ b/Utilities/StaticAnalyzers/scripts/callgraph.py @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function import networkx as nx import re import json diff --git a/Utilities/StaticAnalyzers/scripts/class-composition.py b/Utilities/StaticAnalyzers/scripts/class-composition.py index 91fa81cca0ef9..07059c9b04236 100755 --- a/Utilities/StaticAnalyzers/scripts/class-composition.py +++ b/Utilities/StaticAnalyzers/scripts/class-composition.py @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function import networkx as nx import re stdcl = re.compile("^std::(.*)[^>]$") diff --git a/Utilities/StaticAnalyzers/scripts/data-class-funcs.py b/Utilities/StaticAnalyzers/scripts/data-class-funcs.py index 2fb8581cf96b7..106e22a34a32b 100755 --- a/Utilities/StaticAnalyzers/scripts/data-class-funcs.py +++ b/Utilities/StaticAnalyzers/scripts/data-class-funcs.py @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function import fileinput import networkx as nx import re diff --git a/Utilities/StaticAnalyzers/scripts/edm-global-class.py b/Utilities/StaticAnalyzers/scripts/edm-global-class.py index 32968f024c713..716f971cc94af 100755 --- a/Utilities/StaticAnalyzers/scripts/edm-global-class.py +++ b/Utilities/StaticAnalyzers/scripts/edm-global-class.py @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function import fileinput import networkx as nx import re diff --git a/Utilities/StaticAnalyzers/scripts/statics.py b/Utilities/StaticAnalyzers/scripts/statics.py index 43fc513ad2579..a598914705334 100755 --- a/Utilities/StaticAnalyzers/scripts/statics.py +++ b/Utilities/StaticAnalyzers/scripts/statics.py @@ -1,5 +1,4 @@ #! /usr/bin/env python3 -from __future__ import print_function import fileinput import networkx as nx from builtins import range diff --git a/Utilities/StaticAnalyzers/scripts/symbols.py b/Utilities/StaticAnalyzers/scripts/symbols.py index f1d301c28afd5..8becbf0f6d97f 100755 --- a/Utilities/StaticAnalyzers/scripts/symbols.py +++ b/Utilities/StaticAnalyzers/scripts/symbols.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import networkx as nx import collections import os diff --git a/Validation/Performance/scripts/cmsSimplememchecker_parser.py b/Validation/Performance/scripts/cmsSimplememchecker_parser.py index aad34a5153eb0..cdf76bbe87162 100755 --- a/Validation/Performance/scripts/cmsSimplememchecker_parser.py +++ b/Validation/Performance/scripts/cmsSimplememchecker_parser.py @@ -1,7 +1,6 @@ #! /usr/bin/env python3 -from __future__ import print_function def manipulate_log(outdir,logfile_name,startevt): import time diff --git a/Validation/Performance/scripts/cmsTiming_parser.py b/Validation/Performance/scripts/cmsTiming_parser.py index f5103790bb56e..1e656c36e4eca 100755 --- a/Validation/Performance/scripts/cmsTiming_parser.py +++ b/Validation/Performance/scripts/cmsTiming_parser.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import sys, os import time diff --git a/Validation/Tools/examples/printConversionInfo.py b/Validation/Tools/examples/printConversionInfo.py index bf6aad14f9244..945fd7584c0a3 100755 --- a/Validation/Tools/examples/printConversionInfo.py +++ b/Validation/Tools/examples/printConversionInfo.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import ROOT import sys from DataFormats.FWLite import Events, Handle diff --git a/Validation/Tools/python/GenObject.py b/Validation/Tools/python/GenObject.py index 5adc5273aa2b8..850e086bc5ecb 100755 --- a/Validation/Tools/python/GenObject.py +++ b/Validation/Tools/python/GenObject.py @@ -1,4 +1,3 @@ -from __future__ import print_function ## Note: Please do not use or modify any data or functions with a ## leading underscore. If you "mess" with the internal structure, ## the classes may not function as intended. diff --git a/Validation/Tools/scripts/diffTreeTool.py b/Validation/Tools/scripts/diffTreeTool.py index b2e3501756fc5..8e366fbfad904 100755 --- a/Validation/Tools/scripts/diffTreeTool.py +++ b/Validation/Tools/scripts/diffTreeTool.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import optparse import os diff --git a/Validation/Tools/scripts/edmOneToOneComparison.py b/Validation/Tools/scripts/edmOneToOneComparison.py index db4815d246a83..ca22d633e7708 100755 --- a/Validation/Tools/scripts/edmOneToOneComparison.py +++ b/Validation/Tools/scripts/edmOneToOneComparison.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function if __name__ == "__main__": import optparse parser = optparse.OptionParser("usage: %prog [options] config.txt file1.root [file2.root]\nVisit https://twiki.cern.ch/twiki/bin/view/CMS/SWGuidePhysicsToolsEdmOneToOneComparison\nfor full documentation.") diff --git a/Validation/Tools/scripts/runEdmFileComparison.py b/Validation/Tools/scripts/runEdmFileComparison.py index 10c463fb98135..d972330311f67 100755 --- a/Validation/Tools/scripts/runEdmFileComparison.py +++ b/Validation/Tools/scripts/runEdmFileComparison.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import optparse import subprocess import pprint diff --git a/Validation/Tools/scripts/simpleEdmComparison.py b/Validation/Tools/scripts/simpleEdmComparison.py index b5aa118b345ca..4f284055fe7d1 100755 --- a/Validation/Tools/scripts/simpleEdmComparison.py +++ b/Validation/Tools/scripts/simpleEdmComparison.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from builtins import range import inspect import itertools diff --git a/Validation/Tools/scripts/summarizeEdmComparisonLogfiles.py b/Validation/Tools/scripts/summarizeEdmComparisonLogfiles.py index a2af145ee2ead..2e5775db2452a 100755 --- a/Validation/Tools/scripts/summarizeEdmComparisonLogfiles.py +++ b/Validation/Tools/scripts/summarizeEdmComparisonLogfiles.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import optparse import os from glob import glob diff --git a/Validation/Tools/scripts/useReflexToDescribeForGenObject.py b/Validation/Tools/scripts/useReflexToDescribeForGenObject.py index 82ad2a15887d4..0ed94d1ac745b 100755 --- a/Validation/Tools/scripts/useReflexToDescribeForGenObject.py +++ b/Validation/Tools/scripts/useReflexToDescribeForGenObject.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import ROOT import re From 5f49b8c43f9975dfb732aa61c6a890768346f596 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:17:04 +0100 Subject: [PATCH 089/418] [RECONSTRUCTION-XPOG] py2/3 compatibility:drop use of __future__ --- DataFormats/PatCandidates/test/dump_parameterization.py | 1 - .../python/slimming/customizeMiniAOD_HcalFixLegacy2016.py | 1 - PhysicsTools/PatAlgos/python/tools/cmsswVersionTools.py | 1 - PhysicsTools/PatAlgos/python/tools/coreTools.py | 1 - PhysicsTools/PatAlgos/python/tools/helpers.py | 1 - PhysicsTools/PatAlgos/python/tools/jetTools.py | 1 - PhysicsTools/PatAlgos/python/tools/pfTools.py | 1 - PhysicsTools/PatAlgos/python/tools/tauTools.py | 1 - PhysicsTools/PatAlgos/python/tools/trigTools.py | 1 - PhysicsTools/PatAlgos/test/miniAOD/example_fwlite_checkJets.py | 1 - PhysicsTools/PatAlgos/test/miniAOD/example_packedCandidates.py | 1 - PhysicsTools/PatUtils/python/tools/eGammaCorrection.py | 1 - .../PatUtils/python/tools/runMETCorrectionsAndUncertainties.py | 1 - 13 files changed, 13 deletions(-) diff --git a/DataFormats/PatCandidates/test/dump_parameterization.py b/DataFormats/PatCandidates/test/dump_parameterization.py index 19d3716e904a1..b83dda1b98e7a 100755 --- a/DataFormats/PatCandidates/test/dump_parameterization.py +++ b/DataFormats/PatCandidates/test/dump_parameterization.py @@ -1,5 +1,4 @@ #!/bin/env python -from __future__ import print_function from builtins import range import ROOT from ROOT import gROOT, TFile, TIter diff --git a/PhysicsTools/PatAlgos/python/slimming/customizeMiniAOD_HcalFixLegacy2016.py b/PhysicsTools/PatAlgos/python/slimming/customizeMiniAOD_HcalFixLegacy2016.py index 31508ac5680b8..fb3d6336348f4 100644 --- a/PhysicsTools/PatAlgos/python/slimming/customizeMiniAOD_HcalFixLegacy2016.py +++ b/PhysicsTools/PatAlgos/python/slimming/customizeMiniAOD_HcalFixLegacy2016.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.tools.helpers import MassSearchReplaceAnyInputTagVisitor, addKeepStatement diff --git a/PhysicsTools/PatAlgos/python/tools/cmsswVersionTools.py b/PhysicsTools/PatAlgos/python/tools/cmsswVersionTools.py index c7647d1c57296..097892c029827 100644 --- a/PhysicsTools/PatAlgos/python/tools/cmsswVersionTools.py +++ b/PhysicsTools/PatAlgos/python/tools/cmsswVersionTools.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import FWCore.ParameterSet.Config as cms diff --git a/PhysicsTools/PatAlgos/python/tools/coreTools.py b/PhysicsTools/PatAlgos/python/tools/coreTools.py index 1aa4015eb40eb..6e85eb7903575 100644 --- a/PhysicsTools/PatAlgos/python/tools/coreTools.py +++ b/PhysicsTools/PatAlgos/python/tools/coreTools.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range from PhysicsTools.PatAlgos.tools.ConfigToolBase import * diff --git a/PhysicsTools/PatAlgos/python/tools/helpers.py b/PhysicsTools/PatAlgos/python/tools/helpers.py index 5c95585857c61..c39ed7d35b424 100644 --- a/PhysicsTools/PatAlgos/python/tools/helpers.py +++ b/PhysicsTools/PatAlgos/python/tools/helpers.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/PhysicsTools/PatAlgos/python/tools/jetTools.py b/PhysicsTools/PatAlgos/python/tools/jetTools.py index dc38df71f1489..69b098ac03c76 100644 --- a/PhysicsTools/PatAlgos/python/tools/jetTools.py +++ b/PhysicsTools/PatAlgos/python/tools/jetTools.py @@ -1,4 +1,3 @@ -from __future__ import print_function from PhysicsTools.PatAlgos.tools.ConfigToolBase import * from FWCore.ParameterSet.Mixins import PrintOptions,_ParameterTypeBase,_SimpleParameterTypeBase, _Parameterizable, _ConfigureComponent, _TypedParameterizable, _Labelable, _Unlabelable, _ValidatingListBase from FWCore.ParameterSet.SequenceTypes import _ModuleSequenceType, _Sequenceable diff --git a/PhysicsTools/PatAlgos/python/tools/pfTools.py b/PhysicsTools/PatAlgos/python/tools/pfTools.py index 2f4e56187a589..2a71b95de893e 100644 --- a/PhysicsTools/PatAlgos/python/tools/pfTools.py +++ b/PhysicsTools/PatAlgos/python/tools/pfTools.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.tools.coreTools import * diff --git a/PhysicsTools/PatAlgos/python/tools/tauTools.py b/PhysicsTools/PatAlgos/python/tools/tauTools.py index 7beb431372102..f8daa77915edf 100644 --- a/PhysicsTools/PatAlgos/python/tools/tauTools.py +++ b/PhysicsTools/PatAlgos/python/tools/tauTools.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.tools.ConfigToolBase import * diff --git a/PhysicsTools/PatAlgos/python/tools/trigTools.py b/PhysicsTools/PatAlgos/python/tools/trigTools.py index 40b39ca45b3d6..7089c2cc8f8bb 100644 --- a/PhysicsTools/PatAlgos/python/tools/trigTools.py +++ b/PhysicsTools/PatAlgos/python/tools/trigTools.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range from PhysicsTools.PatAlgos.tools.ConfigToolBase import * diff --git a/PhysicsTools/PatAlgos/test/miniAOD/example_fwlite_checkJets.py b/PhysicsTools/PatAlgos/test/miniAOD/example_fwlite_checkJets.py index b73331b15acf2..5a83464366338 100755 --- a/PhysicsTools/PatAlgos/test/miniAOD/example_fwlite_checkJets.py +++ b/PhysicsTools/PatAlgos/test/miniAOD/example_fwlite_checkJets.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function import ROOT import sys from DataFormats.FWLite import Events, Handle diff --git a/PhysicsTools/PatAlgos/test/miniAOD/example_packedCandidates.py b/PhysicsTools/PatAlgos/test/miniAOD/example_packedCandidates.py index e0ddfc0958e5b..7f8b534e98715 100644 --- a/PhysicsTools/PatAlgos/test/miniAOD/example_packedCandidates.py +++ b/PhysicsTools/PatAlgos/test/miniAOD/example_packedCandidates.py @@ -1,4 +1,3 @@ -from __future__ import print_function # import ROOT in batch mode from builtins import range import sys diff --git a/PhysicsTools/PatUtils/python/tools/eGammaCorrection.py b/PhysicsTools/PatUtils/python/tools/eGammaCorrection.py index 94c75b790ebb8..3de704aef51fd 100644 --- a/PhysicsTools/PatUtils/python/tools/eGammaCorrection.py +++ b/PhysicsTools/PatUtils/python/tools/eGammaCorrection.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.tools.ConfigToolBase import * diff --git a/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py b/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py index a7def7ec8c79e..71418a4209811 100644 --- a/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py +++ b/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.PatAlgos.tools.ConfigToolBase import * From f1292bd197a4b003027b5c6085feb5b54de412f2 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:17:14 +0100 Subject: [PATCH 090/418] [L1] py2/3 compatibility:drop use of __future__ --- EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmPacker_cfg.py | 1 - .../L1GlobalTriggerRawToDigi/test/L1GtEvmUnpacker_cfg.py | 1 - EventFilter/L1GlobalTriggerRawToDigi/test/L1GtPacker_cfg.py | 1 - EventFilter/L1GlobalTriggerRawToDigi/test/L1GtRecord_cfg.py | 1 - .../L1GlobalTriggerRawToDigi/test/L1GtTriggerMenuLite_cfg.py | 1 - EventFilter/L1GlobalTriggerRawToDigi/test/L1GtUnpacker_cfg.py | 1 - EventFilter/L1TRawToDigi/python/bmtfStage2Raw_cfi.py | 1 - EventFilter/L1TRawToDigi/test/pack_cmp.py | 1 - EventFilter/L1TRawToDigi/test/pack_cmp_etsums.py | 1 - EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage1.py | 1 - EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage2.py | 1 - EventFilter/L1TXRawToDigi/python/util/__init__.py | 1 - EventFilter/L1TXRawToDigi/python/util/rrClient.py | 2 -- EventFilter/L1TXRawToDigi/python/util/rrapi.py | 1 - EventFilter/L1TXRawToDigi/test/testL1TCaloLayer1RawToDigi.py | 1 - .../test/runL1CSCTPEmulatorConfigAnalyzer_cfg.py | 1 - L1Trigger/Configuration/python/L1Trigger_custom.py | 1 - L1Trigger/Configuration/python/customiseReEmul.py | 1 - L1Trigger/Configuration/python/customiseSettings.py | 1 - L1Trigger/Configuration/python/customiseUtils.py | 1 - L1Trigger/Configuration/test/L1GlobalTagTest_cfg.py | 1 - L1Trigger/GlobalTriggerAnalyzer/python/UserOptions_cff.py | 1 - L1Trigger/GlobalTriggerAnalyzer/test/L1GtAnalyzer_cfg.py | 1 - L1Trigger/GlobalTriggerAnalyzer/test/L1GtBeamModeFilter_cfg.py | 1 - L1Trigger/GlobalTriggerAnalyzer/test/L1GtEmulTrigReport_cfg.py | 1 - .../GlobalTriggerAnalyzer/test/L1GtPackUnpackAnalyzer_cfg.py | 1 - .../test/L1GtPatternGenerator_overrideL1Menu_cfg.py | 1 - .../test/L1GtTechTrigL1GtEmulTrigReport_cfg.py | 1 - L1Trigger/GlobalTriggerAnalyzer/test/L1GtTrigReport_cfg.py | 1 - L1Trigger/L1GctAnalyzer/test/gctLUTGenerator_cfg.py | 1 - L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py | 1 - L1Trigger/L1TCalorimeter/python/convertParamsToOnlineFormat.py | 1 - L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT.py | 1 - .../L1TCalorimeter/python/generateTowerEtThresholdLUT_excl30.py | 1 - L1Trigger/L1TCalorimeter/python/studyJets.py | 1 - L1Trigger/L1TCalorimeter/test/generatePattern-Stage2MP.py | 1 - L1Trigger/L1TCommon/python/customiseDemo.py | 1 - L1Trigger/L1TCommon/scripts/optionsL1T.py | 1 - L1Trigger/L1TCommon/test/parse_dump_l1t_configs.py | 1 - L1Trigger/L1TCommon/test/reEmul.py | 1 - L1Trigger/L1TCommon/test/runStandardSequences.py | 1 - L1Trigger/L1TGlobal/test/Raw2Digi_uGTEmulation.py | 1 - L1Trigger/L1TGlobal/test/TTBarRelVal_Stage2uGT_TestVectors.py | 1 - L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromDigi.py | 1 - L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromRAW.py | 1 - L1Trigger/L1TGlobal/test/runGTSummary.py | 1 - L1Trigger/L1TGlobal/test/runGlobalFakeInputProducer.py | 1 - L1Trigger/L1TGlobal/test/testVectorCode_data.py | 1 - .../L1TGlobal/test/unpackBuffers-CaloStage2_uGTEmulation.py | 1 - L1Trigger/L1TMuonBarrel/test/kalmanTools/kmtfAnalysis.py | 1 - L1Trigger/L1TMuonBarrel/test/kalmanTools/makeEtaLuts.py | 1 - L1Trigger/L1TMuonBarrel/test/kalmanTools/makeInitialState.py | 1 - L1Trigger/L1TMuonBarrel/test/kalmanTools/makePTPhiLUTs.py | 1 - .../L1TMuonBarrel/test/kalmanTools/makePropToVertexLUTs.py | 1 - L1Trigger/L1TMuonBarrel/test/kalmanTools/validation.py | 1 - L1Trigger/L1TMuonEndCap/test/RunTrackFinder_data.py | 1 - L1Trigger/L1TMuonEndCap/test/tools/make_anglelut.py | 1 - .../L1TMuonEndCap/test/tools/make_anglelut_phasetwogeom.py | 1 - L1Trigger/L1TMuonEndCap/test/tools/print_binary.py | 1 - L1Trigger/L1TMuonEndCap/test/tools/print_mode.py | 1 - L1Trigger/L1TMuonEndCap/test/tools/print_mode_inv.py | 1 - L1Trigger/L1TMuonEndCap/test/tools/print_quality_code.py | 1 - L1Trigger/L1TMuonEndCap/test/tools/print_sector.py | 1 - .../test/tools/track_build_truth_table_generator.py | 1 - L1Trigger/L1TMuonEndCap/test/unittests/FWLiteAnalyzer.py | 1 - L1Trigger/Phase2L1GMT/test/makeTrackConversionLUTs.py | 1 - L1TriggerConfig/GMTConfigProducers/test/writeLUTsAndRegs_cfg.py | 1 - L1TriggerConfig/GctConfigProducers/test/test-config-print.py | 1 - L1TriggerConfig/L1GtConfigProducers/test/L1GtTester_cfg.py | 1 - .../L1GtConfigProducers/test/L1GtTriggerMenuOnlineTest_cfg.py | 1 - L1TriggerConfig/Utilities/test/bmtfDump.py | 1 - L1TriggerConfig/Utilities/test/caloL1Dump.py | 1 - L1TriggerConfig/Utilities/test/caloL2Dump.py | 1 - L1TriggerConfig/Utilities/test/dumpL1TCaloParams.py | 1 - L1TriggerConfig/Utilities/test/dumpL1TGlobalPrescalesVetos.py | 1 - L1TriggerConfig/Utilities/test/dumpL1TMuonBarrelParams.py | 1 - L1TriggerConfig/Utilities/test/dumpL1TMuonEndCapParams.py | 1 - L1TriggerConfig/Utilities/test/dumpL1TMuonGlobalParams.py | 1 - L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapFwVersion.py | 1 - L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapParams.py | 1 - L1TriggerConfig/Utilities/test/dumpL1TUtmTriggerMenu.py | 1 - L1TriggerConfig/Utilities/test/emtfDump.py | 1 - L1TriggerConfig/Utilities/test/omtfDump.py | 1 - L1TriggerConfig/Utilities/test/ugmtDump.py | 1 - L1TriggerConfig/Utilities/test/ugtDump.py | 1 - L1TriggerConfig/Utilities/test/viewCaloParams.py | 1 - L1TriggerConfig/Utilities/test/viewECpar.py | 1 - L1TriggerConfig/Utilities/test/viewGlobalMuon.py | 1 - L1TriggerConfig/Utilities/test/viewKBmtfParams.py | 1 - L1TriggerConfig/Utilities/test/viewMenu.py | 1 - L1TriggerConfig/Utilities/test/viewOmtfFwVersion.py | 1 - L1TriggerConfig/Utilities/test/viewOverPar.py | 1 - L1TriggerConfig/Utilities/test/viewPrescalesVetos.py | 1 - L1TriggerConfig/Utilities/test/viewTKE.py | 1 - L1TriggerConfig/Utilities/test/viewTKLE.py | 1 - 95 files changed, 96 deletions(-) diff --git a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmPacker_cfg.py b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmPacker_cfg.py index 024f9c76243e2..23d3b49405f55 100644 --- a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmPacker_cfg.py +++ b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmPacker_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to pack a GT EVM record # diff --git a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmUnpacker_cfg.py b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmUnpacker_cfg.py index 237ad70e630a0..c23375b0ec786 100644 --- a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmUnpacker_cfg.py +++ b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtEvmUnpacker_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to unpack RAW L1 GT EVM data diff --git a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtPacker_cfg.py b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtPacker_cfg.py index bdeef91898434..9e3729be89852 100644 --- a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtPacker_cfg.py +++ b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtPacker_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to pack a GT DAQ record # diff --git a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtRecord_cfg.py b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtRecord_cfg.py index f48d8a439e0f0..2c80cd3888c99 100644 --- a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtRecord_cfg.py +++ b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtRecord_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to produce L1GlobalTriggerRecord from a L1GlobalTriggerReadoutRecord # when running on RAW data, one also unpack the data diff --git a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtTriggerMenuLite_cfg.py b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtTriggerMenuLite_cfg.py index c41569677f0aa..51ca8befcc753 100644 --- a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtTriggerMenuLite_cfg.py +++ b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtTriggerMenuLite_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to run the L1GtTriggerMenuLite producer # with the options set in UserOptions_cff.py diff --git a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtUnpacker_cfg.py b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtUnpacker_cfg.py index 1a5622d5ccbd5..8d8404b0884e6 100644 --- a/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtUnpacker_cfg.py +++ b/EventFilter/L1GlobalTriggerRawToDigi/test/L1GtUnpacker_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to unpack RAW L1 GT DAQ data # the options set in "user choices" file diff --git a/EventFilter/L1TRawToDigi/python/bmtfStage2Raw_cfi.py b/EventFilter/L1TRawToDigi/python/bmtfStage2Raw_cfi.py index 4bf318aaa0075..64e722d914da3 100644 --- a/EventFilter/L1TRawToDigi/python/bmtfStage2Raw_cfi.py +++ b/EventFilter/L1TRawToDigi/python/bmtfStage2Raw_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms diff --git a/EventFilter/L1TRawToDigi/test/pack_cmp.py b/EventFilter/L1TRawToDigi/test/pack_cmp.py index f687667a94349..a795d783a447a 100644 --- a/EventFilter/L1TRawToDigi/test/pack_cmp.py +++ b/EventFilter/L1TRawToDigi/test/pack_cmp.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT import sys diff --git a/EventFilter/L1TRawToDigi/test/pack_cmp_etsums.py b/EventFilter/L1TRawToDigi/test/pack_cmp_etsums.py index cc8ec0760eef9..d8173e72e3901 100644 --- a/EventFilter/L1TRawToDigi/test/pack_cmp_etsums.py +++ b/EventFilter/L1TRawToDigi/test/pack_cmp_etsums.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT import sys diff --git a/EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage1.py b/EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage1.py index add366da85562..6bdb949fa653c 100644 --- a/EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage1.py +++ b/EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage1.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage2.py b/EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage2.py index d2f3969d3d4ff..5740827920d33 100644 --- a/EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage2.py +++ b/EventFilter/L1TRawToDigi/utils/unpackBuffers-CaloStage2.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/EventFilter/L1TXRawToDigi/python/util/__init__.py b/EventFilter/L1TXRawToDigi/python/util/__init__.py index 8f7aa2702ba7c..76be774eb4a89 100644 --- a/EventFilter/L1TXRawToDigi/python/util/__init__.py +++ b/EventFilter/L1TXRawToDigi/python/util/__init__.py @@ -1,3 +1,2 @@ -from __future__ import absolute_import from .getRunInfo import getRunsForDate, getRunsNewer, today, daysAgo, day, getFilesForRun, runGetDatasetsAvailable diff --git a/EventFilter/L1TXRawToDigi/python/util/rrClient.py b/EventFilter/L1TXRawToDigi/python/util/rrClient.py index 10df6830f3e96..9bb261e0de541 100644 --- a/EventFilter/L1TXRawToDigi/python/util/rrClient.py +++ b/EventFilter/L1TXRawToDigi/python/util/rrClient.py @@ -1,5 +1,3 @@ -from __future__ import absolute_import -from __future__ import print_function import re, json, datetime from .rrapi import RRApi, RRApiError diff --git a/EventFilter/L1TXRawToDigi/python/util/rrapi.py b/EventFilter/L1TXRawToDigi/python/util/rrapi.py index b26e28209a58d..dbbd05668ee62 100644 --- a/EventFilter/L1TXRawToDigi/python/util/rrapi.py +++ b/EventFilter/L1TXRawToDigi/python/util/rrapi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import urllib, re, json, socket """ diff --git a/EventFilter/L1TXRawToDigi/test/testL1TCaloLayer1RawToDigi.py b/EventFilter/L1TXRawToDigi/test/testL1TCaloLayer1RawToDigi.py index ab2c737fc5a85..4ca328d4ac144 100644 --- a/EventFilter/L1TXRawToDigi/test/testL1TCaloLayer1RawToDigi.py +++ b/EventFilter/L1TXRawToDigi/test/testL1TCaloLayer1RawToDigi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import EventFilter.L1TXRawToDigi.util as util diff --git a/L1Trigger/CSCTriggerPrimitives/test/runL1CSCTPEmulatorConfigAnalyzer_cfg.py b/L1Trigger/CSCTriggerPrimitives/test/runL1CSCTPEmulatorConfigAnalyzer_cfg.py index 435cf2a4d2a4e..5bd8e846ddcaa 100644 --- a/L1Trigger/CSCTriggerPrimitives/test/runL1CSCTPEmulatorConfigAnalyzer_cfg.py +++ b/L1Trigger/CSCTriggerPrimitives/test/runL1CSCTPEmulatorConfigAnalyzer_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import os diff --git a/L1Trigger/Configuration/python/L1Trigger_custom.py b/L1Trigger/Configuration/python/L1Trigger_custom.py index 586fac6db66c3..5085056c7f352 100644 --- a/L1Trigger/Configuration/python/L1Trigger_custom.py +++ b/L1Trigger/Configuration/python/L1Trigger_custom.py @@ -1,4 +1,3 @@ -from __future__ import print_function # customization fragments to be used with cmsDriver and hltGetConfiguration # # V.M. Ghete 2010-06-09 initial version diff --git a/L1Trigger/Configuration/python/customiseReEmul.py b/L1Trigger/Configuration/python/customiseReEmul.py index 802295278863a..c31ef4412cd54 100644 --- a/L1Trigger/Configuration/python/customiseReEmul.py +++ b/L1Trigger/Configuration/python/customiseReEmul.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger diff --git a/L1Trigger/Configuration/python/customiseSettings.py b/L1Trigger/Configuration/python/customiseSettings.py index 68de90356ebb6..6aa8d2fcfe66f 100644 --- a/L1Trigger/Configuration/python/customiseSettings.py +++ b/L1Trigger/Configuration/python/customiseSettings.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os.path import FWCore.ParameterSet.Config as cms diff --git a/L1Trigger/Configuration/python/customiseUtils.py b/L1Trigger/Configuration/python/customiseUtils.py index b49648a9b20d4..ce3aa8f51f9b1 100644 --- a/L1Trigger/Configuration/python/customiseUtils.py +++ b/L1Trigger/Configuration/python/customiseUtils.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import os diff --git a/L1Trigger/Configuration/test/L1GlobalTagTest_cfg.py b/L1Trigger/Configuration/test/L1GlobalTagTest_cfg.py index 9040c325bf3da..0c481fcfada46 100644 --- a/L1Trigger/Configuration/test/L1GlobalTagTest_cfg.py +++ b/L1Trigger/Configuration/test/L1GlobalTagTest_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to print the content of # L1 trigger records from a global tag diff --git a/L1Trigger/GlobalTriggerAnalyzer/python/UserOptions_cff.py b/L1Trigger/GlobalTriggerAnalyzer/python/UserOptions_cff.py index adfdb1d4e646b..8a359be41f0a1 100644 --- a/L1Trigger/GlobalTriggerAnalyzer/python/UserOptions_cff.py +++ b/L1Trigger/GlobalTriggerAnalyzer/python/UserOptions_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # configuration file fragment containing user choices # for release to run, sample and data type to use in diff --git a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtAnalyzer_cfg.py b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtAnalyzer_cfg.py index 766f2f072ebcf..f7be5bd06d0dc 100644 --- a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtAnalyzer_cfg.py +++ b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtAnalyzer_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to run the L1 GT test analyzer according to # the options set in "user choices" diff --git a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtBeamModeFilter_cfg.py b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtBeamModeFilter_cfg.py index 53164868863dc..31c0d78c1ac90 100644 --- a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtBeamModeFilter_cfg.py +++ b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtBeamModeFilter_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to test L1GtBeamModeFilter # it requires as input: diff --git a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtEmulTrigReport_cfg.py b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtEmulTrigReport_cfg.py index 356e990b315a6..af56941181343 100644 --- a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtEmulTrigReport_cfg.py +++ b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtEmulTrigReport_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to run L1 Global Trigger emulator on a file containing the output of the # GCT system and GMT system ("digi"), followed by the L1 trigger report diff --git a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtPackUnpackAnalyzer_cfg.py b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtPackUnpackAnalyzer_cfg.py index d3366cef88655..ca8d8fdaadc22 100644 --- a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtPackUnpackAnalyzer_cfg.py +++ b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtPackUnpackAnalyzer_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to pack (DigiToRaw) a GT DAQ record, unpack (RawToDigi) it back # and compare the two set of digis diff --git a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtPatternGenerator_overrideL1Menu_cfg.py b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtPatternGenerator_overrideL1Menu_cfg.py index 78095b340cb8f..e9415640f7d9f 100644 --- a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtPatternGenerator_overrideL1Menu_cfg.py +++ b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtPatternGenerator_overrideL1Menu_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # L1 Pattern Generator # ==================== diff --git a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtTechTrigL1GtEmulTrigReport_cfg.py b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtTechTrigL1GtEmulTrigReport_cfg.py index 552960c3a54fe..26530045e9bce 100644 --- a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtTechTrigL1GtEmulTrigReport_cfg.py +++ b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtTechTrigL1GtEmulTrigReport_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to run some technical trigger emulators/simulation, L1 Global Trigger emulator # on a file containing the output of the GCT system and GMT system ("digi"), followed by diff --git a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtTrigReport_cfg.py b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtTrigReport_cfg.py index afeb3aa676497..269726085e34a 100644 --- a/L1Trigger/GlobalTriggerAnalyzer/test/L1GtTrigReport_cfg.py +++ b/L1Trigger/GlobalTriggerAnalyzer/test/L1GtTrigReport_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # cfg file to run L1GtTrigReport on GT output file containing # the readout record L1GlobalTriggerReadoutRecord diff --git a/L1Trigger/L1GctAnalyzer/test/gctLUTGenerator_cfg.py b/L1Trigger/L1GctAnalyzer/test/gctLUTGenerator_cfg.py index b2da09e9d2f9d..fdf4588183e01 100644 --- a/L1Trigger/L1GctAnalyzer/test/gctLUTGenerator_cfg.py +++ b/L1Trigger/L1GctAnalyzer/test/gctLUTGenerator_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py b/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py index 56ff1638e3e9a..2fc4162f42c6d 100644 --- a/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py +++ b/L1Trigger/L1TCaloLayer1/test/testL1TCaloLayer1.py @@ -1,4 +1,3 @@ -from __future__ import print_function import os import FWCore.ParameterSet.Config as cms diff --git a/L1Trigger/L1TCalorimeter/python/convertParamsToOnlineFormat.py b/L1Trigger/L1TCalorimeter/python/convertParamsToOnlineFormat.py index 9b36d308b2ab6..8dc4438c40f4b 100644 --- a/L1Trigger/L1TCalorimeter/python/convertParamsToOnlineFormat.py +++ b/L1Trigger/L1TCalorimeter/python/convertParamsToOnlineFormat.py @@ -1,6 +1,5 @@ #!/bin/env python3 -from __future__ import print_function import argparse import FWCore.ParameterSet.Config as cms from importlib import import_module diff --git a/L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT.py b/L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT.py index 374983d3af102..ba05d914b3fdd 100644 --- a/L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT.py +++ b/L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os import sys import math diff --git a/L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT_excl30.py b/L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT_excl30.py index 3a8bff63ce05b..2601f6d746657 100644 --- a/L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT_excl30.py +++ b/L1Trigger/L1TCalorimeter/python/generateTowerEtThresholdLUT_excl30.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os import sys import math diff --git a/L1Trigger/L1TCalorimeter/python/studyJets.py b/L1Trigger/L1TCalorimeter/python/studyJets.py index c0129a68bafa1..8038fe94d3122 100644 --- a/L1Trigger/L1TCalorimeter/python/studyJets.py +++ b/L1Trigger/L1TCalorimeter/python/studyJets.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os import sys import math diff --git a/L1Trigger/L1TCalorimeter/test/generatePattern-Stage2MP.py b/L1Trigger/L1TCalorimeter/test/generatePattern-Stage2MP.py index da2a143c541fa..f43d88db8a35c 100644 --- a/L1Trigger/L1TCalorimeter/test/generatePattern-Stage2MP.py +++ b/L1Trigger/L1TCalorimeter/test/generatePattern-Stage2MP.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/L1Trigger/L1TCommon/python/customiseDemo.py b/L1Trigger/L1TCommon/python/customiseDemo.py index e89c43eabdb42..1c1c5f946537c 100644 --- a/L1Trigger/L1TCommon/python/customiseDemo.py +++ b/L1Trigger/L1TCommon/python/customiseDemo.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os diff --git a/L1Trigger/L1TCommon/scripts/optionsL1T.py b/L1Trigger/L1TCommon/scripts/optionsL1T.py index a73ae05947ddf..c57fe7f3f3753 100644 --- a/L1Trigger/L1TCommon/scripts/optionsL1T.py +++ b/L1Trigger/L1TCommon/scripts/optionsL1T.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # L1T Command Line Options: # diff --git a/L1Trigger/L1TCommon/test/parse_dump_l1t_configs.py b/L1Trigger/L1TCommon/test/parse_dump_l1t_configs.py index efde44d78e4fa..6dfbed5c8276e 100644 --- a/L1Trigger/L1TCommon/test/parse_dump_l1t_configs.py +++ b/L1Trigger/L1TCommon/test/parse_dump_l1t_configs.py @@ -1,5 +1,4 @@ #!/bin/python -from __future__ import print_function import sys # Parse the output of dump_l1t_configs.py, printing the nonempty records and hash values diff --git a/L1Trigger/L1TCommon/test/reEmul.py b/L1Trigger/L1TCommon/test/reEmul.py index ce2f0d31affd6..0be3787615635 100644 --- a/L1Trigger/L1TCommon/test/reEmul.py +++ b/L1Trigger/L1TCommon/test/reEmul.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # reEmul.py configurable test of L1T re-emulation # diff --git a/L1Trigger/L1TCommon/test/runStandardSequences.py b/L1Trigger/L1TCommon/test/runStandardSequences.py index 57e28bb46882f..04b688f8bd92e 100644 --- a/L1Trigger/L1TCommon/test/runStandardSequences.py +++ b/L1Trigger/L1TCommon/test/runStandardSequences.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/L1Trigger/L1TGlobal/test/Raw2Digi_uGTEmulation.py b/L1Trigger/L1TGlobal/test/Raw2Digi_uGTEmulation.py index 16d6d4209139d..84ea81dc26962 100644 --- a/L1Trigger/L1TGlobal/test/Raw2Digi_uGTEmulation.py +++ b/L1Trigger/L1TGlobal/test/Raw2Digi_uGTEmulation.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/L1Trigger/L1TGlobal/test/TTBarRelVal_Stage2uGT_TestVectors.py b/L1Trigger/L1TGlobal/test/TTBarRelVal_Stage2uGT_TestVectors.py index 514fb3ad8f5f7..c5c17c478fc10 100644 --- a/L1Trigger/L1TGlobal/test/TTBarRelVal_Stage2uGT_TestVectors.py +++ b/L1Trigger/L1TGlobal/test/TTBarRelVal_Stage2uGT_TestVectors.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function import sys """ diff --git a/L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromDigi.py b/L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromDigi.py index 8b114c8185dee..221098d6f814a 100644 --- a/L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromDigi.py +++ b/L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromDigi.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromRAW.py b/L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromRAW.py index 1fec6f153351a..7bf07121dcfaf 100644 --- a/L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromRAW.py +++ b/L1Trigger/L1TGlobal/test/l1tGlobalEmulation_FromRAW.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/L1Trigger/L1TGlobal/test/runGTSummary.py b/L1Trigger/L1TGlobal/test/runGTSummary.py index 7648746913cd6..1e9661fa22ad3 100644 --- a/L1Trigger/L1TGlobal/test/runGTSummary.py +++ b/L1Trigger/L1TGlobal/test/runGTSummary.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import FWCore.ParameterSet.Config as cms from Configuration.Eras.Era_Run2_2016_cff import Run2_2016 diff --git a/L1Trigger/L1TGlobal/test/runGlobalFakeInputProducer.py b/L1Trigger/L1TGlobal/test/runGlobalFakeInputProducer.py index 562c42c4a6e78..0dd29713b1e1e 100644 --- a/L1Trigger/L1TGlobal/test/runGlobalFakeInputProducer.py +++ b/L1Trigger/L1TGlobal/test/runGlobalFakeInputProducer.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function import sys """ diff --git a/L1Trigger/L1TGlobal/test/testVectorCode_data.py b/L1Trigger/L1TGlobal/test/testVectorCode_data.py index 0331764a1631d..1572b5ad484b1 100644 --- a/L1Trigger/L1TGlobal/test/testVectorCode_data.py +++ b/L1Trigger/L1TGlobal/test/testVectorCode_data.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function import sys """ diff --git a/L1Trigger/L1TGlobal/test/unpackBuffers-CaloStage2_uGTEmulation.py b/L1Trigger/L1TGlobal/test/unpackBuffers-CaloStage2_uGTEmulation.py index 658b5dd6117de..5f2de58664f84 100644 --- a/L1Trigger/L1TGlobal/test/unpackBuffers-CaloStage2_uGTEmulation.py +++ b/L1Trigger/L1TGlobal/test/unpackBuffers-CaloStage2_uGTEmulation.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/kmtfAnalysis.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/kmtfAnalysis.py index a29b918519d17..33fc9b82a5df3 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/kmtfAnalysis.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/kmtfAnalysis.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT,itertools,math # from array import array # from DataFormats.FWLite import Events, Handle diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/makeEtaLuts.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/makeEtaLuts.py index 7fd5ebea2b764..f96aa211057d1 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/makeEtaLuts.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/makeEtaLuts.py @@ -1,4 +1,3 @@ -from __future__ import print_function etaLUT0=[8.946,7.508,6.279,6.399] etaLUT1=[-0.159,-0.116,-0.088,-0.128] diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/makeInitialState.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/makeInitialState.py index 30a9745fce6c4..841ca54d8f55c 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/makeInitialState.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/makeInitialState.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/makePTPhiLUTs.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/makePTPhiLUTs.py index 26090adac8af6..159f9c62993e4 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/makePTPhiLUTs.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/makePTPhiLUTs.py @@ -1,4 +1,3 @@ -from __future__ import print_function from math import pi,floor diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/makePropToVertexLUTs.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/makePropToVertexLUTs.py index 89c56066d714a..c41124a7fbdf1 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/makePropToVertexLUTs.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/makePropToVertexLUTs.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/validation.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/validation.py index a7a515194f274..9d4ae1fe29b80 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/validation.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/validation.py @@ -1,4 +1,3 @@ -from __future__ import print_function import ROOT,itertools,math # from array import array # from DataFormats.FWLite import Events, Handle diff --git a/L1Trigger/L1TMuonEndCap/test/RunTrackFinder_data.py b/L1Trigger/L1TMuonEndCap/test/RunTrackFinder_data.py index 674c488c53f5a..b153fab73bc3a 100644 --- a/L1Trigger/L1TMuonEndCap/test/RunTrackFinder_data.py +++ b/L1Trigger/L1TMuonEndCap/test/RunTrackFinder_data.py @@ -1,4 +1,3 @@ -from __future__ import print_function ## 11.02.16: Copied from https://raw.githubusercontent.com/dcurry09/EMTF8/master/L1Trigger/L1TMuonEndCap/test/runMuonEndCap.py import FWCore.ParameterSet.Config as cms diff --git a/L1Trigger/L1TMuonEndCap/test/tools/make_anglelut.py b/L1Trigger/L1TMuonEndCap/test/tools/make_anglelut.py index 1bd37249c9ade..41a267c6835be 100644 --- a/L1Trigger/L1TMuonEndCap/test/tools/make_anglelut.py +++ b/L1Trigger/L1TMuonEndCap/test/tools/make_anglelut.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # This cfg calls MakeAngleLUT which is obsolete and completely unused. # diff --git a/L1Trigger/L1TMuonEndCap/test/tools/make_anglelut_phasetwogeom.py b/L1Trigger/L1TMuonEndCap/test/tools/make_anglelut_phasetwogeom.py index e99970c43054d..ca63056533869 100644 --- a/L1Trigger/L1TMuonEndCap/test/tools/make_anglelut_phasetwogeom.py +++ b/L1Trigger/L1TMuonEndCap/test/tools/make_anglelut_phasetwogeom.py @@ -1,4 +1,3 @@ -from __future__ import print_function # # This cfg calls MakeAngleLUT which is obsolete and completely unused. # diff --git a/L1Trigger/L1TMuonEndCap/test/tools/print_binary.py b/L1Trigger/L1TMuonEndCap/test/tools/print_binary.py index 4def2f07d6004..6107066cdf5d9 100644 --- a/L1Trigger/L1TMuonEndCap/test/tools/print_binary.py +++ b/L1Trigger/L1TMuonEndCap/test/tools/print_binary.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys def main(): diff --git a/L1Trigger/L1TMuonEndCap/test/tools/print_mode.py b/L1Trigger/L1TMuonEndCap/test/tools/print_mode.py index 8ea494ca9d289..fe9ea1cca08e5 100644 --- a/L1Trigger/L1TMuonEndCap/test/tools/print_mode.py +++ b/L1Trigger/L1TMuonEndCap/test/tools/print_mode.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys def main(): diff --git a/L1Trigger/L1TMuonEndCap/test/tools/print_mode_inv.py b/L1Trigger/L1TMuonEndCap/test/tools/print_mode_inv.py index c2d7aa1a38d3e..82bd0d2076b52 100644 --- a/L1Trigger/L1TMuonEndCap/test/tools/print_mode_inv.py +++ b/L1Trigger/L1TMuonEndCap/test/tools/print_mode_inv.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys def main(): diff --git a/L1Trigger/L1TMuonEndCap/test/tools/print_quality_code.py b/L1Trigger/L1TMuonEndCap/test/tools/print_quality_code.py index 4015c36998de2..22d79dd4f99f4 100644 --- a/L1Trigger/L1TMuonEndCap/test/tools/print_quality_code.py +++ b/L1Trigger/L1TMuonEndCap/test/tools/print_quality_code.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys def main(): diff --git a/L1Trigger/L1TMuonEndCap/test/tools/print_sector.py b/L1Trigger/L1TMuonEndCap/test/tools/print_sector.py index 293170b5756f8..5f193dfa6c1f0 100644 --- a/L1Trigger/L1TMuonEndCap/test/tools/print_sector.py +++ b/L1Trigger/L1TMuonEndCap/test/tools/print_sector.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys from math import degrees, pi diff --git a/L1Trigger/L1TMuonEndCap/test/tools/track_build_truth_table_generator.py b/L1Trigger/L1TMuonEndCap/test/tools/track_build_truth_table_generator.py index ab573d68627ea..44007d1167629 100644 --- a/L1Trigger/L1TMuonEndCap/test/tools/track_build_truth_table_generator.py +++ b/L1Trigger/L1TMuonEndCap/test/tools/track_build_truth_table_generator.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Generate 2^6 = 64 entries # a=12, b=23, c=34, d=13, e=14, f=24 diff --git a/L1Trigger/L1TMuonEndCap/test/unittests/FWLiteAnalyzer.py b/L1Trigger/L1TMuonEndCap/test/unittests/FWLiteAnalyzer.py index a13144589409c..8558895da3cb6 100644 --- a/L1Trigger/L1TMuonEndCap/test/unittests/FWLiteAnalyzer.py +++ b/L1Trigger/L1TMuonEndCap/test/unittests/FWLiteAnalyzer.py @@ -4,7 +4,6 @@ # Based on https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookFWLitePython # Some snippets of codes are stolen from PhysicsTools/Heppy -from __future__ import print_function from ROOT import gROOT, gSystem, AutoLibraryLoader from DataFormats.FWLite import Events, Handle diff --git a/L1Trigger/Phase2L1GMT/test/makeTrackConversionLUTs.py b/L1Trigger/Phase2L1GMT/test/makeTrackConversionLUTs.py index 8f7f2c1b17d47..3549cfd1a089a 100644 --- a/L1Trigger/Phase2L1GMT/test/makeTrackConversionLUTs.py +++ b/L1Trigger/Phase2L1GMT/test/makeTrackConversionLUTs.py @@ -8,7 +8,6 @@ # # Description : -from __future__ import division import math import numpy as np from collections import defaultdict, Counter diff --git a/L1TriggerConfig/GMTConfigProducers/test/writeLUTsAndRegs_cfg.py b/L1TriggerConfig/GMTConfigProducers/test/writeLUTsAndRegs_cfg.py index 6505785493ec2..679af8cd27b86 100644 --- a/L1TriggerConfig/GMTConfigProducers/test/writeLUTsAndRegs_cfg.py +++ b/L1TriggerConfig/GMTConfigProducers/test/writeLUTsAndRegs_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # LUT generator process diff --git a/L1TriggerConfig/GctConfigProducers/test/test-config-print.py b/L1TriggerConfig/GctConfigProducers/test/test-config-print.py index 8dc00ba6ff3c0..3f97584af8541 100644 --- a/L1TriggerConfig/GctConfigProducers/test/test-config-print.py +++ b/L1TriggerConfig/GctConfigProducers/test/test-config-print.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # options diff --git a/L1TriggerConfig/L1GtConfigProducers/test/L1GtTester_cfg.py b/L1TriggerConfig/L1GtConfigProducers/test/L1GtTester_cfg.py index 96f9d2474b13d..f6500bf4d9997 100644 --- a/L1TriggerConfig/L1GtConfigProducers/test/L1GtTester_cfg.py +++ b/L1TriggerConfig/L1GtConfigProducers/test/L1GtTester_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # cfg file to test L1 GT records # # V M Ghete 2008 - 2010 - 2012 diff --git a/L1TriggerConfig/L1GtConfigProducers/test/L1GtTriggerMenuOnlineTest_cfg.py b/L1TriggerConfig/L1GtConfigProducers/test/L1GtTriggerMenuOnlineTest_cfg.py index c5b3dc060e8af..561a253329d1c 100644 --- a/L1TriggerConfig/L1GtConfigProducers/test/L1GtTriggerMenuOnlineTest_cfg.py +++ b/L1TriggerConfig/L1GtConfigProducers/test/L1GtTriggerMenuOnlineTest_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # cfg file to test the online producer of L1GtTriggerMenuRcd import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/bmtfDump.py b/L1TriggerConfig/Utilities/test/bmtfDump.py index ce94a7d1c09a7..b0383a23a6ffe 100644 --- a/L1TriggerConfig/Utilities/test/bmtfDump.py +++ b/L1TriggerConfig/Utilities/test/bmtfDump.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re import os, sys, shutil import subprocess diff --git a/L1TriggerConfig/Utilities/test/caloL1Dump.py b/L1TriggerConfig/Utilities/test/caloL1Dump.py index 250aa97820e75..cba870181afdf 100644 --- a/L1TriggerConfig/Utilities/test/caloL1Dump.py +++ b/L1TriggerConfig/Utilities/test/caloL1Dump.py @@ -1,4 +1,3 @@ -from __future__ import print_function # select CALOL1_KEY from CMS_TRG_L1_CONF.L1_TRG_CONF_KEYS where ID='collisions2016_TSC/v206' ; import re import os, sys, shutil diff --git a/L1TriggerConfig/Utilities/test/caloL2Dump.py b/L1TriggerConfig/Utilities/test/caloL2Dump.py index c977c11f6a489..7f1202d49c5e9 100644 --- a/L1TriggerConfig/Utilities/test/caloL2Dump.py +++ b/L1TriggerConfig/Utilities/test/caloL2Dump.py @@ -1,4 +1,3 @@ -from __future__ import print_function # select CALOL2_KEY from CMS_TRG_L1_CONF.L1_TRG_CONF_KEYS where ID='collisions2016_TSC/v206' ; import re import os, sys, shutil diff --git a/L1TriggerConfig/Utilities/test/dumpL1TCaloParams.py b/L1TriggerConfig/Utilities/test/dumpL1TCaloParams.py index a80881e3529ea..5519083126ca6 100644 --- a/L1TriggerConfig/Utilities/test/dumpL1TCaloParams.py +++ b/L1TriggerConfig/Utilities/test/dumpL1TCaloParams.py @@ -1,4 +1,3 @@ -from __future__ import print_function # to test the communication with DBS and produce the csctf configuration import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/dumpL1TGlobalPrescalesVetos.py b/L1TriggerConfig/Utilities/test/dumpL1TGlobalPrescalesVetos.py index cefd2493675e1..c449412b6214a 100644 --- a/L1TriggerConfig/Utilities/test/dumpL1TGlobalPrescalesVetos.py +++ b/L1TriggerConfig/Utilities/test/dumpL1TGlobalPrescalesVetos.py @@ -1,4 +1,3 @@ -from __future__ import print_function # to test the communication with DBS and produce the csctf configuration import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/dumpL1TMuonBarrelParams.py b/L1TriggerConfig/Utilities/test/dumpL1TMuonBarrelParams.py index 4bd078392d42d..c373f598af45a 100644 --- a/L1TriggerConfig/Utilities/test/dumpL1TMuonBarrelParams.py +++ b/L1TriggerConfig/Utilities/test/dumpL1TMuonBarrelParams.py @@ -1,4 +1,3 @@ -from __future__ import print_function # to test the communication with DBS and produce the csctf configuration import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/dumpL1TMuonEndCapParams.py b/L1TriggerConfig/Utilities/test/dumpL1TMuonEndCapParams.py index 43db60d9b4284..713c88af4c390 100644 --- a/L1TriggerConfig/Utilities/test/dumpL1TMuonEndCapParams.py +++ b/L1TriggerConfig/Utilities/test/dumpL1TMuonEndCapParams.py @@ -1,4 +1,3 @@ -from __future__ import print_function # to test the communication with DBS and produce the csctf configuration import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/dumpL1TMuonGlobalParams.py b/L1TriggerConfig/Utilities/test/dumpL1TMuonGlobalParams.py index 4cddfa87f517c..81d61b34a906b 100644 --- a/L1TriggerConfig/Utilities/test/dumpL1TMuonGlobalParams.py +++ b/L1TriggerConfig/Utilities/test/dumpL1TMuonGlobalParams.py @@ -1,4 +1,3 @@ -from __future__ import print_function # to test the communication with DBS and produce the csctf configuration import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapFwVersion.py b/L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapFwVersion.py index d2734c02269b2..9a5f0298d5b1c 100644 --- a/L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapFwVersion.py +++ b/L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapFwVersion.py @@ -1,4 +1,3 @@ -from __future__ import print_function # to test the communication with DBS and produce the csctf configuration import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapParams.py b/L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapParams.py index f850fb45d7f29..3dd8d2a0b73d5 100644 --- a/L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapParams.py +++ b/L1TriggerConfig/Utilities/test/dumpL1TMuonOverlapParams.py @@ -1,4 +1,3 @@ -from __future__ import print_function # to test the communication with DBS and produce the csctf configuration import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/dumpL1TUtmTriggerMenu.py b/L1TriggerConfig/Utilities/test/dumpL1TUtmTriggerMenu.py index 744812e3eac3a..6f1efe576cb3f 100644 --- a/L1TriggerConfig/Utilities/test/dumpL1TUtmTriggerMenu.py +++ b/L1TriggerConfig/Utilities/test/dumpL1TUtmTriggerMenu.py @@ -1,4 +1,3 @@ -from __future__ import print_function # to test the communication with DBS and produce the csctf configuration import FWCore.ParameterSet.Config as cms diff --git a/L1TriggerConfig/Utilities/test/emtfDump.py b/L1TriggerConfig/Utilities/test/emtfDump.py index 33fc66d942717..442319ec864ef 100644 --- a/L1TriggerConfig/Utilities/test/emtfDump.py +++ b/L1TriggerConfig/Utilities/test/emtfDump.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re import os, sys, shutil import subprocess diff --git a/L1TriggerConfig/Utilities/test/omtfDump.py b/L1TriggerConfig/Utilities/test/omtfDump.py index 3662e21dc70e8..37b8eea901fc7 100644 --- a/L1TriggerConfig/Utilities/test/omtfDump.py +++ b/L1TriggerConfig/Utilities/test/omtfDump.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re import os, sys, shutil import subprocess diff --git a/L1TriggerConfig/Utilities/test/ugmtDump.py b/L1TriggerConfig/Utilities/test/ugmtDump.py index a7e91c32de006..ad2fb72892a4b 100644 --- a/L1TriggerConfig/Utilities/test/ugmtDump.py +++ b/L1TriggerConfig/Utilities/test/ugmtDump.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re import os, sys, shutil import subprocess diff --git a/L1TriggerConfig/Utilities/test/ugtDump.py b/L1TriggerConfig/Utilities/test/ugtDump.py index d126967e7c151..4f32f07cf59d8 100644 --- a/L1TriggerConfig/Utilities/test/ugtDump.py +++ b/L1TriggerConfig/Utilities/test/ugtDump.py @@ -1,4 +1,3 @@ -from __future__ import print_function import re import os, sys, shutil import subprocess diff --git a/L1TriggerConfig/Utilities/test/viewCaloParams.py b/L1TriggerConfig/Utilities/test/viewCaloParams.py index 20f6f36888109..c429f36e729f6 100644 --- a/L1TriggerConfig/Utilities/test/viewCaloParams.py +++ b/L1TriggerConfig/Utilities/test/viewCaloParams.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewECpar.py b/L1TriggerConfig/Utilities/test/viewECpar.py index 7ab215bf5524b..b7ff4c1cb29f1 100644 --- a/L1TriggerConfig/Utilities/test/viewECpar.py +++ b/L1TriggerConfig/Utilities/test/viewECpar.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewGlobalMuon.py b/L1TriggerConfig/Utilities/test/viewGlobalMuon.py index 306590483fbbf..2add20e9fcb19 100644 --- a/L1TriggerConfig/Utilities/test/viewGlobalMuon.py +++ b/L1TriggerConfig/Utilities/test/viewGlobalMuon.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewKBmtfParams.py b/L1TriggerConfig/Utilities/test/viewKBmtfParams.py index b63c6fb202a0c..feaf3e769831d 100644 --- a/L1TriggerConfig/Utilities/test/viewKBmtfParams.py +++ b/L1TriggerConfig/Utilities/test/viewKBmtfParams.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewMenu.py b/L1TriggerConfig/Utilities/test/viewMenu.py index 0eab96ce70816..02cef5145d552 100644 --- a/L1TriggerConfig/Utilities/test/viewMenu.py +++ b/L1TriggerConfig/Utilities/test/viewMenu.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewOmtfFwVersion.py b/L1TriggerConfig/Utilities/test/viewOmtfFwVersion.py index 00328d27479f9..8d78cd6744779 100644 --- a/L1TriggerConfig/Utilities/test/viewOmtfFwVersion.py +++ b/L1TriggerConfig/Utilities/test/viewOmtfFwVersion.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewOverPar.py b/L1TriggerConfig/Utilities/test/viewOverPar.py index 145282241e26f..fc3eb6ddc6077 100644 --- a/L1TriggerConfig/Utilities/test/viewOverPar.py +++ b/L1TriggerConfig/Utilities/test/viewOverPar.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewPrescalesVetos.py b/L1TriggerConfig/Utilities/test/viewPrescalesVetos.py index 61a4a46f49b5e..99263124089f0 100644 --- a/L1TriggerConfig/Utilities/test/viewPrescalesVetos.py +++ b/L1TriggerConfig/Utilities/test/viewPrescalesVetos.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewTKE.py b/L1TriggerConfig/Utilities/test/viewTKE.py index b9becc392030b..6cdba3ccaf3a5 100644 --- a/L1TriggerConfig/Utilities/test/viewTKE.py +++ b/L1TriggerConfig/Utilities/test/viewTKE.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") diff --git a/L1TriggerConfig/Utilities/test/viewTKLE.py b/L1TriggerConfig/Utilities/test/viewTKLE.py index f20105361001a..cbc509aef8e9e 100644 --- a/L1TriggerConfig/Utilities/test/viewTKLE.py +++ b/L1TriggerConfig/Utilities/test/viewTKLE.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("tester") From 815a66d664c96a8f1af9eb375197703897f28077 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:17:22 +0100 Subject: [PATCH 091/418] [DAQ] py2/3 compatibility:drop use of __future__ --- EventFilter/Utilities/test/startFU.py | 1 - EventFilter/Utilities/test/start_multiLS_FU.py | 1 - EventFilter/Utilities/test/testScoutingRun3_unpackers.py | 1 - EventFilter/Utilities/test/test_dqmstream.py | 2 -- EventFilter/Utilities/test/unittest_FU.py | 1 - EventFilter/Utilities/test/unittest_FU_daqsource.py | 1 - 6 files changed, 7 deletions(-) diff --git a/EventFilter/Utilities/test/startFU.py b/EventFilter/Utilities/test/startFU.py index b08755167d004..b6c0497051393 100644 --- a/EventFilter/Utilities/test/startFU.py +++ b/EventFilter/Utilities/test/startFU.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import os diff --git a/EventFilter/Utilities/test/start_multiLS_FU.py b/EventFilter/Utilities/test/start_multiLS_FU.py index adf4d405b76df..0af58582f3579 100644 --- a/EventFilter/Utilities/test/start_multiLS_FU.py +++ b/EventFilter/Utilities/test/start_multiLS_FU.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import os diff --git a/EventFilter/Utilities/test/testScoutingRun3_unpackers.py b/EventFilter/Utilities/test/testScoutingRun3_unpackers.py index bf90c0a6a2760..e37ea6938ae3f 100644 --- a/EventFilter/Utilities/test/testScoutingRun3_unpackers.py +++ b/EventFilter/Utilities/test/testScoutingRun3_unpackers.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import os, sys diff --git a/EventFilter/Utilities/test/test_dqmstream.py b/EventFilter/Utilities/test/test_dqmstream.py index cd9d2e85742cc..83db50a435760 100644 --- a/EventFilter/Utilities/test/test_dqmstream.py +++ b/EventFilter/Utilities/test/test_dqmstream.py @@ -1,5 +1,3 @@ -#from __future__ import print_function -#from __future__ import absolute_import import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing from FWCore.ParameterSet.Types import PSet diff --git a/EventFilter/Utilities/test/unittest_FU.py b/EventFilter/Utilities/test/unittest_FU.py index 31cdacfd9b90e..a48a3707fcae8 100644 --- a/EventFilter/Utilities/test/unittest_FU.py +++ b/EventFilter/Utilities/test/unittest_FU.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import os diff --git a/EventFilter/Utilities/test/unittest_FU_daqsource.py b/EventFilter/Utilities/test/unittest_FU_daqsource.py index 544df16429569..87a02742389b1 100644 --- a/EventFilter/Utilities/test/unittest_FU_daqsource.py +++ b/EventFilter/Utilities/test/unittest_FU_daqsource.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import FWCore.ParameterSet.VarParsing as VarParsing import os From 7cdfd60770d963dc75892f18db018e92ce68b8ba Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:17:31 +0100 Subject: [PATCH 092/418] [HLT] py2/3 compatibility:drop use of __future__ --- HLTrigger/Configuration/python/Tools/confdb.py | 1 - HLTrigger/Configuration/scripts/edmPluginCoverage | 1 - HLTrigger/HLTanalyzers/test/CreateCFGs.py | 1 - HLTrigger/HLTanalyzers/test/CreateFileLists.py | 1 - HLTrigger/HLTanalyzers/test/efficiency.py | 1 - HLTrigger/HLTanalyzers/test/fixTrue.py | 1 - HLTrigger/Tools/python/OnlinePrescaleChecker/Page1Parser.py | 1 - HLTrigger/Tools/python/OnlinePrescaleChecker/PrescaleChecker.py | 2 -- HLTrigger/Tools/python/OnlinePrescaleChecker/TablePrint.py | 2 -- HLTrigger/Tools/python/getHLTPrescaleColumns.py | 2 -- HLTrigger/Tools/python/getHLTkey.py | 2 -- HLTrigger/Tools/python/getHLTprescales.py | 2 -- HLTrigger/Tools/python/makeHLTPrescaleTable.py | 2 -- HLTrigger/Tools/python/queryRR.py | 1 - HLTrigger/Tools/python/rrapi.py | 1 - HLTrigger/Tools/scripts/timingPdfMaker.py | 1 - 16 files changed, 22 deletions(-) diff --git a/HLTrigger/Configuration/python/Tools/confdb.py b/HLTrigger/Configuration/python/Tools/confdb.py index 5baca70ccf561..af5dd84e5c611 100644 --- a/HLTrigger/Configuration/python/Tools/confdb.py +++ b/HLTrigger/Configuration/python/Tools/confdb.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import absolute_import import sys import re import os diff --git a/HLTrigger/Configuration/scripts/edmPluginCoverage b/HLTrigger/Configuration/scripts/edmPluginCoverage index 25bfd38712ae2..8cde1172c0cec 100755 --- a/HLTrigger/Configuration/scripts/edmPluginCoverage +++ b/HLTrigger/Configuration/scripts/edmPluginCoverage @@ -3,7 +3,6 @@ # Author: Andrea 'fwyzard' Bocci , Università di Pisa -from __future__ import print_function import os, sys import re diff --git a/HLTrigger/HLTanalyzers/test/CreateCFGs.py b/HLTrigger/HLTanalyzers/test/CreateCFGs.py index a4a3fd0f494d2..d386aee906994 100755 --- a/HLTrigger/HLTanalyzers/test/CreateCFGs.py +++ b/HLTrigger/HLTanalyzers/test/CreateCFGs.py @@ -1,7 +1,6 @@ #!/usr/bin/env python # -from __future__ import print_function import sys,string,time,os ### parameters ### diff --git a/HLTrigger/HLTanalyzers/test/CreateFileLists.py b/HLTrigger/HLTanalyzers/test/CreateFileLists.py index 20d142dd6ed55..5daa5825b3841 100755 --- a/HLTrigger/HLTanalyzers/test/CreateFileLists.py +++ b/HLTrigger/HLTanalyzers/test/CreateFileLists.py @@ -1,7 +1,6 @@ #!/usr/bin/env python # -from __future__ import print_function import sys,string,time,os ### parameters ### diff --git a/HLTrigger/HLTanalyzers/test/efficiency.py b/HLTrigger/HLTanalyzers/test/efficiency.py index 29d616b11c729..7a4310e3ac591 100644 --- a/HLTrigger/HLTanalyzers/test/efficiency.py +++ b/HLTrigger/HLTanalyzers/test/efficiency.py @@ -1,4 +1,3 @@ -from __future__ import print_function ### assumes QCD_Pt-.../res/ folders are in current directory ### import glob, os, string diff --git a/HLTrigger/HLTanalyzers/test/fixTrue.py b/HLTrigger/HLTanalyzers/test/fixTrue.py index d43d1aec9399a..0c93e405ad1c4 100644 --- a/HLTrigger/HLTanalyzers/test/fixTrue.py +++ b/HLTrigger/HLTanalyzers/test/fixTrue.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import sys, os, string def usage(): diff --git a/HLTrigger/Tools/python/OnlinePrescaleChecker/Page1Parser.py b/HLTrigger/Tools/python/OnlinePrescaleChecker/Page1Parser.py index 99139c4f267be..b6eea0fd7d909 100644 --- a/HLTrigger/Tools/python/OnlinePrescaleChecker/Page1Parser.py +++ b/HLTrigger/Tools/python/OnlinePrescaleChecker/Page1Parser.py @@ -1,4 +1,3 @@ -from __future__ import print_function from HTMLParser import HTMLParser from urllib2 import urlopen import cPickle as pickle diff --git a/HLTrigger/Tools/python/OnlinePrescaleChecker/PrescaleChecker.py b/HLTrigger/Tools/python/OnlinePrescaleChecker/PrescaleChecker.py index 136966979cf93..173fbfdc7f2f3 100755 --- a/HLTrigger/Tools/python/OnlinePrescaleChecker/PrescaleChecker.py +++ b/HLTrigger/Tools/python/OnlinePrescaleChecker/PrescaleChecker.py @@ -1,6 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function -from __future__ import absolute_import from .Page1Parser import Page1Parser import sys import os diff --git a/HLTrigger/Tools/python/OnlinePrescaleChecker/TablePrint.py b/HLTrigger/Tools/python/OnlinePrescaleChecker/TablePrint.py index 0b2421bdcf7a9..a291b6d88017e 100644 --- a/HLTrigger/Tools/python/OnlinePrescaleChecker/TablePrint.py +++ b/HLTrigger/Tools/python/OnlinePrescaleChecker/TablePrint.py @@ -1,5 +1,3 @@ -from __future__ import print_function -from __future__ import absolute_import import sys from .colors import * write = sys.stdout.write diff --git a/HLTrigger/Tools/python/getHLTPrescaleColumns.py b/HLTrigger/Tools/python/getHLTPrescaleColumns.py index d2e8af4eb5275..f44dcf65a2559 100755 --- a/HLTrigger/Tools/python/getHLTPrescaleColumns.py +++ b/HLTrigger/Tools/python/getHLTPrescaleColumns.py @@ -1,6 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function -from __future__ import absolute_import from sys import stderr, exit import subprocess diff --git a/HLTrigger/Tools/python/getHLTkey.py b/HLTrigger/Tools/python/getHLTkey.py index f58273089eaba..e383078529bb2 100755 --- a/HLTrigger/Tools/python/getHLTkey.py +++ b/HLTrigger/Tools/python/getHLTkey.py @@ -1,6 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function -from __future__ import absolute_import from sys import stderr, exit diff --git a/HLTrigger/Tools/python/getHLTprescales.py b/HLTrigger/Tools/python/getHLTprescales.py index 00051d8662ff3..3d56d7bf3dca0 100755 --- a/HLTrigger/Tools/python/getHLTprescales.py +++ b/HLTrigger/Tools/python/getHLTprescales.py @@ -1,6 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function -from __future__ import absolute_import from sys import stderr, exit import subprocess diff --git a/HLTrigger/Tools/python/makeHLTPrescaleTable.py b/HLTrigger/Tools/python/makeHLTPrescaleTable.py index f673207a8ebaa..dae5f483e1c24 100755 --- a/HLTrigger/Tools/python/makeHLTPrescaleTable.py +++ b/HLTrigger/Tools/python/makeHLTPrescaleTable.py @@ -1,6 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function -from __future__ import absolute_import from sys import stderr, exit import subprocess, os diff --git a/HLTrigger/Tools/python/queryRR.py b/HLTrigger/Tools/python/queryRR.py index 5dac373ddc961..a35726014c8f3 100644 --- a/HLTrigger/Tools/python/queryRR.py +++ b/HLTrigger/Tools/python/queryRR.py @@ -2,7 +2,6 @@ # https://twiki.cern.ch/twiki/bin/viewauth/CMS/DqmRrApi -from __future__ import absolute_import from sys import stderr, exit import xml.dom.minidom from .rrapi import RRApi, RRApiError diff --git a/HLTrigger/Tools/python/rrapi.py b/HLTrigger/Tools/python/rrapi.py index b26e28209a58d..dbbd05668ee62 100644 --- a/HLTrigger/Tools/python/rrapi.py +++ b/HLTrigger/Tools/python/rrapi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import urllib, re, json, socket """ diff --git a/HLTrigger/Tools/scripts/timingPdfMaker.py b/HLTrigger/Tools/scripts/timingPdfMaker.py index 8bf1c053dd73f..1c144269984bd 100755 --- a/HLTrigger/Tools/scripts/timingPdfMaker.py +++ b/HLTrigger/Tools/scripts/timingPdfMaker.py @@ -17,7 +17,6 @@ ## Imports ############################################ -from __future__ import print_function import os, glob import os.path import operator From 55646835e2a4b2155f6afe379a50723c2883923e Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:17:40 +0100 Subject: [PATCH 093/418] [SIMULATION] py2/3 compatibility:drop use of __future__ --- IOMC/EventVertexGenerators/test/calculate_beamwidth.py | 1 - .../EcalTestBeam/python/ecalTB2006H4_GenSimDigiReco_cfg.py | 1 - SimG4CMS/HcalTestBeam/test/python/run_tb06_all_cfg.py | 1 - SimG4Core/CustomPhysics/python/Exotica_HSCP_SIM_cfi.py | 1 - SimG4Core/CustomPhysics/python/Exotica_MT_SIM_cfi.py | 1 - SimGeneral/Configuration/python/RandomRunSource.py | 1 - SimGeneral/Configuration/python/ThrowAndSetRandomRun.py | 1 - SimGeneral/MixingModule/python/mix_fromDB_cfi.py | 1 - SimMuon/CSCDigitizer/test/CSCNeutronReader_cfg.py | 1 - SimMuon/DTDigitizer/python/dtChamberMasker_cff.py | 1 - SimTracker/TrackerMaterialAnalysis/crab/merge.py | 1 - .../TrackerMaterialAnalysis/python/trackingMaterialVarParsing.py | 1 - SimTracker/TrackerMaterialAnalysis/test/dumpFullXML.py | 1 - SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseI.py | 1 - .../TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseII.py | 1 - SimTracker/TrackerMaterialAnalysis/test/listGroups.py | 1 - SimTracker/TrackerMaterialAnalysis/test/listGroups_dd4hep.py | 1 - SimTracker/TrackerMaterialAnalysis/test/listIds_dd4hep.py | 1 - SimTracker/TrackerMaterialAnalysis/test/tools/dump.py | 1 - SimTracker/TrackerMaterialAnalysis/test/tools/material.py | 1 - SimTracker/TrackerMaterialAnalysis/test/tools/plot.py | 1 - SimTracker/TrackerMaterialAnalysis/test/tools/split.py | 1 - 22 files changed, 22 deletions(-) diff --git a/IOMC/EventVertexGenerators/test/calculate_beamwidth.py b/IOMC/EventVertexGenerators/test/calculate_beamwidth.py index e129a60f91b46..d51d7a859a797 100755 --- a/IOMC/EventVertexGenerators/test/calculate_beamwidth.py +++ b/IOMC/EventVertexGenerators/test/calculate_beamwidth.py @@ -13,7 +13,6 @@ at Z = 0 """ -from __future__ import print_function import math diff --git a/SimCalorimetry/EcalTestBeam/python/ecalTB2006H4_GenSimDigiReco_cfg.py b/SimCalorimetry/EcalTestBeam/python/ecalTB2006H4_GenSimDigiReco_cfg.py index d3bca5e7d82ff..9dee1e57163b6 100644 --- a/SimCalorimetry/EcalTestBeam/python/ecalTB2006H4_GenSimDigiReco_cfg.py +++ b/SimCalorimetry/EcalTestBeam/python/ecalTB2006H4_GenSimDigiReco_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import os diff --git a/SimG4CMS/HcalTestBeam/test/python/run_tb06_all_cfg.py b/SimG4CMS/HcalTestBeam/test/python/run_tb06_all_cfg.py index ec4db5ad3f3af..cf34050809fc0 100644 --- a/SimG4CMS/HcalTestBeam/test/python/run_tb06_all_cfg.py +++ b/SimG4CMS/HcalTestBeam/test/python/run_tb06_all_cfg.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os, sys #====================== check input ========================== diff --git a/SimG4Core/CustomPhysics/python/Exotica_HSCP_SIM_cfi.py b/SimG4Core/CustomPhysics/python/Exotica_HSCP_SIM_cfi.py index e714f5a16e7ca..60a59e938ca79 100644 --- a/SimG4Core/CustomPhysics/python/Exotica_HSCP_SIM_cfi.py +++ b/SimG4Core/CustomPhysics/python/Exotica_HSCP_SIM_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def customise(process): diff --git a/SimG4Core/CustomPhysics/python/Exotica_MT_SIM_cfi.py b/SimG4Core/CustomPhysics/python/Exotica_MT_SIM_cfi.py index 16636caea9ec7..16a3018c8cb80 100644 --- a/SimG4Core/CustomPhysics/python/Exotica_MT_SIM_cfi.py +++ b/SimG4Core/CustomPhysics/python/Exotica_MT_SIM_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def customise(process): diff --git a/SimGeneral/Configuration/python/RandomRunSource.py b/SimGeneral/Configuration/python/RandomRunSource.py index 32ca3536afc9c..92bf7557665c2 100644 --- a/SimGeneral/Configuration/python/RandomRunSource.py +++ b/SimGeneral/Configuration/python/RandomRunSource.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms class RandomRunSource (cms.Source): diff --git a/SimGeneral/Configuration/python/ThrowAndSetRandomRun.py b/SimGeneral/Configuration/python/ThrowAndSetRandomRun.py index 0ea98171b8fe9..da164c711fbf3 100644 --- a/SimGeneral/Configuration/python/ThrowAndSetRandomRun.py +++ b/SimGeneral/Configuration/python/ThrowAndSetRandomRun.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # function to modify an existing Cms Source in order to set the run number diff --git a/SimGeneral/MixingModule/python/mix_fromDB_cfi.py b/SimGeneral/MixingModule/python/mix_fromDB_cfi.py index d8f7e0141a4ff..9c6405c6ce994 100644 --- a/SimGeneral/MixingModule/python/mix_fromDB_cfi.py +++ b/SimGeneral/MixingModule/python/mix_fromDB_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # here we define part of the configuration of MixingModule diff --git a/SimMuon/CSCDigitizer/test/CSCNeutronReader_cfg.py b/SimMuon/CSCDigitizer/test/CSCNeutronReader_cfg.py index 611d9d1076a6f..18a7761e9bbdf 100644 --- a/SimMuon/CSCDigitizer/test/CSCNeutronReader_cfg.py +++ b/SimMuon/CSCDigitizer/test/CSCNeutronReader_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("CSCDigitizerTest") diff --git a/SimMuon/DTDigitizer/python/dtChamberMasker_cff.py b/SimMuon/DTDigitizer/python/dtChamberMasker_cff.py index e28c87b54d264..4b3a2fb34046f 100644 --- a/SimMuon/DTDigitizer/python/dtChamberMasker_cff.py +++ b/SimMuon/DTDigitizer/python/dtChamberMasker_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys diff --git a/SimTracker/TrackerMaterialAnalysis/crab/merge.py b/SimTracker/TrackerMaterialAnalysis/crab/merge.py index 61271c3b9b493..27edfc956889b 100644 --- a/SimTracker/TrackerMaterialAnalysis/crab/merge.py +++ b/SimTracker/TrackerMaterialAnalysis/crab/merge.py @@ -1,4 +1,3 @@ -from __future__ import print_function #! /usr/bin/env cmsRun import glob import FWCore.ParameterSet.Config as cms diff --git a/SimTracker/TrackerMaterialAnalysis/python/trackingMaterialVarParsing.py b/SimTracker/TrackerMaterialAnalysis/python/trackingMaterialVarParsing.py index e433df593fba7..82003409b38e4 100644 --- a/SimTracker/TrackerMaterialAnalysis/python/trackingMaterialVarParsing.py +++ b/SimTracker/TrackerMaterialAnalysis/python/trackingMaterialVarParsing.py @@ -1,4 +1,3 @@ -from __future__ import print_function from FWCore.ParameterSet.VarParsing import VarParsing import sys diff --git a/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML.py b/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML.py index e26915fc2d290..2b7db9065d907 100755 --- a/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML.py +++ b/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import argparse import os, sys import pprint diff --git a/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseI.py b/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseI.py index 7c9f2e64f43d2..5fc8cc79de81f 100755 --- a/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseI.py +++ b/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseI.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import argparse import os, sys import pprint diff --git a/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseII.py b/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseII.py index fb0e95e47d59c..ba4ad9c8b4de4 100644 --- a/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseII.py +++ b/SimTracker/TrackerMaterialAnalysis/test/dumpFullXML_ForPhaseII.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import argparse import os, sys import pprint diff --git a/SimTracker/TrackerMaterialAnalysis/test/listGroups.py b/SimTracker/TrackerMaterialAnalysis/test/listGroups.py index d7c7fdac0e255..c236269013e42 100644 --- a/SimTracker/TrackerMaterialAnalysis/test/listGroups.py +++ b/SimTracker/TrackerMaterialAnalysis/test/listGroups.py @@ -1,4 +1,3 @@ -from __future__ import print_function #! /usr/bin/env cmsRun import sys diff --git a/SimTracker/TrackerMaterialAnalysis/test/listGroups_dd4hep.py b/SimTracker/TrackerMaterialAnalysis/test/listGroups_dd4hep.py index 08413d02d49bd..92efb1d14f5aa 100755 --- a/SimTracker/TrackerMaterialAnalysis/test/listGroups_dd4hep.py +++ b/SimTracker/TrackerMaterialAnalysis/test/listGroups_dd4hep.py @@ -1,4 +1,3 @@ -from __future__ import print_function #! /usr/bin/env cmsRun import sys diff --git a/SimTracker/TrackerMaterialAnalysis/test/listIds_dd4hep.py b/SimTracker/TrackerMaterialAnalysis/test/listIds_dd4hep.py index d6587fdf379fb..d0357fa752ef7 100755 --- a/SimTracker/TrackerMaterialAnalysis/test/listIds_dd4hep.py +++ b/SimTracker/TrackerMaterialAnalysis/test/listIds_dd4hep.py @@ -1,4 +1,3 @@ -from __future__ import print_function #! /usr/bin/env cmsRun import sys diff --git a/SimTracker/TrackerMaterialAnalysis/test/tools/dump.py b/SimTracker/TrackerMaterialAnalysis/test/tools/dump.py index 35ff0d5b80b00..6ee6840039858 100755 --- a/SimTracker/TrackerMaterialAnalysis/test/tools/dump.py +++ b/SimTracker/TrackerMaterialAnalysis/test/tools/dump.py @@ -1,6 +1,5 @@ #! /usr/bin/env python -from __future__ import print_function import sys import material diff --git a/SimTracker/TrackerMaterialAnalysis/test/tools/material.py b/SimTracker/TrackerMaterialAnalysis/test/tools/material.py index 254c2a2e98a9f..f76fc348779ac 100644 --- a/SimTracker/TrackerMaterialAnalysis/test/tools/material.py +++ b/SimTracker/TrackerMaterialAnalysis/test/tools/material.py @@ -1,4 +1,3 @@ -from __future__ import print_function import sys import re import bisect diff --git a/SimTracker/TrackerMaterialAnalysis/test/tools/plot.py b/SimTracker/TrackerMaterialAnalysis/test/tools/plot.py index e8e1caec4b9cd..ff2c6bf73f08a 100755 --- a/SimTracker/TrackerMaterialAnalysis/test/tools/plot.py +++ b/SimTracker/TrackerMaterialAnalysis/test/tools/plot.py @@ -1,6 +1,5 @@ #! /usr/bin/env python -from __future__ import print_function import sys import material import ROOT diff --git a/SimTracker/TrackerMaterialAnalysis/test/tools/split.py b/SimTracker/TrackerMaterialAnalysis/test/tools/split.py index 7c372dab08649..ef3d3539e78e7 100755 --- a/SimTracker/TrackerMaterialAnalysis/test/tools/split.py +++ b/SimTracker/TrackerMaterialAnalysis/test/tools/split.py @@ -1,6 +1,5 @@ #! /usr/bin/env python -from __future__ import print_function import sys import xml.dom from xml.dom import minidom From b7cae98d0bb67145a9e1be3296596695af065269 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:17:48 +0100 Subject: [PATCH 094/418] [L1-UPGRADE] py2/3 compatibility:drop use of __future__ --- L1Trigger/L1CaloTrigger/python/l1tPhase1JetProducer_cfi.py | 1 - L1Trigger/L1CaloTrigger/test/Phase1L1TJetHwEmuComp.py | 1 - L1Trigger/L1CaloTrigger/test/generatePatternPF.py | 1 - L1Trigger/L1THGCal/python/customCalibration.py | 1 - L1Trigger/L1THGCal/python/l1tHGCalBackEndLayer1Producer_cfi.py | 1 - L1Trigger/L1THGCal/python/l1tHGCalVFEProducer_cfi.py | 1 - L1Trigger/L1THGCalUtilities/python/hgcalTriggerNtuples_cfi.py | 1 - L1Trigger/TrackTrigger/python/TkOnlyDigi_cff.py | 1 - L1Trigger/TrackTrigger/test/SLHC_MBIAS_TkOnly.py | 1 - L1Trigger/TrackTrigger/test/SLHC_PGUN_TkOnly.py | 1 - L1Trigger/TrackTrigger/test/SLHC_PU_TkOnly.py | 1 - 11 files changed, 11 deletions(-) diff --git a/L1Trigger/L1CaloTrigger/python/l1tPhase1JetProducer_cfi.py b/L1Trigger/L1CaloTrigger/python/l1tPhase1JetProducer_cfi.py index 318ce07897bdf..bbd997534f745 100644 --- a/L1Trigger/L1CaloTrigger/python/l1tPhase1JetProducer_cfi.py +++ b/L1Trigger/L1CaloTrigger/python/l1tPhase1JetProducer_cfi.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from math import pi diff --git a/L1Trigger/L1CaloTrigger/test/Phase1L1TJetHwEmuComp.py b/L1Trigger/L1CaloTrigger/test/Phase1L1TJetHwEmuComp.py index 52c5baab09414..340539b6fe605 100644 --- a/L1Trigger/L1CaloTrigger/test/Phase1L1TJetHwEmuComp.py +++ b/L1Trigger/L1CaloTrigger/test/Phase1L1TJetHwEmuComp.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -from __future__ import print_function import os import sys import math diff --git a/L1Trigger/L1CaloTrigger/test/generatePatternPF.py b/L1Trigger/L1CaloTrigger/test/generatePatternPF.py index 7166d63a2c187..3ac217eb1e76f 100644 --- a/L1Trigger/L1CaloTrigger/test/generatePatternPF.py +++ b/L1Trigger/L1CaloTrigger/test/generatePatternPF.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/L1Trigger/L1THGCal/python/customCalibration.py b/L1Trigger/L1THGCal/python/customCalibration.py index 5c6311ef1d609..314df054c3143 100644 --- a/L1Trigger/L1THGCal/python/customCalibration.py +++ b/L1Trigger/L1THGCal/python/customCalibration.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from . import hgcalLayersCalibrationCoefficients_cfi as layercalibparam diff --git a/L1Trigger/L1THGCal/python/l1tHGCalBackEndLayer1Producer_cfi.py b/L1Trigger/L1THGCal/python/l1tHGCalBackEndLayer1Producer_cfi.py index 1bef6460c6ae8..cfb81fad86605 100644 --- a/L1Trigger/L1THGCal/python/l1tHGCalBackEndLayer1Producer_cfi.py +++ b/L1Trigger/L1THGCal/python/l1tHGCalBackEndLayer1Producer_cfi.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms import SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi as digiparam diff --git a/L1Trigger/L1THGCal/python/l1tHGCalVFEProducer_cfi.py b/L1Trigger/L1THGCal/python/l1tHGCalVFEProducer_cfi.py index f465d82bc29a6..5d83b3fb6df66 100644 --- a/L1Trigger/L1THGCal/python/l1tHGCalVFEProducer_cfi.py +++ b/L1Trigger/L1THGCal/python/l1tHGCalVFEProducer_cfi.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms import SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi as digiparam diff --git a/L1Trigger/L1THGCalUtilities/python/hgcalTriggerNtuples_cfi.py b/L1Trigger/L1THGCalUtilities/python/hgcalTriggerNtuples_cfi.py index a55380002da25..9d3085d99a8a5 100644 --- a/L1Trigger/L1THGCalUtilities/python/hgcalTriggerNtuples_cfi.py +++ b/L1Trigger/L1THGCalUtilities/python/hgcalTriggerNtuples_cfi.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms import SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi as digiparam diff --git a/L1Trigger/TrackTrigger/python/TkOnlyDigi_cff.py b/L1Trigger/TrackTrigger/python/TkOnlyDigi_cff.py index 00846878389fa..04d674e1353a3 100644 --- a/L1Trigger/TrackTrigger/python/TkOnlyDigi_cff.py +++ b/L1Trigger/TrackTrigger/python/TkOnlyDigi_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def TkOnlyDigi(process): diff --git a/L1Trigger/TrackTrigger/test/SLHC_MBIAS_TkOnly.py b/L1Trigger/TrackTrigger/test/SLHC_MBIAS_TkOnly.py index f37c631013fa2..ab82d532ea072 100644 --- a/L1Trigger/TrackTrigger/test/SLHC_MBIAS_TkOnly.py +++ b/L1Trigger/TrackTrigger/test/SLHC_MBIAS_TkOnly.py @@ -1,4 +1,3 @@ -from __future__ import print_function ######################### # # Configuration file for simple MBias events diff --git a/L1Trigger/TrackTrigger/test/SLHC_PGUN_TkOnly.py b/L1Trigger/TrackTrigger/test/SLHC_PGUN_TkOnly.py index 44aa66a1006ec..4d36c95b78210 100644 --- a/L1Trigger/TrackTrigger/test/SLHC_PGUN_TkOnly.py +++ b/L1Trigger/TrackTrigger/test/SLHC_PGUN_TkOnly.py @@ -1,4 +1,3 @@ -from __future__ import print_function ######################### # # Configuration file for simple PGUN events diff --git a/L1Trigger/TrackTrigger/test/SLHC_PU_TkOnly.py b/L1Trigger/TrackTrigger/test/SLHC_PU_TkOnly.py index 1b9f63b524810..5d7702e763180 100644 --- a/L1Trigger/TrackTrigger/test/SLHC_PU_TkOnly.py +++ b/L1Trigger/TrackTrigger/test/SLHC_PU_TkOnly.py @@ -1,4 +1,3 @@ -from __future__ import print_function ######################### # # Configuration file for PileUp events From 693030408a8053bde627dbb73cf8fc1f5ad37582 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:17:56 +0100 Subject: [PATCH 095/418] [ALCA-RECONSTRUCTION] py2/3 compatibility:drop use of __future__ --- RecoVertex/BeamSpotProducer/scripts/BeamSpotWorkflow.py | 1 - RecoVertex/BeamSpotProducer/scripts/CommonMethods.py | 1 - RecoVertex/BeamSpotProducer/scripts/beamvalidation.py | 1 - RecoVertex/BeamSpotProducer/scripts/checkPayloads.py | 1 - RecoVertex/BeamSpotProducer/scripts/checkRuns.py | 1 - RecoVertex/BeamSpotProducer/scripts/copyAndRename.py | 1 - RecoVertex/BeamSpotProducer/scripts/copyFiles.py | 1 - RecoVertex/BeamSpotProducer/scripts/createPayload.py | 1 - RecoVertex/BeamSpotProducer/scripts/getBeamSpotDB.py | 1 - RecoVertex/BeamSpotProducer/scripts/ntuplemaker.py | 1 - RecoVertex/BeamSpotProducer/scripts/plotBeamSpotDB.py | 1 - RecoVertex/BeamSpotProducer/scripts/rename.py | 1 - .../BeamSpotProducer/scripts/root/BxAnalysis/lumiregperbunch.py | 1 - RecoVertex/BeamSpotProducer/scripts/splitter.py | 1 - RecoVertex/BeamSpotProducer/scripts/uploadPayloads.py | 1 - RecoVertex/BeamSpotProducer/scripts/uploader.py | 1 - RecoVertex/BeamSpotProducer/test/InspectFwBeamSpot.py | 1 - RecoVertex/BeamSpotProducer/test/scripts/AnalyzeLumiScan.py | 1 - RecoVertex/BeamSpotProducer/test/scripts/PlotLumiScan.py | 1 - RecoVertex/BeamSpotProducer/test/scripts/pv.py | 1 - 20 files changed, 20 deletions(-) diff --git a/RecoVertex/BeamSpotProducer/scripts/BeamSpotWorkflow.py b/RecoVertex/BeamSpotProducer/scripts/BeamSpotWorkflow.py index bf4df5707c705..0ac172bd860ce 100755 --- a/RecoVertex/BeamSpotProducer/scripts/BeamSpotWorkflow.py +++ b/RecoVertex/BeamSpotProducer/scripts/BeamSpotWorkflow.py @@ -30,7 +30,6 @@ Fermilab 2010 """ -from __future__ import print_function from builtins import range diff --git a/RecoVertex/BeamSpotProducer/scripts/CommonMethods.py b/RecoVertex/BeamSpotProducer/scripts/CommonMethods.py index b247d44746753..d2946149596f2 100644 --- a/RecoVertex/BeamSpotProducer/scripts/CommonMethods.py +++ b/RecoVertex/BeamSpotProducer/scripts/CommonMethods.py @@ -1,4 +1,3 @@ -from __future__ import print_function from builtins import range import math, re, optparse, subprocess, os, sys, time, datetime from BeamSpotObj import BeamSpot diff --git a/RecoVertex/BeamSpotProducer/scripts/beamvalidation.py b/RecoVertex/BeamSpotProducer/scripts/beamvalidation.py index 2fdb2caae215f..8dc962d1e447b 100644 --- a/RecoVertex/BeamSpotProducer/scripts/beamvalidation.py +++ b/RecoVertex/BeamSpotProducer/scripts/beamvalidation.py @@ -25,7 +25,6 @@ Fermilab 2010 """ -from __future__ import print_function from builtins import range diff --git a/RecoVertex/BeamSpotProducer/scripts/checkPayloads.py b/RecoVertex/BeamSpotProducer/scripts/checkPayloads.py index bf862bf0ab052..1bb49c50aaeab 100755 --- a/RecoVertex/BeamSpotProducer/scripts/checkPayloads.py +++ b/RecoVertex/BeamSpotProducer/scripts/checkPayloads.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys,os,subprocess,re import xmlrpclib from CommonMethods import * diff --git a/RecoVertex/BeamSpotProducer/scripts/checkRuns.py b/RecoVertex/BeamSpotProducer/scripts/checkRuns.py index 892cf682ee92b..3cbcad73eab55 100755 --- a/RecoVertex/BeamSpotProducer/scripts/checkRuns.py +++ b/RecoVertex/BeamSpotProducer/scripts/checkRuns.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import sys,os,re import xmlrpclib diff --git a/RecoVertex/BeamSpotProducer/scripts/copyAndRename.py b/RecoVertex/BeamSpotProducer/scripts/copyAndRename.py index b9799e46a13fc..fefbc7f46ab29 100755 --- a/RecoVertex/BeamSpotProducer/scripts/copyAndRename.py +++ b/RecoVertex/BeamSpotProducer/scripts/copyAndRename.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys,os,subprocess from CommonMethods import * def main(): diff --git a/RecoVertex/BeamSpotProducer/scripts/copyFiles.py b/RecoVertex/BeamSpotProducer/scripts/copyFiles.py index 321ba409d0e5e..3f6788bde7565 100755 --- a/RecoVertex/BeamSpotProducer/scripts/copyFiles.py +++ b/RecoVertex/BeamSpotProducer/scripts/copyFiles.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys,os from CommonMethods import * diff --git a/RecoVertex/BeamSpotProducer/scripts/createPayload.py b/RecoVertex/BeamSpotProducer/scripts/createPayload.py index 3a104c15006d8..0936d8625b7ad 100755 --- a/RecoVertex/BeamSpotProducer/scripts/createPayload.py +++ b/RecoVertex/BeamSpotProducer/scripts/createPayload.py @@ -34,7 +34,6 @@ Fermilab 2010 """ -from __future__ import print_function from builtins import range diff --git a/RecoVertex/BeamSpotProducer/scripts/getBeamSpotDB.py b/RecoVertex/BeamSpotProducer/scripts/getBeamSpotDB.py index 4c2bc39ffc0d6..d7f560b785e4a 100755 --- a/RecoVertex/BeamSpotProducer/scripts/getBeamSpotDB.py +++ b/RecoVertex/BeamSpotProducer/scripts/getBeamSpotDB.py @@ -28,7 +28,6 @@ Fermilab 2010 """ -from __future__ import print_function import sys,os, re diff --git a/RecoVertex/BeamSpotProducer/scripts/ntuplemaker.py b/RecoVertex/BeamSpotProducer/scripts/ntuplemaker.py index fff69dca1b7b4..8c64fbe0dc5b4 100755 --- a/RecoVertex/BeamSpotProducer/scripts/ntuplemaker.py +++ b/RecoVertex/BeamSpotProducer/scripts/ntuplemaker.py @@ -31,7 +31,6 @@ Fermilab 2010 """ -from __future__ import print_function from builtins import range diff --git a/RecoVertex/BeamSpotProducer/scripts/plotBeamSpotDB.py b/RecoVertex/BeamSpotProducer/scripts/plotBeamSpotDB.py index a90ee9f314e78..63b8008712ec8 100755 --- a/RecoVertex/BeamSpotProducer/scripts/plotBeamSpotDB.py +++ b/RecoVertex/BeamSpotProducer/scripts/plotBeamSpotDB.py @@ -41,7 +41,6 @@ Fermilab 2010 """ -from __future__ import print_function from builtins import range diff --git a/RecoVertex/BeamSpotProducer/scripts/rename.py b/RecoVertex/BeamSpotProducer/scripts/rename.py index e190e2e20f74e..4c52a35f78723 100755 --- a/RecoVertex/BeamSpotProducer/scripts/rename.py +++ b/RecoVertex/BeamSpotProducer/scripts/rename.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import sys,os,re from CommonMethods import * diff --git a/RecoVertex/BeamSpotProducer/scripts/root/BxAnalysis/lumiregperbunch.py b/RecoVertex/BeamSpotProducer/scripts/root/BxAnalysis/lumiregperbunch.py index aac2c98e9a98f..9f79b2c6f4176 100755 --- a/RecoVertex/BeamSpotProducer/scripts/root/BxAnalysis/lumiregperbunch.py +++ b/RecoVertex/BeamSpotProducer/scripts/root/BxAnalysis/lumiregperbunch.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function from builtins import range import sys,os,calendar from ROOT import gDirectory,TFile diff --git a/RecoVertex/BeamSpotProducer/scripts/splitter.py b/RecoVertex/BeamSpotProducer/scripts/splitter.py index 44d388f49bcc9..1bf3a20744fdd 100755 --- a/RecoVertex/BeamSpotProducer/scripts/splitter.py +++ b/RecoVertex/BeamSpotProducer/scripts/splitter.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys,os,subprocess from CommonMethods import * diff --git a/RecoVertex/BeamSpotProducer/scripts/uploadPayloads.py b/RecoVertex/BeamSpotProducer/scripts/uploadPayloads.py index c2b4dcc0b6b7d..22fde49cb0f3b 100755 --- a/RecoVertex/BeamSpotProducer/scripts/uploadPayloads.py +++ b/RecoVertex/BeamSpotProducer/scripts/uploadPayloads.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys,os,subprocess from CommonMethods import * diff --git a/RecoVertex/BeamSpotProducer/scripts/uploader.py b/RecoVertex/BeamSpotProducer/scripts/uploader.py index f5a95cb72cef9..a397eca49ae81 100755 --- a/RecoVertex/BeamSpotProducer/scripts/uploader.py +++ b/RecoVertex/BeamSpotProducer/scripts/uploader.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import sys,os,subprocess from CommonMethods import * diff --git a/RecoVertex/BeamSpotProducer/test/InspectFwBeamSpot.py b/RecoVertex/BeamSpotProducer/test/InspectFwBeamSpot.py index b9d8a6a7edcc4..4e2eff61766fb 100644 --- a/RecoVertex/BeamSpotProducer/test/InspectFwBeamSpot.py +++ b/RecoVertex/BeamSpotProducer/test/InspectFwBeamSpot.py @@ -9,7 +9,6 @@ #____________________________________________________________ -from __future__ import print_function import configparser as ConfigParser import ROOT import sys diff --git a/RecoVertex/BeamSpotProducer/test/scripts/AnalyzeLumiScan.py b/RecoVertex/BeamSpotProducer/test/scripts/AnalyzeLumiScan.py index baf401be31ca4..67a927594c117 100644 --- a/RecoVertex/BeamSpotProducer/test/scripts/AnalyzeLumiScan.py +++ b/RecoVertex/BeamSpotProducer/test/scripts/AnalyzeLumiScan.py @@ -14,7 +14,6 @@ # #____________________________________________________________ -from __future__ import print_function from builtins import range import sys,os,re,string diff --git a/RecoVertex/BeamSpotProducer/test/scripts/PlotLumiScan.py b/RecoVertex/BeamSpotProducer/test/scripts/PlotLumiScan.py index d66006a79960d..9d02490687845 100644 --- a/RecoVertex/BeamSpotProducer/test/scripts/PlotLumiScan.py +++ b/RecoVertex/BeamSpotProducer/test/scripts/PlotLumiScan.py @@ -14,7 +14,6 @@ # #____________________________________________________________ -from __future__ import print_function from builtins import range import sys,os import string diff --git a/RecoVertex/BeamSpotProducer/test/scripts/pv.py b/RecoVertex/BeamSpotProducer/test/scripts/pv.py index f0cbda04c182b..5953dfc1df3e1 100644 --- a/RecoVertex/BeamSpotProducer/test/scripts/pv.py +++ b/RecoVertex/BeamSpotProducer/test/scripts/pv.py @@ -1,6 +1,5 @@ #! /usr/bin/env python -from __future__ import print_function import ROOT from builtins import range from ROOT import gROOT, gSystem, TFile, TH1I, TCanvas, TFitterMinuit From 2bb837aa18baff07dbd1bad187d770fccb8ee16f Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:18:03 +0100 Subject: [PATCH 096/418] [SIMULATION-UPGRADE] py2/3 compatibility:drop use of __future__ --- SLHCUpgradeSimulations/Configuration/python/muonCustoms.py | 1 - .../Configuration/python/muonCustomsPreMixing.py | 1 - SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py | 1 - .../Configuration/python/postLS1CustomsPreMixing.py | 1 - .../HGCalSimProducers/python/customHGCdigitizer_cfi.py | 1 - SimCalorimetry/HGCalSimProducers/test/hgcalInjectTestHit_cfg.py | 1 - 6 files changed, 6 deletions(-) diff --git a/SLHCUpgradeSimulations/Configuration/python/muonCustoms.py b/SLHCUpgradeSimulations/Configuration/python/muonCustoms.py index 759973d8324bb..50c1599eac057 100644 --- a/SLHCUpgradeSimulations/Configuration/python/muonCustoms.py +++ b/SLHCUpgradeSimulations/Configuration/python/muonCustoms.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms diff --git a/SLHCUpgradeSimulations/Configuration/python/muonCustomsPreMixing.py b/SLHCUpgradeSimulations/Configuration/python/muonCustomsPreMixing.py index a84a282a0b43f..4ce858874f6a1 100644 --- a/SLHCUpgradeSimulations/Configuration/python/muonCustomsPreMixing.py +++ b/SLHCUpgradeSimulations/Configuration/python/muonCustomsPreMixing.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms from . import muonCustoms diff --git a/SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py b/SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py index e8096d7ac4501..3715fd574cdcf 100644 --- a/SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py +++ b/SLHCUpgradeSimulations/Configuration/python/postLS1Customs.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms def customisePostLS1_Common(process): diff --git a/SLHCUpgradeSimulations/Configuration/python/postLS1CustomsPreMixing.py b/SLHCUpgradeSimulations/Configuration/python/postLS1CustomsPreMixing.py index a30a8e42abbfa..31af59bb87c19 100644 --- a/SLHCUpgradeSimulations/Configuration/python/postLS1CustomsPreMixing.py +++ b/SLHCUpgradeSimulations/Configuration/python/postLS1CustomsPreMixing.py @@ -1,4 +1,3 @@ -from __future__ import absolute_import import FWCore.ParameterSet.Config as cms diff --git a/SimCalorimetry/HGCalSimProducers/python/customHGCdigitizer_cfi.py b/SimCalorimetry/HGCalSimProducers/python/customHGCdigitizer_cfi.py index f9b388dd2a147..675738b024f87 100644 --- a/SimCalorimetry/HGCalSimProducers/python/customHGCdigitizer_cfi.py +++ b/SimCalorimetry/HGCalSimProducers/python/customHGCdigitizer_cfi.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms """ diff --git a/SimCalorimetry/HGCalSimProducers/test/hgcalInjectTestHit_cfg.py b/SimCalorimetry/HGCalSimProducers/test/hgcalInjectTestHit_cfg.py index 33085689d5bf6..dc27001fb37f9 100644 --- a/SimCalorimetry/HGCalSimProducers/test/hgcalInjectTestHit_cfg.py +++ b/SimCalorimetry/HGCalSimProducers/test/hgcalInjectTestHit_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process('DIGI') From 1926e305bb2de9fc5ace7481ee32d3eca8290169 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:18:11 +0100 Subject: [PATCH 097/418] [DQM-GEOMETRY] py2/3 compatibility:drop use of __future__ --- Validation/Geometry/python/plot_hgcal_utils.py | 1 - Validation/Geometry/test/MaterialBudget.py | 1 - Validation/Geometry/test/MaterialBudgetHGCal.py | 1 - Validation/Geometry/test/runMaterialMapForReco_fromReco.py | 1 - Validation/Geometry/test/runP_HGCal_cfg.py | 1 - Validation/Geometry/test/runP_Tracker.py | 1 - 6 files changed, 6 deletions(-) diff --git a/Validation/Geometry/python/plot_hgcal_utils.py b/Validation/Geometry/python/plot_hgcal_utils.py index 2615e387095cf..2115607e04a75 100644 --- a/Validation/Geometry/python/plot_hgcal_utils.py +++ b/Validation/Geometry/python/plot_hgcal_utils.py @@ -1,4 +1,3 @@ -from __future__ import print_function from ROOT import TStyle, kWhite, kTRUE from ROOT import gROOT, gStyle from ROOT import kGray, kAzure, kMagenta, kOrange, kWhite diff --git a/Validation/Geometry/test/MaterialBudget.py b/Validation/Geometry/test/MaterialBudget.py index 385332cab3ce6..0b6deb2199627 100644 --- a/Validation/Geometry/test/MaterialBudget.py +++ b/Validation/Geometry/test/MaterialBudget.py @@ -2,7 +2,6 @@ # Pure trick to start ROOT in batch mode, pass this only option to it # and the rest of the command line options to this code. -from __future__ import print_function import sys oldargv = sys.argv[:] sys.argv = [ '-b-' ] diff --git a/Validation/Geometry/test/MaterialBudgetHGCal.py b/Validation/Geometry/test/MaterialBudgetHGCal.py index 9e2d2212a6501..3250000a61da6 100644 --- a/Validation/Geometry/test/MaterialBudgetHGCal.py +++ b/Validation/Geometry/test/MaterialBudgetHGCal.py @@ -2,7 +2,6 @@ # Pure trick to start ROOT in batch mode, pass this only option to it # and the rest of the command line options to this code. -from __future__ import print_function import sys import numpy as np import pandas as pd diff --git a/Validation/Geometry/test/runMaterialMapForReco_fromReco.py b/Validation/Geometry/test/runMaterialMapForReco_fromReco.py index c3e801061359e..a9268b259009a 100644 --- a/Validation/Geometry/test/runMaterialMapForReco_fromReco.py +++ b/Validation/Geometry/test/runMaterialMapForReco_fromReco.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Auto generated configuration file # using: # Revision: 1.19 diff --git a/Validation/Geometry/test/runP_HGCal_cfg.py b/Validation/Geometry/test/runP_HGCal_cfg.py index bec9853d49e76..7f477cf55baf5 100644 --- a/Validation/Geometry/test/runP_HGCal_cfg.py +++ b/Validation/Geometry/test/runP_HGCal_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # In order to produce everything that you need in one go, use the command: # # for t in {'BeamPipe','Tracker','PixBar','PixFwdMinus','PixFwdPlus','TIB','TOB','TIDB','TIDF','TEC','TkStrct','InnerServices'}; do cmsRun runP_Tracker_cfg.py geom=XYZ label=$t >& /dev/null &; done diff --git a/Validation/Geometry/test/runP_Tracker.py b/Validation/Geometry/test/runP_Tracker.py index 93541b0b81e54..d237d10fb589d 100644 --- a/Validation/Geometry/test/runP_Tracker.py +++ b/Validation/Geometry/test/runP_Tracker.py @@ -2,7 +2,6 @@ # # for t in {'BeamPipe','Tracker','PixBar','PixFwdMinus','PixFwdPlus','TIB','TOB','TIDB','TIDF','TEC','TkStrct','InnerServices'}; do python3 runP_Tracker.py geom=XYZ label=$t >& /dev/null &; done -from __future__ import print_function import FWCore.ParameterSet.Config as cms from FWCore.ParameterSet.VarParsing import VarParsing import sys, re From e920110cd417e7c5eab7fc961a46c5c2062ce490 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:18:20 +0100 Subject: [PATCH 098/418] [MISC1] py2/3 compatibility:drop use of __future__ --- CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py | 1 - CondTools/HLT/scripts/run_AlCaRecoTriggerBitsUpdateWorkflow.py | 1 - CondTools/L1Trigger/test/L1ConfigWriteSinglePayload_cfg.py | 1 - .../test/SiPhase2OuterTrackerLorentzAngleWriter_cfg.py | 1 - Configuration/Geometry/python/generateGeometry.py | 1 - Configuration/Skimming/test/skimmingMatrix.py | 1 - Configuration/Skimming/test/testSkimConfig.py | 1 - DPGAnalysis/Skims/python/runonSM.py | 1 - DPGAnalysis/Skims/python/runonSM_350.py | 1 - DPGAnalysis/Skims/python/runonSMtunnel.py | 1 - DQM/BeamMonitor/test/42X_beam_dqm_sourceclient-live_cfg.py | 1 - DQM/BeamMonitor/test/44X_beam_dqm_sourceclient-live_cfg.py | 1 - DQM/BeamMonitor/test/beamspotdip_dqm_sourceclient-file_cfg.py | 1 - Geometry/CMSCommonData/test/run_DOMCount.py | 1 - Geometry/GEMGeometry/python/gemGeometryCustoms.py | 1 - 15 files changed, 15 deletions(-) diff --git a/CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py b/CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py index 835cb43c35649..2703c003bf264 100644 --- a/CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py +++ b/CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from FWCore.ParameterSet.VarParsing import VarParsing diff --git a/CondTools/HLT/scripts/run_AlCaRecoTriggerBitsUpdateWorkflow.py b/CondTools/HLT/scripts/run_AlCaRecoTriggerBitsUpdateWorkflow.py index 72717615f6122..1e96e3b8933b7 100755 --- a/CondTools/HLT/scripts/run_AlCaRecoTriggerBitsUpdateWorkflow.py +++ b/CondTools/HLT/scripts/run_AlCaRecoTriggerBitsUpdateWorkflow.py @@ -3,7 +3,6 @@ """ Example script to test reading from local sqlite db. """ -from __future__ import print_function import os import sys import ast diff --git a/CondTools/L1Trigger/test/L1ConfigWriteSinglePayload_cfg.py b/CondTools/L1Trigger/test/L1ConfigWriteSinglePayload_cfg.py index 1249a34699979..b1080bc6fe493 100644 --- a/CondTools/L1Trigger/test/L1ConfigWriteSinglePayload_cfg.py +++ b/CondTools/L1Trigger/test/L1ConfigWriteSinglePayload_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function # Example using L1RCTParameters import FWCore.ParameterSet.Config as cms diff --git a/CondTools/SiPhase2Tracker/test/SiPhase2OuterTrackerLorentzAngleWriter_cfg.py b/CondTools/SiPhase2Tracker/test/SiPhase2OuterTrackerLorentzAngleWriter_cfg.py index b93bbf3f627e6..883dd42f30611 100644 --- a/CondTools/SiPhase2Tracker/test/SiPhase2OuterTrackerLorentzAngleWriter_cfg.py +++ b/CondTools/SiPhase2Tracker/test/SiPhase2OuterTrackerLorentzAngleWriter_cfg.py @@ -1,6 +1,5 @@ #! /usr/bin/env cmsRun # Author: Marco Musich (May 2020) -from __future__ import print_function import os, shlex, shutil, getpass ################################################################### diff --git a/Configuration/Geometry/python/generateGeometry.py b/Configuration/Geometry/python/generateGeometry.py index 677909bf2ac6d..0730eb41ee281 100644 --- a/Configuration/Geometry/python/generateGeometry.py +++ b/Configuration/Geometry/python/generateGeometry.py @@ -1,4 +1,3 @@ -from __future__ import print_function from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter, RawTextHelpFormatter, RawDescriptionHelpFormatter import sys, os, operator from pprint import pprint diff --git a/Configuration/Skimming/test/skimmingMatrix.py b/Configuration/Skimming/test/skimmingMatrix.py index a8baa0f7f99dd..e173eacdfb1b1 100644 --- a/Configuration/Skimming/test/skimmingMatrix.py +++ b/Configuration/Skimming/test/skimmingMatrix.py @@ -1,4 +1,3 @@ -from __future__ import print_function import optparse import os diff --git a/Configuration/Skimming/test/testSkimConfig.py b/Configuration/Skimming/test/testSkimConfig.py index 2f6401da19c43..2f09aebe1659c 100755 --- a/Configuration/Skimming/test/testSkimConfig.py +++ b/Configuration/Skimming/test/testSkimConfig.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys import FWCore.ParameterSet.SequenceTypes as sqt diff --git a/DPGAnalysis/Skims/python/runonSM.py b/DPGAnalysis/Skims/python/runonSM.py index 45e5c1fbe2f38..469b10db4237e 100755 --- a/DPGAnalysis/Skims/python/runonSM.py +++ b/DPGAnalysis/Skims/python/runonSM.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import os,string,sys,time # template file to be used diff --git a/DPGAnalysis/Skims/python/runonSM_350.py b/DPGAnalysis/Skims/python/runonSM_350.py index 0b4b65fe9a839..ec7a9f7adac0c 100755 --- a/DPGAnalysis/Skims/python/runonSM_350.py +++ b/DPGAnalysis/Skims/python/runonSM_350.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import os,string,sys,time # template file to be used diff --git a/DPGAnalysis/Skims/python/runonSMtunnel.py b/DPGAnalysis/Skims/python/runonSMtunnel.py index 70fa5816ab06a..2e8986fdf320f 100755 --- a/DPGAnalysis/Skims/python/runonSMtunnel.py +++ b/DPGAnalysis/Skims/python/runonSMtunnel.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -from __future__ import print_function import os,string,sys,time # template file to be used diff --git a/DQM/BeamMonitor/test/42X_beam_dqm_sourceclient-live_cfg.py b/DQM/BeamMonitor/test/42X_beam_dqm_sourceclient-live_cfg.py index 72221f6a1b36a..0ee602e149849 100644 --- a/DQM/BeamMonitor/test/42X_beam_dqm_sourceclient-live_cfg.py +++ b/DQM/BeamMonitor/test/42X_beam_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("BeamMonitor") diff --git a/DQM/BeamMonitor/test/44X_beam_dqm_sourceclient-live_cfg.py b/DQM/BeamMonitor/test/44X_beam_dqm_sourceclient-live_cfg.py index 7f29cf0adfe66..c1e687cfd5b0f 100644 --- a/DQM/BeamMonitor/test/44X_beam_dqm_sourceclient-live_cfg.py +++ b/DQM/BeamMonitor/test/44X_beam_dqm_sourceclient-live_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms process = cms.Process("BeamMonitor") diff --git a/DQM/BeamMonitor/test/beamspotdip_dqm_sourceclient-file_cfg.py b/DQM/BeamMonitor/test/beamspotdip_dqm_sourceclient-file_cfg.py index 78066e24c0fc5..bf9c7c54e56d8 100644 --- a/DQM/BeamMonitor/test/beamspotdip_dqm_sourceclient-file_cfg.py +++ b/DQM/BeamMonitor/test/beamspotdip_dqm_sourceclient-file_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms # copy log4cplus.properties from >script directory< to >local< diff --git a/Geometry/CMSCommonData/test/run_DOMCount.py b/Geometry/CMSCommonData/test/run_DOMCount.py index 68423d68cc3bb..c2243e99cc350 100755 --- a/Geometry/CMSCommonData/test/run_DOMCount.py +++ b/Geometry/CMSCommonData/test/run_DOMCount.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from __future__ import print_function from FWCore.ParameterSet.pfnInPath import pfnInPath import FWCore.ParameterSet.Config as cms import sys diff --git a/Geometry/GEMGeometry/python/gemGeometryCustoms.py b/Geometry/GEMGeometry/python/gemGeometryCustoms.py index 672c0e22a3d11..e89d4485c6f54 100644 --- a/Geometry/GEMGeometry/python/gemGeometryCustoms.py +++ b/Geometry/GEMGeometry/python/gemGeometryCustoms.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms ## change the current default GEM geometry From 2c224d45e6ada796acac8c5d60269adb4cde1ab9 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:18:29 +0100 Subject: [PATCH 099/418] [MISC2] py2/3 compatibility:drop use of __future__ --- FastSimulation/ParticleDecay/python/TestPythiaDecays_cfg.py | 1 - FastSimulation/Validation/test/trackingPerformanceValidation.py | 1 - Fireworks/Geometry/python/dumpRecoGeometry_cfg.py | 1 - Fireworks/Geometry/python/dumpSimGeometry_cfg.py | 1 - GeneratorInterface/Herwig7Interface/scripts/parallelization.py | 1 - GeneratorInterface/LHEInterface/scripts/addLHEnumbers.py | 1 - GeneratorInterface/LHEInterface/scripts/cmsLHEtoEOSManager.py | 1 - GeneratorInterface/LHEInterface/scripts/mergeLHE.py | 1 - Geometry/TrackerCommonData/test/insertMaterial.py | 1 - Geometry/TrackerNumberingBuilder/test/dumpSimGeometry_cfg.py | 1 - HeterogeneousCore/CUDAServices/scripts/cudaPreallocate.py | 1 - 11 files changed, 11 deletions(-) diff --git a/FastSimulation/ParticleDecay/python/TestPythiaDecays_cfg.py b/FastSimulation/ParticleDecay/python/TestPythiaDecays_cfg.py index 9a95682a6fa8a..f078ccf58117a 100644 --- a/FastSimulation/ParticleDecay/python/TestPythiaDecays_cfg.py +++ b/FastSimulation/ParticleDecay/python/TestPythiaDecays_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from FWCore.ParameterSet.VarParsing import VarParsing diff --git a/FastSimulation/Validation/test/trackingPerformanceValidation.py b/FastSimulation/Validation/test/trackingPerformanceValidation.py index fe76948cd3420..9ecd28c255a6b 100755 --- a/FastSimulation/Validation/test/trackingPerformanceValidation.py +++ b/FastSimulation/Validation/test/trackingPerformanceValidation.py @@ -1,6 +1,5 @@ #! /usr/bin/env python -from __future__ import print_function import os import sys import fileinput diff --git a/Fireworks/Geometry/python/dumpRecoGeometry_cfg.py b/Fireworks/Geometry/python/dumpRecoGeometry_cfg.py index 0fb320efd7ffa..6e04bac80d024 100644 --- a/Fireworks/Geometry/python/dumpRecoGeometry_cfg.py +++ b/Fireworks/Geometry/python/dumpRecoGeometry_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys, os import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/Fireworks/Geometry/python/dumpSimGeometry_cfg.py b/Fireworks/Geometry/python/dumpSimGeometry_cfg.py index 927436ac56d24..4885faa4f3a3a 100644 --- a/Fireworks/Geometry/python/dumpSimGeometry_cfg.py +++ b/Fireworks/Geometry/python/dumpSimGeometry_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys, os import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/GeneratorInterface/Herwig7Interface/scripts/parallelization.py b/GeneratorInterface/Herwig7Interface/scripts/parallelization.py index 5c605b20ed314..0231f9fda6af4 100755 --- a/GeneratorInterface/Herwig7Interface/scripts/parallelization.py +++ b/GeneratorInterface/Herwig7Interface/scripts/parallelization.py @@ -38,7 +38,6 @@ # Author: Dominik Beutel -from __future__ import print_function import argparse import sys import os diff --git a/GeneratorInterface/LHEInterface/scripts/addLHEnumbers.py b/GeneratorInterface/LHEInterface/scripts/addLHEnumbers.py index b4d95458b8550..e10215f43d921 100755 --- a/GeneratorInterface/LHEInterface/scripts/addLHEnumbers.py +++ b/GeneratorInterface/LHEInterface/scripts/addLHEnumbers.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import logging import argparse import sys diff --git a/GeneratorInterface/LHEInterface/scripts/cmsLHEtoEOSManager.py b/GeneratorInterface/LHEInterface/scripts/cmsLHEtoEOSManager.py index c55d63b03d143..db1ba8254e5e4 100755 --- a/GeneratorInterface/LHEInterface/scripts/cmsLHEtoEOSManager.py +++ b/GeneratorInterface/LHEInterface/scripts/cmsLHEtoEOSManager.py @@ -8,7 +8,6 @@ """ -from __future__ import print_function print('Starting cmsLHEtoEOSManager.py') __version__ = "$Revision: 1.13 $" diff --git a/GeneratorInterface/LHEInterface/scripts/mergeLHE.py b/GeneratorInterface/LHEInterface/scripts/mergeLHE.py index b61925363d2c9..910424a12bb4b 100755 --- a/GeneratorInterface/LHEInterface/scripts/mergeLHE.py +++ b/GeneratorInterface/LHEInterface/scripts/mergeLHE.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import logging import argparse import math diff --git a/Geometry/TrackerCommonData/test/insertMaterial.py b/Geometry/TrackerCommonData/test/insertMaterial.py index a3e661fe3bf12..e03ad586526d1 100755 --- a/Geometry/TrackerCommonData/test/insertMaterial.py +++ b/Geometry/TrackerCommonData/test/insertMaterial.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -from __future__ import print_function import sys import xml.dom.minidom import math diff --git a/Geometry/TrackerNumberingBuilder/test/dumpSimGeometry_cfg.py b/Geometry/TrackerNumberingBuilder/test/dumpSimGeometry_cfg.py index bf3e25341d2e6..02cf1e83acb90 100644 --- a/Geometry/TrackerNumberingBuilder/test/dumpSimGeometry_cfg.py +++ b/Geometry/TrackerNumberingBuilder/test/dumpSimGeometry_cfg.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms import sys import FWCore.ParameterSet.VarParsing as VarParsing diff --git a/HeterogeneousCore/CUDAServices/scripts/cudaPreallocate.py b/HeterogeneousCore/CUDAServices/scripts/cudaPreallocate.py index 462b4f528ecde..8777dabe0af64 100755 --- a/HeterogeneousCore/CUDAServices/scripts/cudaPreallocate.py +++ b/HeterogeneousCore/CUDAServices/scripts/cudaPreallocate.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 -from __future__ import print_function import re import sys import argparse From 56239ec9b29d71f13854407bd9e40e4444cadd8b Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 18:18:37 +0100 Subject: [PATCH 100/418] [MISC3] py2/3 compatibility:drop use of __future__ --- PhysicsTools/NanoAOD/python/nano_cff.py | 1 - PhysicsTools/NanoAODTools/test/exampleGenDump.py | 1 - RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py | 1 - Validation/EventGenerator/python/genvalidTools.py | 1 - 4 files changed, 4 deletions(-) diff --git a/PhysicsTools/NanoAOD/python/nano_cff.py b/PhysicsTools/NanoAOD/python/nano_cff.py index 5e55613bfb41d..386b78fbb6ca9 100644 --- a/PhysicsTools/NanoAOD/python/nano_cff.py +++ b/PhysicsTools/NanoAOD/python/nano_cff.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms from PhysicsTools.NanoAOD.common_cff import * from PhysicsTools.NanoAOD.nano_eras_cff import * diff --git a/PhysicsTools/NanoAODTools/test/exampleGenDump.py b/PhysicsTools/NanoAODTools/test/exampleGenDump.py index 1d582c841576b..7fe66af9f0da5 100755 --- a/PhysicsTools/NanoAODTools/test/exampleGenDump.py +++ b/PhysicsTools/NanoAODTools/test/exampleGenDump.py @@ -3,7 +3,6 @@ # https://cms-nanoaod-integration.web.cern.ch/integration/master-106X/mc106Xul18_doc.html#GenPart # https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/NanoAOD/python/genparticles_cff.py # https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/NanoAOD/plugins/LHETablesProducer.cc -from __future__ import print_function # for python3 compatibility from PhysicsTools.NanoAODTools.postprocessing.framework.postprocessor import PostProcessor from PhysicsTools.NanoAODTools.postprocessing.framework.eventloop import Module from PhysicsTools.NanoAODTools.postprocessing.framework.datamodel import Collection diff --git a/RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py b/RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py index c374d817f614a..ba3f9f8dca457 100644 --- a/RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py +++ b/RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3.9 -from __future__ import annotations from dataclasses import dataclass from functools import cached_property from typing import Optional diff --git a/Validation/EventGenerator/python/genvalidTools.py b/Validation/EventGenerator/python/genvalidTools.py index 7990401cb2033..da94c1349662b 100644 --- a/Validation/EventGenerator/python/genvalidTools.py +++ b/Validation/EventGenerator/python/genvalidTools.py @@ -1,4 +1,3 @@ -from __future__ import print_function import FWCore.ParameterSet.Config as cms #function to switch to an external weight producer for an analyzer in the validation chain From 8062ebc6bab6caeead40d8e01dd55f216d2a60e2 Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 22 Nov 2024 22:18:15 +0100 Subject: [PATCH 101/418] adjustments to HG PCL workflow to use online inputs --- ...romptCalibProdSiPixelAliHLTHGDiMuon_cff.py | 5 ++-- ...ARECOPromptCalibProdSiPixelAliHLTHG_cff.py | 5 +--- ...LCARECOPromptCalibProdSiPixelAliHLT_cff.py | 23 +++++++++++-------- .../ALCARECOTkAlHLTTracksZMuMu_Output_cff.py | 6 ++--- .../ALCARECOTkAlHLTTracks_Output_cff.py | 4 +--- 5 files changed, 21 insertions(+), 22 deletions(-) diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py index bd0f2fb7abf43..4112c8dcb9d30 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHGDiMuon_cff.py @@ -12,8 +12,7 @@ from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHLT_cff import * from Alignment.CommonAlignmentProducer.LSNumberFilter_cfi import * -# Ingredient: offlineBeamSpot -from RecoVertex.BeamSpotProducer.BeamSpot_cfi import offlineBeamSpot + # Ingredient: AlignmentTrackSelector # track selector for HighPurity tracks @@ -128,7 +127,7 @@ seqALCARECOPromptCalibProdSiPixelAliHLTHGDiMu = cms.Sequence( ALCARECOTkAlZMuMuFilterForSiPixelAliHLT* LSNumberFilter* - offlineBeamSpot* + onlineBeamSpot* SiPixelAliLooseSelectorHLTHGDimuon* SiPixelAliTrackRefitterHLTHGDimuon0* SiPixelAliTrackerTrackHitFilterHLTHGDimuon* diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py index ffa4971802c92..1680d4c1c0e18 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLTHG_cff.py @@ -12,9 +12,6 @@ from Alignment.CommonAlignmentProducer.ALCARECOPromptCalibProdSiPixelAliHLT_cff import * from Alignment.CommonAlignmentProducer.LSNumberFilter_cfi import * -# Ingredient: offlineBeamSpot -from RecoVertex.BeamSpotProducer.BeamSpot_cfi import offlineBeamSpot - # Ingredient: AlignmentTrackSelector # track selector for HighPurity tracks #-- AlignmentTrackSelector @@ -75,7 +72,7 @@ seqALCARECOPromptCalibProdSiPixelAliHLTHG = cms.Sequence( ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG* LSNumberFilter* - offlineBeamSpot* + onlineBeamSpot* SiPixelAliLooseSelectorHLTHG* SiPixelAliTrackRefitterHLTHG0* SiPixelAliTrackerTrackHitFilterHLTHG* diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py index 85c4149a514ae..4f9000ffd88d9 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py @@ -15,6 +15,11 @@ import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi onlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone() +import RecoVertex.BeamSpotProducer.onlineBeamSpotESProducer_cfi as _mod +BeamSpotESProducer = _mod.onlineBeamSpotESProducer.clone( + timeThreshold = 999999 # for express allow >48h old payloads for replays. DO NOT CHANGE +) + # Ingredient: ALCARECOTkAlMinBiasHLT from Alignment.CommonAlignmentProducer.ALCARECOTkAlMinBias_cff import ALCARECOTkAlMinBias ALCARECOTkAlMinBiasHLTTracks = ALCARECOTkAlMinBias.clone( @@ -128,17 +133,21 @@ SiPixelAliTrackRefitterHLT0 = TrackRefitter.clone( src = 'SiPixelAliLooseSelectorHLT', #'ALCARECOTkAlMinBias'#'ALCARECOTkAlCosmicsCTF0T' #'ALCARECOTkAlMuonIsolated' NavigationSchool = '', # to avoid filling hit pattern - TTRHBuilder = 'hltESPTTRHBWithTrackAngle' + TTRHBuilder = 'hltESPTTRHBWithTrackAngle', + beamSpot = 'onlineBeamSpot' ) SiPixelAliTrackRefitterHLT1 = SiPixelAliTrackRefitter0.clone( - src = 'SiPixelAliTrackSelectorHLT' + src = 'SiPixelAliTrackSelectorHLT', + TTRHBuilder = 'hltESPTTRHBWithTrackAngle', + beamSpot = 'onlineBeamSpot' ) #-- Alignment producer from Alignment.MillePedeAlignmentAlgorithm.MillePedeAlignmentAlgorithm_cfi import * from Alignment.CommonAlignmentProducer.AlignmentProducerAsAnalyzer_cff import AlignmentProducer SiPixelAliMilleAlignmentProducerHLT = SiPixelAliMilleAlignmentProducer.clone( + beamSpotTag = 'onlineBeamSpot', tjTkAssociationMapTag = 'SiPixelAliTrackRefitterHLT1', algoConfig = MillePedeAlignmentAlgorithm.clone( binaryFile = 'milleBinaryHLT_0.dat', @@ -146,23 +155,19 @@ monitorFile = 'millePedeMonitorHLT.root' ) ) -# Does anything else of the AlignmentProducer need to be overwritten ??? - - - # Ingredient: SiPixelAliTrackerTrackHitFilterHLT SiPixelAliTrackerTrackHitFilterHLT = SiPixelAliTrackerTrackHitFilter.clone( src = 'SiPixelAliTrackRefitterHLT0' ) - # Ingredient: SiPixelAliTrackFitterHLT import RecoTracker.TrackProducer.CTFFinalFitWithMaterial_cff as fitWithMaterial SiPixelAliTrackFitterHLT = fitWithMaterial.ctfWithMaterialTracks.clone( src = 'SiPixelAliTrackerTrackHitFilterHLT', - # TTRHBuilder = 'hltESPTTRHBWithTrackAngle', #should already be default ??? - NavigationSchool = '' + NavigationSchool = '', + TTRHBuilder = 'hltESPTTRHBWithTrackAngle', + beamSpot = 'onlineBeamSpot' ) SiPixelAliMillePedeFileConverterHLT = cms.EDProducer( diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_Output_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_Output_cff.py index b05db2362f77e..8a27c4cd4d2f4 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_Output_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracksZMuMu_Output_cff.py @@ -12,10 +12,10 @@ 'keep SiPixelClusteredmNewDetSetVector_ALCARECOTkAlHLTTracksZMuMu_*_*', 'keep SiStripClusteredmNewDetSetVector_ALCARECOTkAlHLTTracksZMuMu_*_*', 'keep L1AcceptBunchCrossings_*_*_*', - 'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*', 'keep *_TriggerResults_*_*', - 'keep DcsStatuss_scalersRawToDigi_*_*', - 'keep *_hltVerticesPFFilter_*_*') + 'keep *_hltVerticesPFFilter_*_*', + 'keep *_hltOnlineBeamSpot_*_*' + ) ) OutALCARECOTkAlHLTTracksZMuMu = OutALCARECOTkAlHLTTracksZMuMu_noDrop.clone() diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_Output_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_Output_cff.py index e086ff6c9d246..de4fd28d8f5ed 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_Output_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlHLTTracks_Output_cff.py @@ -12,11 +12,9 @@ 'keep SiPixelClusteredmNewDetSetVector_ALCARECOTkAlHLTTracks_*_*', 'keep SiStripClusteredmNewDetSetVector_ALCARECOTkAlHLTTracks_*_*', 'keep L1AcceptBunchCrossings_*_*_*', - 'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*', 'keep *_TriggerResults_*_*', - 'keep DcsStatuss_scalersRawToDigi_*_*', 'keep *_hltVerticesPFFilter_*_*', - 'keep *_onlineBeamSpot_*_*') + 'keep *_hltOnlineBeamSpot_*_*') ) OutALCARECOTkAlHLTTracks = OutALCARECOTkAlHLTTracks_noDrop.clone() From b589c81a97057d1f0146cab0fa59697ecdf5e657 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 22 Nov 2024 22:25:11 +0100 Subject: [PATCH 102/418] added back __future__ annotations as it is still not part of python3 --- RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py | 1 + 1 file changed, 1 insertion(+) diff --git a/RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py b/RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py index ba3f9f8dca457..c374d817f614a 100644 --- a/RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py +++ b/RecoLocalMuon/GEMCSCSegment/test/plotGEMCSCCoincidenceRate.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3.9 +from __future__ import annotations from dataclasses import dataclass from functools import cached_property from typing import Optional From 9ce6ccbf5ff69b68290cd6572cb6b2e86a4bc7e1 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Sat, 23 Nov 2024 09:41:22 +0100 Subject: [PATCH 103/418] Correct the scenario for 2025 by including the DT shield --- Configuration/Geometry/README.md | 22 ++++---- .../Geometry/python/dict2021Geometry.py | 52 ++++++++++++++----- .../data/dd4hep/cmsExtendedGeometry2025.xml | 4 +- .../python/cmsExtendedGeometry2025XML_cfi.py | 4 +- 4 files changed, 56 insertions(+), 26 deletions(-) diff --git a/Configuration/Geometry/README.md b/Configuration/Geometry/README.md index a0b3cab945a94..eaafd36577a64 100644 --- a/Configuration/Geometry/README.md +++ b/Configuration/Geometry/README.md @@ -33,8 +33,8 @@ Calorimeters: Muon system: * M1: 2021 baseline with additional chambers in GE21 and iRPC31/41 * M2: 2023 GE21 shifted in position -* M4: 2024 with additional chambers in GE21 and iRPC31 -* M5: 2025 with additional chambers in GE21 and iRPC +* M3: 2024 with additional chambers in GE21 and iRPC31 +* M4: 2025 with additional chambers in GE21 and iRPC PPS: * P7: 2021 baseline (after removing overlaps and using common materials whenever possible) @@ -43,29 +43,31 @@ The script also handles the common and forward elements of the geometry: * O4: as O6, but with zero material * O5: as O6, but with trackermaterial removed (they are in T5, T6, T7, T8) * O6: 2021 baseline +* O7: 2021 with added material for muon shield * F1: 2021 baseline * F2: same as F1 with modified file zdc.xmlfrom ZDC group * F3: same as F2 with added simulti geometry for RPD Several detector combinations have been generated: -* 2021 = T3+C1+M1+P7+O6+F1 +* 2021 = T3+C3+M1+P7+O6+F1 * 2021ZeroMaterial = T4+C1+M1+P7+O4+F1 * 2021FlatMinus05Percent = T5+C1+M1+P7+O5+F1 * 2021FlatMinus10Percent = T6+C1+M1+P7+O5+F1 * 2021FlatPlus05Percent = T7+C1+M1+P7+O5+F1 * 2021FlatPlus10Percent = T8+C1+M1+P7+O5+F1 -* 2023 = T3+C1+M2+P7+O6+F3 +* 2023 = T3+C2+M2+P7+O6+F3 * 2023ZeroMaterial = T4+C1+M2+P7+O4+F2 * 2023FlatMinus05Percent = T5+C1+M2+P7+O5+F2 * 2023FlatMinus10Percent = T6+C1+M2+P7+O5+F2 * 2023FlatPlus05Percent = T7+C1+M2+P7+O5+F2 * 2023FlatPlus10Percent = T8+C1+M2+P7+O5+F2 -* 2024 = T3+C1+M3+P7+O6+F3 -* 2024ZeroMaterial = T4+C1+M3+P7+O4+F2 -* 2024FlatMinus05Percent = T5+C1+M3+P7+O5+F2 -* 2024FlatMinus10Percent = T6+C1+M3+P7+O5+F2 -* 2024FlatPlus05Percent = T7+C1+M3+P7+O5+F2 -* 2024FlatPlus10Percent = T8+C1+M3+P7+O5+F2 +* 2024 = T3+C2+M3+P7+O6+F3 +* 2024ZeroMaterial = T4+C2+M3+P7+O4+F2 +* 2024FlatMinus05Percent = T5+C2+M3+P7+O5+F2 +* 2024FlatMinus10Percent = T6+C2+M3+P7+O5+F2 +* 2024FlatPlus05Percent = T7+C2+M3+P7+O5+F2 +* 2024FlatPlus10Percent = T8+C2+M3+P7+O5+F2 +* 2025 = T3+C2+M4+P7+O7+F3 # Phase 2 Geometries diff --git a/Configuration/Geometry/python/dict2021Geometry.py b/Configuration/Geometry/python/dict2021Geometry.py index 24eda0dcbaabd..0d8bf28a26ce4 100644 --- a/Configuration/Geometry/python/dict2021Geometry.py +++ b/Configuration/Geometry/python/dict2021Geometry.py @@ -87,6 +87,34 @@ ], "era" : "run3_common, stage2L1Trigger_2021", }, + "O7" : { + 1 : [ + 'Geometry/CMSCommonData/data/materials/2021/v4/materials.xml', + 'Geometry/TrackerCommonData/data/trackermaterial/2021/v2/trackermaterial.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + ], + 5 : [ + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ], + "era" : "run3_common, stage2L1Trigger_2021", + }, } trackerDict = { @@ -1624,7 +1652,7 @@ ], "era" : "run3_GEM", }, - "M4" : { + "M3" : { 1 : [ 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', @@ -1669,14 +1697,14 @@ ], "era" : "run3_GEM", }, - "M5" : { + "M4" : { 1 : [ 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml', 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', @@ -1940,14 +1968,14 @@ ("O5","T6","C1","M2","F2","P7") : "2023FlatMinus10Percent", ("O5","T7","C1","M2","F2","P7") : "2023FlatPlus05Percent", ("O5","T8","C1","M2","F2","P7") : "2023FlatPlus10Percent", - ("O6","T3","C2","M4","F3","P7") : "2024", - ("O4","T4","C2","M4","F2","P7") : "2024ZeroMaterial", - ("O5","T5","C2","M4","F2","P7") : "2024FlatMinus05Percent", - ("O5","T6","C2","M4","F2","P7") : "2024FlatMinus10Percent", - ("O5","T7","C2","M4","F2","P7") : "2024FlatPlus05Percent", - ("O5","T8","C2","M4","F2","P7") : "2024FlatPlus10Percent", - ("O6","T3","C2","M5","F3","P7") : "2025", + ("O6","T3","C2","M3","F3","P7") : "2024", + ("O4","T4","C2","M3","F2","P7") : "2024ZeroMaterial", + ("O5","T5","C2","M3","F2","P7") : "2024FlatMinus05Percent", + ("O5","T6","C2","M3","F2","P7") : "2024FlatMinus10Percent", + ("O5","T7","C2","M3","F2","P7") : "2024FlatPlus05Percent", + ("O5","T8","C2","M3","F2","P7") : "2024FlatPlus10Percent", + ("O7","T3","C2","M4","F3","P7") : "2025", } -deprecatedSubdets = set([ "T1", "T2", "O1", "O2", "O3", "M3", "P1", "P2", - "P3", "P4", "P5", "P6" ]) +deprecatedSubdets = set([ "T1", "T2", "O1", "O2", "O3", "P1", "P2", "P3", + "P4", "P5", "P6" ]) diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml index 2e4f8f69c5c96..a664d0bd524a7 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025.xml @@ -4,7 +4,7 @@ - + @@ -240,7 +240,7 @@ - + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2025XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025XML_cfi.py index cdb94072f1544..f2c4df03ec1db 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2025XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025XML_cfi.py @@ -5,7 +5,7 @@ XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v3/materials.xml', + 'Geometry/CMSCommonData/data/materials/2021/v4/materials.xml', 'Geometry/TrackerCommonData/data/trackermaterial/2021/v2/trackermaterial.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', @@ -241,7 +241,7 @@ 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml', 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', From c930ed12d2e393b9d656f98279a7606603eb3a65 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Sat, 23 Nov 2024 15:01:55 -0600 Subject: [PATCH 104/418] Fix off by 1 error in Multi5x5ClusterAlgo --- RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc b/RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc index bce173c5978d7..86fa592aea5ee 100644 --- a/RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc +++ b/RecoEcal/EgammaClusterAlgos/src/Multi5x5ClusterAlgo.cc @@ -137,7 +137,7 @@ namespace { clusters_.push_back(std::move(c)); if (reassignSeedCrysToClusterItSeeds_) { for (auto const& hit : clusters_.back().hits()) { - whichClusCrysBelongsTo_.push_back(std::pair(hit.first, clusters_.size())); + whichClusCrysBelongsTo_.push_back(std::pair(hit.first, clusters_.size() - 1)); } } } From f540081bd33a62ef49fe0184a951a595ce41d6ac Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Sun, 24 Nov 2024 07:48:48 -0600 Subject: [PATCH 105/418] Hold member data by value in JetCorrectionUncertainty This avoids an unnecessary allocation and simplifies memory management. --- .../interface/JetCorrectionUncertainty.h | 10 +++++----- .../src/JetCorrectionUncertainty.cc | 19 +++++++------------ 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/CondFormats/JetMETObjects/interface/JetCorrectionUncertainty.h b/CondFormats/JetMETObjects/interface/JetCorrectionUncertainty.h index 87d4b7bf9bf09..93d743c688b36 100644 --- a/CondFormats/JetMETObjects/interface/JetCorrectionUncertainty.h +++ b/CondFormats/JetMETObjects/interface/JetCorrectionUncertainty.h @@ -1,11 +1,10 @@ #ifndef JetCorrectionUncertainty_h #define JetCorrectionUncertainty_h -#include "CondFormats/Serialization/interface/Serializable.h" - #include #include -class SimpleJetCorrectionUncertainty; +#include "CondFormats/JetMETObjects/interface/SimpleJetCorrectionUncertainty.h" + class JetCorrectorParameters; class JetCorrectionUncertainty { @@ -15,7 +14,8 @@ class JetCorrectionUncertainty { JetCorrectionUncertainty(const JetCorrectorParameters& fParameters); JetCorrectionUncertainty(const JetCorrectionUncertainty&) = delete; JetCorrectionUncertainty& operator=(const JetCorrectionUncertainty&) = delete; - ~JetCorrectionUncertainty(); + JetCorrectionUncertainty& operator=(JetCorrectionUncertainty&&) = default; + ~JetCorrectionUncertainty() = default; void setParameters(const std::string& fDataFile); void setJetEta(float fEta); @@ -50,7 +50,7 @@ class JetCorrectionUncertainty { bool mIsLepPxset; bool mIsLepPyset; bool mIsLepPzset; - SimpleJetCorrectionUncertainty* mUncertainty; + SimpleJetCorrectionUncertainty mUncertainty; }; #endif diff --git a/CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc b/CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc index ba2969903f962..9fa6ccbd59917 100644 --- a/CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc +++ b/CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc @@ -27,10 +27,9 @@ JetCorrectionUncertainty::JetCorrectionUncertainty() { mIsLepPyset = false; mIsLepPzset = false; mAddLepToJet = false; - mUncertainty = new SimpleJetCorrectionUncertainty(); } ///////////////////////////////////////////////////////////////////////// -JetCorrectionUncertainty::JetCorrectionUncertainty(const std::string& fDataFile) { +JetCorrectionUncertainty::JetCorrectionUncertainty(const std::string& fDataFile) : mUncertainty{fDataFile} { mJetEta = -9999; mJetPt = -9999; mJetPhi = -9999; @@ -48,10 +47,10 @@ JetCorrectionUncertainty::JetCorrectionUncertainty(const std::string& fDataFile) mIsLepPyset = false; mIsLepPzset = false; mAddLepToJet = false; - mUncertainty = new SimpleJetCorrectionUncertainty(fDataFile); } ///////////////////////////////////////////////////////////////////////// -JetCorrectionUncertainty::JetCorrectionUncertainty(const JetCorrectorParameters& fParameters) { +JetCorrectionUncertainty::JetCorrectionUncertainty(const JetCorrectorParameters& fParameters) + : mUncertainty{fParameters} { mJetEta = -9999; mJetPt = -9999; mJetPhi = -9999; @@ -69,23 +68,19 @@ JetCorrectionUncertainty::JetCorrectionUncertainty(const JetCorrectorParameters& mIsLepPyset = false; mIsLepPzset = false; mAddLepToJet = false; - mUncertainty = new SimpleJetCorrectionUncertainty(fParameters); } ///////////////////////////////////////////////////////////////////////// -JetCorrectionUncertainty::~JetCorrectionUncertainty() { delete mUncertainty; } -///////////////////////////////////////////////////////////////////////// void JetCorrectionUncertainty::setParameters(const std::string& fDataFile) { //---- delete the mParameters pointer before setting the new address --- - delete mUncertainty; - mUncertainty = new SimpleJetCorrectionUncertainty(fDataFile); + mUncertainty = SimpleJetCorrectionUncertainty(fDataFile); } ///////////////////////////////////////////////////////////////////////// float JetCorrectionUncertainty::getUncertainty(bool fDirection) { float result; std::vector vx, vy; - vx = fillVector(mUncertainty->parameters().definitions().binVar()); - vy = fillVector(mUncertainty->parameters().definitions().parVar()); - result = mUncertainty->uncertainty(vx, vy[0], fDirection); + vx = fillVector(mUncertainty.parameters().definitions().binVar()); + vy = fillVector(mUncertainty.parameters().definitions().parVar()); + result = mUncertainty.uncertainty(vx, vy[0], fDirection); mIsJetEset = false; mIsJetPtset = false; mIsJetPhiset = false; From f6aae992b07365008b81408fb52a18b41b465c79 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Sun, 24 Nov 2024 07:51:39 -0600 Subject: [PATCH 106/418] Reduce allocations in SimpleJetCorrectionUncertainty - hold member data by value - avoid using a temporary std::vector and use a span which skips 3 indicies. --- .../SimpleJetCorrectionUncertainty.h | 14 ++-- .../src/SimpleJetCorrectionUncertainty.cc | 79 +++++++++---------- 2 files changed, 44 insertions(+), 49 deletions(-) diff --git a/CondFormats/JetMETObjects/interface/SimpleJetCorrectionUncertainty.h b/CondFormats/JetMETObjects/interface/SimpleJetCorrectionUncertainty.h index c30d9783f95c6..40355911e9f40 100644 --- a/CondFormats/JetMETObjects/interface/SimpleJetCorrectionUncertainty.h +++ b/CondFormats/JetMETObjects/interface/SimpleJetCorrectionUncertainty.h @@ -1,28 +1,26 @@ #ifndef SimpleJetCorrectionUncertainty_h #define SimpleJetCorrectionUncertainty_h -#include "CondFormats/Serialization/interface/Serializable.h" - #include #include -class JetCorrectorParameters; +#include "CondFormats/JetMETObjects/interface/JetCorrectorParameters.h" class SimpleJetCorrectionUncertainty { public: - SimpleJetCorrectionUncertainty(); + SimpleJetCorrectionUncertainty() = default; SimpleJetCorrectionUncertainty(const std::string& fDataFile); SimpleJetCorrectionUncertainty(const JetCorrectorParameters& fParameters); SimpleJetCorrectionUncertainty(const SimpleJetCorrectionUncertainty&) = delete; SimpleJetCorrectionUncertainty& operator=(const SimpleJetCorrectionUncertainty&) = delete; - ~SimpleJetCorrectionUncertainty(); - const JetCorrectorParameters& parameters() const { return *mParameters; } + SimpleJetCorrectionUncertainty& operator=(SimpleJetCorrectionUncertainty&&) = default; + ~SimpleJetCorrectionUncertainty() = default; + const JetCorrectorParameters& parameters() const { return mParameters; } float uncertainty(const std::vector& fX, float fY, bool fDirection) const; private: - int findBin(const std::vector& v, float x) const; float uncertaintyBin(unsigned fBin, float fY, bool fDirection) const; float linearInterpolation(float fZ, const float fX[2], const float fY[2]) const; - JetCorrectorParameters* mParameters; + JetCorrectorParameters mParameters; }; #endif diff --git a/CondFormats/JetMETObjects/src/SimpleJetCorrectionUncertainty.cc b/CondFormats/JetMETObjects/src/SimpleJetCorrectionUncertainty.cc index 8be58693a0a00..c3546acc405f8 100644 --- a/CondFormats/JetMETObjects/src/SimpleJetCorrectionUncertainty.cc +++ b/CondFormats/JetMETObjects/src/SimpleJetCorrectionUncertainty.cc @@ -5,21 +5,14 @@ #include ///////////////////////////////////////////////////////////////////////// -SimpleJetCorrectionUncertainty::SimpleJetCorrectionUncertainty() { mParameters = new JetCorrectorParameters(); } +SimpleJetCorrectionUncertainty::SimpleJetCorrectionUncertainty(const std::string& fDataFile) : mParameters{fDataFile} {} ///////////////////////////////////////////////////////////////////////// -SimpleJetCorrectionUncertainty::SimpleJetCorrectionUncertainty(const std::string& fDataFile) { - mParameters = new JetCorrectorParameters(fDataFile); -} -///////////////////////////////////////////////////////////////////////// -SimpleJetCorrectionUncertainty::SimpleJetCorrectionUncertainty(const JetCorrectorParameters& fParameters) { - mParameters = new JetCorrectorParameters(fParameters); -} -///////////////////////////////////////////////////////////////////////// -SimpleJetCorrectionUncertainty::~SimpleJetCorrectionUncertainty() { delete mParameters; } +SimpleJetCorrectionUncertainty::SimpleJetCorrectionUncertainty(const JetCorrectorParameters& fParameters) + : mParameters{fParameters} {} ///////////////////////////////////////////////////////////////////////// float SimpleJetCorrectionUncertainty::uncertainty(const std::vector& fX, float fY, bool fDirection) const { float result = 1.; - int bin = mParameters->binIndex(fX); + int bin = mParameters.binIndex(fX); if (bin < 0) { edm::LogError("SimpleJetCorrectionUncertainty") << " bin variables out of range"; result = -999.0; @@ -28,31 +21,49 @@ float SimpleJetCorrectionUncertainty::uncertainty(const std::vector& fX, return result; } ///////////////////////////////////////////////////////////////////////// +namespace { + class Span3 { + public: + Span3(std::vector const& iFrom, int offset = 0) : start_{iFrom.data() + offset}, size_{iFrom.size() / 3} {} + float last() const { return fromIndex(size_ - 1); } + float operator[](std::size_t i) const { return fromIndex(i); } + std::size_t size() const { return size_; } + + private: + float fromIndex(std::size_t i) const { return *(start_ + 3 * i); } + float const* start_; + std::size_t size_; + }; + int findBin(const Span3& v, float x) { + int n = v.size() - 1; + if (n <= 0) + return -1; + if (x < v[0] || x >= v[n]) + return -1; + for (int i = 0; i < n; i++) { + if (x >= v[i] && x < v[i + 1]) + return i; + } + return 0; + } +} // namespace float SimpleJetCorrectionUncertainty::uncertaintyBin(unsigned fBin, float fY, bool fDirection) const { - if (fBin >= mParameters->size()) { + if (fBin >= mParameters.size()) { edm::LogError("SimpleJetCorrectionUncertainty") - << " wrong bin: " << fBin << ": only " << mParameters->size() << " are available"; + << " wrong bin: " << fBin << ": only " << mParameters.size() << " are available"; return -999.0; } - const std::vector& p = mParameters->record(fBin).parameters(); - if ((p.size() % 3) != 0) + const std::vector& p = mParameters.record(fBin).parameters(); + if ((p.size() % 3) != 0 or p.size() == 0) throw cms::Exception("SimpleJetCorrectionUncertainty") << "wrong # of parameters: multiple of 3 expected, " << p.size() << " got"; - std::vector yGrid, value; - unsigned int N = p.size() / 3; + Span3 yGrid{p}; + Span3 value{p, fDirection ? 1 : 2}; float result = -1.0; - for (unsigned i = 0; i < N; i++) { - unsigned ind = 3 * i; - yGrid.push_back(p[ind]); - if (fDirection) // true = UP - value.push_back(p[ind + 1]); - else // false = DOWN - value.push_back(p[ind + 2]); - } if (fY <= yGrid[0]) result = value[0]; - else if (fY >= yGrid[N - 1]) - result = value[N - 1]; + else if (fY >= yGrid.last()) + result = value.last(); else { int bin = findBin(yGrid, fY); float vx[2], vy[2]; @@ -83,17 +94,3 @@ float SimpleJetCorrectionUncertainty::linearInterpolation(float fZ, const float } return r; } -///////////////////////////////////////////////////////////////////////// -int SimpleJetCorrectionUncertainty::findBin(const std::vector& v, float x) const { - int i; - int n = v.size() - 1; - if (n <= 0) - return -1; - if (x < v[0] || x >= v[n]) - return -1; - for (i = 0; i < n; i++) { - if (x >= v[i] && x < v[i + 1]) - return i; - } - return 0; -} From 1a89dc2727e4c78d093dfdcc361b19fb8551af55 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Sun, 24 Nov 2024 08:24:34 -0600 Subject: [PATCH 107/418] Modernize ShiftedJetProducerT - reduced number of allocations - added fillDescriptions - moved to newer C++ syntax - switched to newer framework syntax --- .../PatUtils/interface/ShiftedJetProducerT.h | 124 +++++++++++------- 1 file changed, 76 insertions(+), 48 deletions(-) diff --git a/PhysicsTools/PatUtils/interface/ShiftedJetProducerT.h b/PhysicsTools/PatUtils/interface/ShiftedJetProducerT.h index 8d790acb79f80..d9e7edc1d095a 100644 --- a/PhysicsTools/PatUtils/interface/ShiftedJetProducerT.h +++ b/PhysicsTools/PatUtils/interface/ShiftedJetProducerT.h @@ -18,6 +18,7 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/FileInPath.h" #include "FWCore/Utilities/interface/InputTag.h" @@ -32,10 +33,11 @@ #include "PhysicsTools/PatUtils/interface/RawJetExtractorT.h" #include +#include template class ShiftedJetProducerT : public edm::stream::EDProducer<> { - typedef std::vector JetCollection; + using JetCollection = std::vector; public: explicit ShiftedJetProducerT(const edm::ParameterSet& cfg) @@ -43,11 +45,10 @@ class ShiftedJetProducerT : public edm::stream::EDProducer<> { src_(cfg.getParameter("src")), srcToken_(consumes(src_)), jetCorrPayloadName_(""), - jetCorrParameters_(nullptr), - jecUncertainty_(nullptr), - jecUncertaintyValue_(-1.) { + jecUncertainty_(), + jecUncertaintyValue_() { if (cfg.exists("jecUncertaintyValue")) { - jecUncertaintyValue_ = cfg.getParameter("jecUncertaintyValue"); + jecUncertaintyValue_.emplace(cfg.getParameter("jecUncertaintyValue")); } else { jetCorrUncertaintyTag_ = cfg.getParameter("jetCorrUncertaintyTag"); if (cfg.exists("jetCorrInputFileName")) { @@ -55,9 +56,8 @@ class ShiftedJetProducerT : public edm::stream::EDProducer<> { if (jetCorrInputFileName_.location() == edm::FileInPath::Unknown) throw cms::Exception("ShiftedJetProducerT") << " Failed to find JEC parameter file = " << jetCorrInputFileName_ << " !!\n"; - jetCorrParameters_ = - std::make_unique(jetCorrInputFileName_.fullPath(), jetCorrUncertaintyTag_); - jecUncertainty_ = std::make_unique(*jetCorrParameters_); + JetCorrectorParameters jetCorrParameters(jetCorrInputFileName_.fullPath(), jetCorrUncertaintyTag_); + jecUncertainty_.emplace(jetCorrParameters); } else { jetCorrPayloadName_ = cfg.getParameter("jetCorrPayloadName"); jetCorrPayloadToken_ = esConsumes(edm::ESInputTag("", jetCorrPayloadName_)); @@ -65,21 +65,48 @@ class ShiftedJetProducerT : public edm::stream::EDProducer<> { } addResidualJES_ = cfg.getParameter("addResidualJES"); - if (cfg.exists("jetCorrLabelUpToL3")) { - jetCorrLabelUpToL3_ = cfg.getParameter("jetCorrLabelUpToL3"); - jetCorrTokenUpToL3_ = mayConsume(jetCorrLabelUpToL3_); - } - if (cfg.exists("jetCorrLabelUpToL3Res") && addResidualJES_) { - jetCorrLabelUpToL3Res_ = cfg.getParameter("jetCorrLabelUpToL3Res"); - jetCorrTokenUpToL3Res_ = mayConsume(jetCorrLabelUpToL3Res_); + if (addResidualJES_) { + if (cfg.exists("jetCorrLabelUpToL3")) { + jetCorrLabelUpToL3_ = cfg.getParameter("jetCorrLabelUpToL3"); + jetCorrTokenUpToL3_ = consumes(jetCorrLabelUpToL3_); + } + if (cfg.exists("jetCorrLabelUpToL3Res")) { + jetCorrLabelUpToL3Res_ = cfg.getParameter("jetCorrLabelUpToL3Res"); + jetCorrTokenUpToL3Res_ = consumes(jetCorrLabelUpToL3Res_); + } } - jetCorrEtaMax_ = (cfg.exists("jetCorrEtaMax")) ? cfg.getParameter("jetCorrEtaMax") : 9.9; + jetCorrEtaMax_ = cfg.getParameter("jetCorrEtaMax"); shiftBy_ = cfg.getParameter("shiftBy"); - verbosity_ = (cfg.exists("verbosity")) ? cfg.getParameter("verbosity") : 0; + verbosity_ = cfg.getUntrackedParameter("verbosity"); + + putToken_ = produces(); + + //PATJetCorrExtractor wants a string not a product when called + static_assert(not std::is_base_of::value); + } - produces(); + static void fillDescriptions(edm::ConfigurationDescriptions& iDesc) { + //NOTE: the full complexity of the pset handling could be expressed using + // ifValue and addNode but it might result in present configs failing + edm::ParameterSetDescription ps; + ps.add("src"); + ps.addOptional("jecUncertaintyValue"); + ps.addOptional("jetCorrUncertaintyTag")->setComment("only used if 'jecUncertaintyValue' not declared"); + ps.addOptional("jetCorrInputFileName") + ->setComment("only used if 'jecUncertaintyValue' not declared"); + ps.addOptional("jetCorrPayloadName") + ->setComment("only used if neither 'jecUncertaintyValue' nor 'jetCorrInputFileName' are declared"); + + ps.add("addResidualJES"); + ps.addOptional("jetCorrLabelUpToL3")->setComment("only used of 'addResidualJES' is set true"); + ps.addOptional("jetCorrLabelUpToL3Res")->setComment("only used of 'addResidualJES' is set true"); + + ps.add("jetCorrEtaMax", 9.9); + ps.add("shiftBy"); + ps.addUntracked("verbosity", 0); + iDesc.addDefault(ps); } private: @@ -90,33 +117,39 @@ class ShiftedJetProducerT : public edm::stream::EDProducer<> { std::cout << " src = " << src_.label() << std::endl; } - edm::Handle originalJets; - evt.getByToken(srcToken_, originalJets); + JetCollection const& originalJets = evt.get(srcToken_); + edm::Handle jetCorrUpToL3; - evt.getByToken(jetCorrTokenUpToL3_, jetCorrUpToL3); edm::Handle jetCorrUpToL3Res; if (evt.isRealData() && addResidualJES_) { - evt.getByToken(jetCorrTokenUpToL3Res_, jetCorrUpToL3Res); + jetCorrUpToL3 = evt.getHandle(jetCorrTokenUpToL3_); + jetCorrUpToL3Res = evt.getHandle(jetCorrTokenUpToL3Res_); } - auto shiftedJets = std::make_unique(); - if (!jetCorrPayloadName_.empty()) { - const JetCorrectorParametersCollection& jetCorrParameterSet = es.getData(jetCorrPayloadToken_); - const JetCorrectorParameters& jetCorrParameters = (jetCorrParameterSet)[jetCorrUncertaintyTag_]; - jecUncertainty_ = std::make_unique(jetCorrParameters); + if (not jecUncertaintyValue_) { + if (jetCorrPayloadToken_.isInitialized()) { + auto cacheID = es.get().cacheIdentifier(); + if (cacheID != recordIdentifier_) { + const JetCorrectorParametersCollection& jetCorrParameterSet = es.getData(jetCorrPayloadToken_); + const JetCorrectorParameters& jetCorrParameters = (jetCorrParameterSet)[jetCorrUncertaintyTag_]; + jecUncertainty_.emplace(jetCorrParameters); + recordIdentifier_ = cacheID; + } + } } - for (typename JetCollection::const_iterator originalJet = originalJets->begin(); originalJet != originalJets->end(); - ++originalJet) { - reco::Candidate::LorentzVector originalJetP4 = originalJet->p4(); + JetCollection shiftedJets; + shiftedJets.reserve(originalJets.size()); + for (auto const& originalJet : originalJets) { + reco::Candidate::LorentzVector originalJetP4 = originalJet.p4(); if (verbosity_) { std::cout << "originalJet: Pt = " << originalJetP4.pt() << ", eta = " << originalJetP4.eta() << ", phi = " << originalJetP4.phi() << std::endl; } double shift = 0.; - if (jecUncertaintyValue_ != -1.) { - shift = jecUncertaintyValue_; + if (jecUncertaintyValue_) { + shift = *jecUncertaintyValue_; } else { jecUncertainty_->setJetEta(originalJetP4.eta()); jecUncertainty_->setJetPt(originalJetP4.pt()); @@ -128,17 +161,12 @@ class ShiftedJetProducerT : public edm::stream::EDProducer<> { } if (evt.isRealData() && addResidualJES_) { - const static pat::RawJetExtractorT rawJetExtractor{}; - reco::Candidate::LorentzVector rawJetP4 = rawJetExtractor(*originalJet); + reco::Candidate::LorentzVector rawJetP4 = pat::RawJetExtractorT{}(originalJet); if (rawJetP4.E() > 1.e-1) { reco::Candidate::LorentzVector corrJetP4upToL3 = - std::is_base_of::value - ? jetCorrExtractor_(*originalJet, jetCorrLabelUpToL3_.label(), jetCorrEtaMax_, &rawJetP4) - : jetCorrExtractor_(*originalJet, jetCorrUpToL3.product(), jetCorrEtaMax_, &rawJetP4); + jetCorrExtractor_(originalJet, jetCorrUpToL3.product(), jetCorrEtaMax_, &rawJetP4); reco::Candidate::LorentzVector corrJetP4upToL3Res = - std::is_base_of::value - ? jetCorrExtractor_(*originalJet, jetCorrLabelUpToL3Res_.label(), jetCorrEtaMax_, &rawJetP4) - : jetCorrExtractor_(*originalJet, jetCorrUpToL3Res.product(), jetCorrEtaMax_, &rawJetP4); + jetCorrExtractor_(originalJet, jetCorrUpToL3Res.product(), jetCorrEtaMax_, &rawJetP4); if (corrJetP4upToL3.E() > 1.e-1 && corrJetP4upToL3Res.E() > 1.e-1) { double residualJES = (corrJetP4upToL3Res.E() / corrJetP4upToL3.E()) - 1.; shift = sqrt(shift * shift + residualJES * residualJES); @@ -151,30 +179,30 @@ class ShiftedJetProducerT : public edm::stream::EDProducer<> { std::cout << "shift*shiftBy = " << shift << std::endl; } - T shiftedJet(*originalJet); - shiftedJet.setP4((1. + shift) * originalJetP4); + shiftedJets.emplace_back(originalJet); + shiftedJets.back().setP4((1. + shift) * originalJetP4); if (verbosity_) { + auto const& shiftedJet = shiftedJets.back(); std::cout << "shiftedJet: Pt = " << shiftedJet.pt() << ", eta = " << shiftedJet.eta() << ", phi = " << shiftedJet.phi() << std::endl; } - - shiftedJets->push_back(shiftedJet); } - evt.put(std::move(shiftedJets)); + evt.emplace(putToken_, std::move(shiftedJets)); } std::string moduleLabel_; edm::InputTag src_; edm::EDGetTokenT srcToken_; + edm::EDPutTokenT putToken_; edm::FileInPath jetCorrInputFileName_; std::string jetCorrPayloadName_; edm::ESGetToken jetCorrPayloadToken_; std::string jetCorrUncertaintyTag_; - std::unique_ptr jetCorrParameters_; - std::unique_ptr jecUncertainty_; + std::optional jecUncertainty_; + unsigned long long recordIdentifier_ = 0; bool addResidualJES_; edm::InputTag jetCorrLabelUpToL3_; // L1+L2+L3 correction @@ -188,7 +216,7 @@ class ShiftedJetProducerT : public edm::stream::EDProducer<> { // https://hypernews.cern.ch/HyperNews/CMS/get/JetMET/1259/1.html Textractor jetCorrExtractor_; - double jecUncertaintyValue_; + std::optional jecUncertaintyValue_; double shiftBy_; // set to +1.0/-1.0 for up/down variation of energy scale From 10d592678f58c73e44a6445af1ca091a307ad5ca Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Mon, 25 Nov 2024 08:12:05 +0100 Subject: [PATCH 108/418] Fix DQM config test: Increase number of sequences to process --- DQMOffline/Configuration/test/BuildFile.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DQMOffline/Configuration/test/BuildFile.xml b/DQMOffline/Configuration/test/BuildFile.xml index a68710fc8595b..c9647b162fdf5 100644 --- a/DQMOffline/Configuration/test/BuildFile.xml +++ b/DQMOffline/Configuration/test/BuildFile.xml @@ -4,12 +4,12 @@ - + - + From 61472e1dd14846aac2dfaa5a43f5c56b4297355a Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Wed, 20 Nov 2024 11:00:56 -0800 Subject: [PATCH 109/418] Remove Redundant Functions + 60% MD Speedup Co-authored-by: Gavin Niendorf --- RecoTracker/LSTCore/interface/alpaka/Common.h | 10 ++ RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 37 +---- .../LSTCore/src/alpaka/PixelQuintuplet.h | 136 +--------------- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 153 +----------------- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 24 +-- RecoTracker/LSTCore/src/alpaka/Segment.h | 36 +---- 6 files changed, 41 insertions(+), 355 deletions(-) diff --git a/RecoTracker/LSTCore/interface/alpaka/Common.h b/RecoTracker/LSTCore/interface/alpaka/Common.h index 7a1feabfcf076..a3c80260e4822 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Common.h +++ b/RecoTracker/LSTCore/interface/alpaka/Common.h @@ -60,6 +60,16 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { // To be updated with std::numeric_limits::infinity() in the code and data files ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kVerticalModuleSlope = 123456789.0; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; + ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kMiniDeltaEndcap[5][15] = { + {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, + {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, + {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, + {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, + {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}}; + namespace t5dnn { // Working points matching LST fake rate (43.9%) or signal acceptance (82.0%) diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 0a0abff8b6986..4ecdcb1ca6bc5 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -106,35 +106,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize(ModulesConst modules, uint16_t moduleIndex) { - float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; - float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; - float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; - float miniDeltaEndcap[5][15]; - - for (size_t i = 0; i < 5; i++) { - for (size_t j = 0; j < 15; j++) { - if (i == 0 || i == 1) { - if (j < 10) { - miniDeltaEndcap[i][j] = 0.4f; - } else { - miniDeltaEndcap[i][j] = 0.18f; - } - } else if (i == 2 || i == 3) { - if (j < 8) { - miniDeltaEndcap[i][j] = 0.4f; - } else { - miniDeltaEndcap[i][j] = 0.18f; - } - } else { - if (j < 9) { - miniDeltaEndcap[i][j] = 0.4f; - } else { - miniDeltaEndcap[i][j] = 0.18f; - } - } - } - } - unsigned int iL = modules.layers()[moduleIndex] - 1; unsigned int iR = modules.rings()[moduleIndex] - 1; short subdet = modules.subdets()[moduleIndex]; @@ -143,14 +114,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float moduleSeparation = 0; if (subdet == Barrel and side == Center) { - moduleSeparation = miniDeltaFlat[iL]; + moduleSeparation = kMiniDeltaFlat[iL]; } else if (isTighterTiltedModules(modules, moduleIndex)) { - moduleSeparation = miniDeltaTilted[iL]; + moduleSeparation = kMiniDeltaTilted[iL]; } else if (subdet == Endcap) { - moduleSeparation = miniDeltaEndcap[iL][iR]; + moduleSeparation = kMiniDeltaEndcap[iL][iR]; } else //Loose tilted modules { - moduleSeparation = miniDeltaLooseTilted[iL]; + moduleSeparation = kMiniDeltaLooseTilted[iL]; } return moduleSeparation; diff --git a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h index 08feb0dfe3384..c031e6d21f1b8 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h @@ -254,138 +254,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { return true; } - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeChiSquaredpT5(TAcc const& acc, - unsigned int nPoints, - float* xs, - float* ys, - float* delta1, - float* delta2, - float* slopes, - bool* isFlat, - float g, - float f, - float radius) { - /* - Given values of (g, f, radius) and a set of points (and its uncertainties) compute chi squared - */ - float c = g * g + f * f - radius * radius; - float chiSquared = 0.f; - float absArctanSlope, angleM, xPrime, yPrime, sigma2; - for (size_t i = 0; i < nPoints; i++) { - absArctanSlope = ((slopes[i] != kVerticalModuleSlope) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) - : kPi / 2.f); - if (xs[i] > 0 and ys[i] > 0) { - angleM = kPi / 2.f - absArctanSlope; - } else if (xs[i] < 0 and ys[i] > 0) { - angleM = absArctanSlope + kPi / 2.f; - } else if (xs[i] < 0 and ys[i] < 0) { - angleM = -(absArctanSlope + kPi / 2.f); - } else if (xs[i] > 0 and ys[i] < 0) { - angleM = -(kPi / 2.f - absArctanSlope); - } else { - angleM = 0; - } - if (not isFlat[i]) { - xPrime = xs[i] * alpaka::math::cos(acc, angleM) + ys[i] * alpaka::math::sin(acc, angleM); - yPrime = ys[i] * alpaka::math::cos(acc, angleM) - xs[i] * alpaka::math::sin(acc, angleM); - } else { - xPrime = xs[i]; - yPrime = ys[i]; - } - sigma2 = 4 * ((xPrime * delta1[i]) * (xPrime * delta1[i]) + (yPrime * delta2[i]) * (yPrime * delta2[i])); - chiSquared += (xs[i] * xs[i] + ys[i] * ys[i] - 2 * g * xs[i] - 2 * f * ys[i] + c) * - (xs[i] * xs[i] + ys[i] * ys[i] - 2 * g * xs[i] - 2 * f * ys[i] + c) / (sigma2); - } - return chiSquared; - } - - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE void computeSigmasForRegression_pT5(TAcc const& acc, - ModulesConst modules, - const uint16_t* lowerModuleIndices, - float* delta1, - float* delta2, - float* slopes, - bool* isFlat, - unsigned int nPoints = 5, - bool anchorHits = true) { - /* - bool anchorHits required to deal with a weird edge case wherein - the hits ultimately used in the regression are anchor hits, but the - lower modules need not all be Pixel Modules (in case of PS). Similarly, - when we compute the chi squared for the non-anchor hits, the "partner module" - need not always be a PS strip module, but all non-anchor hits sit on strip - modules. - */ - ModuleType moduleType; - short moduleSubdet, moduleSide; - float inv1 = kWidthPS / kWidth2S; - float inv2 = kPixelPSZpitch / kWidth2S; - float inv3 = kStripPSZpitch / kWidth2S; - for (size_t i = 0; i < nPoints; i++) { - moduleType = modules.moduleType()[lowerModuleIndices[i]]; - moduleSubdet = modules.subdets()[lowerModuleIndices[i]]; - moduleSide = modules.sides()[lowerModuleIndices[i]]; - const float& drdz = modules.drdzs()[lowerModuleIndices[i]]; - slopes[i] = modules.dxdys()[lowerModuleIndices[i]]; - //category 1 - barrel PS flat - if (moduleSubdet == Barrel and moduleType == PS and moduleSide == Center) { - delta1[i] = inv1; - delta2[i] = inv1; - slopes[i] = -999.f; - isFlat[i] = true; - } - //category 2 - barrel 2S - else if (moduleSubdet == Barrel and moduleType == TwoS) { - delta1[i] = 1.f; - delta2[i] = 1.f; - slopes[i] = -999.f; - isFlat[i] = true; - } - //category 3 - barrel PS tilted - else if (moduleSubdet == Barrel and moduleType == PS and moduleSide != Center) { - delta1[i] = inv1; - isFlat[i] = false; - - if (anchorHits) { - delta2[i] = (inv2 * drdz / alpaka::math::sqrt(acc, 1 + drdz * drdz)); - } else { - delta2[i] = (inv3 * drdz / alpaka::math::sqrt(acc, 1 + drdz * drdz)); - } - } - //category 4 - endcap PS - else if (moduleSubdet == Endcap and moduleType == PS) { - delta1[i] = inv1; - isFlat[i] = false; - /* - despite the type of the module layer of the lower module index, - all anchor hits are on the pixel side and all non-anchor hits are - on the strip side! - */ - if (anchorHits) { - delta2[i] = inv2; - } else { - delta2[i] = inv3; - } - } - //category 5 - endcap 2S - else if (moduleSubdet == Endcap and moduleType == TwoS) { - delta1[i] = 1.f; - delta2[i] = 500.f * inv1; - isFlat[i] = false; - } -#ifdef WARNINGS - else { - printf("ERROR!!!!! I SHOULDN'T BE HERE!!!! subdet = %d, type = %d, side = %d\n", - moduleSubdet, - moduleType, - moduleSide); - } -#endif - } - } - template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RPhiChiSquared(TAcc const& acc, ModulesConst modules, @@ -403,8 +271,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { bool isFlat[5]; float chiSquared = 0; - computeSigmasForRegression_pT5(acc, modules, lowerModuleIndices, delta1, delta2, slopes, isFlat); - chiSquared = computeChiSquaredpT5(acc, 5, xs, ys, delta1, delta2, slopes, isFlat, g, f, radius); + computeSigmasForRegression(acc, modules, lowerModuleIndices, delta1, delta2, slopes, isFlat); + chiSquared = computeChiSquared(acc, 5, xs, ys, delta1, delta2, slopes, isFlat, g, f, radius); return chiSquared; } diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index a8be90fff5227..afe23759c52af 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -10,6 +10,8 @@ #include "RecoTracker/LSTCore/interface/SegmentsSoA.h" #include "RecoTracker/LSTCore/interface/TripletsSoA.h" +#include "Quintuplet.h" + namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { template @@ -219,52 +221,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { return true; } - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float computeChiSquaredpT3(TAcc const& acc, - unsigned int nPoints, - float* xs, - float* ys, - float* delta1, - float* delta2, - float* slopes, - bool* isFlat, - float g, - float f, - float radius) { - //given values of (g, f, radius) and a set of points (and its uncertainties) - //compute chi squared - float c = g * g + f * f - radius * radius; - float chiSquared = 0.f; - float absArctanSlope, angleM, xPrime, yPrime, sigma2; - for (size_t i = 0; i < nPoints; i++) { - absArctanSlope = ((slopes[i] != kVerticalModuleSlope) ? alpaka::math::abs(acc, alpaka::math::atan(acc, slopes[i])) - : kPi / 2.f); - if (xs[i] > 0 and ys[i] > 0) { - angleM = kPi / 2.f - absArctanSlope; - } else if (xs[i] < 0 and ys[i] > 0) { - angleM = absArctanSlope + kPi / 2.f; - } else if (xs[i] < 0 and ys[i] < 0) { - angleM = -(absArctanSlope + kPi / 2.f); - } else if (xs[i] > 0 and ys[i] < 0) { - angleM = -(kPi / 2.f - absArctanSlope); - } else { - angleM = 0; - } - - if (not isFlat[i]) { - xPrime = xs[i] * alpaka::math::cos(acc, angleM) + ys[i] * alpaka::math::sin(acc, angleM); - yPrime = ys[i] * alpaka::math::cos(acc, angleM) - xs[i] * alpaka::math::sin(acc, angleM); - } else { - xPrime = xs[i]; - yPrime = ys[i]; - } - sigma2 = 4 * ((xPrime * delta1[i]) * (xPrime * delta1[i]) + (yPrime * delta2[i]) * (yPrime * delta2[i])); - chiSquared += (xs[i] * xs[i] + ys[i] * ys[i] - 2 * g * xs[i] - 2 * f * ys[i] + c) * - (xs[i] * xs[i] + ys[i] * ys[i] - 2 * g * xs[i] - 2 * f * ys[i] + c) / sigma2; - } - return chiSquared; - } - //TODO: merge this one and the pT5 function later into a single function template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT3RPhiChiSquared(TAcc const& acc, @@ -332,7 +288,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } #endif } - chiSquared = computeChiSquaredpT3(acc, 3, xs, ys, delta1, delta2, slopes, isFlat, g, f, radius); + chiSquared = computeChiSquared(acc, 3, xs, ys, delta1, delta2, slopes, isFlat, g, f, radius); return chiSquared; } @@ -962,105 +918,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } }; - template - ALPAKA_FN_ACC ALPAKA_FN_INLINE void runDeltaBetaIterationspT3(TAcc const& acc, - float& betaIn, - float& betaOut, - float betaAv, - float& pt_beta, - float sdIn_dr, - float sdOut_dr, - float dr, - float lIn) { - if (lIn == 0) { - betaOut += alpaka::math::copysign( - acc, - alpaka::math::asin( - acc, alpaka::math::min(acc, sdOut_dr * k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), kSinAlphaMax)), - betaOut); - return; - } - - if (betaIn * betaOut > 0.f and - (alpaka::math::abs(acc, pt_beta) < 4.f * kPt_betaMax or - (lIn >= 11 and alpaka::math::abs(acc, pt_beta) < - 8.f * kPt_betaMax))) //and the pt_beta is well-defined; less strict for endcap-endcap - { - const float betaInUpd = - betaIn + - alpaka::math::copysign( - acc, - alpaka::math::asin( - acc, alpaka::math::min(acc, sdIn_dr * k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), kSinAlphaMax)), - betaIn); //FIXME: need a faster version - const float betaOutUpd = - betaOut + - alpaka::math::copysign( - acc, - alpaka::math::asin( - acc, alpaka::math::min(acc, sdOut_dr * k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), kSinAlphaMax)), - betaOut); //FIXME: need a faster version - betaAv = 0.5f * (betaInUpd + betaOutUpd); - - //1st update - const float pt_beta_inv = - 1.f / alpaka::math::abs(acc, dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaAv)); //get a better pt estimate - - betaIn += alpaka::math::copysign( - acc, - alpaka::math::asin(acc, alpaka::math::min(acc, sdIn_dr * k2Rinv1GeVf * pt_beta_inv, kSinAlphaMax)), - betaIn); //FIXME: need a faster version - betaOut += alpaka::math::copysign( - acc, - alpaka::math::asin(acc, alpaka::math::min(acc, sdOut_dr * k2Rinv1GeVf * pt_beta_inv, kSinAlphaMax)), - betaOut); //FIXME: need a faster version - //update the av and pt - betaAv = 0.5f * (betaIn + betaOut); - //2nd update - pt_beta = dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate - } else if (lIn < 11 && alpaka::math::abs(acc, betaOut) < 0.2f * alpaka::math::abs(acc, betaIn) && - alpaka::math::abs(acc, pt_beta) < 12.f * kPt_betaMax) //use betaIn sign as ref - { - const float pt_betaIn = dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaIn); - - const float betaInUpd = - betaIn + - alpaka::math::copysign( - acc, - alpaka::math::asin( - acc, alpaka::math::min(acc, sdIn_dr * k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), kSinAlphaMax)), - betaIn); //FIXME: need a faster version - const float betaOutUpd = - betaOut + - alpaka::math::copysign( - acc, - alpaka::math::asin( - acc, - alpaka::math::min(acc, sdOut_dr * k2Rinv1GeVf / alpaka::math::abs(acc, pt_betaIn), kSinAlphaMax)), - betaIn); //FIXME: need a faster version - betaAv = (alpaka::math::abs(acc, betaOut) > 0.2f * alpaka::math::abs(acc, betaIn)) - ? (0.5f * (betaInUpd + betaOutUpd)) - : betaInUpd; - - //1st update - pt_beta = dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate - betaIn += alpaka::math::copysign( - acc, - alpaka::math::asin( - acc, alpaka::math::min(acc, sdIn_dr * k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), kSinAlphaMax)), - betaIn); //FIXME: need a faster version - betaOut += alpaka::math::copysign( - acc, - alpaka::math::asin( - acc, alpaka::math::min(acc, sdOut_dr * k2Rinv1GeVf / alpaka::math::abs(acc, pt_beta), kSinAlphaMax)), - betaIn); //FIXME: need a faster version - //update the av and pt - betaAv = 0.5f * (betaIn + betaOut); - //2nd update - pt_beta = dr * k2Rinv1GeVf / alpaka::math::sin(acc, betaAv); //get a better pt estimate - } - } - template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletDefaultAlgoPPBB(TAcc const& acc, ModulesConst modules, @@ -1258,7 +1115,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { alpaka::math::sqrt(acc, (x_OutUp - x_OutLo) * (x_OutUp - x_OutLo) + (y_OutUp - y_OutLo) * (y_OutUp - y_OutLo)); float sdOut_d = rt_OutUp - rt_OutLo; - runDeltaBetaIterationspT3(acc, betaIn, betaOut, betaAv, pt_beta, rt_InSeg, sdOut_dr, drt_tl_axis, lIn); + runDeltaBetaIterations(acc, betaIn, betaOut, betaAv, pt_beta, rt_InSeg, sdOut_dr, drt_tl_axis, lIn); const float betaInMMSF = (alpaka::math::abs(acc, betaInRHmin + betaInRHmax) > 0) ? (2.f * betaIn / alpaka::math::abs(acc, betaInRHmin + betaInRHmax)) @@ -1517,7 +1374,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { alpaka::math::sqrt(acc, (x_OutUp - x_OutLo) * (x_OutUp - x_OutLo) + (y_OutUp - y_OutLo) * (y_OutUp - y_OutLo)); float sdOut_d = rt_OutUp - rt_OutLo; - runDeltaBetaIterationspT3(acc, betaIn, betaOut, betaAv, pt_beta, rt_InSeg, sdOut_dr, drt_tl_axis, lIn); + runDeltaBetaIterations(acc, betaIn, betaOut, betaAv, pt_beta, rt_InSeg, sdOut_dr, drt_tl_axis, lIn); const float betaInMMSF = (alpaka::math::abs(acc, betaInRHmin + betaInRHmax) > 0) ? (2.f * betaIn / alpaka::math::abs(acc, betaInRHmin + betaInRHmax)) diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 24ce2d1d53e22..397d94b53b916 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1099,15 +1099,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } template - ALPAKA_FN_ACC ALPAKA_FN_INLINE void runDeltaBetaIterationsT5(TAcc const& acc, - float& betaIn, - float& betaOut, - float betaAv, - float& pt_beta, - float sdIn_dr, - float sdOut_dr, - float dr, - float lIn) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE void runDeltaBetaIterations(TAcc const& acc, + float& betaIn, + float& betaOut, + float betaAv, + float& pt_beta, + float sdIn_dr, + float sdOut_dr, + float dr, + float lIn) { if (lIn == 0) { betaOut += alpaka::math::copysign( acc, @@ -1376,7 +1376,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { (mds.anchorY()[fourthMDIndex] - mds.anchorY()[thirdMDIndex])); float sdOut_d = mds.anchorRt()[fourthMDIndex] - mds.anchorRt()[thirdMDIndex]; - runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, rt_InSeg, sdOut_dr, drt_tl_axis, lIn); + runDeltaBetaIterations(acc, betaIn, betaOut, betaAv, pt_beta, rt_InSeg, sdOut_dr, drt_tl_axis, lIn); const float betaInMMSF = (alpaka::math::abs(acc, betaInRHmin + betaInRHmax) > 0) ? (2.f * betaIn / alpaka::math::abs(acc, betaInRHmin + betaInRHmax)) @@ -1623,7 +1623,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { (mds.anchorY()[fourthMDIndex] - mds.anchorY()[thirdMDIndex])); float sdOut_d = mds.anchorRt()[fourthMDIndex] - mds.anchorRt()[thirdMDIndex]; - runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, sdIn_dr, sdOut_dr, dr, lIn); + runDeltaBetaIterations(acc, betaIn, betaOut, betaAv, pt_beta, sdIn_dr, sdOut_dr, dr, lIn); const float betaInMMSF = (alpaka::math::abs(acc, betaInRHmin + betaInRHmax) > 0) ? (2.f * betaIn / alpaka::math::abs(acc, betaInRHmin + betaInRHmax)) @@ -1859,7 +1859,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { (mds.anchorY()[fourthMDIndex] - mds.anchorY()[thirdMDIndex])); float sdOut_d = mds.anchorRt()[fourthMDIndex] - mds.anchorRt()[thirdMDIndex]; - runDeltaBetaIterationsT5(acc, betaIn, betaOut, betaAv, pt_beta, sdIn_dr, sdOut_dr, dr, lIn); + runDeltaBetaIterations(acc, betaIn, betaOut, betaAv, pt_beta, sdIn_dr, sdOut_dr, dr, lIn); const float betaInMMSF = (alpaka::math::abs(acc, betaInRHmin + betaInRHmax) > 0) ? (2.f * betaIn / alpaka::math::abs(acc, betaInRHmin + betaInRHmax)) diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index fc885e9d66afe..b2f1f4c688477 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -39,46 +39,26 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(short layer, short ring, short subdet, short side, short rod) { - static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; - static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; - static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; - static constexpr float miniDeltaEndcap[5][15] = { - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}}; - unsigned int iL = layer - 1; unsigned int iR = ring - 1; float moduleSeparation = 0; if (subdet == Barrel and side == Center) { - moduleSeparation = miniDeltaFlat[iL]; + moduleSeparation = kMiniDeltaFlat[iL]; } else if (isTighterTiltedModules_seg(subdet, layer, side, rod)) { - moduleSeparation = miniDeltaTilted[iL]; + moduleSeparation = kMiniDeltaTilted[iL]; } else if (subdet == Endcap) { - moduleSeparation = miniDeltaEndcap[iL][iR]; + moduleSeparation = kMiniDeltaEndcap[iL][iR]; } else //Loose tilted modules { - moduleSeparation = miniDeltaLooseTilted[iL]; + moduleSeparation = kMiniDeltaLooseTilted[iL]; } return moduleSeparation; } ALPAKA_FN_ACC ALPAKA_FN_INLINE float moduleGapSize_seg(ModulesConst modules, unsigned int moduleIndex) { - static constexpr float miniDeltaTilted[3] = {0.26f, 0.26f, 0.26f}; - static constexpr float miniDeltaFlat[6] = {0.26f, 0.16f, 0.16f, 0.18f, 0.18f, 0.18f}; - static constexpr float miniDeltaLooseTilted[3] = {0.4f, 0.4f, 0.4f}; - static constexpr float miniDeltaEndcap[5][15] = { - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}, - {0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.4f, 0.18f, /*10*/ 0.18f, 0.18f, 0.18f, 0.18f, 0.18f}}; - unsigned int iL = modules.layers()[moduleIndex] - 1; unsigned int iR = modules.rings()[moduleIndex] - 1; short subdet = modules.subdets()[moduleIndex]; @@ -87,14 +67,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float moduleSeparation = 0; if (subdet == Barrel and side == Center) { - moduleSeparation = miniDeltaFlat[iL]; + moduleSeparation = kMiniDeltaFlat[iL]; } else if (isTighterTiltedModules_seg(modules, moduleIndex)) { - moduleSeparation = miniDeltaTilted[iL]; + moduleSeparation = kMiniDeltaTilted[iL]; } else if (subdet == Endcap) { - moduleSeparation = miniDeltaEndcap[iL][iR]; + moduleSeparation = kMiniDeltaEndcap[iL][iR]; } else //Loose tilted modules { - moduleSeparation = miniDeltaLooseTilted[iL]; + moduleSeparation = kMiniDeltaLooseTilted[iL]; } return moduleSeparation; From 79eb821c6c78169d7260a12e90cfccec12733c67 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Wed, 20 Nov 2024 11:08:38 -0800 Subject: [PATCH 110/418] Fix rzChisquared NaN's on CPU Backend for T5 Co-authored-by: Gavin Niendorf --- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 397d94b53b916..4dc623e581173 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -2,6 +2,7 @@ #define RecoTracker_LSTCore_src_alpaka_Quintuplet_h #include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" +#include "FWCore/Utilities/interface/isFinite.h" #include "RecoTracker/LSTCore/interface/ObjectRangesSoA.h" #include "RecoTracker/LSTCore/interface/MiniDoubletsSoA.h" @@ -413,9 +414,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float solz2 = alpaka::math::asin(acc, sol2) / rou * Pz / p + z_init; float diffz1 = (solz1 - zsi) * 100; float diffz2 = (solz2 - zsi) * 100; - if (alpaka::math::isnan(acc, diffz1)) + if (edm::isNotFinite(diffz1)) diffz = diffz2; - else if (alpaka::math::isnan(acc, diffz2)) + else if (edm::isNotFinite(diffz2)) diffz = diffz1; else { diffz = (alpaka::math::abs(acc, diffz1) < alpaka::math::abs(acc, diffz2)) ? diffz1 : diffz2; @@ -460,7 +461,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } // for set rzchi2 cut // if the 5 points are linear, helix calculation gives nan - if (inner_pt > 100 || alpaka::math::isnan(acc, rzChiSquared)) { + if (inner_pt > 100 || edm::isNotFinite(rzChiSquared)) { float slope; if (moduleType1 == 0 and moduleType2 == 0 and moduleType3 == 1) //PSPS2S { From 5cbd058bccdeb8a48244aa34e7e0028d1e9ad40d Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Wed, 20 Nov 2024 11:16:54 -0800 Subject: [PATCH 111/418] Check pT5's in T5 Duplicate Cleaning Before TC Co-authored-by: Gavin Niendorf --- RecoTracker/LSTCore/src/alpaka/Kernels.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Kernels.h b/RecoTracker/LSTCore/src/alpaka/Kernels.h index c642f2427fa84..13d0d2b0e1202 100644 --- a/RecoTracker/LSTCore/src/alpaka/Kernels.h +++ b/RecoTracker/LSTCore/src/alpaka/Kernels.h @@ -217,15 +217,22 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { for (unsigned int ix1 = 0; ix1 < nQuintuplets_lowmod1; ix1 += 1) { unsigned int ix = quintupletModuleIndices_lowmod1 + ix1; - if (quintuplets.partOfPT5()[ix] || (quintuplets.isDup()[ix] & 1)) + if (quintuplets.isDup()[ix] & 1) continue; + bool isPT5_ix = quintuplets.partOfPT5()[ix]; + for (unsigned int jx1 = 0; jx1 < nQuintuplets_lowmod2; jx1++) { unsigned int jx = quintupletModuleIndices_lowmod2 + jx1; if (ix == jx) continue; - if (quintuplets.partOfPT5()[jx] || (quintuplets.isDup()[jx] & 1)) + if (quintuplets.isDup()[jx] & 1) + continue; + + bool isPT5_jx = quintuplets.partOfPT5()[jx]; + + if (isPT5_ix && isPT5_jx) continue; float eta1 = __H2F(quintuplets.eta()[ix]); @@ -249,9 +256,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { int nMatched = checkHitsT5(ix, jx, quintuplets); const int minNHitsForDup_T5 = 5; if (dR2 < 0.001f || nMatched >= minNHitsForDup_T5) { - if (score_rphisum1 > score_rphisum2) { + if (isPT5_jx || score_rphisum1 > score_rphisum2) { rmQuintupletFromMemory(quintuplets, ix, true); - } else if (score_rphisum1 < score_rphisum2) { + } else if (isPT5_ix || score_rphisum1 < score_rphisum2) { rmQuintupletFromMemory(quintuplets, jx, true); } else { rmQuintupletFromMemory(quintuplets, (ix < jx ? ix : jx), true); From 998ede2d03c75a6acb4f7bf9920bb446f946b356 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Wed, 20 Nov 2024 11:25:58 -0800 Subject: [PATCH 112/418] DBeta Bug Fix Co-authored-by: Gavin Niendorf --- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 4dc623e581173..4b7e3773d42cf 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1547,16 +1547,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float sdIn_alpha_max = __H2F(segments.dPhiChangeMaxs()[innerSegmentIndex]); float sdOut_alpha = sdIn_alpha; - float sdOut_alphaOut = phi_mpi_pi(acc, - phi(acc, - mds.anchorX()[fourthMDIndex] - mds.anchorX()[thirdMDIndex], - mds.anchorY()[fourthMDIndex] - mds.anchorY()[thirdMDIndex]) - - mds.anchorPhi()[fourthMDIndex]); + float sdOut_dPhiPos = phi_mpi_pi(acc, mds.anchorPhi()[fourthMDIndex] - mds.anchorPhi()[thirdMDIndex]); + + float sdOut_dPhiChange = __H2F(segments.dPhiChanges()[outerSegmentIndex]); + float sdOut_dPhiChange_min = __H2F(segments.dPhiChangeMins()[outerSegmentIndex]); + float sdOut_dPhiChange_max = __H2F(segments.dPhiChangeMaxs()[outerSegmentIndex]); - float sdOut_alphaOut_min = phi_mpi_pi( - acc, __H2F(segments.dPhiChangeMins()[outerSegmentIndex]) - __H2F(segments.dPhiMins()[outerSegmentIndex])); - float sdOut_alphaOut_max = phi_mpi_pi( - acc, __H2F(segments.dPhiChangeMaxs()[outerSegmentIndex]) - __H2F(segments.dPhiMaxs()[outerSegmentIndex])); + float sdOut_alphaOutRHmin = phi_mpi_pi(acc, sdOut_dPhiChange_min - sdOut_dPhiPos); + float sdOut_alphaOutRHmax = phi_mpi_pi(acc, sdOut_dPhiChange_max - sdOut_dPhiPos); + float sdOut_alphaOut = phi_mpi_pi(acc, sdOut_dPhiChange - sdOut_dPhiPos); float tl_axis_x = mds.anchorX()[fourthMDIndex] - mds.anchorX()[firstMDIndex]; float tl_axis_y = mds.anchorY()[fourthMDIndex] - mds.anchorY()[firstMDIndex]; @@ -1578,8 +1577,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { betaInRHmax = betaIn - sdIn_alpha_max + sdIn_alpha; } - betaOutRHmin = betaOut - sdOut_alphaOut_min + sdOut_alphaOut; - betaOutRHmax = betaOut - sdOut_alphaOut_max + sdOut_alphaOut; + betaOutRHmin = betaOut - sdOut_alphaOutRHmin + sdOut_alphaOut; + betaOutRHmax = betaOut - sdOut_alphaOutRHmax + sdOut_alphaOut; float swapTemp; if (alpaka::math::abs(acc, betaOutRHmin) > alpaka::math::abs(acc, betaOutRHmax)) { From 3d9a983bf32328c78ea60ac37077f1cd5d15c411 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Thu, 21 Nov 2024 10:42:33 -0800 Subject: [PATCH 113/418] Add pT Runtime Toggle + pT Toggle for Geometry Inputs Co-authored-by: Gavin Niendorf --- .../plugins/alpaka/LSTModulesDevESProducer.cc | 11 ++++- RecoTracker/LST/plugins/alpaka/LSTProducer.cc | 11 ++++- RecoTracker/LSTCore/BuildFile.xml | 1 - RecoTracker/LSTCore/interface/Common.h | 5 --- RecoTracker/LSTCore/interface/LSTESData.h | 2 +- RecoTracker/LSTCore/interface/alpaka/Common.h | 1 - RecoTracker/LSTCore/interface/alpaka/LST.h | 4 +- RecoTracker/LSTCore/src/LSTESData.cc | 25 +++++------ RecoTracker/LSTCore/src/alpaka/LST.cc | 13 +++--- .../LSTCore/src/alpaka/LSTEvent.dev.cc | 18 +++++--- RecoTracker/LSTCore/src/alpaka/LSTEvent.h | 11 ++++- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 38 +++++++++++------ .../LSTCore/src/alpaka/PixelQuintuplet.h | 10 +++-- RecoTracker/LSTCore/src/alpaka/PixelTriplet.h | 34 ++++++++++----- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 42 ++++++++++++------- RecoTracker/LSTCore/src/alpaka/Segment.h | 30 ++++++++----- RecoTracker/LSTCore/src/alpaka/Triplet.h | 36 ++++++++++------ RecoTracker/LSTCore/standalone/.gitignore | 1 + RecoTracker/LSTCore/standalone/LST/Makefile | 18 ++++---- RecoTracker/LSTCore/standalone/Makefile | 13 +++--- RecoTracker/LSTCore/standalone/bin/lst.cc | 11 ++++- .../standalone/bin/lst_make_tracklooper | 14 ++----- .../standalone/code/core/AnalysisConfig.h | 3 ++ .../LSTCore/standalone/code/core/trkCore.cc | 4 +- 24 files changed, 225 insertions(+), 131 deletions(-) diff --git a/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc index d0e103b1e315b..7152da9ed13c7 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTModulesDevESProducer.cc @@ -13,16 +13,23 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class LSTModulesDevESProducer : public ESProducer { + private: + std::string ptCutLabel_; + public: - LSTModulesDevESProducer(edm::ParameterSet const& iConfig) : ESProducer(iConfig) { setWhatProduced(this); } + LSTModulesDevESProducer(edm::ParameterSet const& iConfig) + : ESProducer(iConfig), ptCutLabel_(iConfig.getParameter("ptCutLabel")) { + setWhatProduced(this, ptCutLabel_); + } static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; + desc.add("ptCutLabel", "0.8"); descriptions.addWithDefaultLabel(desc); } std::unique_ptr> produce(TrackerRecoGeometryRecord const& iRecord) { - return lst::loadAndFillESHost(); + return lst::loadAndFillESHost(ptCutLabel_); } }; diff --git a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc index 7eb6c57ade05c..4b83dd3693624 100644 --- a/RecoTracker/LST/plugins/alpaka/LSTProducer.cc +++ b/RecoTracker/LST/plugins/alpaka/LSTProducer.cc @@ -28,8 +28,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { LSTProducer(edm::ParameterSet const& config) : lstPixelSeedInputToken_{consumes(config.getParameter("pixelSeedInput"))}, lstPhase2OTHitsInputToken_{consumes(config.getParameter("phase2OTHitsInput"))}, - lstESToken_{esConsumes()}, + lstESToken_{esConsumes(edm::ESInputTag("", config.getParameter("ptCutLabel")))}, verbose_(config.getParameter("verbose")), + ptCut_(config.getParameter("ptCut")), nopLSDupClean_(config.getParameter("nopLSDupClean")), tcpLSTriplets_(config.getParameter("tcpLSTriplets")), lstOutputToken_{produces()} {} @@ -43,6 +44,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { lst_.run(event.queue(), verbose_, + static_cast(ptCut_), &lstESDeviceData, pixelSeeds.px(), pixelSeeds.py(), @@ -78,6 +80,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { desc.add("pixelSeedInput", edm::InputTag{"lstPixelSeedInputProducer"}); desc.add("phase2OTHitsInput", edm::InputTag{"lstPhase2OTHitsInputProducer"}); desc.add("verbose", false); + desc.add("ptCut", 0.8); + desc.add("ptCutLabel", "0.8"); desc.add("nopLSDupClean", false); desc.add("tcpLSTriplets", false); descriptions.addWithDefaultLabel(desc); @@ -87,7 +91,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { edm::EDGetTokenT lstPixelSeedInputToken_; edm::EDGetTokenT lstPhase2OTHitsInputToken_; device::ESGetToken, TrackerRecoGeometryRecord> lstESToken_; - const bool verbose_, nopLSDupClean_, tcpLSTriplets_; + const bool verbose_; + const double ptCut_; + const bool nopLSDupClean_; + const bool tcpLSTriplets_; edm::EDPutTokenT lstOutputToken_; lst::LST lst_; diff --git a/RecoTracker/LSTCore/BuildFile.xml b/RecoTracker/LSTCore/BuildFile.xml index a58a1898046ae..8dd2b885bf1b4 100644 --- a/RecoTracker/LSTCore/BuildFile.xml +++ b/RecoTracker/LSTCore/BuildFile.xml @@ -2,7 +2,6 @@ - diff --git a/RecoTracker/LSTCore/interface/Common.h b/RecoTracker/LSTCore/interface/Common.h index f65ca7a50d867..32337d8f409ae 100644 --- a/RecoTracker/LSTCore/interface/Common.h +++ b/RecoTracker/LSTCore/interface/Common.h @@ -20,11 +20,6 @@ namespace lst { // Named types for LST objects enum LSTObjType { T5 = 4, pT3 = 5, pT5 = 7, pLS = 8 }; -// If a compile time flag does not define PT_CUT, default to 0.8 (GeV) -#ifndef PT_CUT - constexpr float PT_CUT = 0.8f; -#endif - constexpr unsigned int max_blocks = 80; constexpr unsigned int max_connected_modules = 40; diff --git a/RecoTracker/LSTCore/interface/LSTESData.h b/RecoTracker/LSTCore/interface/LSTESData.h index 45887d3cb1fea..bfa10186f8f2e 100644 --- a/RecoTracker/LSTCore/interface/LSTESData.h +++ b/RecoTracker/LSTCore/interface/LSTESData.h @@ -40,7 +40,7 @@ namespace lst { pixelMapping(pixelMappingIn) {} }; - std::unique_ptr> loadAndFillESHost(); + std::unique_ptr> loadAndFillESHost(std::string& ptCutLabel); } // namespace lst diff --git a/RecoTracker/LSTCore/interface/alpaka/Common.h b/RecoTracker/LSTCore/interface/alpaka/Common.h index a3c80260e4822..f3d50bfb56135 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Common.h +++ b/RecoTracker/LSTCore/interface/alpaka/Common.h @@ -49,7 +49,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float k2Rinv1GeVf = (2.99792458e-3 * 3.8) / 2; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kR1GeVf = 1. / (2.99792458e-3 * 3.8); ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kSinAlphaMax = 0.95; - ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float ptCut = PT_CUT; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kDeltaZLum = 15.0; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kPixelPSZpitch = 0.15; ALPAKA_STATIC_ACC_MEM_GLOBAL constexpr float kStripPSZpitch = 2.4; diff --git a/RecoTracker/LSTCore/interface/alpaka/LST.h b/RecoTracker/LSTCore/interface/alpaka/LST.h index 40d912de3f291..5fe369b9cd22b 100644 --- a/RecoTracker/LSTCore/interface/alpaka/LST.h +++ b/RecoTracker/LSTCore/interface/alpaka/LST.h @@ -17,6 +17,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { void run(Queue& queue, bool verbose, + const float ptCut, LSTESData const* deviceESData, std::vector const& see_px, std::vector const& see_py, @@ -63,7 +64,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { std::vector const& ph2_detId, std::vector const& ph2_x, std::vector const& ph2_y, - std::vector const& ph2_z); + std::vector const& ph2_z, + const float ptCut); void getOutput(LSTEvent& event); diff --git a/RecoTracker/LSTCore/src/LSTESData.cc b/RecoTracker/LSTCore/src/LSTESData.cc index 66163d39beb2e..8c2197ac76fa8 100644 --- a/RecoTracker/LSTCore/src/LSTESData.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -43,21 +43,22 @@ namespace { void loadMapsHost(lst::MapPLStoLayer& pLStoLayer, lst::EndcapGeometry& endcapGeometry, lst::TiltedGeometry& tiltedGeometry, - lst::ModuleConnectionMap& moduleConnectionMap) { + lst::ModuleConnectionMap& moduleConnectionMap, + std::string& ptCutLabel) { // Module orientation information (DrDz or phi angles) - auto endcap_geom = - get_absolute_path_after_check_file_exists(geometryDataDir() + "/data/OT800_IT615_pt0.8/endcap_orientation.bin"); - auto tilted_geom = get_absolute_path_after_check_file_exists( - geometryDataDir() + "/data/OT800_IT615_pt0.8/tilted_barrel_orientation.bin"); + auto endcap_geom = get_absolute_path_after_check_file_exists(geometryDataDir() + "/data/OT800_IT615_pt" + + ptCutLabel + "/endcap_orientation.bin"); + auto tilted_geom = get_absolute_path_after_check_file_exists(geometryDataDir() + "/data/OT800_IT615_pt" + + ptCutLabel + "/tilted_barrel_orientation.bin"); // Module connection map (for line segment building) - auto mappath = get_absolute_path_after_check_file_exists( - geometryDataDir() + "/data/OT800_IT615_pt0.8/module_connection_tracing_merged.bin"); + auto mappath = get_absolute_path_after_check_file_exists(geometryDataDir() + "/data/OT800_IT615_pt" + ptCutLabel + + "/module_connection_tracing_merged.bin"); endcapGeometry.load(endcap_geom); tiltedGeometry.load(tilted_geom); moduleConnectionMap.load(mappath); - auto pLSMapDir = geometryDataDir() + "/data/OT800_IT615_pt0.8/pixelmap/pLS_map"; + auto pLSMapDir = geometryDataDir() + "/data/OT800_IT615_pt" + ptCutLabel + "/pixelmap/pLS_map"; const std::array connects{ {"_layer1_subdet5", "_layer2_subdet5", "_layer1_subdet4", "_layer2_subdet4"}}; std::string path; @@ -78,7 +79,7 @@ namespace { } } // namespace -std::unique_ptr> lst::loadAndFillESHost() { +std::unique_ptr> lst::loadAndFillESHost(std::string& ptCutLabel) { uint16_t nModules; uint16_t nLowerModules; unsigned int nPixels; @@ -87,7 +88,7 @@ std::unique_ptr> lst::loadAndFillESHost() TiltedGeometry tiltedGeometry; PixelMap pixelMapping; ModuleConnectionMap moduleConnectionMap; - ::loadMapsHost(pLStoLayer, endcapGeometry, tiltedGeometry, moduleConnectionMap); + ::loadMapsHost(pLStoLayer, endcapGeometry, tiltedGeometry, moduleConnectionMap, ptCutLabel); auto endcapGeometryDev = std::make_shared(endcapGeometry.nEndCapMap, cms::alpakatools::host()); @@ -98,8 +99,8 @@ std::unique_ptr> lst::loadAndFillESHost() endcapGeometry.geoMapPhi_buf.data(), endcapGeometry.nEndCapMap * sizeof(float)); - auto path = - get_absolute_path_after_check_file_exists(geometryDataDir() + "/data/OT800_IT615_pt0.8/sensor_centroids.bin"); + auto path = get_absolute_path_after_check_file_exists(geometryDataDir() + "/data/OT800_IT615_pt" + ptCutLabel + + "/sensor_centroids.bin"); auto modulesBuffers = lst::loadModulesFromFile(pLStoLayer, path.c_str(), nModules, diff --git a/RecoTracker/LSTCore/src/alpaka/LST.cc b/RecoTracker/LSTCore/src/alpaka/LST.cc index 3c1638677eab2..b2fe87e3a2917 100644 --- a/RecoTracker/LSTCore/src/alpaka/LST.cc +++ b/RecoTracker/LSTCore/src/alpaka/LST.cc @@ -75,7 +75,8 @@ void LST::prepareInput(std::vector const& see_px, std::vector const& ph2_detId, std::vector const& ph2_x, std::vector const& ph2_y, - std::vector const& ph2_z) { + std::vector const& ph2_z, + float const ptCut) { in_trkX_.clear(); in_trkY_.clear(); in_trkZ_.clear(); @@ -132,7 +133,7 @@ void LST::prepareInput(std::vector const& see_px, float eta = p3LH.eta(); float ptErr = see_ptErr[iSeed]; - if ((ptIn > 0.8 - 2 * ptErr)) { + if ((ptIn > ptCut - 2 * ptErr)) { XYZVector r3LH(see_stateTrajGlbX[iSeed], see_stateTrajGlbY[iSeed], see_stateTrajGlbZ[iSeed]); XYZVector p3PCA(see_px[iSeed], see_py[iSeed], see_pz[iSeed]); XYZVector r3PCA(calculateR3FromPCA(p3PCA, see_dxy[iSeed], see_dz[iSeed])); @@ -149,7 +150,7 @@ void LST::prepareInput(std::vector const& see_px, if (ptIn >= 2.0) pixtype = PixelType::kHighPt; - else if (ptIn >= (0.8 - 2 * ptErr) and ptIn < 2.0) { + else if (ptIn >= (ptCut - 2 * ptErr) and ptIn < 2.0) { if (pixelSegmentDeltaPhiChange >= 0) pixtype = PixelType::kLowPtPosCurv; else @@ -255,6 +256,7 @@ void LST::getOutput(LSTEvent& event) { void LST::run(Queue& queue, bool verbose, + float const ptCut, LSTESData const* deviceESData, std::vector const& see_px, std::vector const& see_py, @@ -277,7 +279,7 @@ void LST::run(Queue& queue, std::vector const& ph2_z, bool no_pls_dupclean, bool tc_pls_triplets) { - auto event = LSTEvent(verbose, queue, deviceESData); + auto event = LSTEvent(verbose, ptCut, queue, deviceESData); prepareInput(see_px, see_py, see_pz, @@ -296,7 +298,8 @@ void LST::run(Queue& queue, ph2_detId, ph2_x, ph2_y, - ph2_z); + ph2_z, + ptCut); event.addHitToEvent(in_trkX_, in_trkY_, in_trkZ_, in_hitId_, in_hitIdxs_); event.addPixelSegmentToEvent(in_hitIndices_vec0_, diff --git a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc index be6c2b88b73c8..3b647273303b2 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc @@ -381,7 +381,8 @@ void LSTEvent::createMiniDoublets() { hitsDC_->const_view(), miniDoubletsDC_->view(), miniDoubletsDC_->view(), - rangesDC_->const_view()); + rangesDC_->const_view(), + ptCut_); WorkDiv1D const addMiniDoubletRangesToEventExplicit_workDiv = createWorkDiv({1}, {1024}, {1}); @@ -427,7 +428,8 @@ void LSTEvent::createSegmentsWithModuleMap() { miniDoubletsDC_->const_view(), segmentsDC_->view(), segmentsDC_->view(), - rangesDC_->const_view()); + rangesDC_->const_view(), + ptCut_); WorkDiv1D const addSegmentRangesToEventExplicit_workDiv = createWorkDiv({1}, {1024}, {1}); @@ -537,7 +539,8 @@ void LSTEvent::createTriplets() { tripletsDC_->view(), rangesDC_->const_view(), index_gpu_buf.data(), - nonZeroModules); + nonZeroModules, + ptCut_); WorkDiv1D const addTripletRangesToEventExplicit_workDiv = createWorkDiv({1}, {1024}, {1}); @@ -822,7 +825,8 @@ void LSTEvent::createPixelTriplets() { pixelTripletsDC_->view(), connectedPixelSize_dev_buf.data(), connectedPixelIndex_dev_buf.data(), - nInnerSegments); + nInnerSegments, + ptCut_); #ifdef WARNINGS auto nPixelTriplets_buf = cms::alpakatools::make_host_buffer(queue_); @@ -904,7 +908,8 @@ void LSTEvent::createQuintuplets() { quintupletsDC_->view(), quintupletsDC_->view(), rangesDC_->const_view(), - nEligibleT5Modules); + nEligibleT5Modules, + ptCut_); Vec3D const threadsPerBlockDupQuint{1, 16, 16}; Vec3D const blocksPerGridDupQuint{max_blocks, 1, 1}; @@ -1065,7 +1070,8 @@ void LSTEvent::createPixelQuintuplets() { connectedPixelSize_dev_buf.data(), connectedPixelIndex_dev_buf.data(), nInnerSegments, - rangesDC_->const_view()); + rangesDC_->const_view(), + ptCut_); Vec3D const threadsPerBlockDupPix{1, 16, 16}; Vec3D const blocksPerGridDupPix{1, max_blocks, 1}; diff --git a/RecoTracker/LSTCore/src/alpaka/LSTEvent.h b/RecoTracker/LSTCore/src/alpaka/LSTEvent.h index 59f249aa9405f..02f1decef916b 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTEvent.h +++ b/RecoTracker/LSTCore/src/alpaka/LSTEvent.h @@ -36,6 +36,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { class LSTEvent { private: Queue& queue_; + const float ptCut_; std::array n_minidoublets_by_layer_barrel_{}; std::array n_minidoublets_by_layer_endcap_{}; @@ -81,8 +82,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { public: // Constructor used for CMSSW integration. Uses an external queue. - LSTEvent(bool verbose, Queue& q, const LSTESData* deviceESData) + LSTEvent(bool verbose, const float pt_cut, Queue& q, const LSTESData* deviceESData) : queue_(q), + ptCut_(pt_cut), nModules_(deviceESData->nModules), nLowerModules_(deviceESData->nLowerModules), nPixels_(deviceESData->nPixels), @@ -90,7 +92,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { modules_(*deviceESData->modules), pixelMapping_(*deviceESData->pixelMapping), endcapGeometry_(*deviceESData->endcapGeometry), - addObjects_(verbose) {} + addObjects_(verbose) { + if (pt_cut < 0.6f) { + throw std::invalid_argument("Minimum pT cut must be at least 0.6 GeV. Provided value: " + + std::to_string(pt_cut)); + } + } void initSync(); // synchronizes, for standalone usage void resetEventSync(); // synchronizes, for standalone usage void wait() const { alpaka::wait(queue_); } diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 4ecdcb1ca6bc5..0368c5e950b21 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -128,8 +128,13 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } template - ALPAKA_FN_ACC ALPAKA_FN_INLINE float dPhiThreshold( - TAcc const& acc, float rt, ModulesConst modules, uint16_t moduleIndex, float dPhi = 0, float dz = 0) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE float dPhiThreshold(TAcc const& acc, + float rt, + ModulesConst modules, + uint16_t moduleIndex, + const float ptCut, + float dPhi = 0, + float dz = 0) { // ================================================================= // Various constants // ================================================================= @@ -374,7 +379,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float xUpper, float yUpper, float zUpper, - float rtUpper) { + float rtUpper, + const float ptCut) { dz = zLower - zUpper; const float dzCut = modules.moduleType()[lowerModuleIndex] == PS ? 2.f : 10.f; const float sign = ((dz > 0) - (dz < 0)) * ((zLower > 0) - (zLower < 0)); @@ -386,8 +392,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float miniCut = 0; miniCut = modules.moduleLayerType()[lowerModuleIndex] == Pixel - ? dPhiThreshold(acc, rtLower, modules, lowerModuleIndex) - : dPhiThreshold(acc, rtUpper, modules, lowerModuleIndex); + ? dPhiThreshold(acc, rtLower, modules, lowerModuleIndex, ptCut) + : dPhiThreshold(acc, rtUpper, modules, lowerModuleIndex, ptCut); // Cut #2: dphi difference // Ref to original code: https://github.com/slava77/cms-tkph2-ntuple/blob/184d2325147e6930030d3d1f780136bc2dd29ce6/doubletAnalysis.C#L3085 @@ -501,7 +507,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float xUpper, float yUpper, float zUpper, - float rtUpper) { + float rtUpper, + const float ptCut) { // There are series of cuts that applies to mini-doublet in a "endcap" region // Cut #1 : dz cut. The dz difference can't be larger than 1cm. (max separation is 4mm for modules in the endcap) // Ref to original code: https://github.com/slava77/cms-tkph2-ntuple/blob/184d2325147e6930030d3d1f780136bc2dd29ce6/doubletAnalysis.C#L3093 @@ -574,8 +581,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float miniCut = 0; miniCut = modules.moduleLayerType()[lowerModuleIndex] == Pixel - ? dPhiThreshold(acc, rtLower, modules, lowerModuleIndex, dPhi, dz) - : dPhiThreshold(acc, rtUpper, modules, lowerModuleIndex, dPhi, dz); + ? dPhiThreshold(acc, rtLower, modules, lowerModuleIndex, ptCut, dPhi, dz) + : dPhiThreshold(acc, rtUpper, modules, lowerModuleIndex, ptCut, dPhi, dz); if (alpaka::math::abs(acc, dPhi) >= miniCut) return false; @@ -612,7 +619,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float xUpper, float yUpper, float zUpper, - float rtUpper) { + float rtUpper, + const float ptCut) { if (modules.subdets()[lowerModuleIndex] == Barrel) { return runMiniDoubletDefaultAlgoBarrel(acc, modules, @@ -635,7 +643,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { xUpper, yUpper, zUpper, - rtUpper); + rtUpper, + ptCut); } else { return runMiniDoubletDefaultAlgoEndcap(acc, modules, @@ -658,7 +667,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { xUpper, yUpper, zUpper, - rtUpper); + rtUpper, + ptCut); } } @@ -670,7 +680,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { HitsRangesConst hitsRanges, MiniDoublets mds, MiniDoubletsOccupancy mdsOccupancy, - ObjectRangesConst ranges) const { + ObjectRangesConst ranges, + const float ptCut) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -725,7 +736,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { xUpper, yUpper, zUpper, - rtUpper); + rtUpper, + ptCut); if (success) { int totOccupancyMDs = alpaka::atomicAdd( acc, &mdsOccupancy.totOccupancyMDs()[lowerModuleIndex], 1u, alpaka::hierarchy::Threads{}); diff --git a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h index c031e6d21f1b8..6c3b58bb9a221 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h @@ -439,7 +439,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& quintupletRadius, float& centerX, float& centerY, - unsigned int pixelSegmentArrayIndex) { + unsigned int pixelSegmentArrayIndex, + const float ptCut) { unsigned int t5InnerT3Index = quintuplets.tripletIndices()[quintupletIndex][0]; unsigned int t5OuterT3Index = quintuplets.tripletIndices()[quintupletIndex][1]; @@ -462,6 +463,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { rzChiSquaredTemp, rPhiChiSquaredTemp, rPhiChiSquaredInwardsTemp, + ptCut, false)) return false; @@ -583,7 +585,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, unsigned int nPixelSegments, - ObjectRangesConst ranges) const { + ObjectRangesConst ranges, + const float ptCut) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -638,7 +641,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { quintupletRadius, centerX, centerY, - static_cast(i_pLS)); + static_cast(i_pLS), + ptCut); if (success) { unsigned int totOccupancyPixelQuintuplets = alpaka::atomicAdd( acc, &pixelQuintuplets.totOccupancyPixelQuintuplets(), 1u, alpaka::hierarchy::Threads{}); diff --git a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h index afe23759c52af..cfd1b3d9b5a5c 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelTriplet.h @@ -29,7 +29,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex); + unsigned int fourthMDIndex, + const float ptCut); template ALPAKA_FN_ACC ALPAKA_FN_INLINE bool runTripletDefaultAlgoPPEE(TAcc const& acc, ModulesConst modules, @@ -45,7 +46,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex); + unsigned int fourthMDIndex, + const float ptCut); ALPAKA_FN_ACC ALPAKA_FN_INLINE void addPixelTripletToMemory(MiniDoubletsConst mds, SegmentsConst segments, @@ -123,7 +125,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { uint16_t outerInnerLowerModuleIndex, uint16_t outerOuterLowerModuleIndex, unsigned int innerSegmentIndex, - unsigned int outerSegmentIndex) { + unsigned int outerSegmentIndex, + const float ptCut) { short outerInnerLowerModuleSubdet = modules.subdets()[outerInnerLowerModuleIndex]; short outerOuterLowerModuleSubdet = modules.subdets()[outerOuterLowerModuleIndex]; @@ -149,7 +152,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex); + fourthMDIndex, + ptCut); } else if (outerInnerLowerModuleSubdet == Endcap and outerOuterLowerModuleSubdet == Endcap) { return runTripletDefaultAlgoPPEE(acc, modules, @@ -165,7 +169,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex); + fourthMDIndex, + ptCut); } return false; } @@ -639,6 +644,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& rzChiSquared, float& rPhiChiSquared, float& rPhiChiSquaredInwards, + const float ptCut, bool runChiSquaredCuts = true) { //run pT4 compatibility between the pixel segment and inner segment, and between the pixel and outer segment of the triplet uint16_t pixelModuleIndex = segments.innerLowerModuleIndices()[pixelSegmentIndex]; @@ -659,7 +665,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { lowerModuleIndex, middleModuleIndex, pixelSegmentIndex, - triplets.segmentIndices()[tripletIndex][0])) + triplets.segmentIndices()[tripletIndex][0], + ptCut)) return false; //pixel segment vs outer segment of triplet @@ -673,7 +680,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { middleModuleIndex, upperModuleIndex, pixelSegmentIndex, - triplets.segmentIndices()[tripletIndex][1])) + triplets.segmentIndices()[tripletIndex][1], + ptCut)) return false; } @@ -791,7 +799,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { PixelTriplets pixelTriplets, unsigned int* connectedPixelSize, unsigned int* connectedPixelIndex, - unsigned int nPixelSegments) const { + unsigned int nPixelSegments, + const float ptCut) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -867,7 +876,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { centerY, rzChiSquared, rPhiChiSquared, - rPhiChiSquaredInwards); + rPhiChiSquaredInwards, + ptCut); if (success) { float phi = @@ -933,7 +943,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex) { + unsigned int fourthMDIndex, + const float ptCut) { float dPhi, betaIn, betaOut, pt_beta, zLo, zHi, zLoPointed, zHiPointed, dPhiCut, betaOutCut; bool isPS_OutLo = (modules.moduleType()[outerInnerLowerModuleIndex] == PS); @@ -1191,7 +1202,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex) { + unsigned int fourthMDIndex, + const float ptCut) { float dPhi, betaIn, betaOut, pt_beta, rtLo, rtHi, dPhiCut, betaOutCut; bool isPS_OutLo = (modules.moduleType()[outerInnerLowerModuleIndex] == PS); diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 4b7e3773d42cf..255d2d09f1e92 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -1212,7 +1212,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex) { + unsigned int fourthMDIndex, + const float ptCut) { bool isPS_InLo = (modules.moduleType()[innerInnerLowerModuleIndex] == PS); bool isPS_OutLo = (modules.moduleType()[outerInnerLowerModuleIndex] == PS); @@ -1454,7 +1455,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex) { + unsigned int fourthMDIndex, + const float ptCut) { bool isPS_InLo = (modules.moduleType()[innerInnerLowerModuleIndex] == PS); bool isPS_OutLo = (modules.moduleType()[outerInnerLowerModuleIndex] == PS); @@ -1698,7 +1700,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex) { + unsigned int fourthMDIndex, + const float ptCut) { float rt_InLo = mds.anchorRt()[firstMDIndex]; float rt_InOut = mds.anchorRt()[secondMDIndex]; float rt_OutLo = mds.anchorRt()[thirdMDIndex]; @@ -1923,7 +1926,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int firstMDIndex, unsigned int secondMDIndex, unsigned int thirdMDIndex, - unsigned int fourthMDIndex) { + unsigned int fourthMDIndex, + const float ptCut) { short innerInnerLowerModuleSubdet = modules.subdets()[innerInnerLowerModuleIndex]; short innerOuterLowerModuleSubdet = modules.subdets()[innerOuterLowerModuleIndex]; short outerInnerLowerModuleSubdet = modules.subdets()[outerInnerLowerModuleIndex]; @@ -1944,7 +1948,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex); + fourthMDIndex, + ptCut); } else if (innerInnerLowerModuleSubdet == Barrel and innerOuterLowerModuleSubdet == Barrel and outerInnerLowerModuleSubdet == Endcap and outerOuterLowerModuleSubdet == Endcap) { return runQuintupletDefaultAlgoBBEE(acc, @@ -1960,7 +1965,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex); + fourthMDIndex, + ptCut); } else if (innerInnerLowerModuleSubdet == Barrel and innerOuterLowerModuleSubdet == Barrel and outerInnerLowerModuleSubdet == Barrel and outerOuterLowerModuleSubdet == Endcap) { return runQuintupletDefaultAlgoBBBB(acc, @@ -1976,7 +1982,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex); + fourthMDIndex, + ptCut); } else if (innerInnerLowerModuleSubdet == Barrel and innerOuterLowerModuleSubdet == Endcap and outerInnerLowerModuleSubdet == Endcap and outerOuterLowerModuleSubdet == Endcap) { return runQuintupletDefaultAlgoBBEE(acc, @@ -1992,7 +1999,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex); + fourthMDIndex, + ptCut); } else if (innerInnerLowerModuleSubdet == Endcap and innerOuterLowerModuleSubdet == Endcap and outerInnerLowerModuleSubdet == Endcap and outerOuterLowerModuleSubdet == Endcap) { return runQuintupletDefaultAlgoEEEE(acc, @@ -2008,7 +2016,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex); + fourthMDIndex, + ptCut); } return false; @@ -2036,7 +2045,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& rzChiSquared, float& chiSquared, float& nonAnchorChiSquared, - bool& tightCutFlag) { + bool& tightCutFlag, + const float ptCut) { unsigned int firstSegmentIndex = triplets.segmentIndices()[innerTripletIndex][0]; unsigned int secondSegmentIndex = triplets.segmentIndices()[innerTripletIndex][1]; unsigned int thirdSegmentIndex = triplets.segmentIndices()[outerTripletIndex][0]; @@ -2070,7 +2080,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, thirdMDIndex, - fourthMDIndex)) + fourthMDIndex, + ptCut)) return false; if (not runQuintupletAlgoSelector(acc, @@ -2086,7 +2097,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { firstMDIndex, secondMDIndex, fourthMDIndex, - fifthMDIndex)) + fifthMDIndex, + ptCut)) return false; float x1 = mds.anchorX()[firstMDIndex]; @@ -2342,7 +2354,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { Quintuplets quintuplets, QuintupletsOccupancy quintupletsOccupancy, ObjectRangesConst ranges, - uint16_t nEligibleT5Modules) const { + uint16_t nEligibleT5Modules, + const float ptCut) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -2397,7 +2410,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { rzChiSquared, chiSquared, nonAnchorChiSquared, - tightCutFlag); + tightCutFlag, + ptCut); if (success) { int totOccupancyQuintuplets = alpaka::atomicAdd( diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index b2f1f4c688477..afb23f2b12fc1 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -96,7 +96,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { uint16_t innerLowerModuleIndex, uint16_t outerLowerModuleIndex, unsigned int innerMDIndex, - unsigned int outerMDIndex) { + unsigned int outerMDIndex, + const float ptCut) { float sdMuls = (modules.subdets()[innerLowerModuleIndex] == Barrel) ? kMiniMulsPtScaleBarrel[modules.layers()[innerLowerModuleIndex] - 1] * 3.f / ptCut : kMiniMulsPtScaleEndcap[modules.layers()[innerLowerModuleIndex] - 1] * 3.f / ptCut; @@ -279,7 +280,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& dPhiMax, float& dPhiChange, float& dPhiChangeMin, - float& dPhiChangeMax) { + float& dPhiChangeMax, + const float ptCut) { float sdMuls = (modules.subdets()[innerLowerModuleIndex] == Barrel) ? kMiniMulsPtScaleBarrel[modules.layers()[innerLowerModuleIndex] - 1] * 3.f / ptCut : kMiniMulsPtScaleEndcap[modules.layers()[innerLowerModuleIndex] - 1] * 3.f / ptCut; @@ -337,7 +339,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { innerLowerModuleIndex, outerLowerModuleIndex, innerMDIndex, - outerMDIndex); + outerMDIndex, + ptCut); float innerMDAlpha = mds.dphichanges()[innerMDIndex]; float outerMDAlpha = mds.dphichanges()[outerMDIndex]; @@ -369,7 +372,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& dPhiMax, float& dPhiChange, float& dPhiChangeMin, - float& dPhiChangeMax) { + float& dPhiChangeMax, + const float ptCut) { float xIn, yIn, zIn, rtIn, xOut, yOut, zOut, rtOut; xIn = mds.anchorX()[innerMDIndex]; @@ -450,7 +454,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { innerLowerModuleIndex, outerLowerModuleIndex, innerMDIndex, - outerMDIndex); + outerMDIndex, + ptCut); float innerMDAlpha = mds.dphichanges()[innerMDIndex]; float outerMDAlpha = mds.dphichanges()[outerMDIndex]; @@ -482,7 +487,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& dPhiMax, float& dPhiChange, float& dPhiChangeMin, - float& dPhiChangeMax) { + float& dPhiChangeMax, + const float ptCut) { if (modules.subdets()[innerLowerModuleIndex] == Barrel and modules.subdets()[outerLowerModuleIndex] == Barrel) { return runSegmentDefaultAlgoBarrel(acc, modules, @@ -496,7 +502,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { dPhiMax, dPhiChange, dPhiChangeMin, - dPhiChangeMax); + dPhiChangeMax, + ptCut); } else { return runSegmentDefaultAlgoEndcap(acc, modules, @@ -510,7 +517,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { dPhiMax, dPhiChange, dPhiChangeMin, - dPhiChangeMax); + dPhiChangeMax, + ptCut); } } @@ -522,7 +530,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { MiniDoubletsOccupancyConst mdsOccupancy, Segments segments, SegmentsOccupancy segmentsOccupancy, - ObjectRangesConst ranges) const { + ObjectRangesConst ranges, + const float ptCut) const { auto const globalBlockIdx = alpaka::getIdx(acc); auto const blockThreadIdx = alpaka::getIdx(acc); auto const gridBlockExtent = alpaka::getWorkDiv(acc); @@ -575,7 +584,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { dPhiMax, dPhiChange, dPhiChangeMin, - dPhiChangeMax)) { + dPhiChangeMax, + ptCut)) { unsigned int totOccupancySegments = alpaka::atomicAdd(acc, &segmentsOccupancy.totOccupancySegments()[innerLowerModuleIndex], diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index 9192edbd9a186..a57d70f0f5238 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -141,7 +141,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& rtOut, unsigned int innerSegmentIndex, float& betaIn, - float& betaInCut) { + float& betaInCut, + const float ptCut) { bool isPSIn = (modules.moduleType()[innerInnerLowerModuleIndex] == PS); bool isPSOut = (modules.moduleType()[outerOuterLowerModuleIndex] == PS); @@ -238,7 +239,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int innerSegmentIndex, unsigned int outerSegmentIndex, float& betaIn, - float& betaInCut) { + float& betaInCut, + const float ptCut) { bool isPSIn = (modules.moduleType()[innerInnerLowerModuleIndex] == PS); bool isPSOut = (modules.moduleType()[outerOuterLowerModuleIndex] == PS); @@ -356,7 +358,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int innerSegmentIndex, unsigned int outerSegmentIndex, float& betaIn, - float& betaInCut) { + float& betaInCut, + const float ptCut) { float rtIn = mds.anchorRt()[firstMDIndex]; float rtMid = mds.anchorRt()[secondMDIndex]; rtOut = mds.anchorRt()[thirdMDIndex]; @@ -478,7 +481,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { unsigned int innerSegmentIndex, unsigned int outerSegmentIndex, float& betaIn, - float& betaInCut) { + float& betaInCut, + const float ptCut) { short innerInnerLowerModuleSubdet = modules.subdets()[innerInnerLowerModuleIndex]; short middleLowerModuleSubdet = modules.subdets()[middleLowerModuleIndex]; short outerOuterLowerModuleSubdet = modules.subdets()[outerOuterLowerModuleIndex]; @@ -499,7 +503,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { rtOut, innerSegmentIndex, betaIn, - betaInCut); + betaInCut, + ptCut); } else if (innerInnerLowerModuleSubdet == Barrel and middleLowerModuleSubdet == Barrel and outerOuterLowerModuleSubdet == Endcap) { return passPointingConstraintBBE(acc, @@ -518,7 +523,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { innerSegmentIndex, outerSegmentIndex, betaIn, - betaInCut); + betaInCut, + ptCut); } else if (innerInnerLowerModuleSubdet == Barrel and middleLowerModuleSubdet == Endcap and outerOuterLowerModuleSubdet == Endcap) { return passPointingConstraintBBE(acc, @@ -537,7 +543,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { innerSegmentIndex, outerSegmentIndex, betaIn, - betaInCut); + betaInCut, + ptCut); } @@ -558,7 +565,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { innerSegmentIndex, outerSegmentIndex, betaIn, - betaInCut); + betaInCut, + ptCut); } return false; // failsafe } @@ -612,7 +620,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& betaInCut, float& circleRadius, float& circleCenterX, - float& circleCenterY) { + float& circleCenterY, + const float ptCut) { //this cut reduces the number of candidates by a factor of 4, i.e., 3 out of 4 warps can end right here! if (segments.mdIndices()[innerSegmentIndex][1] != segments.mdIndices()[outerSegmentIndex][0]) return false; @@ -647,7 +656,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { innerSegmentIndex, outerSegmentIndex, betaIn, - betaInCut)) + betaInCut, + ptCut)) return false; float x1 = mds.anchorX()[firstMDIndex]; @@ -672,7 +682,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { TripletsOccupancy tripletsOccupancy, ObjectRangesConst ranges, uint16_t* index_gpu, - uint16_t nonZeroModules) const { + uint16_t nonZeroModules, + const float ptCut) const { auto const globalThreadIdx = alpaka::getIdx(acc); auto const gridThreadExtent = alpaka::getWorkDiv(acc); @@ -719,7 +730,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { betaInCut, circleRadius, circleCenterX, - circleCenterY); + circleCenterY, + ptCut); if (success) { unsigned int totOccupancyTriplets = diff --git a/RecoTracker/LSTCore/standalone/.gitignore b/RecoTracker/LSTCore/standalone/.gitignore index 29e86cb6b932a..3d27afd0c4469 100644 --- a/RecoTracker/LSTCore/standalone/.gitignore +++ b/RecoTracker/LSTCore/standalone/.gitignore @@ -9,6 +9,7 @@ plots_*/ scripts/moduleconnection*.txt *.root .make.log* +performance* bin/doAnalysis bin/lst bin/lst_cuda diff --git a/RecoTracker/LSTCore/standalone/LST/Makefile b/RecoTracker/LSTCore/standalone/LST/Makefile index ee6f82ecccde1..8aed3e58ccb09 100644 --- a/RecoTracker/LSTCore/standalone/LST/Makefile +++ b/RecoTracker/LSTCore/standalone/LST/Makefile @@ -88,31 +88,31 @@ CUTVALUEFLAG = CUTVALUEFLAG_FLAGS = -DCUT_VALUE_DEBUG %_cpu.o: ../../src/alpaka/%.dev.cc - $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@ + $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@ %_cuda.o: ../../src/alpaka/%.dev.cc - $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@ + $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@ %_rocm.o: ../../src/alpaka/%.dev.cc - $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@ + $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@ %_cpu.o: ../../src/alpaka/%.cc - $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@ + $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@ %_cuda.o: ../../src/alpaka/%.cc - $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@ + $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@ %_rocm.o: ../../src/alpaka/%.cc - $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@ + $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@ %_cpu.o: ../../src/%.cc - $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@ + $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@ %_cuda.o: ../../src/%.cc - $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@ + $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@ %_rocm.o: ../../src/%.cc - $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(PTCUTFLAG) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@ + $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@ $(LIB_CPU): $(CCOBJECTS_CPU) $(LSTOBJECTS_CPU) $(LD_CPU) $(SOFLAGS_CPU) $^ -o $@ diff --git a/RecoTracker/LSTCore/standalone/Makefile b/RecoTracker/LSTCore/standalone/Makefile index b98df31df1b5e..18ec73db8d975 100644 --- a/RecoTracker/LSTCore/standalone/Makefile +++ b/RecoTracker/LSTCore/standalone/Makefile @@ -25,7 +25,6 @@ ALPAKA_CUDA = -DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_HOST_ONLY -DALPAKA_DISABLE_ ALPAKA_ROCM = -DALPAKA_ACC_GPU_HIP_ENABLED -DALPAKA_HOST_ONLY -DALPAKA_DISABLE_VENDOR_RNG -D__HIP_PLATFORM_HCC__ -D__HIP_PLATFORM_AMD__ -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128 EXTRAFLAGS = -ITMultiDrawTreePlayer -Wunused-variable -lTMVA -lEG -lGenVector -lXMLIO -lMLP -lTreePlayer -fopenmp DOQUINTUPLET = -PTCUTFLAG = CUTVALUEFLAG = CUTVALUEFLAG_FLAGS = -DCUT_VALUE_DEBUG @@ -47,20 +46,20 @@ cutvalue_primitive: rooutil efficiency $(EXES) bin/lst_cpu: LSTLIB=-llst_cpu bin/lst_cpu: bin/lst_cpu.o $(OBJECTS_CPU) - $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CPU) -o $@ + $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CPU) -o $@ bin/lst_cuda: LSTLIB=-llst_cuda bin/lst_cuda: bin/lst_cuda.o $(OBJECTS_CUDA) - $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CUDA) $(LDFLAGS_CUDA) -o $@ + $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CUDA) $(LDFLAGS_CUDA) -o $@ bin/lst_rocm: LSTLIB=-llst_rocm bin/lst_rocm: bin/lst_rocm.o $(OBJECTS_ROCM) - $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_ROCM) $(LDFLAGS_ROCM) -o $@ + $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_ROCM) $(LDFLAGS_ROCM) -o $@ %_cpu.o: %.cc rooutil - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CPU) $< -c -o $@ + $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CPU) $< -c -o $@ %_cuda.o: %.cc rooutil - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CUDA) $(CUDAINCLUDE) $< -c -o $@ + $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CUDA) $(CUDAINCLUDE) $< -c -o $@ %_rocm.o: %.cc rooutil - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(PTCUTFLAG) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_ROCM) $(ROCMINCLUDE) $< -c -o $@ + $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_ROCM) $(ROCMINCLUDE) $< -c -o $@ rooutil: $(MAKE) -C code/rooutil/ diff --git a/RecoTracker/LSTCore/standalone/bin/lst.cc b/RecoTracker/LSTCore/standalone/bin/lst.cc index 369680bc4309e..17eb4a54628d6 100644 --- a/RecoTracker/LSTCore/standalone/bin/lst.cc +++ b/RecoTracker/LSTCore/standalone/bin/lst.cc @@ -53,6 +53,7 @@ int main(int argc, char **argv) { cxxopts::value()->default_value("trackingNtuple/tree"))( "o,output", "Output file name", cxxopts::value())( "N,nmatch", "N match for MTV-like matching", cxxopts::value()->default_value("9"))( + "p,ptCut", "Min pT cut In GeV", cxxopts::value()->default_value("0.8"))( "n,nevents", "N events to loop over", cxxopts::value()->default_value("-1"))( "x,event_index", "specific event index to process", cxxopts::value()->default_value("-1"))( "g,pdg_id", "The simhit pdgId match option", cxxopts::value()->default_value("0"))( @@ -145,6 +146,10 @@ int main(int argc, char **argv) { } } + //_______________________________________________________________________________ + // --ptCut + ana.ptCut = result["ptCut"].as(); + //_______________________________________________________________________________ // --nmatch ana.nmatch_threshold = result["nmatch"].as(); @@ -308,7 +313,9 @@ void run_lst() { // Load various maps used in the lst reconstruction TStopwatch full_timer; full_timer.Start(); - auto hostESData = lst::loadAndFillESHost(); + // Determine which maps to use based on given pt cut for standalone. + std::string ptCutString = (ana.ptCut >= 0.8) ? "0.8" : "0.6"; + auto hostESData = lst::loadAndFillESHost(ptCutString); auto deviceESData = cms::alpakatools::CopyToDevice>::copyAsync(queues[0], *hostESData.get()); float timeForMapLoading = full_timer.RealTime() * 1000; @@ -388,7 +395,7 @@ void run_lst() { full_timer.Start(); std::vector events; for (int s = 0; s < ana.streams; s++) { - LSTEvent *event = new LSTEvent(ana.verbose >= 2, queues[s], &deviceESData); + LSTEvent *event = new LSTEvent(ana.verbose >= 2, ana.ptCut, queues[s], &deviceESData); events.push_back(event); } float timeForEventCreation = full_timer.RealTime() * 1000; diff --git a/RecoTracker/LSTCore/standalone/bin/lst_make_tracklooper b/RecoTracker/LSTCore/standalone/bin/lst_make_tracklooper index 7686b3df42bf5..0c3c9be329e91 100755 --- a/RecoTracker/LSTCore/standalone/bin/lst_make_tracklooper +++ b/RecoTracker/LSTCore/standalone/bin/lst_make_tracklooper @@ -28,7 +28,6 @@ usage() echo " -G GPU (CUDA) backend (Compile for CUDA)" echo " -R ROCm backend (Compile for ROCm)" echo " -A All backends (Compile for all backends, including ROCm)" - echo " -P PT Cut Value (In GeV, Default is 0.8, Works only for standalone version of code)" echo " -w Warning mode (Print extra warning outputs)" echo exit @@ -47,7 +46,6 @@ while getopts ":cxgsmdp3NCGRA2ehwP:" OPTION; do R) ROCMBACKEND=true;; A) ALLBACKENDS=true;; w) PRINTWARNINGS=true;; - P) PTCUTVALUE=$OPTARG;; h) usage;; :) usage;; esac @@ -64,7 +62,6 @@ if [ -z ${CUDABACKEND} ]; then CUDABACKEND=false; fi if [ -z ${ROCMBACKEND} ]; then ROCMBACKEND=false; fi if [ -z ${ALLBACKENDS} ]; then ALLBACKENDS=false; fi if [ -z ${PRINTWARNINGS} ]; then PRINTWARNINGS=false; fi -if [ -z ${PTCUTVALUE} ]; then PTCUTVALUE=0.8; fi # Default to only CPU and CUDA backends if [ "${CPUBACKEND}" == false ] && [ "${CUDABACKEND}" == false ] && [ "${ROCMBACKEND}" == false ]; then @@ -101,7 +98,6 @@ echo " CPUBACKEND : ${CPUBACKEND}" | tee -a ${LOG} echo " CUDABACKEND : ${CUDABACKEND}" | tee -a ${LOG} echo " ROCMBACKEND : ${ROCMBACKEND}" | tee -a ${LOG} echo " PRINTWARNINGS : ${PRINTWARNINGS}" | tee -a ${LOG} -echo " PTCUTVALUE : ${PTCUTVALUE} GeV" | tee -a ${LOG} echo "" | tee -a ${LOG} echo " (cf. Run > sh $(basename $0) -h to see all options)" | tee -a ${LOG} echo "" | tee -a ${LOG} @@ -159,8 +155,6 @@ if $PRINTWARNINGS; then PRINTWARNINGSOPT="LSTWARNINGSFLAG=-DWARNINGS" fi -PTCUTOPT="PTCUTFLAG=-DPT_CUT=${PTCUTVALUE}" - if [ -z "${MAXMAKETHREADS}" ]; then MAXMAKETHREADS=32 fi @@ -177,9 +171,9 @@ echo "-------------------------------------------------------------------------- echo "---------------------------------------------------------------------------------------------" >> ${LOG} 2>&1 echo "---------------------------------------------------------------------------------------------" >> ${LOG} 2>&1 if $SHOWLOG; then - (cd LST && make clean && make ${BACKENDOPT} ${PRINTWARNINGSOPT} ${PTCUTOPT} -j ${MAXMAKETHREADS} ${MAKETARGET} && cd -) 2>&1 | tee -a ${LOG} + (cd LST && make clean && make ${BACKENDOPT} ${PRINTWARNINGSOPT} -j ${MAXMAKETHREADS} ${MAKETARGET} && cd -) 2>&1 | tee -a ${LOG} else - (cd LST && make clean && make ${BACKENDOPT} ${PRINTWARNINGSOPT} ${PTCUTOPT} -j ${MAXMAKETHREADS} ${MAKETARGET} && cd -) >> ${LOG} 2>&1 + (cd LST && make clean && make ${BACKENDOPT} ${PRINTWARNINGSOPT} -j ${MAXMAKETHREADS} ${MAKETARGET} && cd -) >> ${LOG} 2>&1 fi if ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cpu"* ]]) && [ ! -f LST/liblst_cpu.so ]; then @@ -214,9 +208,9 @@ echo "-------------------------------------------------------------------------- echo "---------------------------------------------------------------------------------------------" >> ${LOG} 2>&1 echo "---------------------------------------------------------------------------------------------" >> ${LOG} 2>&1 if $SHOWLOG; then - make EXES="${EXES}" ${TRACKLOOPERTARGET} ${PTCUTOPT} -j ${MAXMAKETHREADS} 2>&1 | tee -a ${LOG} + make EXES="${EXES}" ${TRACKLOOPERTARGET} -j ${MAXMAKETHREADS} 2>&1 | tee -a ${LOG} else - make EXES="${EXES}" ${TRACKLOOPERTARGET} ${PTCUTOPT} -j ${MAXMAKETHREADS} >> ${LOG} 2>&1 + make EXES="${EXES}" ${TRACKLOOPERTARGET} -j ${MAXMAKETHREADS} >> ${LOG} 2>&1 fi if ([[ "$BACKENDOPT" == *"all"* ]] || [[ "$BACKENDOPT" == *"cpu"* ]]) && [ ! -f bin/lst_cpu ]; then diff --git a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h index 8608bc95ed2fa..6d0da61bf2395 100644 --- a/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h +++ b/RecoTracker/LSTCore/standalone/code/core/AnalysisConfig.h @@ -46,6 +46,9 @@ class AnalysisConfig { // pt binning options int ptbound_mode; + // pt cut + float ptCut; + // pdg id of the particles to compute efficincies on int pdg_id; diff --git a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc index ffb2e7de205ac..50c5a2e2df61b 100644 --- a/RecoTracker/LSTCore/standalone/code/core/trkCore.cc +++ b/RecoTracker/LSTCore/standalone/code/core/trkCore.cc @@ -701,7 +701,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ float eta = p3LH.Eta(); float ptErr = trk.see_ptErr()[iSeed]; - if ((ptIn > PT_CUT - 2 * ptErr)) { + if ((ptIn > ana.ptCut - 2 * ptErr)) { TVector3 r3LH(trk.see_stateTrajGlbX()[iSeed], trk.see_stateTrajGlbY()[iSeed], trk.see_stateTrajGlbZ()[iSeed]); TVector3 p3PCA(trk.see_px()[iSeed], trk.see_py()[iSeed], trk.see_pz()[iSeed]); TVector3 r3PCA(calculateR3FromPCA(p3PCA, trk.see_dxy()[iSeed], trk.see_dz()[iSeed])); @@ -722,7 +722,7 @@ void addInputsToLineSegmentTrackingPreLoad(std::vector> &out_ PixelType pixtype = PixelType::kInvalid; if (ptIn >= 2.0) { pixtype = PixelType::kHighPt; - } else if (ptIn >= (PT_CUT - 2 * ptErr) and ptIn < 2.0) { + } else if (ptIn >= (ana.ptCut - 2 * ptErr) and ptIn < 2.0) { if (pixelSegmentDeltaPhiChange >= 0) { pixtype = PixelType::kLowPtPosCurv; } else { From ac2e345a2f7422ad274607ee965297e2444fa327 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Fri, 22 Nov 2024 12:11:46 -0800 Subject: [PATCH 114/418] Add Low pT Occupancies Co-authored-by: Gavin Niendorf --- .../LSTCore/src/alpaka/LSTEvent.dev.cc | 15 +- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 114 ++-- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 81 +-- RecoTracker/LSTCore/src/alpaka/Segment.h | 92 +-- RecoTracker/LSTCore/src/alpaka/Triplet.h | 89 +-- .../occupancy/compute_occupancies.ipynb | 586 ++++++++++++++++++ 6 files changed, 755 insertions(+), 222 deletions(-) create mode 100644 RecoTracker/LSTCore/standalone/analysis/occupancy/compute_occupancies.ipynb diff --git a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc index 3b647273303b2..c9c6d5c051b27 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc @@ -202,7 +202,8 @@ void LSTEvent::addPixelSegmentToEvent(std::vector const& hitIndice createMDArrayRangesGPU_workDiv, CreateMDArrayRangesGPU{}, modules_.const_view(), - rangesDC_->view()); + rangesDC_->view(), + ptCut_); auto nTotalMDs_buf_h = cms::alpakatools::make_host_buffer(queue_); auto nTotalMDs_buf_d = cms::alpakatools::make_device_view(queue_, rangesOccupancy.nTotalMDs()); @@ -233,7 +234,8 @@ void LSTEvent::addPixelSegmentToEvent(std::vector const& hitIndice CreateSegmentArrayRanges{}, modules_.const_view(), rangesDC_->view(), - miniDoubletsDC_->const_view()); + miniDoubletsDC_->const_view(), + ptCut_); auto rangesOccupancy = rangesDC_->view(); auto nTotalSegments_view_h = cms::alpakatools::make_host_view(nTotalSegments_); @@ -346,7 +348,8 @@ void LSTEvent::createMiniDoublets() { createMDArrayRangesGPU_workDiv, CreateMDArrayRangesGPU{}, modules_.const_view(), - rangesDC_->view()); + rangesDC_->view(), + ptCut_); auto nTotalMDs_buf_h = cms::alpakatools::make_host_buffer(queue_); auto nTotalMDs_buf_d = cms::alpakatools::make_device_view(queue_, rangesOccupancy.nTotalMDs()); @@ -454,7 +457,8 @@ void LSTEvent::createTriplets() { CreateTripletArrayRanges{}, modules_.const_view(), rangesDC_->view(), - segmentsDC_->const_view()); + segmentsDC_->const_view(), + ptCut_); // TODO: Why are we pulling this back down only to put it back on the device in a new struct? auto rangesOccupancy = rangesDC_->view(); @@ -857,7 +861,8 @@ void LSTEvent::createQuintuplets() { CreateEligibleModulesListForQuintuplets{}, modules_.const_view(), tripletsDC_->const_view(), - rangesDC_->view()); + rangesDC_->view(), + ptCut_); auto nEligibleT5Modules_buf = cms::alpakatools::make_host_buffer(queue_); auto nTotalQuintuplets_buf = cms::alpakatools::make_host_buffer(queue_); diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 0368c5e950b21..08f45b05708c6 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -743,7 +743,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { acc, &mdsOccupancy.totOccupancyMDs()[lowerModuleIndex], 1u, alpaka::hierarchy::Threads{}); if (totOccupancyMDs >= (ranges.miniDoubletModuleOccupancy()[lowerModuleIndex])) { #ifdef WARNINGS - printf("Mini-doublet excess alert! Module index = %d\n", lowerModuleIndex); + printf( + "Mini-doublet excess alert! Module index = %d, Occupancy = %d\n", lowerModuleIndex, totOccupancyMDs); #endif } else { int mdModuleIndex = @@ -773,9 +774,38 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } }; + // Helper function to determine eta bin for occupancies + ALPAKA_FN_ACC ALPAKA_FN_INLINE int getEtaBin(const float module_eta) { + if (module_eta < 0.75f) + return 0; + else if (module_eta < 1.5f) + return 1; + else if (module_eta < 2.25f) + return 2; + else if (module_eta < 3.0f) + return 3; + return -1; + } + + // Helper function to determine category number for occupancies + ALPAKA_FN_ACC ALPAKA_FN_INLINE int getCategoryNumber(const short module_layers, + const short module_subdets, + const short module_rings) { + if (module_subdets == Barrel) { + return (module_layers <= 3) ? 0 : 1; + } else if (module_subdets == Endcap) { + if (module_layers <= 2) { + return (module_rings >= 11) ? 2 : 3; + } else { + return (module_rings >= 8) ? 2 : 3; + } + } + return -1; + } + struct CreateMDArrayRangesGPU { template - ALPAKA_FN_ACC void operator()(TAcc const& acc, ModulesConst modules, ObjectRanges ranges) const { + ALPAKA_FN_ACC void operator()(TAcc const& acc, ModulesConst modules, ObjectRanges ranges, const float ptCut) const { // implementation is 1D with a single block static_assert(std::is_same_v, "Should be Acc1D"); ALPAKA_ASSERT_ACC((alpaka::getWorkDiv(acc)[0] == 1)); @@ -790,67 +820,43 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } alpaka::syncBlockThreads(acc); + // Occupancy matrix for 0.8 GeV pT Cut + constexpr int p08_occupancy_matrix[4][4] = { + {49, 42, 37, 41}, // category 0 + {100, 100, 0, 0}, // category 1 + {0, 16, 19, 0}, // category 2 + {0, 14, 20, 25} // category 3 + }; + + // Occupancy matrix for 0.6 GeV pT Cut, 99.99% + constexpr int p06_occupancy_matrix[4][4] = { + {60, 57, 54, 48}, // category 0 + {259, 195, 0, 0}, // category 1 + {0, 23, 28, 0}, // category 2 + {0, 25, 25, 33} // category 3 + }; + + // Select the appropriate occupancy matrix based on ptCut + const auto& occupancy_matrix = (ptCut < 0.8f) ? p06_occupancy_matrix : p08_occupancy_matrix; + for (uint16_t i = globalThreadIdx[0]; i < modules.nLowerModules(); i += gridThreadExtent[0]) { short module_rings = modules.rings()[i]; short module_layers = modules.layers()[i]; short module_subdets = modules.subdets()[i]; float module_eta = alpaka::math::abs(acc, modules.eta()[i]); - int category_number; - if (module_layers <= 3 && module_subdets == 5) - category_number = 0; - else if (module_layers >= 4 && module_subdets == 5) - category_number = 1; - else if (module_layers <= 2 && module_subdets == 4 && module_rings >= 11) - category_number = 2; - else if (module_layers >= 3 && module_subdets == 4 && module_rings >= 8) - category_number = 2; - else if (module_layers <= 2 && module_subdets == 4 && module_rings <= 10) - category_number = 3; - else if (module_layers >= 3 && module_subdets == 4 && module_rings <= 7) - category_number = 3; - else - category_number = -1; - - int eta_number; - if (module_eta < 0.75f) - eta_number = 0; - else if (module_eta < 1.5f) - eta_number = 1; - else if (module_eta < 2.25f) - eta_number = 2; - else if (module_eta < 3.0f) - eta_number = 3; - else - eta_number = -1; - - int occupancy; - if (category_number == 0 && eta_number == 0) - occupancy = 49; - else if (category_number == 0 && eta_number == 1) - occupancy = 42; - else if (category_number == 0 && eta_number == 2) - occupancy = 37; - else if (category_number == 0 && eta_number == 3) - occupancy = 41; - else if (category_number == 1) - occupancy = 100; - else if (category_number == 2 && eta_number == 1) - occupancy = 16; - else if (category_number == 2 && eta_number == 2) - occupancy = 19; - else if (category_number == 3 && eta_number == 1) - occupancy = 14; - else if (category_number == 3 && eta_number == 2) - occupancy = 20; - else if (category_number == 3 && eta_number == 3) - occupancy = 25; - else { - occupancy = 0; + int category_number = getCategoryNumber(module_layers, module_subdets, module_rings); + int eta_number = getEtaBin(module_eta); + + int occupancy = 0; + if (category_number != -1 && eta_number != -1) { + occupancy = occupancy_matrix[category_number][eta_number]; + } #ifdef WARNINGS + else { printf("Unhandled case in createMDArrayRangesGPU! Module index = %i\n", i); -#endif } +#endif unsigned int nTotMDs = alpaka::atomicAdd(acc, &nTotalMDs, occupancy, alpaka::hierarchy::Threads{}); diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 255d2d09f1e92..80214ae25a5dc 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -2418,7 +2418,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { acc, &quintupletsOccupancy.totOccupancyQuintuplets()[lowerModule1], 1u, alpaka::hierarchy::Threads{}); if (totOccupancyQuintuplets >= ranges.quintupletModuleOccupancy()[lowerModule1]) { #ifdef WARNINGS - printf("Quintuplet excess alert! Module index = %d\n", lowerModule1); + printf("Quintuplet excess alert! Module index = %d, Occupancy = %d\n", + lowerModule1, + totOccupancyQuintuplets); #endif } else { int quintupletModuleIndex = alpaka::atomicAdd( @@ -2478,7 +2480,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { ALPAKA_FN_ACC void operator()(TAcc const& acc, ModulesConst modules, TripletsOccupancyConst tripletsOccupancy, - ObjectRanges ranges) const { + ObjectRanges ranges, + const float ptCut) const { // implementation is 1D with a single block static_assert(std::is_same_v, "Should be Acc1D"); ALPAKA_ASSERT_ACC((alpaka::getWorkDiv(acc)[0] == 1)); @@ -2495,6 +2498,25 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } alpaka::syncBlockThreads(acc); + // Occupancy matrix for 0.8 GeV pT Cut + constexpr int p08_occupancy_matrix[4][4] = { + {336, 414, 231, 146}, // category 0 + {0, 0, 0, 0}, // category 1 + {0, 0, 0, 0}, // category 2 + {0, 0, 191, 106} // category 3 + }; + + // Occupancy matrix for 0.6 GeV pT Cut, 99.99% + constexpr int p06_occupancy_matrix[4][4] = { + {325, 237, 217, 176}, // category 0 + {0, 0, 0, 0}, // category 1 + {0, 0, 0, 0}, // category 2 + {0, 0, 129, 180} // category 3 + }; + + // Select the appropriate occupancy matrix based on ptCut + const auto& occupancy_matrix = (ptCut < 0.8f) ? p06_occupancy_matrix : p08_occupancy_matrix; + for (int i = globalThreadIdx[0]; i < modules.nLowerModules(); i += gridThreadExtent[0]) { // Condition for a quintuple to exist for a module // TCs don't exist for layers 5 and 6 barrel, and layers 2,3,4,5 endcap @@ -2512,55 +2534,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { int nEligibleT5Modules = alpaka::atomicAdd(acc, &nEligibleT5Modulesx, 1, alpaka::hierarchy::Threads{}); - int category_number; - if (module_layers <= 3 && module_subdets == 5) - category_number = 0; - else if (module_layers >= 4 && module_subdets == 5) - category_number = 1; - else if (module_layers <= 2 && module_subdets == 4 && module_rings >= 11) - category_number = 2; - else if (module_layers >= 3 && module_subdets == 4 && module_rings >= 8) - category_number = 2; - else if (module_layers <= 2 && module_subdets == 4 && module_rings <= 10) - category_number = 3; - else if (module_layers >= 3 && module_subdets == 4 && module_rings <= 7) - category_number = 3; - else - category_number = -1; - - int eta_number; - if (module_eta < 0.75f) - eta_number = 0; - else if (module_eta < 1.5f) - eta_number = 1; - else if (module_eta < 2.25f) - eta_number = 2; - else if (module_eta < 3.0f) - eta_number = 3; - else - eta_number = -1; - - int occupancy; - if (category_number == 0 && eta_number == 0) - occupancy = 336; - else if (category_number == 0 && eta_number == 1) - occupancy = 414; - else if (category_number == 0 && eta_number == 2) - occupancy = 231; - else if (category_number == 0 && eta_number == 3) - occupancy = 146; - else if (category_number == 3 && eta_number == 1) - occupancy = 0; - else if (category_number == 3 && eta_number == 2) - occupancy = 191; - else if (category_number == 3 && eta_number == 3) - occupancy = 106; - else { - occupancy = 0; + int category_number = getCategoryNumber(module_layers, module_subdets, module_rings); + int eta_number = getEtaBin(module_eta); + + int occupancy = 0; + if (category_number != -1 && eta_number != -1) { + occupancy = occupancy_matrix[category_number][eta_number]; + } #ifdef WARNINGS + else { printf("Unhandled case in createEligibleModulesListForQuintupletsGPU! Module index = %i\n", i); -#endif } +#endif int nTotQ = alpaka::atomicAdd(acc, &nTotalQuintupletsx, occupancy, alpaka::hierarchy::Threads{}); ranges.quintupletModuleIndices()[i] = nTotQ; diff --git a/RecoTracker/LSTCore/src/alpaka/Segment.h b/RecoTracker/LSTCore/src/alpaka/Segment.h index afb23f2b12fc1..911119bf67ff8 100644 --- a/RecoTracker/LSTCore/src/alpaka/Segment.h +++ b/RecoTracker/LSTCore/src/alpaka/Segment.h @@ -593,7 +593,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { alpaka::hierarchy::Threads{}); if (static_cast(totOccupancySegments) >= ranges.segmentModuleOccupancy()[innerLowerModuleIndex]) { #ifdef WARNINGS - printf("Segment excess alert! Module index = %d\n", innerLowerModuleIndex); + printf("Segment excess alert! Module index = %d, Occupancy = %d\n", + innerLowerModuleIndex, + totOccupancySegments); #endif } else { unsigned int segmentModuleIdx = alpaka::atomicAdd( @@ -624,10 +626,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { struct CreateSegmentArrayRanges { template - ALPAKA_FN_ACC void operator()(TAcc const& acc, - ModulesConst modules, - ObjectRanges ranges, - MiniDoubletsConst mds) const { + ALPAKA_FN_ACC void operator()( + TAcc const& acc, ModulesConst modules, ObjectRanges ranges, MiniDoubletsConst mds, const float ptCut) const { // implementation is 1D with a single block static_assert(std::is_same_v, "Should be Acc1D"); ALPAKA_ASSERT_ACC((alpaka::getWorkDiv(acc)[0] == 1)); @@ -642,6 +642,25 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } alpaka::syncBlockThreads(acc); + // Occupancy matrix for 0.8 GeV pT Cut + constexpr int p08_occupancy_matrix[4][4] = { + {572, 300, 183, 62}, // category 0 + {191, 128, 0, 0}, // category 1 + {0, 107, 102, 0}, // category 2 + {0, 64, 79, 85} // category 3 + }; + + // Occupancy matrix for 0.6 GeV pT Cut, 99.9% + constexpr int p06_occupancy_matrix[4][4] = { + {936, 351, 256, 61}, // category 0 + {1358, 763, 0, 0}, // category 1 + {0, 210, 268, 0}, // category 2 + {0, 60, 97, 96} // category 3 + }; + + // Select the appropriate occupancy matrix based on ptCut + const auto& occupancy_matrix = (ptCut < 0.8f) ? p06_occupancy_matrix : p08_occupancy_matrix; + for (uint16_t i = globalThreadIdx[0]; i < modules.nLowerModules(); i += gridThreadExtent[0]) { if (modules.nConnectedModules()[i] == 0) { ranges.segmentModuleIndices()[i] = nTotalSegments; @@ -654,63 +673,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { short module_subdets = modules.subdets()[i]; float module_eta = alpaka::math::abs(acc, modules.eta()[i]); - int category_number; - if (module_layers <= 3 && module_subdets == 5) - category_number = 0; - else if (module_layers >= 4 && module_subdets == 5) - category_number = 1; - else if (module_layers <= 2 && module_subdets == 4 && module_rings >= 11) - category_number = 2; - else if (module_layers >= 3 && module_subdets == 4 && module_rings >= 8) - category_number = 2; - else if (module_layers <= 2 && module_subdets == 4 && module_rings <= 10) - category_number = 3; - else if (module_layers >= 3 && module_subdets == 4 && module_rings <= 7) - category_number = 3; - else - category_number = -1; - - int eta_number; - if (module_eta < 0.75f) - eta_number = 0; - else if (module_eta < 1.5f) - eta_number = 1; - else if (module_eta < 2.25f) - eta_number = 2; - else if (module_eta < 3.0f) - eta_number = 3; - else - eta_number = -1; - - int occupancy; - if (category_number == 0 && eta_number == 0) - occupancy = 572; - else if (category_number == 0 && eta_number == 1) - occupancy = 300; - else if (category_number == 0 && eta_number == 2) - occupancy = 183; - else if (category_number == 0 && eta_number == 3) - occupancy = 62; - else if (category_number == 1 && eta_number == 0) - occupancy = 191; - else if (category_number == 1 && eta_number == 1) - occupancy = 128; - else if (category_number == 2 && eta_number == 1) - occupancy = 107; - else if (category_number == 2 && eta_number == 2) - occupancy = 102; - else if (category_number == 3 && eta_number == 1) - occupancy = 64; - else if (category_number == 3 && eta_number == 2) - occupancy = 79; - else if (category_number == 3 && eta_number == 3) - occupancy = 85; - else { - occupancy = 0; + int category_number = getCategoryNumber(module_layers, module_subdets, module_rings); + int eta_number = getEtaBin(module_eta); + + int occupancy = 0; + if (category_number != -1 && eta_number != -1) { + occupancy = occupancy_matrix[category_number][eta_number]; + } #ifdef WARNINGS + else { printf("Unhandled case in createSegmentArrayRanges! Module index = %i\n", i); -#endif } +#endif int nTotSegs = alpaka::atomicAdd(acc, &nTotalSegments, occupancy, alpaka::hierarchy::Threads{}); ranges.segmentModuleIndices()[i] = nTotSegs; diff --git a/RecoTracker/LSTCore/src/alpaka/Triplet.h b/RecoTracker/LSTCore/src/alpaka/Triplet.h index a57d70f0f5238..1a5f5a2c2a7f1 100644 --- a/RecoTracker/LSTCore/src/alpaka/Triplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Triplet.h @@ -742,7 +742,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { if (static_cast(totOccupancyTriplets) >= ranges.tripletModuleOccupancy()[innerInnerLowerModuleIndex]) { #ifdef WARNINGS - printf("Triplet excess alert! Module index = %d\n", innerInnerLowerModuleIndex); + printf("Triplet excess alert! Module index = %d, Occupancy = %d\n", + innerInnerLowerModuleIndex, + totOccupancyTriplets); #endif } else { unsigned int tripletModuleIndex = alpaka::atomicAdd( @@ -781,7 +783,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { ALPAKA_FN_ACC void operator()(TAcc const& acc, ModulesConst modules, ObjectRanges ranges, - SegmentsOccupancyConst segmentsOccupancy) const { + SegmentsOccupancyConst segmentsOccupancy, + const float ptCut) const { // implementation is 1D with a single block static_assert(std::is_same_v, "Should be Acc1D"); ALPAKA_ASSERT_ACC((alpaka::getWorkDiv(acc)[0] == 1)); @@ -796,6 +799,25 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { } alpaka::syncBlockThreads(acc); + // Occupancy matrix for 0.8 GeV pT Cut + constexpr int p08_occupancy_matrix[4][4] = { + {543, 235, 88, 46}, // category 0 + {755, 347, 0, 0}, // category 1 + {0, 0, 0, 0}, // category 2 + {0, 38, 46, 39} // category 3 + }; + + // Occupancy matrix for 0.6 GeV pT Cut, 99.9% + constexpr int p06_occupancy_matrix[4][4] = { + {1146, 544, 216, 83}, // category 0 + {1032, 275, 0, 0}, // category 1 + {0, 0, 0, 0}, // category 2 + {0, 115, 110, 76} // category 3 + }; + + // Select the appropriate occupancy matrix based on ptCut + const auto& occupancy_matrix = (ptCut < 0.8f) ? p06_occupancy_matrix : p08_occupancy_matrix; + for (uint16_t i = globalThreadIdx[0]; i < modules.nLowerModules(); i += gridThreadExtent[0]) { if (segmentsOccupancy.nSegments()[i] == 0) { ranges.tripletModuleIndices()[i] = nTotalTriplets; @@ -808,63 +830,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { short module_subdets = modules.subdets()[i]; float module_eta = alpaka::math::abs(acc, modules.eta()[i]); - int category_number; - if (module_layers <= 3 && module_subdets == 5) - category_number = 0; - else if (module_layers >= 4 && module_subdets == 5) - category_number = 1; - else if (module_layers <= 2 && module_subdets == 4 && module_rings >= 11) - category_number = 2; - else if (module_layers >= 3 && module_subdets == 4 && module_rings >= 8) - category_number = 2; - else if (module_layers <= 2 && module_subdets == 4 && module_rings <= 10) - category_number = 3; - else if (module_layers >= 3 && module_subdets == 4 && module_rings <= 7) - category_number = 3; - else - category_number = -1; - - int eta_number; - if (module_eta < 0.75f) - eta_number = 0; - else if (module_eta < 1.5f) - eta_number = 1; - else if (module_eta < 2.25f) - eta_number = 2; - else if (module_eta < 3.0f) - eta_number = 3; - else - eta_number = -1; - - int occupancy; - if (category_number == 0 && eta_number == 0) - occupancy = 543; - else if (category_number == 0 && eta_number == 1) - occupancy = 235; - else if (category_number == 0 && eta_number == 2) - occupancy = 88; - else if (category_number == 0 && eta_number == 3) - occupancy = 46; - else if (category_number == 1 && eta_number == 0) - occupancy = 755; - else if (category_number == 1 && eta_number == 1) - occupancy = 347; - else if (category_number == 2 && eta_number == 1) - occupancy = 0; - else if (category_number == 2 && eta_number == 2) - occupancy = 0; - else if (category_number == 3 && eta_number == 1) - occupancy = 38; - else if (category_number == 3 && eta_number == 2) - occupancy = 46; - else if (category_number == 3 && eta_number == 3) - occupancy = 39; - else { - occupancy = 0; + int category_number = getCategoryNumber(module_layers, module_subdets, module_rings); + int eta_number = getEtaBin(module_eta); + + int occupancy = 0; + if (category_number != -1 && eta_number != -1) { + occupancy = occupancy_matrix[category_number][eta_number]; + } #ifdef WARNINGS + else { printf("Unhandled case in createTripletArrayRanges! Module index = %i\n", i); -#endif } +#endif ranges.tripletModuleOccupancy()[i] = occupancy; unsigned int nTotT = alpaka::atomicAdd(acc, &nTotalTriplets, occupancy, alpaka::hierarchy::Threads{}); diff --git a/RecoTracker/LSTCore/standalone/analysis/occupancy/compute_occupancies.ipynb b/RecoTracker/LSTCore/standalone/analysis/occupancy/compute_occupancies.ipynb new file mode 100644 index 0000000000000..246d12b11e8c5 --- /dev/null +++ b/RecoTracker/LSTCore/standalone/analysis/occupancy/compute_occupancies.ipynb @@ -0,0 +1,586 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import uproot\n", + "import numpy as np\n", + "\n", + "def load_root_file(file_path, branches=None, print_branches=False):\n", + " all_branches = {}\n", + " with uproot.open(file_path) as file:\n", + " tree = file[\"tree\"]\n", + " # Load all ROOT branches into array if not specified\n", + " if branches is None:\n", + " branches = tree.keys()\n", + " # Option to print the branch names\n", + " if print_branches:\n", + " print(\"Branches:\", branches)\n", + " # Each branch is added to the dictionary\n", + " for branch in branches:\n", + " all_branches[branch] = tree[branch].array(library=\"np\")\n", + " return all_branches\n", + "\n", + "# Branches relevant to the occupancy selections\n", + "mod_occ_branches = ['module_layers', 'module_subdets', 'module_rings', 'module_eta',\n", + " 'md_occupancies', 'sg_occupancies', 't3_occupancies', 't5_occupancies']\n", + "\n", + "# Root file generated with compile -d option turned on to generate relevant occupancy branches\n", + "file_path = \"occ_1000_p06.root\"\n", + "branches = load_root_file(file_path, mod_occ_branches)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "events = np.shape(branches['module_layers'])[0]\n", + "\n", + "module_layers = np.concatenate(branches['module_layers'])\n", + "module_subdets = np.concatenate(branches['module_subdets'])\n", + "module_rings = np.concatenate(branches['module_rings'])\n", + "module_eta = np.abs(np.concatenate(branches['module_eta']))\n", + "\n", + "category_numbers = np.full_like(module_layers, -1)\n", + "\n", + "# Different category masks\n", + "mask1 = (module_layers <= 3) & (module_subdets == 5)\n", + "mask2 = (module_layers >= 4) & (module_subdets == 5)\n", + "mask3 = (module_layers <= 2) & (module_subdets == 4) & (module_rings >= 11)\n", + "mask4 = (module_layers >= 3) & (module_subdets == 4) & (module_rings >= 8)\n", + "mask5 = (module_layers <= 2) & (module_subdets == 4) & (module_rings <= 10)\n", + "mask6 = (module_layers >= 3) & (module_subdets == 4) & (module_rings <= 7)\n", + "\n", + "category_numbers[mask1] = 0\n", + "category_numbers[mask2] = 1\n", + "category_numbers[mask3 | mask4] = 2\n", + "category_numbers[mask5 | mask6] = 3\n", + "\n", + "eta_numbers = np.full_like(module_eta, -1)\n", + "\n", + "# Different eta masks\n", + "eta_numbers[module_eta < 0.75] = 0\n", + "eta_numbers[(module_eta >= 0.75) & (module_eta < 1.5)] = 1\n", + "eta_numbers[(module_eta >= 1.5) & (module_eta < 2.25)] = 2\n", + "eta_numbers[(module_eta >= 2.25) & (module_eta < 3)] = 3\n", + "\n", + "# Split the arrays back into event-wise lists\n", + "split_indices = np.cumsum([len(x) for x in branches['module_layers'][:-1]])\n", + "\n", + "category_numbers_split = np.split(category_numbers, split_indices)\n", + "eta_numbers_split = np.split(eta_numbers, split_indices)\n", + "\n", + "# Add category number and eta number branches\n", + "branches['category_number'] = np.array(category_numbers_split, dtype=object)\n", + "branches['eta_number'] = np.array(eta_numbers_split, dtype=object)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "\n", + "font = {'size' : 20}\n", + "\n", + "matplotlib.rc('font', **font)\n", + "\n", + "def plot_histogram(data, title, xlabel, ylabel, occ_percentile=None):\n", + " plt.figure(figsize=(10, 6))\n", + " plt.hist(data, bins=50, edgecolor='black', alpha=0.7)\n", + " plt.title(title)\n", + " plt.xlabel(xlabel)\n", + " plt.ylabel(ylabel)\n", + " plt.grid(True)\n", + " plt.yscale('log')\n", + " # Plotting a vertical line at the occupancy value\n", + " if occ_percentile is not None:\n", + " non_zero_data = data[data > 0]\n", + " percentile_value = np.percentile(non_zero_data, occ_percentile)\n", + " plt.axvline(percentile_value, color='red', linestyle='dashed', linewidth=1, label=f'{occ_percentile}th percentile: {percentile_value:.0f}')\n", + " plt.legend()\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_occupancies(branches, occupancy_variables, occ_percentiles, plot=False):\n", + " cat_eta_combinations = [(cat, eta) for cat in range(4) for eta in range(4)]\n", + "\n", + " for var, percentile in zip(occupancy_variables, occ_percentiles):\n", + " for cat, eta in cat_eta_combinations:\n", + " data_to_plot = [\n", + " occupancy for sublist_cat, sublist_eta, sublist_occ in zip(branches['category_number'], branches['eta_number'], branches[var])\n", + " for c, e, occupancy in zip(sublist_cat, sublist_eta, sublist_occ) if c == cat and e == eta\n", + " ]\n", + " data_to_plot = np.array(data_to_plot)\n", + " non_zero_data = data_to_plot[data_to_plot > 0]\n", + " if non_zero_data.any():\n", + " if plot:\n", + " plot_histogram(data_to_plot, f'{var} for Category {cat} and Eta {eta}', 'Occupancy', 'Frequency', percentile)\n", + " else:\n", + " percentile_value = np.percentile(non_zero_data, percentile)\n", + " print(f'{var} for Category {cat} and Eta {eta} - {percentile}th percentile: {percentile_value:.0f}')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "md_occupancies for Category 0 and Eta 0 - 99.99th percentile: 60\n", + "md_occupancies for Category 0 and Eta 1 - 99.99th percentile: 57\n", + "md_occupancies for Category 0 and Eta 2 - 99.99th percentile: 54\n", + "md_occupancies for Category 0 and Eta 3 - 99.99th percentile: 48\n", + "md_occupancies for Category 1 and Eta 0 - 99.99th percentile: 259\n", + "md_occupancies for Category 1 and Eta 1 - 99.99th percentile: 195\n", + "md_occupancies for Category 2 and Eta 1 - 99.99th percentile: 23\n", + "md_occupancies for Category 2 and Eta 2 - 99.99th percentile: 28\n", + "md_occupancies for Category 3 and Eta 1 - 99.99th percentile: 25\n", + "md_occupancies for Category 3 and Eta 2 - 99.99th percentile: 25\n", + "md_occupancies for Category 3 and Eta 3 - 99.99th percentile: 33\n", + "sg_occupancies for Category 0 and Eta 0 - 99.9th percentile: 936\n", + "sg_occupancies for Category 0 and Eta 1 - 99.9th percentile: 351\n", + "sg_occupancies for Category 0 and Eta 2 - 99.9th percentile: 256\n", + "sg_occupancies for Category 0 and Eta 3 - 99.9th percentile: 61\n", + "sg_occupancies for Category 1 and Eta 0 - 99.9th percentile: 1358\n", + "sg_occupancies for Category 1 and Eta 1 - 99.9th percentile: 763\n", + "sg_occupancies for Category 2 and Eta 1 - 99.9th percentile: 210\n", + "sg_occupancies for Category 2 and Eta 2 - 99.9th percentile: 268\n", + "sg_occupancies for Category 3 and Eta 1 - 99.9th percentile: 60\n", + "sg_occupancies for Category 3 and Eta 2 - 99.9th percentile: 97\n", + "sg_occupancies for Category 3 and Eta 3 - 99.9th percentile: 96\n", + "t3_occupancies for Category 0 and Eta 0 - 99.9th percentile: 1146\n", + "t3_occupancies for Category 0 and Eta 1 - 99.9th percentile: 544\n", + "t3_occupancies for Category 0 and Eta 2 - 99.9th percentile: 216\n", + "t3_occupancies for Category 0 and Eta 3 - 99.9th percentile: 83\n", + "t3_occupancies for Category 1 and Eta 0 - 99.9th percentile: 1032\n", + "t3_occupancies for Category 1 and Eta 1 - 99.9th percentile: 275\n", + "t3_occupancies for Category 3 and Eta 1 - 99.9th percentile: 115\n", + "t3_occupancies for Category 3 and Eta 2 - 99.9th percentile: 110\n", + "t3_occupancies for Category 3 and Eta 3 - 99.9th percentile: 76\n", + "t5_occupancies for Category 0 and Eta 0 - 99.99th percentile: 325\n", + "t5_occupancies for Category 0 and Eta 1 - 99.99th percentile: 237\n", + "t5_occupancies for Category 0 and Eta 2 - 99.99th percentile: 217\n", + "t5_occupancies for Category 0 and Eta 3 - 99.99th percentile: 176\n", + "t5_occupancies for Category 3 and Eta 2 - 99.99th percentile: 129\n", + "t5_occupancies for Category 3 and Eta 3 - 99.99th percentile: 180\n" + ] + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACEAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iisXVNbk029aDyI3UweZGxlwd3mKmGGOF+cHPPQ8UAbVFc/Bq17dWdxcvD5cBTCPHyQ4Yq2D/EMjIOBxWm8GFJE11/31QBzcPjK+8mOefS4vLeGObbDOWciSN3UAFRz+7IP1Fafh3WZ9Vj1KaZreRYJlWMWr+YuDCj4DYGTljWl9mH/AD1uvzrCvbzw+bhBNrtxE8Z+7DeMi9f4gpx19aaTewm0tyC08aS3ZgTyLOIzFT5z3J8pAybtjNt/1g6bfx9qn/4S8JD9onS1jhM0kRUz/PFtWQjzBj5STHgD3799a3NneRb7e7kmjJPKOGGake1UKT5lzkkZ56/pSGc0vjpt02+1gARThVnJdTsjYFxj5VJkxnP8+JbTxlcXUcUw06PyR5azbZtzbmlki+TAwwzHnr0NbsWm28BlMRuFMzF5OfvEjHP5VL9mUdJbn86AObl8YzxWVveiGCYTQM/lwThlQl4VG9iBgr5hz06fld0vxPLfapbWdxbQ25nhLrtnEpZhnP3cgDAzzjOfXitf7KmCPMueevPX9KabVUAKyXIPC5B7Z6dKAObh8UahaXTRXiQSmW7kVAH2HYJ/JCxjb8zD7xyfT14vS67fP4YtdSKQWhupYlMgYyLBE5ALtkDkZ+gyM8VsG2Xg+bc5B4570v2U4x5txj03igDm7zxY9hdW+n280OovKhxchlHzHfs+UfeGUwdv6VBD44ugiB9PiuCloJ5HgnA3nyy/yA8kcbTjODn0rqhZgYw84wMD5hxUclpH/qzNKrbTx5gBC98dxQBzw8byiQxm3s5CkrIXiuSyy48riI7fmf8Ae9P9n34tQ+KLtmsVlsIwdQkKWoSUt918Nu+XghAz/wDASKv22lWen2Wy0kljjZi6sZ925z33HJJqQ6fbSTpdyTTNLbqyhzNxHkfNx0Bx3xnFAFa+1Oe38U6dZxXMbRXDMksGVLJ8jMDgfMOQOemPqKoXnjJ4NZutOgs45WiwsbGbblvMiQhhgkD96CDjnHGa6H7J827zLjdjGd4zikNmc5ElxkkZO8UAc3L4tu3vrSzWK3t5DdRwy7pcmTMzxt5YK8j92STxjcPSm6nr+pW2p66kE8X+hQloIXaPBIhD8r988k9OP1rp/snIPmXGR0O8Ux7aKNvMkmlU9NzSAHp6/TNAGVp/in7X4kGkGOFwYi3nQy5G5VQnjrtIcYbpxUum6nPP4n1CwNzHcW0cSyIVKko24gqSvTHAw3Jwa0hZhfuvOOMcOKj8uJT8t1IMvtOJV5b0+tAGjRVB1aGaDbLOcyBWDNkEYNFAF+oJLG0mmM0trA8pQxl2jBYqeq59Pap6qzajZW8skU11FHJHH5zqzAFUzjd9M0AMv4kj0qSONFRFUBVUYAAI4Aq1L/qzWbcalZ3tvPBbXCSuIVlO3kbSeDnp2q3qNx9k025uQu/yoy+3OM4GcUA9Di/GviB/tJ0dIWQpKhMyykZ+QtjAHv615/kmDJJJMCZJ/wB6tbWNUOsa014YRCWmC7A27pH64FZI/wCPcf8AXBP/AEKvVpQ5IJHkVp882y1b3E1re+bbzPDJ5zDfGxU42dMiuw0Hx3M4ittUVWDJERMvG0HqWyeelcWP+Pgf9d2/9ApLXon/AFwj/rTqUozWoqdWUNme52t3b31utxayrLE2QHU8HBwamrxXS9ZvdJvFltpcnzZF2SElMYJ6ZFek6B4tsdZhVXYW9xtTKysq7y390ZyeRXBVoShr0PRpYiNTTqdDTZPuj/eH86dTZPuj/eH86wNwbp+I/nTDExJPnyD24/wqXGetJsX+6PyoGnYYsbKwJmdvY4/wrA1rwyNW1RbrzNieUVkUNgyHa6gdOB+8JPPOOhroti/3R+VMkRdo+UfeHb3oBu5y9x4UuLjQE05rpN6vI4mHVDIX34GMcBwF4HTtUE/gqSSa5kjuVVZC6pGzHCqyyjcSAMtmXPOeBjNddMqiCQhRnae3tTkRdi/KOg7UBbS5z99ol+dOhs7S4JAu3fLTuuyMo+AWB3HDFTjPpUEfhnUvNkM2tXEm6QuH8xh/C4X5RgDBZT1IO0V1Oxf7o/KmSIuF+UfeHagRzMnhvU5XUjU5IVFuYvLinfarfNlsnk53A9QQVHWmz+E7mSS52Xi7ZlZMuzsQv70KpyeQBIvP+zXV7F/uj8qNi/3R+VAGLpOkXthcyyXN9Jch5mfLytwDuxheg6gY5HAqjeeGbi6/tDm1T7ZKjdWOzbn5vcnP3eB155rqNi/3R+VMdF+X5R970oAhuf8AWQf9dx/6CaKW6ADW2Bj98P5GigCzWRqeiPqN8Lg3flosPlqgjyQ29XDZz6ovGPWtGW7t4JY4pp445JciNXYAvj09amoAxZNKgsNGkRQHmx8820BnJfcenbJPFWNcjUaFfkZz5D9z6VY1LnT5voO2e9Q67/yAL/8A64P/ACpx3RMtmeMBj9oH/Xf0/wCmdQhj9nH/AFwTt/tVKP8Aj4H/AF8f+06hH/HuP+uCf+hV7Fjxrk4Y/aB/13bt/sUWzHCf9cI+31pB/wAfA/67t/6BSWvRP+uEf9aLBccrHzV/67v29jTIppIkjkjco6xQlWXgg7uopV/1qf8AXd//AEE1Ev8AqF/64w/+hUWQXZ2uh+N3tiLfVA8sQZwJgWaQkcjPPSvQEaG4t0ljJKvtYcnocV4eP9aP+usn8q1fDmuXOjzII2P2ZlieWJVXL9e56Vy1cMnrA66OKa0mew+UvofzNHlL6H8zWXo3iSw1tQsEm24wxaBvvLg4Pt6fnWvXC007M7001dDPKX0P5mmyRrtHB+8O59alpkn3R/vD+dIYyeJfs8nB+6e59KckS+WvB6DuaJ/+PeT/AHT/ACpyf6tfoKXUr7InlL6H8zTZI1wvB+8O5qWmSdF/3hTJDyl9D+Zo8pfQ/mafRQAzyl9D+Zprxr8vB+8O5qWmSfw/7woAr3KKr2xGf9cO/saKdd/ftv8ArsP5GigDE8UKsstpbvaJerIr4gdXdQ2VxIyKCGVfcdSMUmpNf2V4LXTRd/Z1swAqRb1Qh1HysRy+zfgEnoOPWLxjHMJdPuEiRo4jJ5jtCz+WCB8xKo2ADg44zjrXVUAc5DFqI02S8u5XLPCI/KkBBxvOGYDgNtxkAdfStHXN/wDYV/nbjyH6fSp9SGdPm+g7e4qLXf8AkAX/AP1wf+VOO6JlszxgbftA6/6//wBp1CNv2cfe/wBQn/oVSj/j4H/Xx/7TqEf8e4/64J/6FXsHjE42/aB1/wBe3/oFFttwnX/UR/1pB/x8D/ru3/oFJa9E/wCuEf8AWgBy7fNXr/r3/kaiXb5C/e/1MX/oVPX/AFqf9d3/APQTUS/6hf8ArjD/AOhUATDb5o6/6yT+VLbbcjr/AKmP+tNH+tH/AF1k/lS23Uf9cY/60AWLK9uLC58y0uJYXJlBZMZIzXonh/xnBqYjt7nbBckRhAxLGQsPYYHIrzJP9Yv+9L/OmIxVFZSVISDBBwR81ZVKMZrXc1pVpU3pse8/vP8AY/WmyeZtH3fvD+dcH4V8Yx28SWGossUMYk2zu7MzEN0xj0P6V3rMHjVlOQSpB/GvOnBwdmenTqRmrobP5nkSfc+6f5UqeZ5a/c6Cln/495P90/ypyf6tfoKz6mv2RP3n+x+tNk8zC/d+8KlpknRf94UyQ/ef7H60fvP9j9afRQAz95/sfrTX8z5fu/eFS0yT+H/eFAFe5377bdtx5w6fQ0U67+/bf9dh/I0UAc140AaewXzo4ztlKlkVtpAVt53RvwADxwSSK2LvWF0uYWssU8zCAOkuVzK29U29sHLLzgDms7X4Lu61uyH9nSzW8HzCRYYpVBPfDnIYFRyOzGtq50ixvLk3FxB5khiMOS7Y2k5xjOOoBz14HpQBnf2wuoWtz+5aKFYxlnyCH3FSvocEdiaua5Ih0K/AYZ8h/wCVOu7aK20Z7eCMJEigKo7cijXf+QBf/wDXB/5U47omWzPGArfaBwf9f/7TqEI32ccH/UJ/6FUo/wCPgf8AXx/7TqEf8e4/64J/6FXsHjE4VvtA4P8Ar2/9AotlbCcH/UR/1pB/x8D/AK7t/wCgUlr0T/rhH/WgByo3mrwf9e/8jUSo3kLwf9TF/wChU9f9an/Xd/8A0E1Ev+oX/rjD/wChUATBG80cH/WSfypbZWyOD/qY/wCtNH+tH/XWT+VLbdR/1xj/AK0ACo3mLwfvS/zpio3lrwfuQf8AoVOT/WL/AL0v86Yv+rX/AHIP/QqAH7W3dD1mr0Pwn4na7jFpqVzuuS0YhXyscY9QMdu9edfxfjNU1q7Ry70ZlYJHhlOCOD3rOrTVSNmaUqrpu6Pb55U8iT5h90/ypUlTy1+YdBXmPh/xZNYvJHqNzdT25jlWNOGwQ3HJ56Z716jHzGp9hXm1Kbpysz1adWNSF0J5sf8AeFMklTC/MPvCpqZJ0X/eFQUHmx/3hR5sf94U+igBnmx/3hTXlT5fmH3hUtMk/h/3hQBXuZFZ7YBgT5w/kaKdd/ftv+uw/kaKALNIWUEgsMgZPPalrn9Y0S51DUmnhW1WNrXyWLk7nIkVwrADlflIPP8AEePUA07+WKS0uIkdGdFVmUNyATwf0P5UzXf+QBf/APXB/wCVUE0k6dosmZT55RUbYTsUbywVR6DcR9Ku64mNCvzuY/uH4J9qcd0TLZnjI/4+B/18f+06hH/HuP8Argn/AKFU4b/SB8o/1/8A7TqEN/o4+Vf9Qnb/AGq9g8YlH/HwP+u7f+gUlr0T/rhH/WnBv9IHA/17f+gUWzcJ8o/1Efb60ANX/Wp/13f/ANBNRL/qF/64w/8AoVTq371flH+vf+RqJW/cL8q/6mLt/tUAPH+tH/XWT+VLbdR/1xj/AK0Bv3o+Uf6yT+VLbNyOB/qY/wCtADU/1i/70v8AOmL/AKtf9yD/ANCqRW/eL8o+9L296Yrfu1+VfuQdv9qgBf4vxmp8H3z/ANc4/wCtN3fN90dZu1SQN8x4H+rj/rQBEDgg+gmP/j1ep6V400+5sZZbwx2fk7QEaTcz56EADJ59q8s3cHgdJv8A0KnMfnPyjrD296yq0lU3N6VV01oe42d5Bf2kd1bPvhkztbBGcHHQ/SpJOi/7wrz3wBeXMuoy2z3MvkJFIVj3nauJB0Hbqa73KSKDHNvG4DKsDXn1IckuU9ClPnjzFiimeX/tv+dHl/7b/nWZoPpkn8P+8KPL/wBt/wA6a6fd+dvvetAEd39+2/67D+RoptymHtjuY/vh1PsaKALdFFc9rOs3VhqbW0MkRBtPNCmMkxnzFUscHkBWY4/2aANfUv8AkHzcgcDr9ah13/kAX/8A1wf+VZdvcanPp017dMrQSR4RFG3PzABgCMgEAt1PDD0rS1xmOhX4KEDyH5yPSnHdEy2Z4yP+Pgf9fH/tOoR/x7j/AK4J/wChVOAPtA+b/lv6f9M6hAH2cfN/ywTt/tV7FzxrEo/4+B/13b/0Ckteif8AXCP+tOAH2gfN/wAt27f7FJbAYT5h/qI+31ouFhF/1qf9d3/9BNRL/qF/64w/+hVOoHmr83/Ld+3+yaiUDyF+Yf6mLt/tUXCw8f60f9dZP5Utt1H/AFxj/rQAPNHzf8tJO3tS2wGR83/LGPt9aAGp/rF/3pf50xf9Wv8AuQf+hVIoHmL838Uvb3pigeWvzD7kHb/aoCwv8X4zU+D75/65x/1puBu+93m7U+ADefm/5Zx9vrRcLEXY/Sf/ANCpX++frD/6FRgYPzDpN2/2qcwG8/MOsPb3ovqVb3TofB11b2t3etcTxQq1tOqmRwoJ3jjmq+l6/cabpt1YWyCMyOjiZWwynA6DHt+tYhA2n5h92ft71NCB5j/N2Tt7Vm6cW231t+BSqSSSXS/4nqeg6/ZNodq17qlt9o2HzPNmUNkE9ea2F1Gxe2a5W8tzAhw0okG0H0JzjuK8MZV8pvmH+rm7f7VdBb6xbQ+GLzSmWQzy3CMrBflH3Ov5VzTw3VM6oYro0esJPDLAJ45UaEjcJFYFceuaqpqunXUyRW9/bSyFuESVWJ/AGsnRyR4FQBSR9lk5/wC+q4nwcAPFUJHJ3dP+2dYxpXUnfY2lWacVbc9Ru/v23/XYfyNFNuWYvbZQj98O49DRWJuW6KKKAI54UuIWikBKMMHBxWTrUSQ6eYybiY3DrAIzOUBLHHJwcD8K2qiuLeC7gaG4hSWJvvI6hgfwNAHM2HhHw9f2FtfR2cyrOizqGnfI3L9fQ4qf/hA/D+3b9kkxtC/69+g/GujVVRFRFCqowABgAUtX7Sfdkezh2Rzn/CDaBu3fZZc7t3+vfrjHrWVqnhzQdJlRTp8xh+zSSGRLp9wEQ3bdp65Gec13FV5rC0ubiO4ntopJogQjugJUHggH3o9pPuw9nDsjl9M8KaFfwu72EkM0MzI6i6dwGHUg5GRg+lXP+ED8PgY+yy4wF/179B071v29tBaQLBbQxwxL0SNQoH4CpaPaT7sPZw7I5z/hBdAzn7LLnJP+vfqevesjV/D+haO6j+zpZI/JaRjHdvvVY1LcqeNvAXOerCu6rI1kWttJBdGxt5ruZ1tUklAAAbPDNgnb147k470e0n3Yezh2Rj6Z4T0G+t2lawkiljlkidRdOwDBiGwcjIOPSrf/AAgnh/GPssuMKP8AXv26d6bpviSzFgEt9OaNY5fs/lwlAhlJ6LkjjnO4gA59eKnuPFtlbts8id5MuCi7ARtMgOcsB/yyf9KPaT7sPZw7Ii/4QXQP+fWXv/y3fv171j61oWh6LLCDpk7xzDasi3Tj5lBIU54AOMdc9TjgmthvGmn75ljguZTEckoq4K7XYsCSOB5Tj1yMUs2raRcyxXFxpxkM7tawSPGjGU7tpUc5GctwccBqPaT7sPZw7Iqad4Q0C/sxObGSNt8sbp9pdgGDlWwc8jKnmrZ8C6ATn7LL2/5bv26d66CGGK3hSGGNI4kGFRBgAewp9HtJ92Hs4dkc3/wgnh//AJ9Zf4v+W79+vesHVdP8M6Zq8enJZyPcPGGIF4y/NlQi4JJwc8nsBXoVQz2ltdDFxBFL8pX50B4PUc+tHtJ92Hs4dkcvp3hDw9qGnpcfYZY929GT7S5wdxDDOeRkHmrf/CC6Bkn7LLkkH/Xv1HTvXQRRRwRJFDGscaDCoowAPQCn0e0n3Yezh2RnxaNawWQs4mnW3ClNnmt0PUfrXLS2GmaJreyDTp4pyyC1lN04E7MVQjkEADfz344FdzVWXTLG4kkkms4JHkXY7PGCWXjg/kPyFTzPuPlT6FfTfK1CxtL8NPiRBKqPITtJH69aK0ERIo1jjVURQAqqMAAdgKKRQ6iiigAooooAKKKKACiiigAooooAKZLDFcRNFNGkkbfeR1BB+oNFFAELafZOCGs7dgUEZzEpyo6L06D0qObSNOnkV5bG3Zg/mZMY5bBGT68MetFFAEosbNXdxawBpCS5EYyxORz69T+ZprabZtcRz/Z0EkchlBUYy5BXcQOpwSMn1oooAtUUUUAFFFFABRRRQAUUUUAFFFFAH//Z", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACDAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiq0uoWcEkkct1CjxR+a6s4BVM43H2zQBZorMk1S1u4p4rO6V5EEZYxnoGwQQfoc/iKkuo4rS2eea6nSOMZZjIeB3oAxLnxbJb6ldWRhtUeOZY0eSf5FU5+d2AIXkYweckfWrp8QP8A8IpZawII1a6SE7XkxHH5hUZZsfdGeuPyqZLXT9c09jHdTzW0pwSkzJkg+owe1Ot9AtbWQPDPeqoXYsX2uQxquMYCE7Rx7UAY0fjOWS2mn+y26eTAJPKech5M/wAafLzGOu70BOOOZLnxh9kbynS1mmKqyeTPlZAVkYleOQPLx+NdB9iXOfOnyP8AppUbabFPbvFJJM0bhkZd/VTwRQByz+PmjtY5WtbeQmQbjDcZRk2xk7WIGWHmAbevH1xaPi66RistpbRCSTbFLJORGi+Y6bpDt4+4MY7sB71vSWCQWZWKaZVjT5AH6YFSmyUggzTkH/boHbS5zTeLrmHU0sxZrNvnZfMM6Iu0Mq4QnG4/Nn1xj1qRvEd7e+FNRvLQW8N9A4jADeYiE7f4gMMQG6jI/UVv/Y1MmDNPgAEfP3pwslAwJpwPQPQI5tPFd4bk2cdrBLP5wgBMxyhEvlkyAL8pPLADqKv3upTJ4gFnLqEOnwpDHJHvVT9pZmYMoLemF4HPzj2rUNmo6TTkk/8APSkazJx+9nyCOslAHKQeN7m8uohDb26wi4CuS+TIjRyMoXH3XymNp5yQMCm/8J7c/wBlm8awtYv3cko8y7G1gqq2wFQf3h3YwcfdJrrfsQ/56T9c/wCsqlfaZp15G0d7K7JEwd0a5KgE9NwBGc+h4NAGZ/wl11LetawWUDSGfyVBmOY/3pj/AHgC/KTjcB3GfrWnpGsy6pLewvbiBrM+TM+cgTZOQMgZG3Y2fRxVtoI0kVWuJVd8kAzYLY6/WorPTILaORLeSYZkZ5MTliXPJJJ5z0/SgDO0/wAQf8UhPqct1FeSW8k0bSJgBisrKudvAyNp9Oc9KqWnjK5uo45hp0flDYswWbc25ppIvkwMMMx569DXRiyCjAecA9hJS/Y/+mk//fygDl7bxRfXmg+INQR7YPaWolgELeYqMYt+CSBkg9QfSg+J7uxZGluLae3+yyS5eRGdpA4AAKfLgZGfQcmumNqF3FppgmO8uPXNJHaROmY5ZGXJHyyAj3oAxLrxFNP4DuNbilisZ4lkILMrrujZlwD0IYrx9a6eORJY1kjdXRgCrKcgg9waovHAJRA904kIyI2mGSPXH4UiLDIUSG8diRuVVnByvTI9qANGiqcAMd4yCSRkMQbDtnByaKALlY+o6LLf6gLkXYjVYlRE8rJDLIsgYnPIyo4x0zzWxVK51aytJ5IZ5WWRIxIR5bHILbRjA5OSBgc8j1oAonR7fTtJCIoaXdGHmxtZ/nBPT+VSeI0VfDt+QOfKPekfVbXUIZY7csQoikDMMB1LDkd+Ohz3p/iQj/hHL/n/AJZGqh8SJn8LKHgpA/huIkc+ZJ3/ANo10PlJ6frXPeCHX/hHIl3Dd5knGefvGujyPUU6vxv1Jpfw4+g3yk9P1pscabOnc9/epMj1FNjI2dR1P86g0IrmNBay8fwnual8pPT9aZckfZZef4TUuR6il1K+yR+WnnHj+Ed6d5Sen60ZHnHkfdFOyPUUyRhRVZSOOfX2pnk8f6+X8x/hUxIPXFMkCbRwv3h/OgadgSPYSTI7f7xFczqHhH7Xf3l1HOqeaMxockByVJc+v3eByOT0rqMJ6LRhPRaBN3OXvvCRvorOFrsKtvCIDIMlnRRhc++SckYznFWNN8Py6c8syTqGkiZWjjZtpOyNVxk9tjc/7VdBhPRaZEE8teFoA5K28K6oIbYzatIjImGiSV8IxVRkEkkkkEnn+I/jZn8L3T28kMOosilkYN5j7ioXBQnJ4z82RzmunwnotGE9FoA5eXwrNJKkn24uyyNJ+9Zz8x8wA9eCFkA/4DSweGLu3vBMNSZ0CSDyt7Iu5i5zwcnO4Z5B+Ufh0oCea3C/dH9adhPRaAMfW9CXWSwaZYh9mlhRgvzK7jG7PsNwx/tGoLPQZ4LzTppZ4mFp5hBG4kh92E5PRQwwx549638J6LTZAny8L94UAV4lAvzjvCv8zRT1x/aTY/54j+ZooAs1mX2iRX979pkubhGEQjVUKgKQ4cMMrnIZQeuOOlW7m/tLN40ubiOEyHCGQ7QT6ZPGeelVbzWoLK6e3linLiNZFKqCJNzhAo567mUc4HPWgBk2nW9lo4t4UyFePLMAWYhwck9z1pPEaKPDt+QoB8o8gVB/bcGowyokUscarC4klTaGJfBUZ4yCMdev0qfxG6N4dvwGBPlHgGqh8SJn8LPP/BU0MPiMvcSxomJBukYAdB616mEjYAhVIPIIFeFbGMo+U/61+3+zXrfhrXbbVdOVY45IjBGit5uBn5e2D7V1YqGvMjlwk9ORm35af3F/KmRxps+4vU9ven+bH/fX86ZHJHs++vU9/euM7BtzGn2WX5F+6e1S+Wn9xfyqG5kj+yy/Ov3T3qbzY/76/nS6lfZGeWnnH5F+6O1P8tP7i/lTPMj84/Ov3R3p/mx/31/OmSHlp/cX8qZJGm0fIv3h296f5sf99fzpkkke0fOv3h396AH+Wn9xfyo8tP7i/lR5sf8AfX86PNj/AL6/nQAeWn9xfypkUaeWvyL+VP8ANj/vr+dMikj8tfnX86AH+Wn9xfyo8tP7i/lR5sf99fzo82P++v50AMEaea3yL90dvrT/AC0/uL+VMEkfmt86/dHf60/zY/76/nQAeWn9xfypkkafL8i/eHan+bH/AH1/OmSSR/L86/eHegCJVC6k2AB+5HQe5ooVlbUm2kH9yOh9zRQBjeJQZLqzgW2iujIr4jkjZwhyv7zaAQcZ6HHXg9a0ZdB0+aRXaOQbIRAirKyqqghhgA4BBAIPXgVjeMopPN0+5CxmKFn8xnhV9gIA3DIPQ4OOM49q1b/WjYXjW5tWcmJGjYOBvZpFjCn05ZefrQBLc2sNppC28C7Io2jCjP8AtjuetR+JP+Rcv/8Arkaqrq739q8jW7xWxWIq+05378MuehwR1HrVnxG4Ph2/Az/qj1U1UPiRM/hZ44P9cP8Arq//AKDWjoGsTaTeW7/aJktf3BlSP+IZIPHes8KfNHT/AFr9x/dpiqdi9PuQdx/er1pJSVmePFuLuj3LT7+HU7GO8t93lSZ27hg8Ej+lTR/c/E/zryDRPEF7ok5eM+dGRKPKklO0fNnIGa9Q0jWLTVbZpbZnIVsNlCME8/1rzatJwfkepSrKovMu3P8Ax6y/7pqWq9zIv2WXhvun+E1N5i+jf98msOp0fZE/5bH/AHRT6i8xfOPDfdH8Jp/mL6N/3yaZI6mSfdH+8P50vmL6N/3yaZJIu0cN94fwn1oAlopvmL6N/wB8mjzF9G/75NADqZF/qlpfMX0b/vk0yKRfLXhv++TQBLRTfMX0b/vk0eYvo3/fJoAB/rW/3R/WnVEJF81uG+6P4T70/wAxfRv++TQA6mSfw/7wpfMX0b/vk0ySRfl4b7w/hNAEY/5CTf8AXEfzNFIrBtSbGf8AUjqMdzRQBzfjNoxd6ar3Hkswk2MOChG07ge5GMBe5PWugfR7CZxJPbJNL5PkmSUbmZPQk9eefrWXq9tqdxrlrJFbSPaw8iSKSIEE9chweQQuCMHBNTaprsun6i9qFtyDAkiFpCCCZFTLf7I3A59jQBevYI4dMEMMapGjRhUUYAAYcACoPEn/ACLl/wD9cjVODUrq/wBPa6mgKWziLy9uDlt+CVOclenUCrXiNifDt+NjD90eTVQ+JEz+Fnjo/wBcP+ur/wDoNMX/AFa/7kH/AKFUm396PmH+tf8A9Bpir8i/MPuQf+hV7FzxgPQ/9tv51YtruexvUubaTZKjRbWwDjIx0NQFeD8w/wCW386cV/efeH3ov5UnZ6MautUeh6L41hvrM22oskMwibM8jqokIOOB2612teBSD/R2+Yf6qb+ddDo3ii/0aXy0dZrcyqWic8nK/wB7BI7VxVMNreB3U8V7qUz1n/lsf90U+sXRPENpraBoM+cIwZIxk7DkjqQM1r7z/wA82/SuRpp2Z1ppq6H0yT7o/wB4fzo3n/nm36U2RztHyN94enrSGS0Uzef+ebfpRvP/ADzb9KAH0yL/AFS0bz/zzb9KbE58tfkb9KAJaKZvP/PNv0o3n/nm36UAKP8AWt/uj+tOqIOfNb5G+6PT3p28/wDPNv0oAfTJP4f94Ubz/wA82/SmyOfl+RvvD0oAjH/ISb/riP5mikQ51JvlI/cjr9TRQBaqJraB5DI8MbOV2FioJK+mfSpa57V9ZubLVJLaGWLabZZADEWMf7xVZzg8gKS2OPu0Aa2oIBYFVGAGTAHbDCqviT/kXL//AK5GqcFzf3GmG7u48xyrDsUcfNvwWAIyAflPJNWvEbMfDt+ChA8o85qofEiZ/Czx0f64f9dX/wDQaYv+rX/cg/8AQqkAHmj5v+Wr9v8AZpigbF+Yfcg7f7Vexc8YD0P/AG2/nTm/1n/Aof5UhAwfmH/Lbt704geZ97+KLt7Ur6hbQhl/49m/65T/AM6l/wCW3/bWP/0Go5QPszfN/wAspu3vUuB5v3v+Wsfb/ZoW5TXur5/oEVzPaxeZbzSROI5CCjEchuK3NL8RT2/iJb/UJbi5AkKEKRkjy+OOBWAwH2Y/MP8AVSdv9qpcD7T97/lv6f8ATOocIy3Q1OUdme06fqtnqVotxbzxspQOy7wTGCM/Ng8f/Wqx5kcsYaN1ddw5U5HWvCAALYgP/wAu49fU10Gj+Jb7R3+zwtG9t5x/dMuOduc5Az1FcksK0rxZ2QxabtJHrlFc3ofi6LVbG4uprf7NHbxo8jb9wwc+2e1bVnfw6hbLcWp82FiQGHHQ4PWuaUXHc6oyUtUy1TIv9UtG5v8AnmfzFNiZvLX92fzFSUS0Uzc3/PM/mKNzf88z+YoAUf61v90f1p1RBm81v3Z+6O496dub/nmfzFAD6ZJ/D/vCjc3/ADzP5imuzfL+7P3h3FAEY/5CTf8AXEfzNFIhJ1Jsrj9yP5migC1RRXPavc6lFqkkdobswtbKx2QblQ+YoYqdvLbCxxk9Bx6gGtqQzZN/vp/6EKq+JP8AkXL/AP65GqFtFqa6eby9mZ3mEQ8l/lK/MoyR0BxzgAck+1XvEe//AIR2/wAhceUehqofEiZ/Czxwf64f9dX/APQaYv8Aq1/3IP8A0KpAF80cn/Wv2/2aYoXYvJ+5B2/2q9g8YD0P/bb+dOb/AFn/AAKH+VIQuDy3/Lbt704hfM6n70Pb2pdQ6EMv/Hs3/XKf+dS/8tv+2sf/AKDTJQv2ZuW/1U3b3qXC+b1P+tj7f7NC3Kfwr5/oQt/x7H/rlJ/6FU3/AC8/9vH/ALTqNgv2Y8t/qpO3+1UuF+09T/r/AE/6Z0Illf8A5dj/ANew/manX/j5/wC25/8ARdRYX7MeW/49x29zU4C/aep/157f9M6A6jYLy5t7J4YZ5I45YIhIinAbk9a6ttUls/BVmtnemGf7VJuWNwGx8x5HXHSuPUL5C8t/qY+3+1UmF87POfMk7e1RKClYuNRxuehap4yl0y5sFiMFzbtDE0xU7nJY4ODnAP1rptL1JNR0hb2KNkUhsK+M8Ejt9K8UUKEXGfuwdvevRLHXBofg20la3MyyySoAG2kcsfT2rkq0FGKUdzso13KTctjW8J65da5a3El0sStG6hfLUjgjPcmuhrz3wjqQ0vw7qN95RlVHjyucE5AH9a2r3xitlo1pqLWLOtyHIQSYK7ffFZVKb52oo1p1VyJyZ0ckscLO8sixoAMsxwOpp6OsiB0YMrDIZTkGuH1fWhr3hS6nFuYVSeJCC24nkH0966Pw3vHhvTwqrjyVxk4qZU3GN33LjUUpWXa5qSzRwJvlkSNB/E7ACkLrIiOjBlYggg5BFcR431xTnRntju3xt5obI6E9MVe8H64NS06Gyjtin2SKMFmf73UdMcdKbpSUOcSqxc+Q6Qf8hJv+uI/maKRN39pNuAH7kdD7misjUtUUUUAMlijnjMcihkPUGsPxEltZ6aCYYSssgjZrh28tRgnLc9OMfUit+kIDDBAI9DQBh2fh7RLqyt7htGto2ljWQoYxlSRyPr2qb/hFtC/6BNp2/wCWY7dK16KfM+5PLHscbrthpOkT2xTRbCWGRX3IEBlZuNoVcg4JJyQDj0rOsjpc15b250fS3V5FUvGpPnZPWPJ/g79enavQiqlgxAJHQ46UBFGMKBjpx0o5n3Dlj2Mk+FtBIwdJtMYIx5Y79azdW0jRNOm0/Gmacq3F0sL+YgBOQcbffgV1NNZFfG5QcHIyOlHM+4+VdjzeKbTHMedC0w78ZAU87imYQP8AnqN5z/u9PTb8PafpGsQTSy6PYBkZCDEnALIG2nP8S5wf6dK67Yv90dc9O9ZGuajNpwtxC0MEcpcvPLGXVSFyFwCOWPv2PcijmfcXLHsMn8MaGltIV0uxQhDhpIxtH19q5VpNLFpaXX9j6Y6XFityoiAJ83aS2cNkIAOuD3BNdBaeJp7lLdZ7GKCSaTy3jlmIMRxyGG3gn+Edx3FV08YRGe3ji09f3gAYbyGB/dblUbfmIMpyOPuGjmfcOWPYz9Nj0m81SCzfRdM2MzRZjTlwvmESr/0z/dgd+WHPr0//AAi+hZz/AGVadc/6sVk2ni6S5QSxaQxRDtYq+TglAuwbefvjIOMbTWhZeIHu7yztjaoTdRGYPFKXRVXIbJ2jkEoMf7fsaOZ9w5Y9jnb+PSLW7vIYdN0d44XSMysmFhbDNtfnngDkYALAVBJqFmbXyG0mwjhUsyxz7iLcjfxJz1fbx0+937+h+XHknYuW68daUopzlRz1460cz7j5V2Mq10TSnsFA0yGKOZFd4duBnAOCPas/WLLS7WXTbIWVg4ml2JbTL1XI3lecDAJJ4OTgdTXTU1kRiCygkdCR0ouwsjz6K9tEhjgbSbFmaQLPDEMpIwaMBY8MQxAkzn/Zxgduh8NPb6jpzN9mhRYmVV+zs2zBRXwOe27afcdug6AIoAAUADpgdKUAAYAAHtRdhZGRqOiaS0EtzLZWjSquRJOoIBA4ySR/MVyVlqdtEiGHS7C2Z9qN5ZK7OV/etg8xAue+MqfmI5r0QgMCCAQeoNJsX+6OmOnb0ou9gstzl9A1trzU0h+ywx+ZGdwViX4VGD8/wHeQPp1PYrqQoByAM4xmikMWiiigAooooAKKKKACiiigAooooAKKKKACmmNDKJSi+YoKhscgHGRn8B+VFFADqZ5MXnmfy180rs34525zjPpmiigB9FFFABRRRQAUUUUAFFFFABRRRQB//9k=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACEAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iisu/1pNPu2gktpWPkiRGUrhyXVNo54OXXk8c0AalFYCa897DdYtp7WJEG2Zu77trDuOGyO/Q1fnWKCB5XvJ1RBuZi/QflQBj3/AIsey1O6sjBbho2RY2efjDMil3IBCAF+h56djkWo/ETP4STW/Ij3OB8gl+QZfbuLY+6OpOOgNTLFp2r2cnl3s8sEnyu0cpUnHbIwabb6DY2kkbQXN9Gka7FiFy/lgYx9zO39PegDNi8YySLM32W3/wBHgklKifJudrSL+54+Yfu859GFTHxWIXhimNlI83k+W1vcbkkLzeWQpxztBBP17Vr/AGePzAPtE/yrxz0+nFOFrCMYnmGOnPT9KAOSb4hOmkfbDaWzuY45VWO5yuGR2KMxAAcBOn+0KuyeMLiNpGNjEISzrC7TEY2vGpaT5flX95kkZwFNblvp1ra20dtBJMkMahUQNwABgdqekCMgJuZ+evzf/WoA5y98YXNjO0a20V0zMArJcKsX+rVyFcgcnPGfQ+lX7fxFNdw6yqxQR3NijNGnmbxj5tpYjjnb0ByO/voz28aW0hFxMNq5HPAx07U828akbbicbm5w3X9KB20uctH4wvrO08q4ghurqOHLfvtru/lLJuKheIzu259a2NW1G6trrT7aa9g05Jo5HluSAyh124QFuBncx55whxWkbaPOfPnJPH3v/rUrWm4YaWcj0Lg0COWu/GdwLyeztVtSYmjxcSyYQqJo45CyjlR+8yCeMDPIqVPGk8k06fYIYkW48hZZrlVVCHK5kAyVBxkcc5ArovseWfMkxB6/OOfrxUN1p1tdRPbzzT4kGWCz7GIHfIwcUAc6vjyVrIXIsISTbeaIRcHeT5Bl3Abf9Xxs3evatu01q6k106PcWiJcRp50jo5KCIgBWBIGSW3Lj/YJqxFZW1taRJBK8cKoI4sSDGOwHtRFpsEd3NOks/2iVV8xvOySBkKPYdencmgCppGqSXmtanCl9FdWlv8ALkBQySAncoA5IAwMnvkdjjHg8dXF3DI1tYQOyFmy0+FMYiMgPAJDYGMHpnn0rqRZBWLK8wJ6kMAT+lH2PBGJJwOc/OP8KAMXTfEk2p+JY7RRDFb+VOTFvzLlGjALDHyg7iRzyCKzbHxJqckUcrXVsxfUPIkEzoFjj3SDgL8yn5VHzd6637JglvNnB7neKjW1hZnCSuW/jCuM9e/4g/lQBmaJ4nXWo9SyI7ZbVFdZ94ZQjBiGYfwkbSSDj3xVrw1qE2p6Y9zJcJcRNKwglAAZ4+MFgOATzxxxjIBzVo26RjD3Eq72wMyAbie3vSCGCPKrcumGCkCUD5j2+tAGhRVB1MM0G2eYkyBSrNkEYNFAF+qVzpFjeXJuLiDzJDEYcl2xtJzjGcdQDnrwPSrtZGpa02nXjQNa7wYRJGwkxuYyKm0jHAy6889+KAJ7y2htdGe3gQRxIAFUduRRrv8AyAL/AP64P/Ks9dWmvrO5eW3MVvsAVgCcOG2spPQ8jjHbrir2uOp0G/Az/qH7H0px3RMtmZXgP/kX3/6+H/kK6evHdH16/wBHvAYZDJD5xHkNJhDlOuPrXp2j67aaxaJJDKrSiNWlRATsJHTp65revTkpOXRmOHqRlFR6o0f+W3/AafUXmL538X3f7pp3mL/tf98muc6B9Mi/1a0eYv8Atf8AfJpsUi+Wv3v++TQAXP8Ax6y/7h/lTpOqf71RXMi/ZZfvfcP8J9Ke8i5T733v7ppdSvsj26fiP50wxMST58g9uP8ACneYp6g/98mkzH/d/wDHDTEnYRI2VsmZ29jj/CsLWfDI1bVFuvM2J5RWRQ2DIdjqB04H7wnrzjoa21aPe/y+n8Bp+Y/7v/jhoBu5y9x4UuLjQY9Oe6TeryOJhwUMhffgYxwHAXgdO1TWHhiWyv1uUudpSTI2u/zJvkYhhnGSJAO/3a6B2j8tvl7H+A0oaPaPl7f3DQI5abw7rF090/8AaUlur3DsI0nfMib3K5PITAK4Cjtz7WH8O3/7zy9TkDypMBK0r5iZmYqyjODgFVwem3iuizH/AHf/ABw0wtH5i/L2P8BoA5mXwnez2TwyalIS0Zj2vM7LjEnHbIyyc4z8lLN4X1GSbzY9TaLc4LJE7KSoaQgbsE/L5gxx2rqMx/3f/HDRmP8Au/8AjhoAydT0u4vrCG1At2Xzy03msxJTJOFY5IJ4GewyBjgjEn8FXcsckf26NkM7SjeCSS2/LH3+cDaODt6jNddG0eD8v8R/gNPzH/d/8cNAENz/AKyD/ruP/QTRSXLLvtgoI/fD+EjsaKALdVJ9Msbm4M89pDLKYzEXdASUPVfp7VLLd28EscU08cckuRGrsAXx6etZup62+nXhgNsrqYBJG3m4y3mKmCMcDLg5578UAWb6CKHSHhhjWOJFAVEGAACOgFJrv/IAv/8Arg/8qzl1a6vrO4lmtPJs/LAWRW3ZkDlWAxzjI44HrV/XHB0K/GG/1D/wn0px3RMtmeMj/j4H/Xx/7TqfS9UudLeKaCaZEWONnSNyocBuhqEKftA5H+v9f+mdQhT9nHI/1Cdx/er2Gk1ZnjxbTuj2PRPEFrrKhlaOKf5lMBkDMMHritqvE7C+utMvxcWkiJL5zrkgHgp6GvUPD3iODW7MFVlWWONDIWUYJI7YJ9DXm1qPI7rY9KjW51Z7m5TIv9UtHmD0b/vk02KQeWvDf98msDoC5/49Zf8AcP8AKnSdU/3qiuZB9ll4b7h/hPpT3kGU4b73900upX2SWimeYPRv++TR5g9G/wC+TTJBf9Y/1H8qfUSyDe/Ddv4T6U7zB6N/3yaAFf8A1bfQ0q/dH0pjyDy24bof4TSrINo4bp/dNAD6Y3+tT6GjzB6N/wB8mmmQeanDdD/CaAJaKZ5g9G/75NHmD0b/AL5NABH0b/eP86fUUcgw3DfeP8Jp3mD0b/vk0AQ3f37b/rsP5Gim3LgvbABv9cOqkdjRQBjeKFWWW0t3tEvVkV8QOruobK4kZFBDKvuOpGK2BpOnjZmygYpF5IZ0DN5f93J5x7Vg+MY5hLp9wkSNHEZPMdoWfywQPmJVGwAcHHGcdav6rrkmm3zQeTE6m38xCZCDu8xU+YY4X5wc+xoAu38SRaS8USKkaqAqKuAACOABTdd/5AF//wBcH/lWcmp3V9YTTywBbUxAAoc/vA5U4PdeMg4q/rj50K/G1h+4fkj2px3RMtmeMj/j4H/Xx/7TqEf8e4/64J/6FU4X/SByP9f/AO06hC/6OPmX/UJ3/wBqvYueNYmH+uH/AF8N/wCgUlpcSWkkFzFt82JIWXcMjIanBf3w5H+vb/0CoVX9yvzL/qou/wDtUtHoPVHqfhvxdFqmy0uiRe5fcQm1OD9fSumi/wBUteFBAZFyVI89/wD0E13nhfxkPKt7C+QZ2QxwmFPX5fmyfpXDWw9tYnfQxHN7szt7n/j1l/3D/KnSdU/3qiuZM2suFbGw8/hT3flPkb73pXJ1O37JLRTPM/2H/KjzP9h/ypkgv+sf6j+VPqJX+d/kbt29qd5n+w/5UAK/+rb6GlX7o+lRvJ+7b5H6HtSiT5R8j9PSgCSmN/rU+ho8z/Yf8qaX/er8jdD2oAlopnmf7D/lR5n+w/5UAEfRv94/zp9RRvwfkb7x7U7zP9h/yoAhu/v23/XYfyNFNuXy9sNrD98Oo9jRQBznjQBp7BfOjjO2UqWRW2kBW3ndG/AAPHBJIrpfsFsxV5oY55hH5ZmkjUuy9wTjv6dKwdfgu7rW7If2dLNbwfMJFhilUE98OchgVHI7Matavrsum6g1uFt2BtvNTc5DK3mKmW/2Rvzn/ZNAGhqEappckaKFRVAVVGAACOgpmu/8gC//AOuD/wAqzYtRu77TZ7maHFsYwF2YIZw5UlTnO3gHn1/PQ1xidBvxsYfuH549Kcd0TLZnjI/4+B/18f8AtOoR/wAe4/64J/6FU4UfaB8w/wBf/wC06hCj7OPmH+oT/wBCr2LnjWJh/rh/18N/6BUK/wCpX/rjD/6FU4A84fMP9e3/AKBUKqPJX5h/qof/AEKgLEi/61f+u7/+gmov+WQ/64xf+hVMqjzV+Yf69/8A0E1HtHlD5h/qov8A0KgDqfDviptOjexvJFSxAlC7YyW3deo/HtXpMN5bXsccltPHKpIOUYHGR39K8OdeT8w+/J6+laug65c6JKhikH2ciFpYlUfPyR1I44rkrYdSblHc7aOIcYqMtj2WisTRvFFhrREcG9bgBi0RHQA4PPQ9q2N5/wCebfp/jXE007M7U01dAv8ArH+o/lT6iVzvf923b09PrTt5/wCebfp/jSGK/wDq2+hpV+6PpTHc+W37tuh9P8aVXO0fu26e3+NAD6Y3+tT6Gjef+ebfp/jTS581P3bdD6f40AS0Uzef+ebfp/jRvP8Azzb9P8aACPo3+8f50+oo3OG/dt94+n+NO3n/AJ5t+n+NAEN39+2/67D+RoptyxL2w2MP3w649DRQBbqNoIXk8xoo2fbt3FQTj0z6VJWBrGvS6bqTWyNakG181Q5O5D5iqWbn7oDE9vunn0ANPUUA0yVVGAAMADpyKj13/kAX/wD1wf8AlWdDf3d7pc91cRZt3iQIUxtLB2Ulec7SArDPrV/XGJ0K/Gxh+4fnj0px3RMtmeMj/j4H/Xx/7TqEf8e4/wCuCf8AoVTgD7QPmH+v9/8AnnUIA+zj5h/qE9f71eweNYmH+uH/AF8N/wCgVCv+pX/rjD/6FU4A84fMP9e3/oFQqB5K/MP9VF6/3qLhYkX/AFq/9d3/APQTUX/LIf8AXGH/ANCqZQPNX5h/r39fQ1HgeUPmH+qi9f71AW0B+p/35f5Uif6sf9c4P/Qqc4GW+Yffk/lQgHlj5h/q4fX+9S6lW91F3S9Uu9JvPPs5FSRjKpLKG4znv9K9X0HXbbXLPzIC5eNU8zcm3kjPH6146oHmL8w+9L6+tT2mo3tlbNHa3skCSJDuEZIzzjr1rGtRVTVbmtCs6ej2Pbl/1j/Ufyp9eaeHvGU1jJ5WpXDzWwEgBC7nyG4yTyeM13Ol65Z6zC8tj5jqhAbcu3GRkda4Z0pQ3PQhVjPY0H/1bfQ0q/dH0pju3lt+7boe4/xpVdto/dt09R/jWZoPpjf61PoaN7f882/Mf400u3mp+7boe4/xoAlopm9v+ebfmP8AGje3/PNvzH+NABH0b/eP86fUUbthv3bfePcf407e3/PNvzH+NAEN39+2/wCuw/kaKbcsS9tlCP3w5OPQ0UAW6aUUtuKgnGM4p1c9rOs3VhqbW0MkRBtPNCmMkxnzFUscHkBWY4/2aANbUlzp0oA7Dj8RUWu/8gC//wCuD/yrKgn1K402a8uyr28iAIirtz8wAYAjjOC3U/eHpWnrjMdCvwUIHkPzkelOO6Jlszxkf8fA/wCvj/2nUI/49x/1wT/0KpwB9oHzf8t/T/pnUIA+zj5v+WCdv9qvYueNYmH+uH/Xw3/oFQr/AKlf+uMP/oVTgDzh83/Ldu3+xUKgeSvzD/VRdv8AaoCxIv8ArV/67v8A+gmov+WQ/wCuMP8A6FUygeavzf8ALd+3sajwPKHzD/VRdv8AaoC2gP1P+/L/AOg0if6sf9c4P/Qqc4GT838cnb2oQDyx83/LOHt/tUupVvdQqf6xf96X+dMX/Vr/ALkH/oVSKB5i/N/FL296YoHlr8w+5B2/2qZNhx7fWb+deifDj/kHXf8AvJ/6DXnhA4+bvN2967HwNrdtYs1hIsjTXDx7CoGBkY5yfasMQm6bsb4dpVFc6nxPrk2iw2xhhjkM7FTvJGAB7Vur90fSvHtcOfFVzlj/AK6Xg/7wr0u41+2s9UttNlim8+cLtKgFeSQMnPtXJUpcsY23OynV5pSvsjXpjf61PoazNZ1+20KGOW7imKvnHlgHoMnvRpOuW+toZ7WKUKh2nzAAc4B9fesuV25raG3NG/LfU1qK5m58c6Za3slpJDdeZGzKcKMZU4Peuj3t/wA8z+YocXHdBGUZbMI+jf7x/nT6ijZsH92fvHuK429Zv+Fk2nUHavy5/wBhqIx5rinLlsddd/ftv+uw/kaKbcsxe2yhH74dx6GipLLdFFFAEc8KXELRSA7GGDg4NZOtRJDp5jJuJjcOsAjM5QEsccnBwPwraqK4t4LuBobiFJYm+8jqGB/A0AczYeEfD1/YW19HZzKs6LOoad8jcv19Dii88FaFbWE8sdg8jRxErGbp1DAc4zk4/KuqVVRFRFCqowABgAU2aGO4heGaNZInBVkYZDA9iKv2k+7I9nDsjzqWx0COVGGlTkSbAmbxh++dFYA+gwwBb9K2tN8IeHtQ0+K4FjLHuGwp9pc4KMRjOeRkHmuhGkaaq4FhbAeV5OPKX/V/3enT2q1FFHBEkUMaxxoNqoowAPQCj2k+7D2cOyOK1bw9oOkyxM2nSSxsJJGKXT712qSzbe4wME5HUVQttL0F7pLOTSZQ6vHDO321m2lidm3puHr0x7138thaT3SXMttE86KVWRkBYKeoz6UyLS9PgaForG3QwZ8orEBsz1x6Zo9pPuw9nDsjGPgTQD1tZepP+vfv171zU2naDBey2kmjzo1u6iQi7fmIMgDAEAnmQcd8HBNek1i6lBYabFbtDplo00t0ojLqFVZD/GTg46fngUe0n3D2cOyMLRfDvh/V4nk/s6WFk2uB9qdsrIocHOeuDyO3vRr/AIe8M+H9HlvprN22ABIzdMu8rkgZJwOhP4VoaZ4hsUtH+zaYYv3/AJLrBsCvMT2JIyMYO4gAj34qa98UacqNBLayz7t6PFhOimQNnLYx+6f68Ue0n3Yezh2Ryklr4eR5NmlTSAmRof8ATWAZF8zefb/VNgc5yORzjq7LwhocLw3dtBMjgK6N5z5GOnf3qjLr3h6R7pRpPnneHlxAmJAFkbfkkZx5bj1zx3rVHia0xExgnCTzGCBsL+8cNtwBnI7nnHCk0e0l3D2cOxz+r6ZpMOsyx3GmzmeYqLeZrp186R2UHHBAALDPfjgGp9Pk03XdYtpntbkTKn7uZrkkhkVHIwOMDzBg9+eOldTLptjcSySzWcEkki7HZ4wSy+h9uB+Qp0VjaQTedDawxy7BHvSMA7R0GfTgce1Lml3HyR7GXrukabNps1xqQuJ4bWN5SolbOAuTjB9BXO2eqadpNszW9ndQRxrvuY1uWJRiGCjDAEnEfPQDI613rKGUqwBBGCD3qomk6dF5eywtl8oMI8RL8obrjjjNLmdrXHyq97anP2XhvRtXM91cWUqXSzPHKBdOw3ZySDxkHg9BWpqkj6clu0fmzebMkW03JVvmPUDBzgZJ6cA1p29tBaQLBbQxwxL0SNQoH4CnPFHIyM6KzRnchIyVOCMj04JH40OTe7BRS2RyFv4jR2jUw3Q3lJGzc52xuY9pHHJ/fLkdsHk8Z3X8PWEmorfsJjdJ92TzmyOCPXHc1ZTStOj8vZYWy+W5kTESjax7jjg8D8hVyhNrYGk9ysLNBIjtJM5Q7gGkJGaKs0UhhRRRQAUUUUAFFFFABRRRQAUUUUAFMlhiuImimjSSNvvI6gg/UGiigCFtPsnBDWduwKCM5iU5UdF6dB6VHNpGnTyK8tjbswfzMmMctgjJ9eGPWiigCUWNmru4tYA0hJciMZYnI59ep/M01tNs2uI5/s6CSOQygqMZcgruIHU4JGT60UUAWqKKKACiiigAooooAKKKKACiiigD/9k=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACFAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAoqvfO8djM6NtYLwfSmPasqEi6uP++h/hQBh3+sXsd5rFv9qtbdbYRm3JkVZG3Lkg7/AJcZzz7VabXJYfCtjqjpG01wkG4sTHGrSbQWYnJVQWzVuaOyWQpPfgP0IkkXPr3FU7CDTdQu57iz1e7uWHEiC6Zoxn/YPy9j2osK5nx+NHktp7j7JAogg8wxtcYeU8/Mny8x8Z3emTjip5vFotpVglW0kmYRFPJuNyybzIDt45xs/Wtt7IAbvPm3AYByOB+VI2mRPGY2ll2FSuMgcHqOnFAzkn+IRi0sXbWlu7YWQiK5yhQxhyAxAG8ZA29eRj2vzeLbiB3EllAqPLJHDI05CgJP5JaQ7flHIPGfSt2LSoYII4I5JVijACLkYGBj0p0lkNh/fzEHggkd+vagDm7nxfc2l6bZbRLlmlIDLOqx4EcLEIxAySZCRn0P4Wf+EkubnQ9dnhjgjvNPikZE3mRRhWKkkDBzt6An3xW4bBSADNMQDkDI4P5UCxVQQJ5gCckAjn9KAOY/4S28tXeze2huLmLERJnwxcNGpZwE+VSZMggc46c8aWq6lcwalaWct9Bpsb27yvcOAVeRSo2AtgY5J9SPTmtR7IAFvtE244BORzz9KbNZs4AE87YYfeZfX3FAHMT+NLiS/mtLWO1URXEaedLJ8pQymNsgcqcjjPr+b4fG886u39nwwKZvLSS4ugqpxISJMAlT+7wOOrAdq6U2IO7LzHd1yV5+vFV77Rob21khne5Mb4L7ZthOPUrg0Ac+vjuV7cSpp8JZoVdYvtHzhjGkmSNvCfPtDeo6c1t2GtXFzrc2lTWqJPboZJ2RyVCnHlkZAzu+f6bDVqKxhjSOOGWRVCBUVWX7g6AcdKZFpsEE9zcRzTiSUgzOZQeg4HPQAdunJ9aAMrw/r11e3F39qkjkSODznVEwbdt7qYzjknCjrz19RVGDx3cXVrLLDp8DGFZZJP8ASOCiRpJwQDyQ+MHoRzXUm0YAlJrgEnJIZef0oFkFGBJOB6Ar/hQBj6X4hn1PxK9niGO3SGc+UJN0gZJVQFxj5c8kDJyDWZpXiTU5rXTp5bm2f7TdCObzXQBFKSN8oTkElQAG57V1gsyGLCWcMep3Lk/pUT2UcSk+Y6biCSSoyRz6fWgDO0HxMuvWV/IRHa/Z8YlEisu1k3Kx9CAeQfxqx4Y1G41LTZpLmRJHiuJIg67TuUHjlflJweo47dQavCywCBJOAeoDLz+lNECIAq3MqgHaAHUYPpQBeoqjIjwtEyzzk+aqlWYEEH8KKAL1FFc7rOqXtnqbQWzsytab9ogLeWRIoLZHU7Sx2/7NAGxqP/IPm4z8tJqs722k3c8eN8cTOuRkZAzWPDJqMunSXty2Y3h2CM5UsQ5AfaR8uVwce/atHWy/9hX+VAHkPzn2px3QpbM8hvr2bU9TN3dBDK8xBKrgcR4rovAetWWl74LlnD3CQhNqEjuOfTrXLKF88fN/y3bt/sVHGxjiDxyMrrBGVYcEHJ5r1ZwUo8p5EJuM+c94l/1Zp9efeFPEWpXWof2dPMJ4tz/NJkvwAfvZ/pXfbn/uD/vqvMnBwdmerTmpx5kPpkv+rP1H86Nz/wBwf99U2Rn2H5B2/i96gslopm5/7g/76o3P/cH/AH1QAS/c/EfzprqWyA7J8w5XH9RRIz7PuDqP4vemT7tqnyxnevf3oY47j/Kf/n4k/Jf8Kh1CzF7pdzZuSwljZMltucj1A4/I/Q1Pg/8APJfzpkgPln90v50A3c5mx8KXdje2d2tyjSweY75OA7N5m1BhRhB5nbAO0fLUNx4LnkuLqSK4VUlZwkZkOFDLKNxIAy2ZehzwuM11+D/zyX86MH/nkv50COfvtH1IaZDZ2lw7Yu2bLXEi7Yij4BYHccMV4+naoovDmr+bIZ9auH3SFw4lYfwuF+QAAYLKcZIO2uikB2H90vbvT8H/AJ5L+dAHMy+HtYlZSupyQKLYxbI7pyFf5stkjLZ3A9QRtGM0y48K3sr3W28BWZWQGSV2IX96FUg5zgSLz1+Wupwf+eS/nTJAdn+qXqO/vQBl6TpWoWV1NJdX0lyHmLgtM2AvzYwuMDqBjJHANZJ8IXX2fUYi9s32uUOHJI2fM7bun+2Btz2Pzc8dbg/88l/OjB/55L+dAEF31i/67JRRdZAgGwAecvQ+9FAFuio2niSVInlRZJM7ELAFsdcDvUlAFTU/+QdN9P61Frn/ACAb/wD64P8AyNTajxp83OPl61Drn/IBv/8Arg/8jTjuhS2Z4uv+vH/Xdv8A0CoR/wAe3/bvH/M1Mv8Arx/13b/0CoR/x7f9u8f8zXsniI0tL1KfS9UFzbiMyea64cEjBT2I9K9e0nU4NTsIZo54ZJDGjSrE4OwkZx14714sv/H0P+u7f+gVqeFtUvbDULWG2m8uOfyBIu0HcN2O49Celc1ejz6rc6sPW5Pdex7HTJf9WfqP50+mS/6s/Ufzrzj0h9FFFADJfufiP5024+4n/XRf5inS/c/Efzptx9xP+ui/zFJlR3RLTJf9WafTJf8AVmmSPooooAZL/qz+H86fTJf9Wfw/nT6ACmS/6v8AEfzp9Ml/1f4j+dAD6KKKAK150h/67J/Oii86Q/8AXZP50UAYXizyHa0gubZbqNw2yFpMDzAV2swBBKjnOM4yOK05dTstKYWUhnHlQCRSVZ9y7goAP8TZKjHXkVkeL3mgudOniAAUyKz73TbkDBJUj5cgEj2rYvtEttQu/tE0k+4RGIKr4UDcGyOOoKqc+1AFdtZtr+3uY4furEHLMQNpJI2sOoOQeKs646nQr8BhnyH7+1NnsobLRHt4QdqjqxyWJbJJPckkmn64B/YN/wAD/UP/ACpx3QpbM8YVT544P+vbt/sVCFb7N90/8e8fb3NSgnzxz/y3b/0CogT9m6n/AI94/wCZr2DxSdVP2ocH/Xt2/wBioo/MSJGTcrCGIgrkEHdUqk/ahz/y3b/0CoFJ8heT/qYv/QqAPTvCfiKxXTEtLy/xdK75M5PTOfvNx0966p5Y2iyrqQcEEHrXhnJm/wC2r/8AoNeu6FqtjqekxLaSbzDFGsmUIwSPcexrz8RR5HzLqejhq3OuV9DZ3p/fX86N6f31/Ol2j0FG0egrmOojkdNn3l6jv702d02J86/fXv7inyKNnQdR/Om3AGxOB99f5ikyo7ok3p/fX86ZK6eWfmX86k2j0FMlUeWeBTJHb0/vr+dG9P76/nS7R6CjaPQUARyunln5l7d/en70/vr+dNlUeWeB2/nT9o9BQAm9P76/nTJXTZ95eo7+9SbR6CmSqPL6DqP50AO3p/fX86N6f31/Ol2j0FG0egoArXbqRAAwJ85e/vRS3gAEHA/1y/zooA53xkZDJZRJMqB1l+ViMEgA5cE4KABs9e3BrqIlZIkV3MjgAFyANx9cCuX8RKbrXLGKSykkhh+bzDZSTp83uhGMbcYOQd3I4rq6AKuo/wDIPm+npnvUOuf8gG//AOuD/wAjU2oMDYzqGG4LyO4qHXP+QDf/APXB/wCRpx3QpbM8XX/Xj/ru3/oFQj/j2/7d4/5mpl/14/67t/6BUI/49v8At3j/AJmvZPEROv8Ax9D/AK7t/wCgVAv+oX/rjF/6FU6/8fQ/67t/6BUC/wCoX/rjF/6FS6j6Ew/1w/66v/6DWjoniC+0WJktPJ2yRwlhIme5HqKzh/rh/wBdX/8AQaZF91f+uUP8zSlFSVmOEnF3R7L4b1OfVtHS7uRGJC7KdgIHBx3JrWryPw/4mudGugrtLNa75FEAYAA4zn+dek6NrtlrsBls2Y7QpdWQjbuGR169682tScJN20PTo1lOKV9TQl+5+I/nTbj7if76/wAxTpfufiP5024+4n/XRf5isGdMd0S0yX/Vmn0yX/VmmSPooooAZL/qz+H86fTJf9Wfw/nT6ACmS/6v8R/On0yX/V/iP50APooooArXnSH/AK7J/Oii86Q/9dk/nRQBZrndZ0/ULnVGktI2ET2hjd/P2hj5ittx2yoYbv8AaroqKAOeh02ey0iWWaVvtDxKjJkMEUOxUbiMkgNtyfSr+tqw0K/JckeQ/GB6VY1IZ0+b6f1qHXP+QDf/APXB/wCRpx3QpbM8YUjzx8o/17d/9iogR9m+6P8Aj3j7+5qRf9eP+u7f+gVCP+Pb/t3j/ma9ix4tywpH2ofL/wAt27/7FQqR5C/KP9TF3/2qlX/j6H/Xdv8A0CoF/wBQv/XGL/0KjqF9CcEecPlH+tfv/s0yIjavyj/Vw9/c04f64f8AXV//AEGmRfdX/rlD/M0NAiQEecPl/wCWr9/9mu7+G4LWd3tO35Yen0auCH+uH/XZ/wD0GtHw3NLHrWnrHLIis1vuVXIB+Y9R3rOtDmg0a0J8s0z2ORW2f6w9R2HrTLhW2J+8P317D1Fclp887fEC/iaaVowGwhclR9zt0rsLj7if76/zFeZOPKerSlzP5jtrf89D+Qpsqt5Z/eH8hXOadr17c+L7rTJPK+zR79uEw3BGOc+9dLL/AKs0Si47ijJS2Da3/PQ/kKNrf89D+Qp9FSURSq3ln94e3YU7a3/PQ/kKJf8AVn8P50+gBm1v+eh/IU2VW2f6w9R2HrUtMl/1f4j+dABtb/nofyFG1v8AnofyFPooAqXasBBlyf3y8YHrRTrzpD/12T+dFAFmiisLVtdl02/a3CQMptvNTc5BDeYqZb/Z+fOfY0Aaeo/8g+bIJ+XtUOuf8gG//wCuD/yNZkGpX99Yz3M8KLaNGVQx85YNtyDnJBIY9Om33rR1t86Ffja3+oft7U47oUtmeMr/AK8f9d2/9AqEf8e3/bvH/M1OF/fjkf69u/8AsVEF/wBG+8v/AB7x9/c17FzxbEq/8fQ/67t/6BUC/wCoX/rjF/6FVhV/0ocj/Xt3/wBioVX9wvzL/qYu/wDtUdQtoSD/AFw/66v/AOg0yL7q/wDXKH+ZqQL++HI/1r9/9mmRL8q8j/Vw9/c0NgkKP9cP+uz/APoNNjdo0R0ZlYRwEMpwR83rUgX98OR/rn7/AOzUSr+6X5l/1UPf/aoAsx3Vyt15q3EwlZ5cuJDuPHc5zXUeNL67hubARXdxGDbQkhJWXJLnJ4PWuTVf3o5H35e/tW14p1G01Seze0l3rHBAjZBGDvPrWM4pzWnc6KUmovXqg8M6xDpusNd30krBhMu7Bdic/wD1q6nwJdz3djfNNPLN80ZUyOWxke9edheV5H35e/1rt/A11DY6JfzztiJPKLMBnHFRiILlbXkVh5vmSe2p6DRWTp/iTTNVnMFnO0sgBJHlsOAcHqPU1NPrVjbahFYSyMtzLjYmw85zjnp2NcPLK9rHepRavcuy/wCrP4fzp9ZuqaxZaZEhvJGjEhO35Cc45PSryzB1DKrEEZBxSs9x3WxJTJf9X+I/nR5n+w35U2V/k+43UdvekMlopnmf7DflVKbW7GDUY9PkkZbqTBVNh5znHPTsaaTewm0tye86Q/8AXZP50U27fIgG1h++XqPeikMt1E9tBJL5rwRtIV2bigJ2+mfSpaKAIZrZJrVrf7iFdo2AfL6YrL1sNFprxS3NzJ9oPkrHFGhZiwPAzgdAep7VtVXvLK3v4PJuELIGDDaxUgjoQQQQfpQByVr4C0e7t4buG9vjHKBMhJQZDLx/D6Gn/wDCt9K2bftl9jYE+8nQdP4a6+KKOCFIYkCRxqFVR0AHAFPrT21TuZexp9jgNQ8HaVp08O+bU2M0hKOnlsN+08YwCeAegp2meCNF1TTo7mG61BUZQmx3j3LtPQ4Bwfauyn022uL6K8kEnnxIyIyysoAbrwDjsOfan2dlBYwmOBWAZi7FnLMzHqSSSSaPbVO4/Y0+xy//AArrS9277Ze53FvvJ1Ix/drJ1LwtoWkzrBPdaigMHmeaTHsCpk45AJbg8CvRqp3ul2eospu42lVQQI2dthyCMlc4J5PJFHtqncPY0+xyNh4I0i/iMyXGoxskrq8chj3I44IOAR+RqyPhvpQUL9svsBVX7ydFOR/DXVWlnBYweTbqVTcWO5ixJJySSckn61HqF+thDG5jeV5ZFijjTGWY9Bk8Dufwo9tU7i9jT7HEap4R0rS3i3PqsnmGQq0XlNyFZmG3APRT0HUirFh4E0bULKO5iu74IwUYLxkjYehwCM5HNbY1rSb7/SJEuFnh32xCo5aN2YK0YK8b8gdDnHPSpItW0fSrdYYnlALudojkkdm3PvJ4JJyr5J9KPaz7j9jT7GV/wrnSxj/TL3gsfvJ36/w1UOnadpWnajpscmp7TKkLrtiZn2p5mV6cbVJ5weOnSuifxVo6NIv2os0ZAYJGzHBVmzwOmEY59qpT/wDCO3ElxLM07faZeXLShZHX93hD06MVwvUZ60nUm92CpQWyKPhnS9Lh1GV9Mu74PsYq8oQrIpchivGeGXHOK2bnw3Fd6tDqUt5cfaIQoXAQDgkjjb7mr9ppdnYzyzW0IjeT72GJAGScAE4UZJOBjk1cpOcm73KUIpWSOP8AEEVtqNrdm8fUMabIQ5RYhwUDFhk8jB6dc9q19Nu/tstxbRXNxG1q3llZEjBIBIBA64ODgkDNTTaBp9xLNLIs5eaZJ3xcSD51GFIAPGPQeg9BVqCwt7e6muUDmaYAM7yMxwCSAMngZJ4HrSu7WHZXuH2ef/n9k/74T/Csa81j7Ms4klvFMFytu7GOLaMqH3k5wFx3OOe1dFWdJodjMbves5F2wadftEgD4G3GM9McY6GkMr2OoDULqe3iurlWiyQzRphwGZCVwOm5GHOP1ps/huK51eLU5Ly4+0xABcBNvGe233NaFpplnYzzTW8Ox5vvHcSOpOACcAZZjgdyat002thNJ7lU2kjOhkupHVWDbdqjJH0FFWqKQwooooAKKKKACiiigAooooAKKKKACobq0gvYDDcRh0yGxkggg5BBHIIPcUUUAUx4f0tUKrahFIXIR2XkHIbg/e4+9196iuPDGlXMwle3YNv3ttkYbuGGDzwPnYnGMk896KKAJE8PaTG8jpZRgyZDYJxghgQBnAHzv0/vGh9AsGlt2WMosFx9pWMHK+ZggHB6feJ4xzRRQBp0UUUAFFFFABRRRQAUUUUAFFFFAH//2Q==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACEAMgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiq8t9aQyyRS3UKSRx+a6tIAVTpuI7D3oAsUVmTapa3MFxFZ3SPMkauTG2cBuhB6dP51NcQpb28k0l3OiIu5mL9AOp6UAYmoazex3es2/2u0tltfLNvmRUdtygnO/5cZzz7Vck1yW38LWOpvHG01wkG4uTHGjSbQWbOSqjOas2gstTg8+2vJJ487dwbPI7cilXRYlu3uPtl+zPkFGunZOf9gnaPyoDcw4/GckltNcfZYEEMAkMbTkPIT/Eny8x993pk44qafxcLWQQSLayysIyhhn3LIG8zJXjkDy/1re+wrkHz58jgHd/9ao/7OilgaN5ZihDIRuxx0x0oA5N/iC0WmrdNaW8jcORFc5QpsVyAxABcbgNvX9cX5fFtzC7rJZ26K8rxwyNOQqhZzEWkO35R0PGeuPetqHTo4m+zxyzLFEi7E3DC9R6VObFSCDPOQeo3f/WoG1Y5mfxfc21/9lW0S4LzEBxOqptCREhGOMk+YSM+n5TnxLdXPh/XbmBLeK9sI5CqB/MUEKSpLAYPTt+OK3fsSmTaZpsAAj5hwfypwsVAIE84B6gN1/SgRzP/AAll5bSvZNbQz3MbCHJmw28SRxlnAX5VbzMrgcgdOeNDVNSuINVtrOW/g02JrZpWncAiSQEDYC3GBnJ7nI6YNaps1GW8+fJx/H19Ka9mW25lnODnlxQBy8njS4m1CS1tY7VFiuo0M00nymMu6HIHKHcoxn1/Mi8c3Etu0p0+CBTJtV57oKqfLIxEmMlW/d4wR1bHaupNkDnLz89fnHNVb3SrS9ha1upJyj/OyCcoWA7naQSKAMEeOZ3TdHYQl2jVliM53glYzlht4Q+ZgN7dOeNrTtanu9Yn0ua1VJ7Vd1wysSoDY8vbkc7hv+mw1aS1hihj2TSLHhVTEgAx2A/pTLfTIYJppI5JxPMQ8p87JY4wOvQccDp1oAqaRrHmrrfn3sVz9gumXMYGVTy1bBC56EsPXisi38cXNzaySxafAfIWaSX/AEjIKRrE/wApUEEkS4wehFdStkFJKvOpPXDgZoFlgYEk4HoHFAGNpHiG41TxJNaEQxwRwyHylfdIrLLsy4x8pIBOPesrSfE+oyWOlXM91bSC5lC3HmOnyAxO+FEfIJK8Bue1daLQhmPmzjJ67x6U1LSElljlkJBywV14Oe/4g/lQBm6D4iOv6bfS4jtGt22+aHV1AKBw3oMBuQfTmrnhrUW1Xw3YXsk8c0ssKmR48YLY56dOe1TtbJGArTyqGO0AyAZJ7VEBboQqXjKobaQJlHzen160AadFUXRoZYCs0xzKFZWbIIwaKAL1Y2qaJLqV8JxdpGiw+WqeTuO7erhid3Iyg4x0zzWzVO41WytJ5IZ5wkiRecwKn7ucZHHPJAwOeR60AZz6PBp+jy7QGuCP3kwG0sS+4/QZPT0AHareuIo0K/IzkQP3PpUUuqW1/bXEVuzNiNZFYggOpPbvweD6Hip9d/5AF/8A9cH/AJU47omWzMfwMofQGJznz3747Cul8pff8zXN+A/+Rff/AK+H/kK6erq/xH6k0f4cfQZ5S+/5mmxxrt79T3PrUtMj+5+J/nWZoRLGv2qXr91f4j71L5S+/wCZpqf8fUv+6v8AWpaSKluRCNfOPX7o7n3p3lL7/maB/rj/ALo/rT6ZJG0agA89R3PrTTCSc+fIOenH+FTYz1qN0X5flH3vSgadgWIq2TNI3scf4Vgaz4YGq6ot15myPyisi7sGQ7HUDpwP3hPXnHQ10Wxf7o/KjYv90flQDdzlLjwncXGgx6c90m9XkcTDgoZC+/AxjgOAvA6dql0/wvLZXy3KXO0pJkbXf5k3yMQwzjJEgHf7tdKUXH3R+VNjRfLT5R0HagRyk3hzWLp7l/7Skt1e4dhGk75kTe+3J5C4BXAUdufay/h2/wAS+XqcgeVJh5rSuTEzMxVlGcEgFVwem3iul2L/AHR+VGxf7o/KgDkpfCd7PZSQyalIxaMx7XmdlxiTjtkZZDnGfkp03hfUJJfNj1NotzgskUjKSoaQgbsE/L5gxx2rqERdz/KPvensKfsX+6PyoAxtU0q4v7CG1At2Xzt03mMxJTJOFY5IJ457DIGOMVbzw008k88RgS6luvOSYZUwgLtXAHDHGTg8Esa6PYv90flTGVfMT5R0PagCvcqPOgPfzh3/ANk0U+6ADW2Bj98P5GigCzWVqGiLqN6Lh7qZAsPlqiBcA71cNkjOQyL7cdKvy3dvBLHFNPHHJLkRq7AF8enrVW71i1sbl4JxKHWLzRiMkMNwXA9TllGPcUAV5tLt7LRZIY13twXkYDc537iSQPUk1NrkaDQb8hFB8h+ce1VX1u11GK4t4Q42wrIWkTaM7iCvPcEYPvVvXWU6DfgEZ8h+/tTjuiZbM4DwXf3I15LNrhvspdyY2xt/1ef516b5cZ/gX8q8K25nwRn9/wCn/TOvV/Cet2mpaVBbwiRXtoI1fzFwDxjjn2NdeKp2fMjlwlS65Gb/AJUf9xfypkccez7i9T296k3r/eH50yNl2feHU9/euM7CNYk+1S/Iv3V7fWpvKj/uL+VRIy/apfmH3V7/AFqbev8AeH50kVLcjEcfnH5F+6O31p/lR/3F/Kmhl84/MPujv9afvX+8PzpkieVH/cX8qY8cfyfIv3vSpN6/3h+dMdl+X5h971oAd5Uf9xfyo8qP+4v5Uu9f7w/Ojev94fnQA0xR4+4v5U2OOPyk+Reg7U8uuPvD86bGy+UnzDoO9ADvKj/uL+VHlR/3F/Kl3r/eH50b1/vD86AI0jj3P8i/e9PYU/yo/wC4v5U1GXc/zD73r7Cn71/vD86AE8qP+4v5Uxo4/NT5F6HtUm9f7w/OmMy+anzDoe9AEF0iK9sQqg+cOg9jRS3TAvbYIP74d/Y0UAYvihVlltLd7RL1ZFfEDq7qGyuJGRQQyr7jqRir8/h+ynkjZmnVY4PIRFkIVVyGBHfIKqc+wrK8YxzCXT7hIkaOIyeY7Qs/lggfMSqNgA4OOM461r3+tRafdNBLbzMfJEqMu3DkuqbRz1yy9cDnrQAXVlDaaE9rEp8tMH5jkk7skk9yTk07XVUaDfkKM+Q/b2qk2srf204ELRQiIN5jn7r79pQ9s5HYmrmuSIdBvwGBJgfv7U47omWzPGgT9oHJ/wBf/wC060PD2tXOk3EPlzrHA6RecWQN8u7nr04J6VnhW+0Dg/6//wBp1EEb7OPlP+oT/wBCr15JSVmePFuLTR7nZ3Vpf24ntZEliJI3KOMjrUsaLt+6Op7e9ed+EvEr2E4sLtoIrLe58xgQ2cZ65x+legwTwyQq6SKytkqQeoJry6lNwlY9alUU43BEX7VL8o+6vb61NsX+6PyqBZU+1S/Ov3V7/WpfNj/vr+dZI2luIEXzj8o+6O31p+xf7o/KoxKnnH51+6O/1p3mx/31/OmSO2L/AHR+VMdF+X5R970pfNj/AL6/nTXlT5fnX73rQBJsX+6Pyo2L/dH5U3zY/wC+v50ebH/fX86AFKLj7o/KmxovlJ8o6DtSmWPH31/Omxyx+Unzr0HegCTYv90flRsX+6Pypvmx/wB9fzo82P8Avr+dACIi7n+Ufe9PYU/Yv90flUaSx7n+dfvevsKd5sf99fzoAdsX+6PypjIvmp8o6HtS+bH/AH1/OmtLH5qfOvQ96AIrpVD22AB++Hb2NFJcujPbAMCfOHf2NFAHOeNAGnsF86OM7ZSpZFbaQFbed0b8AA8cEkit6bRbK5kWW6V55RD5Jd5CMrkHoMDOQDkDqB6Vka/Bd3Wt2Q/s6Wa3g+YSLDFKoJ74c5DAqOR2Y1oalrbadeGA2ocGASRsJMbmMiptIxwMuvPPfigCa8tobXRXt4ECRIAFUfUetLrv/IAv/wDrg/8AKs9dWlv7K4kkgaG3CAZ2k/vN5UgN0YZHXA61e1xwdBvx83+of+E+lOO6Jlszxkf8fA/6+P8A2nUI/wCPcf8AXBP/AEKpwp+0Dp/r/Uf886hCn7OOn+oTuP71exc8axKP+Pgf9d2/9Art/BPiVI4/smpXzlnSFYFdSQM5HUDjnHWuJCn7QOn+vbv/ALFR7CYVHH+ph7j1rOpBTVmaUpum7o91jYNcyFSCNq8g/Wpq8w8K+KG0y5FndvEliGcZVCWzyR0P17V6VFcRzQpLGWKOoZTtPIPIrzZ03B2Z6saimrryHD/XH/dH9afUQkXzjw33R/Cfen+Yvo3/AHyagodTH/g/3qXzF9G/75NMeRfl4b73900AS0U3zF9G/wC+TR5i+jf98mgBx6U2P/VJ9BSGRcdG/wC+TTY5F8pOG6D+E0AS0U3zF9G/75NHmL6N/wB8mgBE+8/+9/QU+okkXc/Dfe/un0FP8xfRv++TQA6mN/rU+hpfMX0b/vk0xpF81OG6H+E0AR3f37b/AK7D+Ropt04L2wGf9cOqkdjRQBbqrNptjczmeezgllMZiLvGCSh6rn09qtVg6vrsum6g1uBbsDbeam5yGU+YqEt/sjfn/gJoA0L6GOHSHhhjVI0UBURcAAEcACm67/yAL/8A64P/ACrOi1G5vdLnuZ4sW7RqEMeCpcOysV5yVOFIz2NX9cfOhX42sP3D8/hTjuiZfCzxkf8AHwP+vj/2nUI/49x/1wT/ANCqcL/pA+Yf6/8A9p1CF/0cfMv+oT/0KvYueNYlH/HwP+u7f+gVH/yxX/rjD/OpQv8ApA+Yf69v/QKj2/ul+Zf9TD/OgOgqf8fP/bZv5NWroPiO90QoY5C0DJC0sZAJYZIIBPTistF/0n7w/wBc38mpir+4X5l/1MX/AKFUuKkrM05pRldeR65o3iuw1m68mJZYp8NlHXj5TzyOO4roK8I2guOV/wBbJ/Kul0nxfqpvrGK5voktFEIcbFA2k4OSR6e9cdTDW1iddPFX0mepUx/4P96sKTxpoUUxjN2WIJGUQsDjrgjitK21O01GNZLOZJ1BBJjYHGRxn0rmcZLVo6lKL0TL1FM3/wCw35Ub/wDYb8qkoeelNj/1Sf7opC/H3G/Kmxv+7T5G6DtQBLRTN/8AsN+VG/8A2G/KgAT70n+9/QU+okf5n+RvvensKdv/ANhvyoAfTG/1qfQ0b/8AYb8qaz/vE+Ruh7UAR3f37b/rsP5Gim3LZe2G1h++HX6GigC3UbQRO+9okL427iozj0+lSVz2s6zdWGptbQyREG080KYyTGfMVSxweQFZjj/ZoA1dRQf2bKqjAAGAO3IqPXf+QBf/APXB/wCVZUE+pXGmzXt2Ve3kQBEVdufmADAEcZwW6n7w9K09cZjoV+ChA8h+cj0px3RMtmeMj/j4H/Xx/wC06hH/AB7j/rgn/oVTgD7QPm/5b+n/AEzqEAfZx83/ACwTt/tV7FzxrEo/4+B/13b/ANAqP/liv/XGH+dSgD7QPm/5bt2/2KjwPKX5h/qYe3vQFtBU/wCPn/ts38mqNf8AUL/1xh/9CqVAPtP3h/rm7ezUxQPIX5h/qYu3+1SWxUlr9xIPvj/rrJ/Ko1/1a/7kH/oVS4G8fN/y1k7e1RqB5a/MPuQdv9qmTYcn+sX/AHpf510fhjxHBoWmXIZGkuGWFo0x8p6jk9utc6oHmL838Uvb3pqAeWPm/wCWcPb/AGqmcVNWZVOThK6PWvD3iu21wiDy2juwGLoASo2tjg/iK6CvBxgOCHx80vTPrXot/rlvrPgu8a2WVREsSsXAHJZfQ1xVaHK1y7M76OI5ovm3Rqad4hkvvEV7pbWyoluHxIHyW2sB0x71ux/6pP8AdFeZ+AZBFqt1IcsFglJx1x5gpuo+JLS58TWWoIJxDbCJXUjk/MenPvSlQ9/lj0Q417QUpdX+p6hRVPT9RTUrGK8gjcRSZ27sA8Ej19qs7m/55n8xXM1bQ6U76oE+9J/vf0FPqJGbc/7s/e9R6Cnbm/55n8xQA+mN/rU+hpk1x5EEkzxttjUscEdAM1gWHjLT9T1GK1ghuRIx2jcoAyRn19BVKLaukS5JNJs3Lv79t/12H8jRTblmL22UI/fDuPQ0VJRbooooAjnhS4haKQEowwcHBrJ1qJIdPMZNxMbh1gEZnKAljjk4OB+FbVRXFvBdwNDcQpLE33kdQwP4GgDmbDwj4ev7C2vo7OZVnRZ1DTvkbl+vocVP/wAIH4f27fskmNoX/Xv0H410aqqIqIoVVGAAMAClq/aT7sj2cOyOM1PwxoWnTWx/s+SUSykHbdPvBxywXuAMk8jAFY9tY+H5XihbSJgT5QkP2xjsRzH5eP7x/fLkcYweTxn0Oaxtbi4huJreKSaHPlyMoLJnGcHt0H5VGmladF5Xl2NsvlMXj2xKNjHqRxweB+Qo9pPuw9nDsjIHgXQA277LLnO7/Xv1/P3qjqvhXwzpGlzXk1rJsjVVVTcuu45+Vck4HJHNdjSMoZSrAEHgg96PaT7h7OHZHmcFt4fuTA8GlSv9pwIP9ObazkR7snsP3o55zjoOM9DYeD/Dt/p1tdx2cypPDHIqtO+QMZA69s1vnSNNZXU2FsRIqo48pfmVcYB46DAx9BTNSvf7MtrdYIYy0sqQRqzbEUnpk44HHp1wO9HtJ92Hs4dkZg8C6ADn7LLnJP8Ar379e9cpHb+G5olePSbhRjzCrXUit5CkYbBHJJbgDrg811tp4shubcv9jlLrMLchHQq0ueikkZGOQxABHvxVW41fQbZ9o0pXkEzylVijBDqZAW5IGf3T8/Sj2k+7D2cOyKej+HfD+rCU/wBnSwlQsi/6U7bkkGQTzweDkdvWt2LwppUFlLZxxzLby4Lp5zc46d/as+HxTo9o1ylnYyjDmSTyY0UONrsX6jP+qcHvkYrQHia1xExgnCTzGGBsL+9cNtwBnI7nnHCk0nOT3Y1CK2Rz1ymkeG9Xe0tdPuN0kQQyrcsAWk3EKc5AyV9c9wCAag0/SdAvr6O2bS5lJfyHkN2xIlQM2McZXCn5uOe1dzNp1jczGaezgllKGMu8YJKntk9uT+Zoi06yglSWG0gjkRPLV1jAKp/dB9PajnlvcOSNrWIbXSbeytkt7d544kztUSk4yc96oape/wBlzsrrcPELSW4DrcHJKFQVxjvvHOa3qrTafZ3FwtxPawyTKhjDugJCnqufQ+lSVscq/iRLczmSG6/du0cmLnOJAJMKvAyp8o/McYyOOuN/Tj9vtPOZ7iN1kkidBMWAZGKnB4yMj0qwNJ05duLC2GyMxr+6XhDnK9OhyePc1YggitoVhgiSKJBhURcAfhQBmauotLHefPnjeWOGRTOVwrsEJ6c/e6cfWuXktNL0XUZpbfTZfOt3O1471ipxG7kEkcMET7vP3xz6dxd2dtfQ+Td28c8W4NskUMMjocGof7H0wrIpsLYrLJ5jgxDDPydx9+Tz701JrRCcU9WjN0fUItUvJF2TqIv3kReYtuG948kdjlDxz1H4FbMNpb28kskMEUbyndIyIAXPqfWikMmooooAKKKKACiiigAooooAKKKKACmSwxXETRTRpJG33kdQQfqDRRQBC2n2TghrO3YFBGcxKcqOi9Og9Kjm0jTp5FeWxt2YP5mTGOWwRk+vDHrRRQBKLGzV3cWsAaQkuRGMsTkc+vU/maa2m2bXEc/2dBJHIZQVGMuQV3EDqcEjJ9aKKALVFFFABRRRQAUUUUAFFFFABRRRQB//2Q==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/jpeg": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "occupancy_variables = ['md_occupancies', 'sg_occupancies', 't3_occupancies', 't5_occupancies']\n", + "percents = [99.99, 99.9, 99.9, 99.99]\n", + "compute_occupancies(branches, occupancy_variables, occ_percentiles=percents, plot=False) # To print\n", + "compute_occupancies(branches, occupancy_variables, occ_percentiles=percents, plot=True) # To plot" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.0" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From 513cdcdd7ac56f74e1da9a591d5027c2dce9cb05 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Mon, 25 Nov 2024 16:10:44 +0100 Subject: [PATCH 115/418] [UBSAN]Check for finite tracklet seeding or d0 cut --- .../src/TrackletCalculatorDisplaced.cc | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/L1Trigger/TrackFindingTracklet/src/TrackletCalculatorDisplaced.cc b/L1Trigger/TrackFindingTracklet/src/TrackletCalculatorDisplaced.cc index 9138bf16a9145..471519f60447b 100644 --- a/L1Trigger/TrackFindingTracklet/src/TrackletCalculatorDisplaced.cc +++ b/L1Trigger/TrackFindingTracklet/src/TrackletCalculatorDisplaced.cc @@ -8,6 +8,7 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Utilities/interface/Exception.h" +#include "FWCore/Utilities/interface/isFinite.h" #include "DataFormats/Math/interface/deltaPhi.h" using namespace std; @@ -937,10 +938,8 @@ bool TrackletCalculatorDisplaced::DDLSeeding(const Stub* innerFPGAStub, edm::LogVerbatim("Tracklet") << "d0approx: " << d0approx << " d0: " << d0 << endl; edm::LogVerbatim("Tracklet") << "tapprox: " << tapprox << " t: " << t << endl; edm::LogVerbatim("Tracklet") << "z0approx: " << z0approx << " z0: " << z0 << endl; - } - for (unsigned int i = 0; i < toR_.size(); ++i) { - if (settings_.debugTracklet()) { + for (unsigned int i = 0; i < toR_.size(); ++i) { edm::LogVerbatim("Tracklet") << "phiprojapprox[" << i << "]: " << phiprojapprox[i] << " phiproj[" << i << "]: " << phiproj[i] << endl; edm::LogVerbatim("Tracklet") << "zprojapprox[" << i << "]: " << zprojapprox[i] << " zproj[" << i @@ -950,10 +949,8 @@ bool TrackletCalculatorDisplaced::DDLSeeding(const Stub* innerFPGAStub, edm::LogVerbatim("Tracklet") << "zderapprox[" << i << "]: " << zderapprox[i] << " zder[" << i << "]: " << zder[i] << endl; } - } - for (unsigned int i = 0; i < toZ_.size(); ++i) { - if (settings_.debugTracklet()) { + for (unsigned int i = 0; i < toZ_.size(); ++i) { edm::LogVerbatim("Tracklet") << "phiprojdiskapprox[" << i << "]: " << phiprojdiskapprox[i] << " phiprojdisk[" << i << "]: " << phiprojdisk[i] << endl; edm::LogVerbatim("Tracklet") << "rprojdiskapprox[" << i << "]: " << rprojdiskapprox[i] << " rprojdisk[" << i @@ -991,7 +988,7 @@ bool TrackletCalculatorDisplaced::DDLSeeding(const Stub* innerFPGAStub, iz0 = z0approx / kz0; bool success = true; - if (std::abs(rinvapprox) > settings_.rinvcut()) { + if ((std::abs(rinvapprox) > settings_.rinvcut()) || (!edm::isFinite(rinvapprox))) { if (settings_.debugTracklet()) edm::LogVerbatim("Tracklet") << "TrackletCalculator::DDL Seeding irinv too large: " << rinvapprox << "(" << irinv << ")"; @@ -1002,7 +999,7 @@ bool TrackletCalculatorDisplaced::DDLSeeding(const Stub* innerFPGAStub, edm::LogVerbatim("Tracklet") << "Failed tracklet z0 cut " << z0approx; success = false; } - if (std::abs(d0approx) > settings_.maxd0()) { + if ((std::abs(d0approx) > settings_.maxd0()) || (!edm::isFinite(d0approx))) { if (settings_.debugTracklet()) edm::LogVerbatim("Tracklet") << "Failed tracklet approx d0 cut " << d0approx; success = false; From 41577d673a11adec5beb1e3dd144401540604c87 Mon Sep 17 00:00:00 2001 From: Markus Seidel Date: Fri, 16 Aug 2024 14:47:23 +0200 Subject: [PATCH 116/418] TopDQM lepton input --- DQM/Physics/interface/TopDQMHelpers.h | 10 ++-- DQM/Physics/python/topSingleLeptonDQM_cfi.py | 36 +++++++------- DQM/Physics/src/TopSingleLeptonDQM.cc | 51 ++++++++------------ DQM/Physics/src/TopSingleLeptonDQM.h | 14 +++--- DQM/Physics/test/topDQM_harvesting_cfg.py | 2 +- DQM/Physics/test/topDQM_production_cfg.py | 2 +- 6 files changed, 50 insertions(+), 65 deletions(-) diff --git a/DQM/Physics/interface/TopDQMHelpers.h b/DQM/Physics/interface/TopDQMHelpers.h index 4af769267c823..e6b8eeef1c8f6 100644 --- a/DQM/Physics/interface/TopDQMHelpers.h +++ b/DQM/Physics/interface/TopDQMHelpers.h @@ -378,17 +378,13 @@ bool SelectionStep::select(const edm::Event& event, const std::string& t if (dynamic_cast(&*obj)) { reco::PFCandidate objtmp = dynamic_cast(*obj); - if (objtmp.muonRef().isNonnull() && type == "muon") { + if (type == "muon") { if (select_(*obj)) { ++n; } - } else if (objtmp.gsfElectronRef().isNonnull() && type == "electron") { + } else if (type == "electron") { if (select_(*obj)) { - if (electronId_.isUninitialized()) { - ++n; - } else if (((double)(*electronId)[obj->gsfElectronRef()] >= eidCutValue_)) { - ++n; - } + ++n; } // idx_gsf++; } diff --git a/DQM/Physics/python/topSingleLeptonDQM_cfi.py b/DQM/Physics/python/topSingleLeptonDQM_cfi.py index 1ded8a15af938..69bba35a7b60f 100644 --- a/DQM/Physics/python/topSingleLeptonDQM_cfi.py +++ b/DQM/Physics/python/topSingleLeptonDQM_cfi.py @@ -9,21 +9,21 @@ tightJetCut = "(chargedHadronEnergyFraction()>0 && chargedMultiplicity()>0 && chargedEmEnergyFraction()<0.99 && neutralHadronEnergyFraction()<0.90 && neutralEmEnergyFraction()<0.90 && (chargedMultiplicity()+neutralMultiplicity())>1) && abs(eta)<=2.4 " #Loose muon selection -looseMuonCut = "(muonRef.isNonnull && (muonRef.isGlobalMuon || muonRef.isTrackerMuon) && muonRef.isPFMuon)" -looseIsoCut = "((muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.25)" +looseMuonCut = "((isGlobalMuon || isTrackerMuon) && isPFMuon)" +looseIsoCut = "((pfIsolationR04.sumChargedHadronPt + max(0., pfIsolationR04.sumNeutralHadronEt + pfIsolationR04.sumPhotonEt - 0.5 * pfIsolationR04.sumPUPt) ) / pt < 0.25)" #Medium muon selection. Also requires either good global muon or tight segment compatibility -mediumMuonCut = looseMuonCut + " muonRef.innerTrack.validFraction > 0.8" +mediumMuonCut = looseMuonCut + " innerTrack.validFraction > 0.8" #Tight muon selection. Lacks distance to primary vertex variables, dz<0.5, dxy < 0.2. Now done at .cc -tightMuonCut = "muonRef.isNonnull && muonRef.isGlobalMuon && muonRef.isPFMuon && muonRef.globalTrack.normalizedChi2 < 10. && muonRef.globalTrack.hitPattern.numberOfValidMuonHits > 0 && " + \ - "muonRef.numberOfMatchedStations > 1 && muonRef.innerTrack.hitPattern.numberOfValidPixelHits > 0 && muonRef.innerTrack.hitPattern.trackerLayersWithMeasurement > 5 " -tightIsoCut = "(muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.15" +tightMuonCut = "isGlobalMuon && isPFMuon && globalTrack.normalizedChi2 < 10. && globalTrack.hitPattern.numberOfValidMuonHits > 0 && " + \ + "numberOfMatchedStations > 1 && innerTrack.hitPattern.numberOfValidPixelHits > 0 && innerTrack.hitPattern.trackerLayersWithMeasurement > 5 " +tightIsoCut = "(pfIsolationR04.sumChargedHadronPt + max(0., pfIsolationR04.sumNeutralHadronEt + pfIsolationR04.sumPhotonEt - 0.5 * pfIsolationR04.sumPUPt) ) / pt < 0.15" #Electron selections -looseEleCut = "(( gsfElectronRef.full5x5_sigmaIetaIeta() < 0.011 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00477 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.222 && gsfElectronRef.hadronicOverEm() < 0.298 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.241 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) < 1.479) || (gsfElectronRef.full5x5_sigmaIetaIeta() < 0.0314 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00868 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.213 && gsfElectronRef.hadronicOverEm() < 0.101 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.14 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) > 1.479))" +looseEleCut = "(( full5x5_sigmaIetaIeta() < 0.011 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00477 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.222 && hadronicOverEm() < 0.298 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.241 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) < 1.479) || (full5x5_sigmaIetaIeta() < 0.0314 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00868 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.213 && hadronicOverEm() < 0.101 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.14 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) > 1.479))" -tightEleCut = "((gsfElectronRef.full5x5_sigmaIetaIeta() < 0.00998 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00308 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.0816 && gsfElectronRef.hadronicOverEm() < 0.0414 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.0129 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) < 1.479) || (gsfElectronRef.full5x5_sigmaIetaIeta() < 0.0292 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00605 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.0394 && gsfElectronRef.hadronicOverEm() < 0.0641 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.0129 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) > 1.479))" +tightEleCut = "((full5x5_sigmaIetaIeta() < 0.00998 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00308 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.0816 && hadronicOverEm() < 0.0414 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.0129 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) < 1.479) || (full5x5_sigmaIetaIeta() < 0.0292 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00605 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.0394 && hadronicOverEm() < 0.0641 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.0129 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) > 1.479))" from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer @@ -38,8 +38,8 @@ setup = cms.PSet( directory = cms.string("Physics/Top/TopSingleMuonMediumDQM/"), sources = cms.PSet( - muons = cms.InputTag("pfIsolatedMuonsEI"), - elecs = cms.InputTag("pfIsolatedElectronsEI"), + muons = cms.InputTag("muons"), + elecs = cms.InputTag("gedGsfElectrons"), jets = cms.InputTag("ak4PFJetsCHS"), mets = cms.VInputTag("pfMet"), pvs = cms.InputTag("offlinePrimaryVertices") @@ -52,7 +52,7 @@ select = cms.string(PVCut) ), elecExtras = cms.PSet( - select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660)"), + select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660)"), rho = cms.InputTag("fixedGridRhoFastjetAll"), ), muonExtras = cms.PSet( @@ -87,7 +87,7 @@ selection = cms.VPSet( cms.PSet( label = cms.string("muons:step0"), - src = cms.InputTag("pfIsolatedMuonsEI"), + src = cms.InputTag("muons"), select = cms.string(tightMuonCut + " && pt>20 & abs(eta)<2.4"), min = cms.int32(1), ), @@ -116,8 +116,8 @@ setup = cms.PSet( directory = cms.string("Physics/Top/TopSingleElectronMediumDQM/"), sources = cms.PSet( - muons = cms.InputTag("pfIsolatedMuonsEI"), - elecs = cms.InputTag("pfIsolatedElectronsEI"), + muons = cms.InputTag("muons"), + elecs = cms.InputTag("gedGsfElectrons"), jets = cms.InputTag("ak4PFJetsCHS"), mets = cms.VInputTag("pfMet"), pvs = cms.InputTag("offlinePrimaryVertices") @@ -130,7 +130,7 @@ select = cms.string(PVCut) ), elecExtras = cms.PSet( - select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660)"), + select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660)"), rho = cms.InputTag("fixedGridRhoFastjetAll"), ), muonExtras = cms.PSet( @@ -162,9 +162,9 @@ selection = cms.VPSet( cms.PSet( label = cms.string("elecs:step0"), - src = cms.InputTag("pfIsolatedElectronsEI"), - select = cms.string("pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660) &&" + tightEleCut), - # select = cms.string("pt>30 & abs(eta)<2.5 & abs(gsfElectronRef.gsfTrack.d0)<0.02 & gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 0 & (abs(gsfElectronRef.superCluster.eta) <= 1.4442 || abs(gsfElectronRef.superCluster.eta) >= 1.5660) & " + EletightIsoCut), + src = cms.InputTag("gedGsfElectrons"), + select = cms.string("pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660) &&" + tightEleCut), + # select = cms.string("pt>30 & abs(eta)<2.5 & abs(gsfTrack.d0)<0.02 & gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 0 & (abs(superCluster.eta) <= 1.4442 || abs(superCluster.eta) >= 1.5660) & " + EletightIsoCut), min = cms.int32(1), ), cms.PSet( diff --git a/DQM/Physics/src/TopSingleLeptonDQM.cc b/DQM/Physics/src/TopSingleLeptonDQM.cc index 7fe4891ac8a42..5eb2af655846d 100644 --- a/DQM/Physics/src/TopSingleLeptonDQM.cc +++ b/DQM/Physics/src/TopSingleLeptonDQM.cc @@ -38,8 +38,8 @@ namespace TopSingleLepton { logged_(0) { // sources have to be given; this PSet is not optional edm::ParameterSet sources = cfg.getParameter("sources"); - muons_ = iC.consumes>(sources.getParameter("muons")); - elecs_ = iC.consumes>(sources.getParameter("elecs")); + muons_ = iC.consumes>(sources.getParameter("muons")); + elecs_ = iC.consumes>(sources.getParameter("elecs")); pvs_ = iC.consumes>(sources.getParameter("pvs")); jets_ = iC.consumes>(sources.getParameter("jets")); for (edm::InputTag const& tag : sources.getParameter>("mets")) @@ -55,7 +55,7 @@ namespace TopSingleLepton { // select is optional; in case it's not found no // selection will be applied if (elecExtras.existsAs("select")) { - elecSelect_ = std::make_unique>( + elecSelect_ = std::make_unique>( elecExtras.getParameter("select")); } @@ -86,13 +86,13 @@ namespace TopSingleLepton { // select is optional; in case it's not found no // selection will be applied if (muonExtras.existsAs("select")) { - muonSelect_ = std::make_unique>( + muonSelect_ = std::make_unique>( muonExtras.getParameter("select")); } // isolation is optional; in case it's not found no // isolation will be applied if (muonExtras.existsAs("isolation")) { - muonIso_ = std::make_unique>( + muonIso_ = std::make_unique>( muonExtras.getParameter("isolation")); } } @@ -367,7 +367,7 @@ namespace TopSingleLepton { */ // fill monitoring plots for electrons - edm::Handle> elecs; + edm::Handle> elecs; edm::Handle _rhoHandle; event.getByLabel(rhoTag, _rhoHandle); if (!event.getByToken(elecs_, elecs)) @@ -382,22 +382,15 @@ namespace TopSingleLepton { // loop electron collection unsigned int eMult = 0, eMultIso = 0; - std::vector isoElecs; - for (edm::View::const_iterator elec = elecs->begin(); elec != elecs->end(); ++elec) { - if (elec->gsfElectronRef().isNull()) { - continue; - } - reco::GsfElectronRef gsf_el = elec->gsfElectronRef(); + std::vector isoElecs; + for (edm::View::const_iterator elec = elecs->begin(); elec != elecs->end(); ++elec) { // restrict to electrons with good electronId - if (electronId_.isUninitialized() - ? true - : ((double)(*electronId)[gsf_el] >= - eidCutValue_)) { //This Electron Id is not currently used, but we can keep this for future needs + if (electronId_.isUninitialized()) { if (!elecSelect_ || (*elecSelect_)(*elec)) { - double el_ChHadIso = gsf_el->pfIsolationVariables().sumChargedHadronPt; - double el_NeHadIso = gsf_el->pfIsolationVariables().sumNeutralHadronEt; - double el_PhIso = gsf_el->pfIsolationVariables().sumPhotonEt; - double absEta = std::fabs(gsf_el->superCluster()->eta()); + double el_ChHadIso = elec->pfIsolationVariables().sumChargedHadronPt; + double el_NeHadIso = elec->pfIsolationVariables().sumNeutralHadronEt; + double el_PhIso = elec->pfIsolationVariables().sumPhotonEt; + double absEta = std::fabs(elec->superCluster()->eta()); //Effective Area computation double eA = 0; @@ -417,7 +410,7 @@ namespace TopSingleLepton { eA = 0.2393; double rho = _rhoHandle.isValid() ? (float)(*_rhoHandle) : 0; - double el_pfRelIso = (el_ChHadIso + max(0., el_NeHadIso + el_PhIso - rho * eA)) / gsf_el->pt(); + double el_pfRelIso = (el_ChHadIso + max(0., el_NeHadIso + el_PhIso - rho * eA)) / elec->pt(); //Only TightId if (eMult == 0) { // Restricted to the leading tight electron @@ -455,24 +448,20 @@ namespace TopSingleLepton { // fill monitoring plots for muons unsigned int mMult = 0, mTight = 0, mTightId = 0; - edm::Handle> muons; - edm::View::const_iterator muonit; + edm::Handle> muons; + edm::View::const_iterator muonit; if (!event.getByToken(muons_, muons)) return; - for (edm::View::const_iterator muonit = muons->begin(); muonit != muons->end(); ++muonit) { - if (muonit->muonRef().isNull()) - continue; - reco::MuonRef muon = muonit->muonRef(); - + for (edm::View::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) { // restrict to globalMuons if (muon->isGlobalMuon()) { fill("muonDelZ_", muon->innerTrack()->vz()); // CB using inner track! fill("muonDelXY_", muon->innerTrack()->vx(), muon->innerTrack()->vy()); // apply preselection - if ((!muonSelect_ || (*muonSelect_)(*muonit))) { + if ((!muonSelect_ || (*muonSelect_)(*muon))) { mMult++; double chHadPt = muon->pfIsolationR04().sumChargedHadronPt; double neHadEt = muon->pfIsolationR04().sumNeutralHadronEt; @@ -727,10 +716,10 @@ TopSingleLeptonDQM::TopSingleLeptonDQM(const edm::ParameterSet& cfg) std::string key = selectionStep(*selIt), type = objectType(*selIt); if (selection_.find(key) != selection_.end()) { if (type == "muons") { - MuonStep = std::make_unique>(selection_[key].first, consumesCollector()); + MuonStep = std::make_unique>(selection_[key].first, consumesCollector()); } if (type == "elecs") { - ElectronStep = std::make_unique>(selection_[key].first, consumesCollector()); + ElectronStep = std::make_unique>(selection_[key].first, consumesCollector()); } if (type == "pvs") { PvStep = std::make_unique>(selection_[key].first, consumesCollector()); diff --git a/DQM/Physics/src/TopSingleLeptonDQM.h b/DQM/Physics/src/TopSingleLeptonDQM.h index 78217cce9e01d..fdbc55e0e4957 100644 --- a/DQM/Physics/src/TopSingleLeptonDQM.h +++ b/DQM/Physics/src/TopSingleLeptonDQM.h @@ -108,8 +108,8 @@ namespace TopSingleLepton { std::vector > > mets_; /// input sources for monitoring edm::EDGetTokenT > jets_; - edm::EDGetTokenT > muons_; - edm::EDGetTokenT > elecs_; + edm::EDGetTokenT > muons_; + edm::EDGetTokenT > elecs_; edm::EDGetTokenT > pvs_; /// trigger table edm::EDGetTokenT triggerTable_; @@ -140,17 +140,17 @@ namespace TopSingleLepton { /// extra selection on electrons - std::unique_ptr > elecSelect_; + std::unique_ptr > elecSelect_; /// extra selection on primary vertices; meant to investigate the pile-up /// effect std::unique_ptr > pvSelect_; /// extra isolation criterion on muon - std::unique_ptr > muonIso_; + std::unique_ptr > muonIso_; /// extra selection on muons - std::unique_ptr > muonSelect_; + std::unique_ptr > muonSelect_; /// jetCorrector edm::EDGetTokenT jetCorrector_; @@ -306,8 +306,8 @@ class TopSingleLeptonDQM : public DQMOneEDAnalyzer<> { /// MonitoringEnsemble keeps an instance of the MonitorEnsemble class to /// be filled _after_ each selection step std::map > > selection_; - std::unique_ptr > MuonStep; - std::unique_ptr > ElectronStep; + std::unique_ptr > MuonStep; + std::unique_ptr > ElectronStep; std::unique_ptr > PvStep; std::unique_ptr > METStep; std::vector > > JetSteps; diff --git a/DQM/Physics/test/topDQM_harvesting_cfg.py b/DQM/Physics/test/topDQM_harvesting_cfg.py index 4413a09053c08..f57a3f44265eb 100644 --- a/DQM/Physics/test/topDQM_harvesting_cfg.py +++ b/DQM/Physics/test/topDQM_harvesting_cfg.py @@ -36,7 +36,7 @@ process.dqmSaver.saveByRun = cms.untracked.int32( -1) process.dqmSaver.saveAtJobEnd = cms.untracked.bool(True) process.dqmSaver.forceRunNumber = cms.untracked.int32( 1) -process.dqmSaver.workflow = cms.untracked.string('/TopVal/CMSSW_3_8_4/RECO') ## adapt apropriately +process.dqmSaver.workflow = cms.untracked.string('/TopVal/CMSSW_14_1_0_pre6/RECO') ## adapt apropriately ## path definitions diff --git a/DQM/Physics/test/topDQM_production_cfg.py b/DQM/Physics/test/topDQM_production_cfg.py index 8c45904a47945..1de513e887255 100644 --- a/DQM/Physics/test/topDQM_production_cfg.py +++ b/DQM/Physics/test/topDQM_production_cfg.py @@ -21,7 +21,7 @@ #process.source.fileNames = ['/store/relval/CMSSW_11_1_0_pre2/RelValTTbar_14TeV/GEN-SIM-RECO/110X_mcRun4_realistic_v2_2026D49noPU-v1/20000/02837764-A8F6-214F-AEE2-BCAEAAD7952A.root'] -process.source.fileNames = ['/store/relval/CMSSW_11_1_0_pre2/RelValTTbar_14TeV/GEN-SIM-RECO/110X_mcRun3_2021_realistic_v6-v1/20000/A8E66994-05C0-104A-A0F3-4D393C7E30C8.root'] +process.source.fileNames = ['/store/relval/CMSSW_14_1_0_pre5/RelValTTbar_14TeV/GEN-SIM-RECO/PU_140X_mcRun3_2024_realistic_v11_STD_2024_PU-v1/2580000/0a22c2b9-713c-4134-abd7-664c8b34ce94.root'] ## number of events process.maxEvents = cms.untracked.PSet( From 546544c93fcd51f7edc7767e3f0e4b507ad9fad4 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Mon, 25 Nov 2024 17:09:22 +0100 Subject: [PATCH 117/418] [ROOT6]Drop extra space from the key name --- Validation/MuonHits/plugins/MuonSimHitsValidAnalyzer.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Validation/MuonHits/plugins/MuonSimHitsValidAnalyzer.cc b/Validation/MuonHits/plugins/MuonSimHitsValidAnalyzer.cc index d69f75357d7f9..c9432c19dd918 100644 --- a/Validation/MuonHits/plugins/MuonSimHitsValidAnalyzer.cc +++ b/Validation/MuonHits/plugins/MuonSimHitsValidAnalyzer.cc @@ -123,8 +123,8 @@ void MuonSimHitsValidAnalyzer::bookHistograms(DQMStore::IBooker& iBooker, sprintf(histo_t, "Number_of_muon_DT_hits"); meMuDTHits = iBooker.book1D(histo_n, histo_t, 150, 1.0, 151.0); - sprintf(histo_n, "Tof_of_hits "); - sprintf(histo_t, "Tof_of_hits "); + sprintf(histo_n, "Tof_of_hits"); + sprintf(histo_t, "Tof_of_hits"); meToF = iBooker.book1D(histo_n, histo_t, 100, -0.5, 50.); sprintf(histo_n, "DT_energy_loss_keV"); From 7cfa9b6ddb30784f009abcaa556fd0ce56633bce Mon Sep 17 00:00:00 2001 From: Dimitrios Sidiropoulos Kontos Date: Mon, 25 Nov 2024 17:16:47 +0100 Subject: [PATCH 118/418] Changing names to histograms for miniAOD, topDQM_miniAOD updates --- .../src/SingleTopTChannelLeptonDQM_miniAOD.cc | 39 ++++++++++--------- DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc | 31 ++++++++------- DQM/Physics/test/topDQM_production_miniAOD.py | 5 +-- 3 files changed, 39 insertions(+), 36 deletions(-) diff --git a/DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc b/DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc index 1a8e06bd7022c..4f7730b4061cc 100644 --- a/DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc +++ b/DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc @@ -315,9 +315,9 @@ namespace SingleTopTChannelLepton_miniAOD { //hists_["jetBDiscVtx_"] = ibooker.book1D("JetBDiscVtx", // "Disc_{SSVHE}(Jet)", 35, -1., 6.); // multiplicity for combined secondary vertex - hists_["jetMultBDeepJetM_"] = ibooker.book1D("JetMultBDeepJetM", "N_{30}(DeepJetM)", 10, 0., 10.); + hists_["jetMultBPNetM_"] = ibooker.book1D("JetMultBPNetM", "N_{30}(PNetM)", 10, 0., 10.); // btag discriminator for combined secondary vertex - hists_["jetBDeepJet_"] = ibooker.book1D("JetDiscDeepJet", "BJet Disc_{DeepJet}(JET)", 100, -1., 2.); + hists_["jetBPNet_"] = ibooker.book1D("JetDiscPNet", "BJet Disc_{PNet}(JET)", 100, -1., 2.); // pt of the 1. leading jet (uncorrected) //hists_["jet1PtRaw_"] = ibooker.book1D("Jet1PtRaw", "pt_{Raw}(jet1)", 60, 0., 300.); // pt of the 2. leading jet (uncorrected) @@ -571,7 +571,7 @@ namespace SingleTopTChannelLepton_miniAOD { pat::Jet TaggedJetCand; vector bJetDiscVal; - unsigned int mult = 0, loosemult = 0, multBDeepJetM = 0; + unsigned int mult = 0, loosemult = 0, multBPNetM = 0; edm::Handle> jets; if (!event.getByToken(jets_, jets)) { @@ -603,25 +603,28 @@ namespace SingleTopTChannelLepton_miniAOD { correctedJets.push_back(monitorJet); ++loosemult; // determine jet multiplicity - double discriminator = monitorJet.bDiscriminator("pfDeepFlavourJetTags:probb") + - monitorJet.bDiscriminator("pfDeepFlavourJetTags:probbb") + - monitorJet.bDiscriminator("pfDeepFlavourJetTags:problepb"); + //ParticleNet discriminator + + double discriminator = + monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") > 0 + ? monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") + : -1; - fill("jetBDeepJet_", discriminator); //hard coded discriminator and value right now. - if (discriminator > 0.2435) { - if (multBDeepJetM == 0) { + fill("jetBPNet_", discriminator); //hard coded discriminator and value right now. + if (discriminator > 0.1919) { + if (multBPNetM == 0) { TaggedJetCand = monitorJet; bJetDiscVal.push_back(discriminator); - } else if (multBDeepJetM == 1) { + } else if (multBPNetM == 1) { bJetDiscVal.push_back(discriminator); if (bJetDiscVal[1] > bJetDiscVal[0]) TaggedJetCand = monitorJet; } - ++multBDeepJetM; + ++multBPNetM; } - // Fill a vector with Jet b-tag WP for later M3+1tag calculation: DeepJet + // Fill a vector with Jet b-tag WP for later M3+1tag calculation: PNet // tagger JetTagValues.push_back(discriminator); // } @@ -642,7 +645,7 @@ namespace SingleTopTChannelLepton_miniAOD { } fill("jetMult_", mult); fill("jetLooseMult_", loosemult); - fill("jetMultBDeepJetM_", multBDeepJetM); + fill("jetMultBPNetM_", multBPNetM); /* ------------------------------------------------------------ @@ -665,7 +668,7 @@ namespace SingleTopTChannelLepton_miniAOD { unsigned int idx = met_ - mets_.begin(); if (idx == 0) fill("slimmedMETs_", met->begin()->et()); - if (idx == 2) + if (idx == 1) fill("slimmedMETsPuppi_", met->begin()->et()); } } @@ -688,12 +691,12 @@ namespace SingleTopTChannelLepton_miniAOD { fill("massTop_", topMass); } - // Fill M3 with Btag (DeepJet Tight) requirement + // Fill M3 with Btag (PNet Tight) requirement // if (!includeBTag_) return; //if (correctedJets.size() != JetTagValues.size()) return; //double btopMass = - // eventKinematics.massBTopQuark(correctedJets, JetTagValues, 0.2435); //hard coded DeepJet value + // eventKinematics.massBTopQuark(correctedJets, JetTagValues, 0.2435); //hard coded PNet value //if (btopMass >= 0) fill("massBTop_", btopMass); @@ -722,14 +725,14 @@ namespace SingleTopTChannelLepton_miniAOD { } } - if (multBDeepJetM != 0 && mTight == 1) { + if (multBPNetM != 0 && mTight == 1) { double mtW = eventKinematics.tmassWBoson(&mu, mET, TaggedJetCand); fill("MTWm_", mtW); double MTT = eventKinematics.tmassTopQuark(&mu, mET, TaggedJetCand); fill("mMTT_", MTT); } - if (multBDeepJetM != 0 && eMultIso == 1) { + if (multBPNetM != 0 && eMultIso == 1) { double mtW = eventKinematics.tmassWBoson(&e, mET, TaggedJetCand); fill("MTWe_", mtW); double MTT = eventKinematics.tmassTopQuark(&e, mET, TaggedJetCand); diff --git a/DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc b/DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc index f6ed698475165..f67bf945749c2 100644 --- a/DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc +++ b/DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc @@ -305,9 +305,9 @@ namespace TopSingleLepton_miniAOD { //hists_["jetBDiscVtx_"] = ibooker.book1D("JetBDiscVtx", // "Disc_{SSVHE}(Jet)", 35, -1., 6.); // multiplicity for combined secondary vertex - hists_["jetMultBDeepJetM_"] = ibooker.book1D("JetMultBDeepJetM", "N_{30}(DeepJetM)", 10, 0., 10.); + hists_["jetMultBPNetM_"] = ibooker.book1D("JetMultBPNetM", "N_{30}(PNetM)", 10, 0., 10.); // btag discriminator for combined secondary vertex - hists_["jetBDeepJet_"] = ibooker.book1D("JetDiscDeepJet", "BJet Disc_{DeepJet}(JET)", 100, -1., 2.); + hists_["jetBPNet_"] = ibooker.book1D("JetDiscPNet", "BJet Disc_{PNet}(JET)", 100, -1., 2.); // pt of the 1. leading jet (uncorrected) //hists_["jet1PtRaw_"] = ibooker.book1D("Jet1PtRaw", "pt_{Raw}(jet1)", 60, 0., 300.); // pt of the 2. leading jet (uncorrected) @@ -550,7 +550,7 @@ namespace TopSingleLepton_miniAOD { // loop jet collection std::vector correctedJets; std::vector JetTagValues; - unsigned int mult = 0, loosemult = 0, multBDeepJetM = 0; + unsigned int mult = 0, loosemult = 0, multBPNetM = 0; edm::Handle> jets; if (!event.getByToken(jets_, jets)) { @@ -579,15 +579,18 @@ namespace TopSingleLepton_miniAOD { correctedJets.push_back(monitorJet); ++loosemult; // determine jet multiplicity - double discriminator = monitorJet.bDiscriminator("pfDeepFlavourJetTags:probb") + - monitorJet.bDiscriminator("pfDeepFlavourJetTags:probbb") + - monitorJet.bDiscriminator("pfDeepFlavourJetTags:problepb"); + //ParticleNet discriminator + + double discriminator = + monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") > 0 + ? monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") + : -1; - fill("jetBDeepJet_", discriminator); //hard coded discriminator and value right now. - if (discriminator > 0.2435) - ++multBDeepJetM; + fill("jetBPNet_", discriminator); //hard coded discriminator and value right now. + if (discriminator > 0.1919) + ++multBPNetM; - // Fill a vector with Jet b-tag WP for later M3+1tag calculation: DeepJet + // Fill a vector with Jet b-tag WP for later M3+1tag calculation: PNet // tagger JetTagValues.push_back(discriminator); // } @@ -618,7 +621,7 @@ namespace TopSingleLepton_miniAOD { } fill("jetMult_", mult); fill("jetLooseMult_", loosemult); - fill("jetMultBDeepJetM_", multBDeepJetM); + fill("jetMultBPNetM_", multBPNetM); /* ------------------------------------------------------------ @@ -638,7 +641,7 @@ namespace TopSingleLepton_miniAOD { unsigned int idx = met_ - mets_.begin(); if (idx == 0) fill("slimmedMETs_", met->begin()->et()); - if (idx == 2) + if (idx == 1) fill("slimmedMETsPuppi_", met->begin()->et()); } } @@ -661,13 +664,13 @@ namespace TopSingleLepton_miniAOD { fill("massTop_", topMass); } - // Fill M3 with Btag (DeepJet Tight) requirement + // Fill M3 with Btag (PNet Tight) requirement // if (!includeBTag_) return; if (correctedJets.size() != JetTagValues.size()) return; - double btopMass = eventKinematics.massBTopQuark(correctedJets, JetTagValues, 0.2435); //hard coded DeepJet value + double btopMass = eventKinematics.massBTopQuark(correctedJets, JetTagValues, 0.2435); //hard coded PNet value if (btopMass >= 0) fill("massBTop_", btopMass); diff --git a/DQM/Physics/test/topDQM_production_miniAOD.py b/DQM/Physics/test/topDQM_production_miniAOD.py index 87052e4d24c1c..a2517d89a3946 100644 --- a/DQM/Physics/test/topDQM_production_miniAOD.py +++ b/DQM/Physics/test/topDQM_production_miniAOD.py @@ -15,10 +15,7 @@ process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring()) process.source.skipEvents = cms.untracked.uint32(0) -process.source.fileNames = ['/store/mc/Run3Winter24MiniAOD/TT_TuneCP5_13p6TeV_powheg-pythia8/MINIAODSIM/133X_mcRun3_2024_realistic_v8-v2/2540000/01f73297-b0d8-4458-a1c0-34a17148ca4a.root'] - -#process.source.fileNames = ['/store/relval/CMSSW_11_1_0_pre2/RelValTTbar_14TeV/MINIAODSIM/110X_mcRun3_2021_realistic_v6-v1/20000/F594311A-0167-1A41-9984-753E9AFB1279.root'] - +process.source.fileNames = ['/store/relval/CMSSW_14_2_0_pre3/RelValTTbar_14TeV/MINIAODSIM/PU_140X_mcRun3_2024_realistic_v26_STD_2024_PU-v1/2590000/a102b4b1-a67d-4b75-ae76-438f4dde5deb.root'] ## number of events process.maxEvents = cms.untracked.PSet( From e7a0578bf8a8d8969ea3531bfea9aa04817ad655 Mon Sep 17 00:00:00 2001 From: Dimitrios Sidiropoulos Kontos Date: Mon, 25 Nov 2024 17:18:13 +0100 Subject: [PATCH 119/418] topSingleLeptonDQM RECO plots filled --- DQM/Physics/python/topSingleLeptonDQM_cfi.py | 35 +++++----- DQM/Physics/src/TopSingleLeptonDQM.cc | 73 ++++++++++---------- DQM/Physics/src/TopSingleLeptonDQM.h | 51 +++++++------- DQM/Physics/test/topDQM_harvesting_cfg.py | 2 +- DQM/Physics/test/topDQM_production_cfg.py | 10 +-- 5 files changed, 85 insertions(+), 86 deletions(-) diff --git a/DQM/Physics/python/topSingleLeptonDQM_cfi.py b/DQM/Physics/python/topSingleLeptonDQM_cfi.py index 69bba35a7b60f..cd4d49d19a379 100644 --- a/DQM/Physics/python/topSingleLeptonDQM_cfi.py +++ b/DQM/Physics/python/topSingleLeptonDQM_cfi.py @@ -21,7 +21,7 @@ tightIsoCut = "(pfIsolationR04.sumChargedHadronPt + max(0., pfIsolationR04.sumNeutralHadronEt + pfIsolationR04.sumPhotonEt - 0.5 * pfIsolationR04.sumPUPt) ) / pt < 0.15" #Electron selections -looseEleCut = "(( full5x5_sigmaIetaIeta() < 0.011 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00477 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.222 && hadronicOverEm() < 0.298 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.241 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) < 1.479) || (full5x5_sigmaIetaIeta() < 0.0314 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00868 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.213 && hadronicOverEm() < 0.101 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.14 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) > 1.479))" +looseEleCut = "((full5x5_sigmaIetaIeta() < 0.011 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00477 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.222 && hadronicOverEm() < 0.298 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.241 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) < 1.479) || (full5x5_sigmaIetaIeta() < 0.0314 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00868 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.213 && hadronicOverEm() < 0.101 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.14 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) > 1.479))" tightEleCut = "((full5x5_sigmaIetaIeta() < 0.00998 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00308 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.0816 && hadronicOverEm() < 0.0414 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.0129 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) < 1.479) || (full5x5_sigmaIetaIeta() < 0.0292 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00605 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.0394 && hadronicOverEm() < 0.0641 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.0129 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) > 1.479))" @@ -61,15 +61,15 @@ isolation = cms.string(looseIsoCut) ), jetExtras = cms.PSet( - jetCorrector = cms.InputTag("dqmAk4PFCHSL1FastL2L3Corrector"), #Use pak4PFCHSL1FastL2L3Residual for data!!! - select = cms.string("pt>30 & abs(eta)< 2.4"), - jetBTaggers = cms.PSet( + jetCorrector = cms.InputTag("dqmAk4PFCHSL1FastL2L3Corrector"), #Use pak4PFCHSL1FastL2L3Residual for data!!! + select = cms.string("pt>30 & abs(eta)<2.4"), + jetBTaggers = cms.PSet( cvsVertex = cms.PSet( - label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"), - workingPoint = cms.double(0.890) - # CSV Medium from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X + label = cms.InputTag("pfDeepCSVJetTags:probb"), + workingPoint = cms.double(0.4168) + # deepCSV Medium from https://btv-wiki.docs.cern.ch/ScaleFactors/UL2018/ ) - ), + ), ), massExtras = cms.PSet( lowerEdge = cms.double( 70.), @@ -121,16 +121,15 @@ jets = cms.InputTag("ak4PFJetsCHS"), mets = cms.VInputTag("pfMet"), pvs = cms.InputTag("offlinePrimaryVertices") - ), monitoring = cms.PSet( verbosity = cms.string("DEBUG") ), pvExtras = cms.PSet( - select = cms.string(PVCut) + select = cms.string(PVCut) ), elecExtras = cms.PSet( - select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660)"), + select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660)"), rho = cms.InputTag("fixedGridRhoFastjetAll"), ), muonExtras = cms.PSet( @@ -140,13 +139,13 @@ jetExtras = cms.PSet( jetCorrector = cms.InputTag("dqmAk4PFCHSL1FastL2L3Corrector"), #Use pak4PFCHSL1FastL2L3Residual for data!!! select = cms.string("pt>30 & abs(eta)<2.4"), - jetBTaggers = cms.PSet( - cvsVertex = cms.PSet( - label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"), - workingPoint = cms.double(0.890) - # CSV Medium from https://twiki.cern.ch/twiki/bin/viewauth/CMS/BtagRecommendation74X + jetBTaggers = cms.PSet( + cvsVertex = cms.PSet( + label = cms.InputTag("pfDeepCSVJetTags:probb"), + workingPoint = cms.double(0.4168) + # deepCSV Medium from https://btv-wiki.docs.cern.ch/ScaleFactors/UL2018/ ) - ), + ) ), massExtras = cms.PSet( lowerEdge = cms.double( 70.), @@ -164,7 +163,7 @@ label = cms.string("elecs:step0"), src = cms.InputTag("gedGsfElectrons"), select = cms.string("pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660) &&" + tightEleCut), - # select = cms.string("pt>30 & abs(eta)<2.5 & abs(gsfTrack.d0)<0.02 & gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 0 & (abs(superCluster.eta) <= 1.4442 || abs(superCluster.eta) >= 1.5660) & " + EletightIsoCut), + # select = cms.string("pt>30 & abs(eta)<2.5 & abs(gsfTrack.d0)<0.02 & gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 0 & (abs(superCluster.eta) <= 1.4442 || abs(superCluster.eta) >= 1.5660) & " + EletightIsoCut), min = cms.int32(1), ), cms.PSet( diff --git a/DQM/Physics/src/TopSingleLeptonDQM.cc b/DQM/Physics/src/TopSingleLeptonDQM.cc index 5eb2af655846d..b804f0e8a9f8e 100644 --- a/DQM/Physics/src/TopSingleLeptonDQM.cc +++ b/DQM/Physics/src/TopSingleLeptonDQM.cc @@ -86,14 +86,14 @@ namespace TopSingleLepton { // select is optional; in case it's not found no // selection will be applied if (muonExtras.existsAs("select")) { - muonSelect_ = std::make_unique>( - muonExtras.getParameter("select")); + muonSelect_ = + std::make_unique>(muonExtras.getParameter("select")); } // isolation is optional; in case it's not found no // isolation will be applied if (muonExtras.existsAs("isolation")) { - muonIso_ = std::make_unique>( - muonExtras.getParameter("isolation")); + muonIso_ = + std::make_unique>(muonExtras.getParameter("isolation")); } } @@ -206,7 +206,7 @@ namespace TopSingleLepton { // multiplicity of jets with pt>30 hists_["jetMult_"] = ibooker.book1D("JetMult", "N_{30}(jet)", 10, 0., 10.); // multiplicity of loose jets with pt>30 - hists_["jetMultLoose_"] = ibooker.book1D("JetMultLoose", "N_{30, loose}(jet)", 10, 0., 10.); + hists_["jetMultLoose_"] = ibooker.book1D("JetMultLoose", "N_{30,loose}(jet)", 10, 0., 10.); // trigger efficiency estimates for single lepton triggers // hists_["triggerEff_"] = ibooker.book1D("TriggerEff", @@ -357,7 +357,6 @@ namespace TopSingleLepton { pvMult++; } fill("pvMult_", pvMult); - /* ------------------------------------------------------------ @@ -376,10 +375,10 @@ namespace TopSingleLepton { // check availability of electron id edm::Handle> electronId; if (!electronId_.isUninitialized()) { - if (!event.getByToken(electronId_, electronId)) + if (!event.getByToken(electronId_, electronId)) { return; + } } - // loop electron collection unsigned int eMult = 0, eMultIso = 0; std::vector isoElecs; @@ -530,8 +529,9 @@ namespace TopSingleLepton { // check availability of the btaggers edm::Handle btagEff, btagPur, btagVtx, btagCSV; if (includeBTag_) { - if (!event.getByToken(btagCSV_, btagCSV)) + if(!event.getByToken(btagCSV_,btagCSV)){ return; + } } // loop jet collection @@ -555,7 +555,6 @@ namespace TopSingleLepton { if (!(*jetSelection_)(sel)) continue; } - // prepare jet to fill monitor histograms reco::Jet monitorJet = *jet; @@ -616,8 +615,9 @@ namespace TopSingleLepton { continue; if (met->begin() != met->end()) { //If we ever have to use more than one type of met again unsigned int idx = met_ - mets_.begin(); - if (idx == 0) + if (idx == 0) { fill("metPflow_", met->begin()->et()); + } } } @@ -630,7 +630,6 @@ namespace TopSingleLepton { */ // fill W boson and top mass estimates - Calculate eventKinematics(MAXJETS, WMASS); double wMass = eventKinematics.massWBoson(correctedJets); double topMass = eventKinematics.massTopQuark(correctedJets); @@ -646,8 +645,9 @@ namespace TopSingleLepton { if (correctedJets.size() != JetTagValues.size()) return; double btopMass = eventKinematics.massBTopQuark(correctedJets, JetTagValues, btagCSVWP_); - if (btopMass >= 0) + if (btopMass >= 0) { fill("massBTop_", btopMass); + } // fill plots for trigger monitoring if ((lowerEdge_ == -1. && upperEdge_ == -1.) || (lowerEdge_ < wMass && wMass < upperEdge_)) { @@ -686,7 +686,9 @@ TopSingleLeptonDQM::TopSingleLeptonDQM(const edm::ParameterSet& cfg) JetSteps.clear(); CaloJetSteps.clear(); PFJetSteps.clear(); + // configure preselection + edm::ParameterSet presel = cfg.getParameter("preselection"); if (presel.existsAs("trigger")) { edm::ParameterSet trigger = presel.getParameter("trigger"); @@ -748,19 +750,23 @@ void TopSingleLeptonDQM::bookHistograms(DQMStore::IBooker& ibooker, edm::Run con void TopSingleLeptonDQM::analyze(const edm::Event& event, const edm::EventSetup& setup) { if (!triggerTable__.isUninitialized()) { edm::Handle triggerTable; - if (!event.getByToken(triggerTable__, triggerTable)) + if (!event.getByToken(triggerTable__, triggerTable)) { return; - if (!accept(event, *triggerTable, triggerPaths_)) + } + if (!accept(event, *triggerTable, triggerPaths_)) { return; + } } if (!beamspot__.isUninitialized()) { edm::Handle beamspot; - if (!event.getByToken(beamspot__, beamspot)) + if (!event.getByToken(beamspot__, beamspot)) { return; - if (!(*beamspotSelect_)(*beamspot)) + } + if (!(*beamspotSelect_)(*beamspot)) { return; + } } - // cout<<" apply selection steps"<select(event)) { - // cout<<"selected event! "<fill(event, setup); - } else + } else { break; + } } - // cout<<" apply selection steps 2"<select(event, "electron")) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } - // cout<<" apply selection steps 3"<selectVertex(event)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } - // cout<<" apply selection steps 4"<select(event, setup)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } } if (type == "jets/pf") { @@ -808,8 +813,9 @@ void TopSingleLeptonDQM::analyze(const edm::Event& event, const edm::EventSetup& if (PFJetSteps[nPFJetSteps] != nullptr) { if (PFJetSteps[nPFJetSteps]->select(event, setup)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } } if (type == "jets/calo") { @@ -817,21 +823,18 @@ void TopSingleLeptonDQM::analyze(const edm::Event& event, const edm::EventSetup& if (CaloJetSteps[nCaloJetSteps] != nullptr) { if (CaloJetSteps[nCaloJetSteps]->select(event, setup)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } } if (type == "met" && METStep != nullptr) { if (METStep->select(event)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } } } } - -// Local Variables: -// show-trailing-whitespace: t -// truncate-lines: t -// End: diff --git a/DQM/Physics/src/TopSingleLeptonDQM.h b/DQM/Physics/src/TopSingleLeptonDQM.h index fdbc55e0e4957..122102654c050 100644 --- a/DQM/Physics/src/TopSingleLeptonDQM.h +++ b/DQM/Physics/src/TopSingleLeptonDQM.h @@ -105,12 +105,13 @@ namespace TopSingleLepton { /// instance label std::string label_; /// considers a vector of METs - std::vector > > mets_; + std::vector>> mets_; /// input sources for monitoring - edm::EDGetTokenT > jets_; - edm::EDGetTokenT > muons_; - edm::EDGetTokenT > elecs_; - edm::EDGetTokenT > pvs_; + edm::EDGetTokenT> jets_; + edm::EDGetTokenT> muons_; + edm::EDGetTokenT> elecs_; + edm::EDGetTokenT> pvs_; + edm::EDGetTokenT> jetToken_; /// trigger table edm::EDGetTokenT triggerTable_; /// trigger paths for monitoring, expected @@ -118,7 +119,7 @@ namespace TopSingleLepton { std::vector triggerPaths_; /// electronId label - edm::EDGetTokenT > electronId_; + edm::EDGetTokenT> electronId_; /// electronId pattern we expect the following pattern: /// 0: fails @@ -140,17 +141,17 @@ namespace TopSingleLepton { /// extra selection on electrons - std::unique_ptr > elecSelect_; + std::unique_ptr> elecSelect_; /// extra selection on primary vertices; meant to investigate the pile-up /// effect - std::unique_ptr > pvSelect_; + std::unique_ptr> pvSelect_; /// extra isolation criterion on muon - std::unique_ptr > muonIso_; + std::unique_ptr> muonIso_; /// extra selection on muons - std::unique_ptr > muonSelect_; + std::unique_ptr> muonSelect_; /// jetCorrector edm::EDGetTokenT jetCorrector_; @@ -158,11 +159,11 @@ namespace TopSingleLepton { /// jetID as an extra selection type edm::EDGetTokenT jetIDLabel_; - std::unique_ptr > jetIDSelect_; + std::unique_ptr> jetIDSelect_; /// extra selection on jets std::string jetSelect_; - std::unique_ptr > jetlooseSelection_; - std::unique_ptr > jetSelection_; + std::unique_ptr> jetlooseSelection_; + std::unique_ptr> jetSelection_; /// include btag information or not /// to be determined from the cfg bool includeBTag_; @@ -245,8 +246,8 @@ namespace TopSingleLepton { - jets : of type reco::Jet (jets), reco::CaloJet (jets/calo) or reco::PFJet (jets/pflow) - - elecs : of type reco::PFCandidate - - muons : of type reco::PFCandidate + - elecs : of type reco::GsfElectron + - muons : of type reco::Muon - met : of type reco::MET These types have to be present as prefix of the selection step paramter @@ -289,13 +290,13 @@ class TopSingleLeptonDQM : public DQMOneEDAnalyzer<> { /// trigger paths std::vector triggerPaths_; /// string cut selector - std::unique_ptr > vertexSelect_; + std::unique_ptr> vertexSelect_; /// beamspot edm::InputTag beamspot_; edm::EDGetTokenT beamspot__; /// string cut selector - std::unique_ptr > beamspotSelect_; + std::unique_ptr> beamspotSelect_; /// needed to guarantee the selection order as defined by the order of /// ParameterSets in the _selection_ vector as defined in the config @@ -305,14 +306,14 @@ class TopSingleLeptonDQM : public DQMOneEDAnalyzer<> { /// the configuration of the selection for the SelectionStep class, /// MonitoringEnsemble keeps an instance of the MonitorEnsemble class to /// be filled _after_ each selection step - std::map > > selection_; - std::unique_ptr > MuonStep; - std::unique_ptr > ElectronStep; - std::unique_ptr > PvStep; - std::unique_ptr > METStep; - std::vector > > JetSteps; - std::vector > > CaloJetSteps; - std::vector > > PFJetSteps; + std::map>> selection_; + std::unique_ptr> MuonStep; + std::unique_ptr> ElectronStep; + std::unique_ptr> PvStep; + std::unique_ptr> METStep; + std::vector>> JetSteps; + std::vector>> CaloJetSteps; + std::vector>> PFJetSteps; std::vector sel_; edm::ParameterSet setup_; diff --git a/DQM/Physics/test/topDQM_harvesting_cfg.py b/DQM/Physics/test/topDQM_harvesting_cfg.py index f57a3f44265eb..23ad2f5c33a7c 100644 --- a/DQM/Physics/test/topDQM_harvesting_cfg.py +++ b/DQM/Physics/test/topDQM_harvesting_cfg.py @@ -36,7 +36,7 @@ process.dqmSaver.saveByRun = cms.untracked.int32( -1) process.dqmSaver.saveAtJobEnd = cms.untracked.bool(True) process.dqmSaver.forceRunNumber = cms.untracked.int32( 1) -process.dqmSaver.workflow = cms.untracked.string('/TopVal/CMSSW_14_1_0_pre6/RECO') ## adapt apropriately +process.dqmSaver.workflow = cms.untracked.string('/TopVal/CMSSW_14_2_0_pre4/RECO') ## adapt apropriately ## path definitions diff --git a/DQM/Physics/test/topDQM_production_cfg.py b/DQM/Physics/test/topDQM_production_cfg.py index 1de513e887255..5b578562b3ae7 100644 --- a/DQM/Physics/test/topDQM_production_cfg.py +++ b/DQM/Physics/test/topDQM_production_cfg.py @@ -14,14 +14,10 @@ #process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T15', '') process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic', '') - process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring()) process.source.skipEvents = cms.untracked.uint32(0) - -#process.source.fileNames = ['/store/relval/CMSSW_11_1_0_pre2/RelValTTbar_14TeV/GEN-SIM-RECO/110X_mcRun4_realistic_v2_2026D49noPU-v1/20000/02837764-A8F6-214F-AEE2-BCAEAAD7952A.root'] - -process.source.fileNames = ['/store/relval/CMSSW_14_1_0_pre5/RelValTTbar_14TeV/GEN-SIM-RECO/PU_140X_mcRun3_2024_realistic_v11_STD_2024_PU-v1/2580000/0a22c2b9-713c-4134-abd7-664c8b34ce94.root'] +process.source.fileNames = ['root://cmsxrootd.fnal.gov//store/relval/CMSSW_14_2_0_pre3/RelValTTbar_14TeV/GEN-SIM-RECO/PU_140X_mcRun3_2024_realistic_v26_STD_2024_PU-v1/2590000/3c568c90-b6ff-43be-9b24-8b4e9d862185.root'] ## number of events process.maxEvents = cms.untracked.PSet( @@ -79,10 +75,10 @@ #process.topSingleMuonMediumDQM + # process.EIsequence * process.jetCorrectorsSeq * process.dqmAk4PFCHSL1FastL2L3CorrectorChain * - process.topSingleMuonMediumDQM + + process.topSingleMuonMediumDQM + #process.topSingleElectronLooseDQM + #process.ak4PFCHSL1FastL2L3CorrectorChain * - process.topSingleElectronMediumDQM + + process.topSingleElectronMediumDQM + #process.ak4PFCHSL1FastL2L3CorrectorChain * process.singleTopMuonMediumDQM + #process.ak4PFCHSL1FastL2L3CorrectorChain * From 948df61432db8b3e5a6b8ac0f9f8ff8eb05e0f55 Mon Sep 17 00:00:00 2001 From: Dimitrios Sidiropoulos Kontos Date: Mon, 25 Nov 2024 17:18:29 +0100 Subject: [PATCH 120/418] singleTopDQM RECO plots filled --- DQM/Physics/python/singleTopDQM_cfi.py | 48 +++--- DQM/Physics/src/SingleTopTChannelLeptonDQM.cc | 142 ++++++++++-------- DQM/Physics/src/SingleTopTChannelLeptonDQM.h | 60 ++++---- 3 files changed, 133 insertions(+), 117 deletions(-) diff --git a/DQM/Physics/python/singleTopDQM_cfi.py b/DQM/Physics/python/singleTopDQM_cfi.py index 05592145f68f6..7286aa64f0398 100644 --- a/DQM/Physics/python/singleTopDQM_cfi.py +++ b/DQM/Physics/python/singleTopDQM_cfi.py @@ -9,21 +9,21 @@ tightJetCut = "(chargedHadronEnergyFraction()>0 && chargedMultiplicity()>0 && chargedEmEnergyFraction()<0.99 && neutralHadronEnergyFraction()<0.90 && neutralEmEnergyFraction()<0.90 && (chargedMultiplicity()+neutralMultiplicity())>1) && abs(eta)<=2.4 " #Loose muon selection -looseMuonCut = "(muonRef.isNonnull && (muonRef.isGlobalMuon || muonRef.isTrackerMuon) && muonRef.isPFMuon)" -looseIsoCut = "(muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.25" +looseMuonCut = "((isGlobalMuon || isTrackerMuon) && isPFMuon)" +looseIsoCut = "((pfIsolationR04.sumChargedHadronPt + max(0., pfIsolationR04.sumNeutralHadronEt + pfIsolationR04.sumPhotonEt - 0.5 * pfIsolationR04.sumPUPt) ) / pt < 0.25)" #Medium muon selection. Also requires either good global muon or tight segment compatibility -mediumMuonCut = looseMuonCut + " muonRef.innerTrack.validFraction > 0.8" +mediumMuonCut = looseMuonCut + " innerTrack.validFraction > 0.8" #Tight muon selection. Lacks distance to primary vertex variables, dz<0.5, dxy < 0.2. Now done at .cc -tightMuonCut = "muonRef.isNonnull && muonRef.isGlobalMuon && muonRef.isPFMuon && muonRef.globalTrack.normalizedChi2 < 10. && muonRef.globalTrack.hitPattern.numberOfValidMuonHits > 0 && " + \ - "muonRef.numberOfMatchedStations > 1 && muonRef.innerTrack.hitPattern.numberOfValidPixelHits > 0 && muonRef.innerTrack.hitPattern.trackerLayersWithMeasurement > 5 " -tightIsoCut = "(muonRef.pfIsolationR04.sumChargedHadronPt + max(0., muonRef.pfIsolationR04.sumNeutralHadronEt + muonRef.pfIsolationR04.sumPhotonEt - 0.5 * muonRef.pfIsolationR04.sumPUPt) ) / muonRef.pt < 0.15" +tightMuonCut = "isGlobalMuon && isPFMuon && globalTrack.normalizedChi2 < 10. && globalTrack.hitPattern.numberOfValidMuonHits > 0 && " + \ + "numberOfMatchedStations > 1 && innerTrack.hitPattern.numberOfValidPixelHits > 0 && innerTrack.hitPattern.trackerLayersWithMeasurement > 5 " +tightIsoCut = "(pfIsolationR04.sumChargedHadronPt + max(0., pfIsolationR04.sumNeutralHadronEt + pfIsolationR04.sumPhotonEt - 0.5 * pfIsolationR04.sumPUPt) ) / pt < 0.15" #Electron selections -looseEleCut = "(( gsfElectronRef.full5x5_sigmaIetaIeta() < 0.011 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00477 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.222 && gsfElectronRef.hadronicOverEm() < 0.298 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.241 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) < 1.479) || (gsfElectronRef.full5x5_sigmaIetaIeta() < 0.0314 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00868 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.213 && gsfElectronRef.hadronicOverEm() < 0.101 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.14 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) > 1.479))" +looseEleCut = "((full5x5_sigmaIetaIeta() < 0.011 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00477 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.222 && hadronicOverEm() < 0.298 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.241 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) < 1.479) || (full5x5_sigmaIetaIeta() < 0.0314 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00868 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.213 && hadronicOverEm() < 0.101 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.14 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) > 1.479))" -tightEleCut = "((gsfElectronRef.full5x5_sigmaIetaIeta() < 0.00998 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00308 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.0816 && gsfElectronRef.hadronicOverEm() < 0.0414 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.0129 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) < 1.479) || (gsfElectronRef.full5x5_sigmaIetaIeta() < 0.0292 && gsfElectronRef.superCluster().isNonnull() && gsfElectronRef.superCluster().seed().isNonnull() && (gsfElectronRef.deltaEtaSuperClusterTrackAtVtx() - gsfElectronRef.superCluster().eta() + gsfElectronRef.superCluster().seed().eta()) < 0.00605 && abs(gsfElectronRef.deltaPhiSuperClusterTrackAtVtx()) < 0.0394 && gsfElectronRef.hadronicOverEm() < 0.0641 && abs(1.0 - gsfElectronRef.eSuperClusterOverP())*1.0/gsfElectronRef.ecalEnergy() < 0.0129 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(gsfElectronRef.superCluster().eta()) > 1.479))" +tightEleCut = "((full5x5_sigmaIetaIeta() < 0.00998 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00308 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.0816 && hadronicOverEm() < 0.0414 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.0129 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) < 1.479) || (full5x5_sigmaIetaIeta() < 0.0292 && superCluster().isNonnull() && superCluster().seed().isNonnull() && (deltaEtaSuperClusterTrackAtVtx() - superCluster().eta() + superCluster().seed().eta()) < 0.00605 && abs(deltaPhiSuperClusterTrackAtVtx()) < 0.0394 && hadronicOverEm() < 0.0641 && abs(1.0 - eSuperClusterOverP())*1.0/ecalEnergy() < 0.0129 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 1 && abs(superCluster().eta()) > 1.479))" from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer @@ -37,8 +37,8 @@ setup = cms.PSet( directory = cms.string("Physics/Top/SingleTopMuonMediumDQM/"), sources = cms.PSet( - muons = cms.InputTag("pfIsolatedMuonsEI"), - elecs = cms.InputTag("pfIsolatedElectronsEI"), + muons = cms.InputTag("muons"), + elecs = cms.InputTag("gedGsfElectrons"), jets = cms.InputTag("ak4PFJetsCHS"), mets = cms.VInputTag("pfMet"), pvs = cms.InputTag("offlinePrimaryVertices") @@ -50,7 +50,7 @@ select = cms.string(PVCut) ), elecExtras = cms.PSet( - select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660)"), + select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660)"), rho = cms.InputTag("fixedGridRhoFastjetAll"), ), muonExtras = cms.PSet( @@ -62,10 +62,10 @@ select = cms.string("pt>30 & abs(eta)< 2.4"), jetBTaggers = cms.PSet( cvsVertex = cms.PSet( - label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"), - workingPoint = cms.double(0.890) + label = cms.InputTag("pfDeepCSVJetTags:probb"), + workingPoint = cms.double(0.4168) ) - ), + ) ), massExtras = cms.PSet( lowerEdge = cms.double( 70.), @@ -87,7 +87,7 @@ selection = cms.VPSet( cms.PSet( label = cms.string("muons/pf:step0"), - src = cms.InputTag("pfIsolatedMuonsEI"), + src = cms.InputTag("muons"), select = cms.string(tightMuonCut + " && pt>20 & abs(eta)<2.4"), min = cms.int32(1), ), @@ -118,8 +118,8 @@ ## communication to TopCom! directory = cms.string("Physics/Top/SingleTopElectronMediumDQM/"), sources = cms.PSet( - muons = cms.InputTag("pfIsolatedMuonsEI"), - elecs = cms.InputTag("pfIsolatedElectronsEI"), + muons = cms.InputTag("muons"), + elecs = cms.InputTag("gedGsfElectrons"), jets = cms.InputTag("ak4PFJetsCHS"), mets = cms.VInputTag("pfMet"), pvs = cms.InputTag("offlinePrimaryVertices") @@ -131,7 +131,7 @@ select = cms.string(PVCut) ), elecExtras = cms.PSet( - select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660)"), + select = cms.string(tightEleCut + "& pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660)"), rho = cms.InputTag("fixedGridRhoFastjetAll"), ), muonExtras = cms.PSet( @@ -143,10 +143,10 @@ select = cms.string("pt>30 & abs(eta)< 2.4"), jetBTaggers = cms.PSet( cvsVertex = cms.PSet( - label = cms.InputTag("pfCombinedInclusiveSecondaryVertexV2BJetTags"), - workingPoint = cms.double(0.890) + label = cms.InputTag("pfDeepCSVJetTags:probb"), + workingPoint = cms.double(0.4168) ) - ), + ) ), massExtras = cms.PSet( lowerEdge = cms.double( 70.), @@ -175,14 +175,14 @@ # label = cms.string("elecs/pf:step0"), # src = cms.InputTag("pfIsolatedElectronsEI"), # electronId = cms.PSet( src = cms.InputTag("mvaTrigV0"), cutValue = cms.double(0.5) ), -# select = cms.string("pt>30 & abs(eta)<2.5 & abs(gsfElectronRef.gsfTrack.d0)<0.02 && gsfElectronRef.gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 0 && (abs(gsfElectronRef.superCluster.eta) <= 1.4442 || abs(gsfElectronRef.superCluster.eta) >= 1.5660) && " + EletightIsoCut), +# select = cms.string("pt>30 & abs(eta)<2.5 & abs(gsfTrack.d0)<0.02 && gsfTrack.hitPattern().numberOfLostHits('MISSING_INNER_HITS') <= 0 && (abs(superCluster.eta) <= 1.4442 || abs(superCluster.eta) >= 1.5660) && " + EletightIsoCut), # min = cms.int32(1), # max = cms.int32(1), # ),*/ cms.PSet( label = cms.string("elecs/pf:step0"), - src = cms.InputTag("pfIsolatedElectronsEI"), - select = cms.string("pt>20 & abs(eta)<2.5 & (abs(gsfElectronRef.superCluster().eta()) <= 1.4442 || abs(gsfElectronRef.superCluster().eta()) >= 1.5660) &&" + tightEleCut), + src = cms.InputTag("gedGsfElectrons"), + select = cms.string("pt>20 & abs(eta)<2.5 & (abs(superCluster().eta()) <= 1.4442 || abs(superCluster().eta()) >= 1.5660) &&" + tightEleCut), min = cms.int32(1), ), cms.PSet( diff --git a/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc b/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc index 0633d6becb838..e33e0f5074f7b 100644 --- a/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc +++ b/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc @@ -4,6 +4,7 @@ #include "DataFormats/GsfTrackReco/interface/GsfTrack.h" #include "DataFormats/JetReco/interface/CaloJet.h" #include "DataFormats/JetReco/interface/PFJet.h" + #include "DataFormats/Math/interface/deltaR.h" #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h" #include "DataFormats/VertexReco/interface/Vertex.h" @@ -44,8 +45,8 @@ namespace SingleTopTChannelLepton { logged_(0) { // sources have to be given; this PSet is not optional edm::ParameterSet sources = cfg.getParameter("sources"); - muons_ = iC.consumes>(sources.getParameter("muons")); - elecs_ = iC.consumes>(sources.getParameter("elecs")); + muons_ = iC.consumes>(sources.getParameter("muons")); + elecs_ = iC.consumes>(sources.getParameter("elecs")); jets_ = iC.consumes>(sources.getParameter("jets")); for (edm::InputTag const& tag : sources.getParameter>("mets")) mets_.push_back(iC.consumes>(tag)); @@ -61,7 +62,7 @@ namespace SingleTopTChannelLepton { // select is optional; in case it's not found no // selection will be applied if (elecExtras.existsAs("select")) { - elecSelect_ = std::make_unique>( + elecSelect_ = std::make_unique>( elecExtras.getParameter("select")); } @@ -92,14 +93,14 @@ namespace SingleTopTChannelLepton { // select is optional; in case it's not found no // selection will be applied if (muonExtras.existsAs("select")) { - muonSelect_ = std::make_unique>( - muonExtras.getParameter("select")); + muonSelect_ = + std::make_unique>(muonExtras.getParameter("select")); } // isolation is optional; in case it's not found no // isolation will be applied if (muonExtras.existsAs("isolation")) { - muonIso_ = std::make_unique>( - muonExtras.getParameter("isolation")); + muonIso_ = + std::make_unique>(muonExtras.getParameter("isolation")); } } @@ -131,7 +132,6 @@ namespace SingleTopTChannelLepton { "neutralHadronEnergyFraction()<0.99 && neutralEmEnergyFraction()<0.99 && " "(chargedMultiplicity()+neutralMultiplicity())>1"); } - // jetBDiscriminators are optional; in case they are // not found the InputTag will remain empty; they // consist of pairs of edm::JetFlavorAssociation's & @@ -139,7 +139,7 @@ namespace SingleTopTChannelLepton { includeBTag_ = jetExtras.existsAs("jetBTaggers"); if (includeBTag_) { edm::ParameterSet btagCSV = - jetExtras.getParameter("jetBTaggers").getParameter("cvsVertex"); + jetExtras.getParameter("jetBTaggers").getParameter("cvsVertex"); btagCSV_ = iC.consumes(btagCSV.getParameter("label")); btagCSVWP_ = btagCSV.getParameter("workingPoint"); } @@ -198,8 +198,8 @@ namespace SingleTopTChannelLepton { hists_["elecPt_"] = ibooker.book1D("ElecPt", "pt(e TightId, TightIso)", 40, 0., 200.); // multiplicity of jets with pt>30 (corrected to L1+L2+L3) hists_["jetMult_"] = ibooker.book1D("JetMult", "N_{30}(jet)", 10, 0., 10.); - // multiplicity of loose Id jets with pt>30 - hists_["jetLooseMult_"] = ibooker.book1D("JetLooseMult", "N_{30,loose}(jet)", 10, 0., 10.); + // multiplicity of loose jets with pt>30 + hists_["jetMultLoose_"] = ibooker.book1D("JetMultLoose", "N_{30,loose}(jet)", 10, 0., 10.); // MET (pflow) hists_["metPflow_"] = ibooker.book1D("METPflow", "MET_{Pflow}", 50, 0., 200.); @@ -240,6 +240,7 @@ namespace SingleTopTChannelLepton { // multiplicity of tight Id, tight Iso electorns hists_["elecMultTight_"] = ibooker.book1D("ElecMultTight", "N_{TightIso,TightId}(e)", 10, 0., 10.); + // eta of the 1. leading jet (corrected to L2+L3) hists_["jet1Eta_"] = ibooker.book1D("Jet1Eta", "#eta_{30,loose}(jet1)", 60, -3., 3.); // pt of the 1. leading jet (corrected to L2+L3) hists_["jet1Pt_"] = ibooker.book1D("Jet1Pt", "pt_{30,loose}(jet1)", 60, 0., 300.); @@ -247,7 +248,14 @@ namespace SingleTopTChannelLepton { hists_["jet2Eta_"] = ibooker.book1D("Jet2Eta", "#eta_{30,loose}(jet2)", 60, -3., 3.); // pt of the 2. leading jet (corrected to L2+L3) hists_["jet2Pt_"] = ibooker.book1D("Jet2Pt", "pt_{30,loose}(jet2)", 60, 0., 300.); - + // eta of the 3. leading jet (corrected to L2+L3) + hists_["jet3Eta_"] = ibooker.book1D("Jet3Eta", "#eta_{30,loose}(jet3)", 60, -3., 3.); + // pt of the 3. leading jet (corrected to L2+L3) + hists_["jet3Pt_"] = ibooker.book1D("Jet3Pt", "pt_{30,loose}(jet3)", 60, 0., 300.); + // eta of the 4. leading jet (corrected to L2+L3) + hists_["jet4Eta_"] = ibooker.book1D("Jet4Eta", "#eta_{30,loose}(jet4)", 60, -3., 3.); + // pt of the 4. leading jet (corrected to L2+L3) + hists_["jet4Pt_"] = ibooker.book1D("Jet4Pt", "pt_{30,loose}(jet4)", 60, 0., 300.); // dz for muons (to suppress cosmis) hists_["muonDelZ_"] = ibooker.book1D("MuonDelZ", "d_{z}(#mu)", 50, -25., 25.); // dxy for muons (to suppress cosmics) @@ -321,7 +329,6 @@ namespace SingleTopTChannelLepton { ------------------------------------------------------------ */ - // fill monitoring plots for primary verices edm::Handle> pvs; @@ -343,11 +350,10 @@ namespace SingleTopTChannelLepton { */ // fill monitoring plots for electrons - edm::Handle> elecs; + edm::Handle> elecs; reco::GsfElectron e; edm::Handle _rhoHandle; event.getByLabel(rhoTag, _rhoHandle); - if (!event.getByToken(elecs_, elecs)) return; @@ -360,23 +366,15 @@ namespace SingleTopTChannelLepton { } // loop electron collection unsigned int eMult = 0, eMultIso = 0; - std::vector isoElecs; - - for (edm::View::const_iterator elec = elecs->begin(); elec != elecs->end(); ++elec) { - if (elec->gsfElectronRef().isNull()) { - continue; - } - reco::GsfElectronRef gsf_el = elec->gsfElectronRef(); + std::vector isoElecs; + for (edm::View::const_iterator elec = elecs->begin(); elec != elecs->end(); ++elec) { // restrict to electrons with good electronId - if (electronId_.isUninitialized() - ? true - : ((double)(*electronId)[gsf_el] >= - eidCutValue_)) { //This Electron Id is not currently used, but we can keep this for future needs + if (electronId_.isUninitialized()) { if (!elecSelect_ || (*elecSelect_)(*elec)) { - double el_ChHadIso = gsf_el->pfIsolationVariables().sumChargedHadronPt; - double el_NeHadIso = gsf_el->pfIsolationVariables().sumNeutralHadronEt; - double el_PhIso = gsf_el->pfIsolationVariables().sumPhotonEt; - double absEta = std::abs(gsf_el->superCluster()->eta()); + double el_ChHadIso = elec->pfIsolationVariables().sumChargedHadronPt; + double el_NeHadIso = elec->pfIsolationVariables().sumNeutralHadronEt; + double el_PhIso = elec->pfIsolationVariables().sumPhotonEt; + double absEta = std::fabs(elec->superCluster()->eta()); //Effective Area computation double eA = 0; @@ -396,7 +394,7 @@ namespace SingleTopTChannelLepton { eA = 0.2393; double rho = _rhoHandle.isValid() ? (float)(*_rhoHandle) : 0; - double el_pfRelIso = (el_ChHadIso + max(0., el_NeHadIso + el_PhIso - rho * eA)) / gsf_el->pt(); + double el_pfRelIso = (el_ChHadIso + max(0., el_NeHadIso + el_PhIso - rho * eA)) / elec->pt(); //Only TightId if (eMult == 0) { // Restricted to the leading tight electron @@ -412,10 +410,10 @@ namespace SingleTopTChannelLepton { // TightId and TightIso if (eMultIso == 0) { //Only leading - e = *gsf_el; - fill("elecPt_", gsf_el->pt()); - fill("elecEta_", gsf_el->eta()); - fill("elecPhi_", gsf_el->phi()); + e = *elec; + fill("elecPt_", elec->pt()); + fill("elecEta_", elec->eta()); + fill("elecPhi_", elec->phi()); } ++eMultIso; } @@ -435,26 +433,22 @@ namespace SingleTopTChannelLepton { // fill monitoring plots for muons unsigned int mMult = 0, mTight = 0, mTightId = 0; - edm::Handle> muons; - edm::View::const_iterator muonit; - reco::MuonRef muon; + edm::Handle> muons; + edm::View::const_iterator muon; + //reco::MuonRef muon; reco::Muon mu; if (!event.getByToken(muons_, muons)) return; - for (edm::View::const_iterator muonit = muons->begin(); muonit != muons->end(); ++muonit) { - if (muonit->muonRef().isNull()) - continue; - reco::MuonRef muon = muonit->muonRef(); - + for (edm::View::const_iterator muon = muons->begin(); muon != muons->end(); ++muon) { // restrict to globalMuons if (muon->isGlobalMuon()) { fill("muonDelZ_", muon->innerTrack()->vz()); // CB using inner track! fill("muonDelXY_", muon->innerTrack()->vx(), muon->innerTrack()->vy()); // apply preselection - if ((!muonSelect_ || (*muonSelect_)(*muonit))) { + if ((!muonSelect_ || (*muonSelect_)(*muon))) { mMult++; double chHadPt = muon->pfIsolationR04().sumChargedHadronPt; double neHadEt = muon->pfIsolationR04().sumNeutralHadronEt; @@ -584,6 +578,8 @@ namespace SingleTopTChannelLepton { } ++multCSV; } + // Fill a vector with Jet b-tag WP for later M3+1tag calculation: CSV + // tagger JetTagValues.push_back((*btagCSV)[jetRef]); } @@ -595,7 +591,15 @@ namespace SingleTopTChannelLepton { if (multLoose == 1) { fill("jet2Pt_", monitorJet.pt()); fill("jet2Eta_", monitorJet.eta()); - } + }; + if (multLoose == 2) { + fill("jet3Pt_", monitorJet.pt()); + fill("jet3Eta_", monitorJet.eta()); + }; + if (multLoose == 3) { + fill("jet4Pt_", monitorJet.pt()); + fill("jet4Eta_", monitorJet.eta()); + }; multLoose++; } } @@ -692,7 +696,7 @@ SingleTopTChannelLeptonDQM::SingleTopTChannelLeptonDQM(const edm::ParameterSet& PFElectronStep(nullptr), PvStep(nullptr), METStep(nullptr) { - JetSteps.clear(); + //JetSteps.clear(); CaloJetSteps.clear(); PFJetSteps.clear(); // configure preselection @@ -732,13 +736,13 @@ SingleTopTChannelLeptonDQM::SingleTopTChannelLeptonDQM(const edm::ParameterSet& MuonStep = std::make_unique>(selection_[key].first, consumesCollector()); } if (type == "muons/pf") { - PFMuonStep = std::make_unique>(selection_[key].first, consumesCollector()); + PFMuonStep = std::make_unique>(selection_[key].first, consumesCollector()); } if (type == "elecs") { ElectronStep = std::make_unique>(selection_[key].first, consumesCollector()); } if (type == "elecs/pf") { - PFElectronStep = std::make_unique>(selection_[key].first, consumesCollector()); + PFElectronStep = std::make_unique>(selection_[key].first, consumesCollector()); } if (type == "pvs") { PvStep = std::make_unique>(selection_[key].first, consumesCollector()); @@ -767,20 +771,24 @@ void SingleTopTChannelLeptonDQM::bookHistograms(DQMStore::IBooker& ibooker, edm: void SingleTopTChannelLeptonDQM::analyze(const edm::Event& event, const edm::EventSetup& setup) { if (!triggerTable__.isUninitialized()) { edm::Handle triggerTable; - if (!event.getByToken(triggerTable__, triggerTable)) + if (!event.getByToken(triggerTable__, triggerTable)) { return; - if (!accept(event, *triggerTable, triggerPaths_)) + } + if (!accept(event, *triggerTable, triggerPaths_)) { return; + } } if (!beamspot__.isUninitialized()) { edm::Handle beamspot; - if (!event.getByToken(beamspot__, beamspot)) + if (!event.getByToken(beamspot__, beamspot)) { return; - if (!(*beamspotSelect_)(*beamspot)) + } + if (!(*beamspotSelect_)(*beamspot)) { return; + } } // apply selection steps - unsigned int nJetSteps = -1; + //unsigned int nJetSteps = -1; unsigned int nPFJetSteps = -1; unsigned int nCaloJetSteps = -1; for (std::vector::const_iterator selIt = selectionOrder_.begin(); selIt != selectionOrder_.end(); @@ -796,44 +804,50 @@ void SingleTopTChannelLeptonDQM::analyze(const edm::Event& event, const edm::Eve if (type == "elecs" && ElectronStep != nullptr) { if (ElectronStep->select(event)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } if (type == "elecs/pf" && PFElectronStep != nullptr) { if (PFElectronStep->select(event, "electron")) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } if (type == "muons" && MuonStep != nullptr) { if (MuonStep->select(event)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } if (type == "muons/pf" && PFMuonStep != nullptr) { if (PFMuonStep->select(event, "muon")) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } - if (type == "jets") { + /*if (type == "jets") { nJetSteps++; if (JetSteps[nJetSteps]) { if (JetSteps[nJetSteps]->select(event, setup)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } - } + }*/ if (type == "jets/pf") { nPFJetSteps++; if (PFJetSteps[nPFJetSteps]) { if (PFJetSteps[nPFJetSteps]->select(event, setup)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } } if (type == "jets/calo") { @@ -841,15 +855,17 @@ void SingleTopTChannelLeptonDQM::analyze(const edm::Event& event, const edm::Eve if (CaloJetSteps[nCaloJetSteps]) { if (CaloJetSteps[nCaloJetSteps]->select(event, setup)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } } if (type == "met" && METStep != nullptr) { if (METStep->select(event)) { selection_[key].second->fill(event, setup); - } else + } else { break; + } } } } diff --git a/DQM/Physics/src/SingleTopTChannelLeptonDQM.h b/DQM/Physics/src/SingleTopTChannelLeptonDQM.h index 4899bd5c1bb10..f8ca35d1f03d2 100644 --- a/DQM/Physics/src/SingleTopTChannelLeptonDQM.h +++ b/DQM/Physics/src/SingleTopTChannelLeptonDQM.h @@ -110,14 +110,14 @@ namespace SingleTopTChannelLepton { /// instance label std::string label_; /// considers a vector of METs - std::vector > > mets_; + std::vector>> mets_; // std::vector mets_; /// input sources for monitoring - edm::EDGetTokenT > jets_; - edm::EDGetTokenT > muons_; - edm::EDGetTokenT > elecs_gsf_; - edm::EDGetTokenT > elecs_; - edm::EDGetTokenT > pvs_; + edm::EDGetTokenT> jets_; + edm::EDGetTokenT> muons_; + //edm::EDGetTokenT > elecs_gsf_; + edm::EDGetTokenT> elecs_; + edm::EDGetTokenT> pvs_; // edm::InputTag elecs_, elecs_gsf_, muons_, muons_reco_, jets_, pvs_; @@ -131,7 +131,7 @@ namespace SingleTopTChannelLepton { /// electronId label // edm::InputTag electronId_; - edm::EDGetTokenT > electronId_; + edm::EDGetTokenT> electronId_; /// electronId pattern we expect the following pattern: /// 0: fails /// 1: passes electron ID only @@ -149,27 +149,27 @@ namespace SingleTopTChannelLepton { /// extra isolation criterion on electron std::string elecIso_; /// extra selection on electrons - std::unique_ptr > elecSelect_; + std::unique_ptr> elecSelect_; edm::InputTag rhoTag; /// extra selection on primary vertices; meant to investigate the pile-up /// effect - std::unique_ptr > pvSelect_; + std::unique_ptr> pvSelect_; /// extra isolation criterion on muon - std::unique_ptr > muonIso_; + std::unique_ptr> muonIso_; /// extra selection on muons - std::unique_ptr > muonSelect_; + std::unique_ptr> muonSelect_; /// jetCorrector edm::EDGetTokenT jetCorrector_; /// jetID as an extra selection type edm::EDGetTokenT jetIDLabel_; /// extra jetID selection on calo jets - std::unique_ptr > jetIDSelect_; - std::unique_ptr > jetlooseSelection_; - std::unique_ptr > jetSelection_; + std::unique_ptr> jetIDSelect_; + std::unique_ptr> jetlooseSelection_; + std::unique_ptr> jetSelection_; /// extra selection on jets (here given as std::string as it depends /// on the the jet type, which selections are valid and which not) std::string jetSelect_; @@ -194,11 +194,11 @@ namespace SingleTopTChannelLepton { std::string directory_; - std::unique_ptr > muonSelect; - std::unique_ptr > muonIso; + std::unique_ptr> muonSelect; + std::unique_ptr> muonIso; - std::unique_ptr > elecSelect; - std::unique_ptr > elecIso; + std::unique_ptr> elecSelect; + std::unique_ptr> elecIso; }; inline void MonitorEnsemble::triggerBinLabels(std::string channel, const std::vector labels) { @@ -304,13 +304,13 @@ class SingleTopTChannelLeptonDQM : public DQMOneEDAnalyzer<> { edm::InputTag vertex_; edm::EDGetTokenT vertex__; /// string cut selector - std::unique_ptr > vertexSelect_; + std::unique_ptr> vertexSelect_; /// beamspot edm::InputTag beamspot_; edm::EDGetTokenT beamspot__; /// string cut selector - std::unique_ptr > beamspotSelect_; + std::unique_ptr> beamspotSelect_; /// needed to guarantee the selection order as defined by the order of /// ParameterSets in the _selection_ vector as defined in the config @@ -320,20 +320,20 @@ class SingleTopTChannelLeptonDQM : public DQMOneEDAnalyzer<> { /// the configuration of the selection for the SelectionStep class, /// MonitoringEnsemble keeps an instance of the MonitorEnsemble class to /// be filled _after_ each selection step - std::map > > + std::map>> selection_; - std::unique_ptr > MuonStep; - std::unique_ptr > PFMuonStep; - std::unique_ptr > ElectronStep; - std::unique_ptr > PFElectronStep; - std::unique_ptr > PvStep; + std::unique_ptr> MuonStep; + std::unique_ptr> PFMuonStep; + std::unique_ptr> ElectronStep; + std::unique_ptr> PFElectronStep; + std::unique_ptr> PvStep; - std::vector > > JetSteps; - std::vector > > CaloJetSteps; - std::vector > > PFJetSteps; + std::vector>> JetSteps; + std::vector>> CaloJetSteps; + std::vector>> PFJetSteps; - std::unique_ptr > METStep; + std::unique_ptr> METStep; std::vector sel; }; From fd13e2c29e606b27a166b4ed0697d5f22e6371de Mon Sep 17 00:00:00 2001 From: Dimitrios Sidiropoulos Kontos Date: Mon, 25 Nov 2024 17:26:37 +0100 Subject: [PATCH 121/418] code style and quality issues fixed --- DQM/Physics/src/SingleTopTChannelLeptonDQM.cc | 2 +- DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc | 6 +++--- DQM/Physics/src/TopSingleLeptonDQM.cc | 2 +- DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc b/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc index e33e0f5074f7b..f3463a16501ef 100644 --- a/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc +++ b/DQM/Physics/src/SingleTopTChannelLeptonDQM.cc @@ -139,7 +139,7 @@ namespace SingleTopTChannelLepton { includeBTag_ = jetExtras.existsAs("jetBTaggers"); if (includeBTag_) { edm::ParameterSet btagCSV = - jetExtras.getParameter("jetBTaggers").getParameter("cvsVertex"); + jetExtras.getParameter("jetBTaggers").getParameter("cvsVertex"); btagCSV_ = iC.consumes(btagCSV.getParameter("label")); btagCSVWP_ = btagCSV.getParameter("workingPoint"); } diff --git a/DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc b/DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc index 4f7730b4061cc..f419590d59a8a 100644 --- a/DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc +++ b/DQM/Physics/src/SingleTopTChannelLeptonDQM_miniAOD.cc @@ -604,11 +604,11 @@ namespace SingleTopTChannelLepton_miniAOD { ++loosemult; // determine jet multiplicity //ParticleNet discriminator - + double discriminator = monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") > 0 - ? monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") - : -1; + ? monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") + : -1; fill("jetBPNet_", discriminator); //hard coded discriminator and value right now. if (discriminator > 0.1919) { diff --git a/DQM/Physics/src/TopSingleLeptonDQM.cc b/DQM/Physics/src/TopSingleLeptonDQM.cc index b804f0e8a9f8e..e2a2f1e24f88e 100644 --- a/DQM/Physics/src/TopSingleLeptonDQM.cc +++ b/DQM/Physics/src/TopSingleLeptonDQM.cc @@ -529,7 +529,7 @@ namespace TopSingleLepton { // check availability of the btaggers edm::Handle btagEff, btagPur, btagVtx, btagCSV; if (includeBTag_) { - if(!event.getByToken(btagCSV_,btagCSV)){ + if (!event.getByToken(btagCSV_, btagCSV)) { return; } } diff --git a/DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc b/DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc index f67bf945749c2..70a71e00956cb 100644 --- a/DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc +++ b/DQM/Physics/src/TopSingleLeptonDQM_miniAOD.cc @@ -580,11 +580,11 @@ namespace TopSingleLepton_miniAOD { ++loosemult; // determine jet multiplicity //ParticleNet discriminator - + double discriminator = monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") > 0 - ? monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") - : -1; + ? monitorJet.bDiscriminator("pfParticleNetFromMiniAODAK4CHSCentralDiscriminatorsJetTags:BvsAll") + : -1; fill("jetBPNet_", discriminator); //hard coded discriminator and value right now. if (discriminator > 0.1919) From ce4e63e6c4650500b80b06c98624cde4a7f0b58a Mon Sep 17 00:00:00 2001 From: Mikhail Date: Mon, 25 Nov 2024 18:09:30 +0100 Subject: [PATCH 122/418] Small fix for other environments --- GeneratorInterface/Pythia8Interface/test/pythia8test/runtest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GeneratorInterface/Pythia8Interface/test/pythia8test/runtest b/GeneratorInterface/Pythia8Interface/test/pythia8test/runtest index f422c25b31fb2..39227f9ed25a9 100755 --- a/GeneratorInterface/Pythia8Interface/test/pythia8test/runtest +++ b/GeneratorInterface/Pythia8Interface/test/pythia8test/runtest @@ -4,4 +4,4 @@ rm -f p8test.html cmsRun p8test1step1_cfg.py cmsRun ZJetsTest_cfg.py cp testi.dat test.dat -cmpr.sh test.dat html > p8test.html +./cmpr.sh test.dat html > p8test.html From 9376b0bf9a2097ecdd50db45141931d2b6de27e0 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Mon, 25 Nov 2024 18:14:09 +0100 Subject: [PATCH 123/418] add handling of HepMC3Product --- .../Core/plugins/GeneratorSmearedProducer.cc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/GeneratorInterface/Core/plugins/GeneratorSmearedProducer.cc b/GeneratorInterface/Core/plugins/GeneratorSmearedProducer.cc index 4a19f88e44d6e..7eb2981fcf34b 100644 --- a/GeneratorInterface/Core/plugins/GeneratorSmearedProducer.cc +++ b/GeneratorInterface/Core/plugins/GeneratorSmearedProducer.cc @@ -5,6 +5,7 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" +#include "SimDataFormats/GeneratorProducts/interface/HepMC3Product.h" #include "FWCore/Framework/interface/global/EDProducer.h" #include "FWCore/Utilities/interface/EDGetToken.h" #include "FWCore/Framework/interface/MakerMacros.h" @@ -16,7 +17,6 @@ namespace edm { class ConfigurationDescriptions; class Event; class EventSetup; - class HepMCProduct; } // namespace edm class GeneratorSmearedProducer : public edm::global::EDProducer<> { @@ -29,14 +29,19 @@ class GeneratorSmearedProducer : public edm::global::EDProducer<> { private: const edm::EDGetTokenT newToken_; const edm::EDGetTokenT oldToken_; + const edm::EDGetTokenT Token3_; }; GeneratorSmearedProducer::GeneratorSmearedProducer(edm::ParameterSet const& ps) : newToken_(consumes(ps.getUntrackedParameter("currentTag"))), - oldToken_(consumes(ps.getUntrackedParameter("previousTag"))) { + oldToken_(consumes(ps.getUntrackedParameter("previousTag"))), + Token3_(consumes(ps.getUntrackedParameter("currentTag"))) { // This producer produces a HepMCProduct, a copy of the original one - // It is used for backwaerd compatibility + // It is used for backward compatibility + // If HepMC3Product exists, it produces its copy + // It adds "generatorSmeared" to description, which is needed for further processing produces(); + produces(); } void GeneratorSmearedProducer::produce(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& es) const { @@ -49,6 +54,13 @@ void GeneratorSmearedProducer::produce(edm::StreamID, edm::Event& iEvent, const std::unique_ptr theCopy(new edm::HepMCProduct(*theHepMCProduct)); iEvent.put(std::move(theCopy)); } + + edm::Handle theHepMC3Product; + found = iEvent.getByToken(Token3_, theHepMC3Product); + if (found) { + std::unique_ptr theCopy3(new edm::HepMC3Product(*theHepMC3Product)); + iEvent.put(std::move(theCopy3)); + } } void GeneratorSmearedProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { From 3e100f9b30761252a81f96a96ec415495618ce1e Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Wed, 13 Nov 2024 23:54:10 +0100 Subject: [PATCH 124/418] Implement EmptySourceFromEventIDs EmptySourceFromEventIDs is a variation of the EmptySource that creates runs, lumis and events (containing no products) based on the list of EventIDs provided in the configuration. --- FWCore/Modules/src/EmptySourceFromEventIDs.cc | 64 +++++++++++++++++++ FWCore/Modules/test/BuildFile.xml | 2 + .../test/testEmptySourceFromEventIDs_cfg.py | 49 ++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 FWCore/Modules/src/EmptySourceFromEventIDs.cc create mode 100644 FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py diff --git a/FWCore/Modules/src/EmptySourceFromEventIDs.cc b/FWCore/Modules/src/EmptySourceFromEventIDs.cc new file mode 100644 index 0000000000000..31dd2b02c7de3 --- /dev/null +++ b/FWCore/Modules/src/EmptySourceFromEventIDs.cc @@ -0,0 +1,64 @@ +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/InputSource.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Sources/interface/IDGeneratorSourceBase.h" + +/* + * IDGeneratorSourceBase implements the logic to generate run, lumi, and event numbers, and event timestamps. + * These will actually be overwritten by this source, but it's easier to do that than to write a new source base + * type from scratch. + */ + +class EmptySourceFromEventIDs : public edm::IDGeneratorSourceBase { +public: + explicit EmptySourceFromEventIDs(edm::ParameterSet const&, edm::InputSourceDescription const&); + ~EmptySourceFromEventIDs() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + bool setRunAndEventInfo(edm::EventID& id, edm::TimeValue_t& time, edm::EventAuxiliary::ExperimentType& type) override; + void readEvent_(edm::EventPrincipal& e) override; + + std::vector events_; +}; + +// Note that almost all configuration parameters passed to IDGeneratorSourceBase will effectively be ignored, because +// the EmptySourceFromEventIDs will explicitly set the run, lumi, and event numbers, the timestamp, and the event type. +EmptySourceFromEventIDs::EmptySourceFromEventIDs(edm::ParameterSet const& config, + edm::InputSourceDescription const& desc) + : IDGeneratorSourceBase(config, desc, false), + events_{config.getUntrackedParameter>("events")} // List of event ids to create +{ + // Invert the order of the events so they can efficiently be popped off the back of the vector + std::reverse(events_.begin(), events_.end()); +} + +bool EmptySourceFromEventIDs::setRunAndEventInfo(edm::EventID& event, + edm::TimeValue_t& time, + edm::EventAuxiliary::ExperimentType& type) { + if (events_.empty()) { + return false; + } + + event = std::move(events_.back()); + events_.pop_back(); + return true; +} + +void EmptySourceFromEventIDs::readEvent_(edm::EventPrincipal& e) { + doReadEvent(e, [](auto const&) {}); +} + +void EmptySourceFromEventIDs::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.setComment("Creates runs, lumis and events (containing no products) based on the provided list of event ids."); + edm::IDGeneratorSourceBase::fillDescription(desc); + + desc.addUntracked>("events", {}); + descriptions.add("source", desc); +} + +#include "FWCore/Framework/interface/InputSourceMacros.h" +DEFINE_FWK_INPUT_SOURCE(EmptySourceFromEventIDs); diff --git a/FWCore/Modules/test/BuildFile.xml b/FWCore/Modules/test/BuildFile.xml index d1054436b83b1..f33267058f2d0 100644 --- a/FWCore/Modules/test/BuildFile.xml +++ b/FWCore/Modules/test/BuildFile.xml @@ -4,6 +4,8 @@ + + diff --git a/FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py b/FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py new file mode 100644 index 0000000000000..889418641a3a3 --- /dev/null +++ b/FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py @@ -0,0 +1,49 @@ +#! /usr/bin/env cmsRun + +import FWCore.ParameterSet.Config as cms + +events = cms.VEventID( + # Run 100 + cms.EventID(100, 1, 1), + cms.EventID(100, 1, 2), + cms.EventID(100, 2, 3), + cms.EventID(100, 2, 4), + cms.EventID(100, 3, 5), + # Run 101 + cms.EventID(101, 1, 1), + cms.EventID(101, 1, 2), + cms.EventID(101, 2, 3), + cms.EventID(101, 2, 4), + cms.EventID(101, 3, 5), + # Run 102 + cms.EventID(102, 1, 1), + cms.EventID(102, 1, 2), + cms.EventID(102, 2, 3), + cms.EventID(102, 2, 4), + cms.EventID(102, 3, 5), + # Run 103 + cms.EventID(103, 1, 1), + cms.EventID(103, 1, 2), + cms.EventID(103, 2, 3), + cms.EventID(103, 2, 4), + cms.EventID(103, 3, 5), +) + +process = cms.Process("TEST") + +process.source = cms.Source("EmptySourceFromEventIDs", + events = cms.untracked(events) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(42) +) + +# EventIDChecker requires synchronizing on LuminosityBlock boundaries +process.options.numberOfThreads = 4 +process.options.numberOfStreams = 4 +process.options.numberOfConcurrentLuminosityBlocks = 1 + +process.check = cms.EDAnalyzer("EventIDChecker", eventSequence = cms.untracked(events)) + +process.endp = cms.EndPath(process.check) From b73d08a24f022475cdd226de1169e0cae5b4640d Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Sun, 17 Nov 2024 22:56:57 +0100 Subject: [PATCH 125/418] Implement edmtest::EventIDProducer and edmtest::EventIDValidator EventIDProducer reads the EventID from the current event and copies it into the Event as a data product. EventIDValidator reads the EventID from the current event and compares it to a data product read from the Event. They can be used to validate that an object produced in a given event is being read back in the same event. --- FWCore/TestModules/README.md | 17 ++++++++ FWCore/TestModules/plugins/BuildFile.xml | 3 ++ FWCore/TestModules/plugins/EventIDProducer.cc | 31 ++++++++++++++ .../TestModules/plugins/EventIDValidator.cc | 40 +++++++++++++++++++ FWCore/TestModules/test/BuildFile.xml | 1 + .../test/testEventIDValidator_cfg.py | 17 ++++++++ 6 files changed, 109 insertions(+) create mode 100644 FWCore/TestModules/plugins/EventIDProducer.cc create mode 100644 FWCore/TestModules/plugins/EventIDValidator.cc create mode 100644 FWCore/TestModules/test/BuildFile.xml create mode 100644 FWCore/TestModules/test/testEventIDValidator_cfg.py diff --git a/FWCore/TestModules/README.md b/FWCore/TestModules/README.md index b8875b9d6b401..bd4cadf13823d 100644 --- a/FWCore/TestModules/README.md +++ b/FWCore/TestModules/README.md @@ -4,6 +4,23 @@ This package contains modules that are used in framework tests, but are generic-enough to be usable outside of the framework as well. Their interfaces are intended to be relatively stable. + ## `edmtest::StreamIDFilter` This module can be used to reject all events in specific streams. + + +## `edmtest::EventIDProducer` + +This module reads the `EventID` from the current event and copies it as a data +product into the `Event`. + + +## `edmtest::EventIDValidator` + +This module reads the `EventID` from the current event and compares it to a data +product read from the `Event`. + +Together `edmtest::EventIDProducer` and `edmtest::EventIDValidator` can be used +to validate that an object produced in a given event is being read back in the +same event. diff --git a/FWCore/TestModules/plugins/BuildFile.xml b/FWCore/TestModules/plugins/BuildFile.xml index d59f00b4a326d..a7126fae22e96 100644 --- a/FWCore/TestModules/plugins/BuildFile.xml +++ b/FWCore/TestModules/plugins/BuildFile.xml @@ -1,5 +1,8 @@ + + + diff --git a/FWCore/TestModules/plugins/EventIDProducer.cc b/FWCore/TestModules/plugins/EventIDProducer.cc new file mode 100644 index 0000000000000..f867b3e578cff --- /dev/null +++ b/FWCore/TestModules/plugins/EventIDProducer.cc @@ -0,0 +1,31 @@ +// CMSSW include files +#include "DataFormats/Provenance/interface/EventID.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/EDPutToken.h" + +namespace edmtest { + + class EventIDProducer : public edm::global::EDProducer<> { + public: + EventIDProducer(edm::ParameterSet const& config) : token_(produces()) {} + + void produce(edm::StreamID, edm::Event& event, edm::EventSetup const&) const final { + event.emplace(token_, event.id()); + } + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + descriptions.addWithDefaultLabel(desc); + } + + private: + edm::EDPutTokenT token_; + }; + +} // namespace edmtest + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(edmtest::EventIDProducer); diff --git a/FWCore/TestModules/plugins/EventIDValidator.cc b/FWCore/TestModules/plugins/EventIDValidator.cc new file mode 100644 index 0000000000000..99be1f6e28426 --- /dev/null +++ b/FWCore/TestModules/plugins/EventIDValidator.cc @@ -0,0 +1,40 @@ +// CMSSW include files +#include "DataFormats/Provenance/interface/EventID.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/global/EDAnalyzer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/Exception.h" + +namespace edmtest { + + class EventIDValidator : public edm::global::EDAnalyzer<> { + public: + EventIDValidator(edm::ParameterSet const& config) + : token_(consumes(config.getUntrackedParameter("source"))) {} + + void analyze(edm::StreamID, edm::Event const& event, edm::EventSetup const&) const final { + auto const& id = event.get(token_); + if (id != event.id()) { + throw cms::Exception("InvalidValue") << "EventIDValidator: found invalid input value\n" + << id << "\nwhile expecting\n" + << event.id(); + } + } + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.addUntracked("source", edm::InputTag{"eventIDProducer", ""}) + ->setComment("EventID product to read from the event"); + descriptions.addWithDefaultLabel(desc); + } + + private: + edm::EDGetTokenT token_; + }; + +} // namespace edmtest + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(edmtest::EventIDValidator); diff --git a/FWCore/TestModules/test/BuildFile.xml b/FWCore/TestModules/test/BuildFile.xml new file mode 100644 index 0000000000000..386d18c359309 --- /dev/null +++ b/FWCore/TestModules/test/BuildFile.xml @@ -0,0 +1 @@ + diff --git a/FWCore/TestModules/test/testEventIDValidator_cfg.py b/FWCore/TestModules/test/testEventIDValidator_cfg.py new file mode 100644 index 0000000000000..76d896091c2a8 --- /dev/null +++ b/FWCore/TestModules/test/testEventIDValidator_cfg.py @@ -0,0 +1,17 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("TEST") + +process.options.numberOfThreads = 4 +process.options.numberOfStreams = 4 + +process.source = cms.Source("EmptySource") +process.maxEvents.input = 10 + +process.eventIds = cms.EDProducer("edmtest::EventIDProducer") + +process.eventValidator = cms.EDAnalyzer("edmtest::EventIDValidator", + source = cms.untracked.InputTag('eventIds') +) + +process.path = cms.Path(process.eventIds + process.eventValidator) From 8f7552ad671686f1b62d5d8b0efe3bf323b2d817 Mon Sep 17 00:00:00 2001 From: AdrianoDee Date: Mon, 11 Nov 2024 13:56:05 +0100 Subject: [PATCH 126/418] Allowing Cluster Splitting with HLT vertices --- .../EventContent/python/EventContent_cff.py | 6 ++ .../python/hltClusterSplitting_cff.py | 8 +++ .../python/upgradeWorkflowComponents.py | 66 +++++++++++++++++++ .../python/InitialStepPreSplitting_cff.py | 23 +++++++ .../RecoTrack/python/TrackValidation_cff.py | 14 +++- 5 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 Configuration/ProcessModifiers/python/hltClusterSplitting_cff.py diff --git a/Configuration/EventContent/python/EventContent_cff.py b/Configuration/EventContent/python/EventContent_cff.py index 396b424cd3da2..59653a9b73828 100644 --- a/Configuration/EventContent/python/EventContent_cff.py +++ b/Configuration/EventContent/python/EventContent_cff.py @@ -670,6 +670,12 @@ def SwapKeepAndDrop(l): FEVTDEBUGHLTEventContent.outputCommands.append('keep *_*_StripDigiSimLink_*') FEVTDEBUGHLTEventContent.outputCommands.append('keep *_*_PixelDigiSimLink_*') +from Configuration.ProcessModifiers.hltClusterSplitting_cff import hltClusterSplitting +hltClusterSplitting.toModify(FEVTDEBUGHLTEventContent, + outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[ + 'keep *_hltPixelVertices_*_*' + ]) + approxSiStripClusters.toModify(FEVTDEBUGHLTEventContent, outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[ 'keep *_hltSiStripClusters2ApproxClusters_*_*', diff --git a/Configuration/ProcessModifiers/python/hltClusterSplitting_cff.py b/Configuration/ProcessModifiers/python/hltClusterSplitting_cff.py new file mode 100644 index 0000000000000..b7855664076cd --- /dev/null +++ b/Configuration/ProcessModifiers/python/hltClusterSplitting_cff.py @@ -0,0 +1,8 @@ +import FWCore.ParameterSet.Config as cms + +# This modifier enables +# - saving pixel vertices at HLT; +# - using those vertices in input for the cluster splitting and ak4CaloJets; + +hltClusterSplitting = cms.Modifier() + diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 0dce1e1c1a852..80eb88c127ee3 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -2552,6 +2552,72 @@ def condition(self, fragment, stepList, key, hasHarvest): offset = 0.19002, ) +class UpgradeWorkflow_SplittingFromHLT(UpgradeWorkflow): + def setup_(self, step, stepName, stepDict, k, properties): + stepDict[stepName][k] = merge([{'--procModifiers': 'hltClusterSplitting'}, stepDict[step][k]]) + def condition(self, fragment, stepList, key, hasHarvest): + return '2025' in key and fragment=="TTbar_14TeV" + +upgradeWFs['SplittingFromHLT'] = UpgradeWorkflow_SplittingFromHLT( + steps = [ + 'DigiTrigger', + 'Digi', + 'HLTOnly', + 'RecoLocal', + 'Reco', + 'RecoFakeHLT', + 'RecoGlobal', + ], + PU = [ + 'DigiTrigger', + 'Digi', + 'HLTOnly', + 'RecoLocal', + 'Reco', + 'RecoFakeHLT', + 'RecoGlobal', + ], + suffix = '_SplittingFromHLT', + offset = 0.19003, +) + +class UpgradeWorkflow_SplittingProdLike(UpgradeWorkflow_ProdLike): + def __init__(self, suffix, offset,steps, PU): + super(UpgradeWorkflow_SplittingProdLike, self).__init__(steps, PU, suffix, offset) + + def setup_(self, step, stepName, stepDict, k, properties): + # copy steps, then apply specializations + stepDict[stepName][k] = merge([{'--procModifiers': 'hltClusterSplitting'}, stepDict[step][k]]) + + def condition(self, fragment, stepList, key, hasHarvest): + return '2025' in key and fragment=="TTbar_14TeV" + +upgradeWFs['SplittingFromHLTProdLike'] = UpgradeWorkflow_SplittingProdLike( + steps = [ + ], + PU = [ + 'GenSimHLBeamSpot14', + 'Digi', + 'DigiTrigger', + 'HLTOnly', + 'Reco', + 'RecoFakeHLT', + 'RecoGlobal', + 'RecoNano', + 'RecoNanoFakeHLT', + 'HARVEST', + 'HARVESTFakeHLT', + 'HARVESTGlobal', + 'HARVESTNano', + 'HARVESTNanoFakeHLT', + 'MiniAOD', + 'ALCA', + 'Nano', + ], + suffix = '_SplittingFromHLTProdLike', + offset = 0.1900321, +) + # # Simulates Bias Rail in Phase-2 OT PS modules and X% random bad Strips # in PS-s and SS sensors diff --git a/RecoTracker/IterativeTracking/python/InitialStepPreSplitting_cff.py b/RecoTracker/IterativeTracking/python/InitialStepPreSplitting_cff.py index a28f1a80d4389..4397d57b1a4eb 100644 --- a/RecoTracker/IterativeTracking/python/InitialStepPreSplitting_cff.py +++ b/RecoTracker/IterativeTracking/python/InitialStepPreSplitting_cff.py @@ -221,6 +221,12 @@ src = 'caloTowerForTrkPreSplitting', srcPVs = 'firstStepPrimaryVerticesPreSplitting' ) + +from Configuration.ProcessModifiers.hltClusterSplitting_cff import hltClusterSplitting +hltClusterSplitting.toModify(ak4CaloJetsForTrkPreSplitting, + srcPVs = 'hltPixelVertices' +) + jetsForCoreTrackingPreSplitting = jetsForCoreTracking.clone( src = 'ak4CaloJetsForTrkPreSplitting' ) @@ -233,6 +239,8 @@ cores = 'jetsForCoreTrackingPreSplitting' ) + + # Final sequence from RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi import siPixelRecHits from RecoTracker.MeasurementDet.MeasurementTrackerEventProducer_cfi import MeasurementTrackerEvent @@ -254,6 +262,21 @@ siPixelRecHits, MeasurementTrackerEvent, siPixelClusterShapeCache) + +hltClusterSplitting.toModify(siPixelClusters, + vertices = cms.InputTag("hltPixelVertices") +) + +InitialStepPreSplittingFromHLTTask = cms.Task( + caloTowerForTrkPreSplitting, + ak4CaloJetsForTrkPreSplitting, + jetsForCoreTrackingPreSplitting, + siPixelClusters, + siPixelRecHits, + MeasurementTrackerEvent, + siPixelClusterShapeCache) +hltClusterSplitting.toReplaceWith(InitialStepPreSplittingTask, InitialStepPreSplittingFromHLTTask) + InitialStepPreSplitting = cms.Sequence(InitialStepPreSplittingTask) _InitialStepPreSplittingTask_trackingPhase1 = InitialStepPreSplittingTask.copy() _InitialStepPreSplittingTask_trackingPhase1.replace(initialStepHitTripletsPreSplitting, cms.Task(initialStepHitTripletsPreSplitting,initialStepHitQuadrupletsPreSplitting)) diff --git a/Validation/RecoTrack/python/TrackValidation_cff.py b/Validation/RecoTrack/python/TrackValidation_cff.py index 37063ed169dbe..62110c93f5e84 100644 --- a/Validation/RecoTrack/python/TrackValidation_cff.py +++ b/Validation/RecoTrack/python/TrackValidation_cff.py @@ -20,6 +20,7 @@ import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg import RecoTracker.IterativeTracking.iterativeTkUtils as _utils from Configuration.Eras.Modifier_fastSim_cff import fastSim +from Configuration.ProcessModifiers.hltClusterSplitting_cff import hltClusterSplitting ### First define the stuff for the standard validation sequence ## Track selectors @@ -47,8 +48,8 @@ "displacedRegionalStepSeeds", "muonSeededSeedsInOut", "muonSeededSeedsOutIn"] - _seedProducers_fastSim = [ x for x in _seedProducers if x not in _removeForFastSimSeedProducers] +_seedProducers_hltSplit = [ x for x in _seedProducers if x not in ["initialStepSeedsPreSplitting"]] _removeForFastTrackProducers = ["initialStepTracksPreSplitting", "jetCoreRegionalStepTracks", @@ -56,6 +57,7 @@ "muonSeededTracksInOut", "muonSeededTracksOutIn"] _trackProducers_fastSim = [ x for x in _trackProducers if x not in _removeForFastTrackProducers] +_trackProducers_hltSplit = [ x for x in _trackProducers if x not in ["initialStepTracksPreSplitting"]] def _algoToSelector(algo): sel = "" @@ -813,6 +815,10 @@ def _uniqueFirstLayers(layerList): trackValidatorGsfTracks, ])) +hltClusterSplitting.toReplaceWith(tracksValidation, tracksValidation.copyAndExclude([ + trackValidatorBuildingPreSplitting, +])) + ### Then define stuff for standalone mode (i.e. MTV with RECO+DIGI input) # Select by originalAlgo and algoMask @@ -1016,6 +1022,12 @@ def _uniqueFirstLayers(layerList): trackValidatorConversionTrackingOnly, trackValidatorBHadronTrackingOnly ])) + +hltClusterSplitting.toReplaceWith(trackValidatorsTrackingOnly, trackValidatorsTrackingOnly.copyAndExclude([ + trackValidatorBuildingPreSplitting, + trackValidatorSeedingPreSplittingTrackingOnly, +])) + tracksValidationTrackingOnly = cms.Sequence( trackValidatorsTrackingOnly, tracksPreValidationTrackingOnly, From 94781ba455ae9a315857310485c6b3dd714146df Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 26 Nov 2024 09:31:40 +0100 Subject: [PATCH 127/418] Getting ready for preparing payload of 2025 Geometry --- .../createExtended2025DD4hepPayloads.sh | 88 ++++++++++++++++++ .../createExtended2025Payloads.sh | 93 +++++++++++++++++++ .../geometryExtended2025DD4hep_writer.py | 90 ++++++++++++++++++ .../geometryExtended2025DD4hep_xmlwriter.py | 40 ++++++++ .../geometryExtended2025_writer.py | 73 +++++++++++++++ .../geometryExtended2025_xmlwriter.py | 25 +++++ .../writehelpers/splitExtended2025Database.sh | 22 +++++ 7 files changed, 431 insertions(+) create mode 100644 CondTools/Geometry/test/writehelpers/createExtended2025DD4hepPayloads.sh create mode 100644 CondTools/Geometry/test/writehelpers/createExtended2025Payloads.sh create mode 100644 CondTools/Geometry/test/writehelpers/geometryExtended2025DD4hep_writer.py create mode 100644 CondTools/Geometry/test/writehelpers/geometryExtended2025DD4hep_xmlwriter.py create mode 100644 CondTools/Geometry/test/writehelpers/geometryExtended2025_writer.py create mode 100644 CondTools/Geometry/test/writehelpers/geometryExtended2025_xmlwriter.py create mode 100644 CondTools/Geometry/test/writehelpers/splitExtended2025Database.sh diff --git a/CondTools/Geometry/test/writehelpers/createExtended2025DD4hepPayloads.sh b/CondTools/Geometry/test/writehelpers/createExtended2025DD4hepPayloads.sh new file mode 100644 index 0000000000000..aadcdfa37cd40 --- /dev/null +++ b/CondTools/Geometry/test/writehelpers/createExtended2025DD4hepPayloads.sh @@ -0,0 +1,88 @@ +#!/bin/sh +function die { echo $1: status $2 ; exit $2; } + +if [ $# -ne 1 ] +then + echo Error: createExtended2025Payloads.sh requires exactly one argument which is the tag + exit 1 +fi +mytag=$1 +echo ${mytag} + +# Set the tag in all the scripts and the metadata text files +#sed -i {s/TagXX/${mytag}/g} *.py +compgen -G "*.txt" > /dev/null && sed -i {s/TagXX/${mytag}/g} *.txt +sed -i {s/TagXX/${mytag}/g} splitExtended2025Database.sh + +# First read in the little XML files and create the +# big XML file for the Extended2025DD4hep scenario. +cmsRun geometryExtended2025DD4hep_xmlwriter.py || die 'failed geometryExtended2025DD4hep_xmlwriter.py' $? + +# Now convert the content of the large XML file into +# a "blob" and write it to the database. +# Also reads in the little XML files again and fills +# the DDCompactView. From the DDCompactView the +# reco parts of the database are also filled. +cmsRun geometryExtended2025DD4hep_writer.py --tag=${mytag} || die 'failed geometryExtended2025DD4hep_writer.py' $? + +# Now put the other scenarios into the database. +# Input the many XML files referenced by the cff file and +# output a single big XML file. +# This is repeated several times below. The sed commands +# serve to give the correct sequence of input and output +# files + +#sed -i '{s/ExtendedGeometry2025/ExtendedGeometry2025ZeroMaterial/g}' geometryExtended2025DD4hep_xmlwriter.py +#sed -i '{s/\/ge/\/gez/g}' geometryExtended2025DD4hep_xmlwriter.py +cmsRun geometryExtended2025DD4hep_xmlwriter.py --geom=ExtendedGeometry2025ZeroMaterial --out=gez || die 'failed geometryExtended2025DD4hep_xmlwriter.py ExtendedGeometry2025ZeroMaterial' $? + +#sed -i '{s/ExtendedGeometry2025ZeroMaterial/ExtendedGeometry2025FlatMinus05Percent/g}' geometryExtended2025DD4hep_xmlwriter.py +#sed -i '{s/\/gez/\/geFM05/g}' geometryExtended2025DD4hep_xmlwriter.py +cmsRun geometryExtended2025DD4hep_xmlwriter.py --geom=ExtendedGeometry2025FlatMinus05Percent --out=geFM05 || die 'failed geometryExtended2025DD4hep_xmlwriter.py ExtendedGeometry2025FlatMinus05Percent' $? + +#sed -i '{s/ExtendedGeometry2025FlatMinus05Percent/ExtendedGeometry2025FlatMinus10Percent/g}' geometryExtended2025DD4hep_xmlwriter.py +#sed -i '{s/\/geFM05/\/geFM10/g}' geometryExtended2025DD4hep_xmlwriter.py +cmsRun geometryExtended2025DD4hep_xmlwriter.py --geom=ExtendedGeometry2025FlatMinus10Percent --out=geFM10 || die 'failed geometryExtended2025DD4hep_xmlwriter.py' $? + +#sed -i '{s/ExtendedGeometry2025FlatMinus10Percent/ExtendedGeometry2025FlatPlus05Percent/g}' geometryExtended2025DD4hep_xmlwriter.py +#sed -i '{s/\/geFM10/\/geFP05/g}' geometryExtended2025DD4hep_xmlwriter.py +cmsRun geometryExtended2025DD4hep_xmlwriter.py --geom=ExtendedGeometry2025FlatPlus05Percent --out=geFP05 || die 'failed geometryExtended2025DD4hep_xmlwriter.py ExtendedGeometry2025FlatPlus05Percent' $? + +#sed -i '{s/ExtendedGeometry2025FlatPlus05Percent/ExtendedGeometry2025FlatPlus10Percent/g}' geometryExtended2025DD4hep_xmlwriter.py +#sed -i '{s/\/geFP05/\/geFP10/g}' geometryExtended2025DD4hep_xmlwriter.py +cmsRun geometryExtended2025DD4hep_xmlwriter.py --geom=ExtendedGeometry2025FlatPlus05Percent --out=geFP10 || die 'failed geometryExtended2025DD4hep_xmlwriter.py' $? + +# Read the one big XML file and output a record to the +# database with the an identifying tag +# This is repeated several times below. The sed commands +# serve to give the correct sequence of input file and output +# tag +# To start: +# Input file Output tag +# gezSingleBigFile.xml XMLFILE_Geometry_${mytag}_Extended2025ZeroMaterial_mc + +#sed -i '{s/Extended/Extended2025ZeroMaterial/g}' xmlgeometrywriter.py +#sed -i '{s/\/ge/\/gez/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025ZeroMaterial --inPre=gez|| die 'failed xmlgeometrywriter.py Extended2025ZeroMaterial' $? + +#sed -i '{s/Extended2025ZeroMaterial/Extended2025FlatMinus05Percent/g}' xmlgeometrywriter.py +#sed -i '{s/\/gez/\/geFM05/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025FlatMinus05Percent --inPre=geFM05 || die 'failed xmlgeometrywriter.py Extended2025FlatMinus05Percent' $? + +#sed -i '{s/Extended2025FlatMinus05Percent/Extended2025FlatMinus10Percent/g}' xmlgeometrywriter.py +#sed -i '{s/\/geFM05/\/geFM10/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025FlatMinus10Percent --inPre=geFM10 || die 'failed xmlgeometrywriter.py Extended2025FlatMinus10Percent' $? + +#sed -i '{s/Extended2025FlatMinus10Percent/Extended2025FlatPlus05Percent/g}' xmlgeometrywriter.py +#sed -i '{s/\/geFM10/\/geFP05/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025FlatPlus05Percent --inPre=geFP05 || die 'failed xmlgeometrywriter.py Extended2025FlatPlus05Percent' $? + +#sed -i '{s/Extended2025FlatPlus05Percent/Extended2025FlatPlus10Percent/g}' xmlgeometrywriter.py +#sed -i '{s/\/geFP05/\/geFP10/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025FlatPlus10Percent --inPre=geFP10 || die 'failed xmlgeometrywriter.py Extended2025FlatPlus10Percent' $? + +# All the database objects were written into one database +# (myfile.db) in the steps above. Extract the different +# pieces into separate database files. These are the payloads +# that get uploaded to the DB. There is one for each tag +./splitExtended2025Database.sh diff --git a/CondTools/Geometry/test/writehelpers/createExtended2025Payloads.sh b/CondTools/Geometry/test/writehelpers/createExtended2025Payloads.sh new file mode 100644 index 0000000000000..fa36995fec4a3 --- /dev/null +++ b/CondTools/Geometry/test/writehelpers/createExtended2025Payloads.sh @@ -0,0 +1,93 @@ +#!/bin/sh + + +if [ $# -ne 1 ] +then + echo Error: createExtended2025Payloads.sh requires exactly one argument which is the tag + exit 1 +fi +mytag=$1 +echo ${mytag} + +# Set the tag in all the scripts and the metadata text files +sed -i {s/TagXX/${mytag}/g} *.py +compgen -G "*.txt" > /dev/null && sed -i {s/TagXX/${mytag}/g} *.txt +sed -i {s/TagXX/${mytag}/g} splitExtended2025Database.sh + +# First read in the little XML files and create the +# large XML file for the Phase1_R30F12_HCal Ideal scenario. +# Input cff Output file +# GeometryExtended2025_cff geSingleBigFile.xml +cmsRun geometryExtended2025_xmlwriter.py + +# Now convert the content of the large XML file into +# a "blob" and write it to the database. +# Also reads in the little XML files again and fills +# the DDCompactView. From the DDCompactView the +# reco parts of the database are also filled. +cmsRun geometryExtended2025_writer.py + +# Now put the other scenarios into the database. +# Input the many XML files referenced by the cff file and +# output a single big XML file. +# This is repeated several times below. The sed commands +# serve to give the following sequence of input and output +# files +# +# Input cff Output file +# GeometryIdeal_cff giSingleBigFile.xml +# +sed -i '{s/Extended2025/Extended2025ZeroMaterial/g}' geometryExtended2025_xmlwriter.py +sed -i '{s/\/ge/\/gez/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py + +sed -i '{s/Extended2025ZeroMaterial/Extended2025FlatMinus05Percent/g}' geometryExtended2025_xmlwriter.py +sed -i '{s/\/gez/\/geFM05/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py + +sed -i '{s/Extended2025FlatMinus05Percent/Extended2025FlatMinus10Percent/g}' geometryExtended2025_xmlwriter.py +sed -i '{s/\/geFM05/\/geFM10/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py + +sed -i '{s/Extended2025FlatMinus10Percent/Extended2025FlatPlus05Percent/g}' geometryExtended2025_xmlwriter.py +sed -i '{s/\/geFM10/\/geFP05/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py + +sed -i '{s/Extended2025FlatPlus05Percent/Extended2025FlatPlus10Percent/g}' geometryExtended2025_xmlwriter.py +sed -i '{s/\/geFP05/\/geFP10/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py + +# Read the one big XML file and output a record to the +# database with the an identifying tag +# This is repeated several times below. The sed commands +# serve to give the following sequence of input file and output +# tag +# +# Input file Output tag +# gezSingleBigFile.xml XMLFILE_Geometry_${mytag}_Extended2025ZeroMaterial_mc +# +sed -i '{s/Extended/Extended2025ZeroMaterial/g}' xmlgeometrywriter.py +sed -i '{s/\/ge/\/gez/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py + +sed -i '{s/Extended2025ZeroMaterial/Extended2025FlatMinus05Percent/g}' xmlgeometrywriter.py +sed -i '{s/\/gez/\/geFM05/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py + +sed -i '{s/Extended2025FlatMinus05Percent/Extended2025FlatMinus10Percent/g}' xmlgeometrywriter.py +sed -i '{s/\/geFM05/\/geFM10/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py + +sed -i '{s/Extended2025FlatMinus10Percent/Extended2025FlatPlus05Percent/g}' xmlgeometrywriter.py +sed -i '{s/\/geFM10/\/geFP05/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py + +sed -i '{s/Extended2025FlatPlus05Percent/Extended2025FlatPlus10Percent/g}' xmlgeometrywriter.py +sed -i '{s/\/geFP05/\/geFP10/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py + +# All the database objects were written into one database +# (myfile.db) in the steps above. Extract the different +# pieces into separate database files. These are the payloads +# that get uploaded to the dropbox. There is one for each tag +./splitExtended2025Database.sh diff --git a/CondTools/Geometry/test/writehelpers/geometryExtended2025DD4hep_writer.py b/CondTools/Geometry/test/writehelpers/geometryExtended2025DD4hep_writer.py new file mode 100644 index 0000000000000..00bc68d163a8b --- /dev/null +++ b/CondTools/Geometry/test/writehelpers/geometryExtended2025DD4hep_writer.py @@ -0,0 +1,90 @@ +import FWCore.ParameterSet.Config as cms +import argparse +import sys + +parser = argparse.ArgumentParser(prog=sys.argv[0], description='Generate XML geometry.') +parser.add_argument("--tag", help="global tag to use", type=str) +args = parser.parse_args() + + +import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep + +process = cms.Process("GeometryWriter", Run3_dd4hep) + +from Configuration.ProcessModifiers.dd4hep_cff import dd4hep + +process.load('CondCore.CondDB.CondDB_cfi') + +process.load('Configuration.Geometry.GeometryDD4hepExtended2025_cff') +process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi') +process.load('CondTools.Geometry.HcalParametersWriter_cff') +process.load("Geometry.MuonNumbering.muonGeometryConstants_cff") +process.load("Geometry.ForwardGeometry.ZdcGeometry_cfi") + +process.CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring( + 'HCAL', + 'ZDC', + 'EcalBarrel', + 'EcalEndcap', + 'EcalPreshower', + 'TOWER' + ) +) + +process.source = cms.Source("EmptyIOVSource", + lastValue = cms.uint64(1), + timetype = cms.string('runnumber'), + firstValue = cms.uint64(1), + interval = cms.uint64(1) + ) + +# This reads the big XML file and the only way to fill the +# nonreco part of the database is to read this file. +process.XMLGeometryWriter = cms.EDAnalyzer("XMLGeometryBuilder", + XMLFileName = cms.untracked.string("./geSingleBigFile.xml"), + ZIP = cms.untracked.bool(True) + ) + +process.TrackerGeometryWriter = cms.EDAnalyzer("PGeometricDetBuilder",fromDD4hep=cms.bool(True)) +process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder",fromDD4hep=cms.bool(True)) + +process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder",fromDD4hep = cms.untracked.bool(True)) + +process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(True)) + +process.DTGeometryWriter = cms.EDAnalyzer("DTRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(True)) + +process.RPCGeometryWriter = cms.EDAnalyzer("RPCRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(True)) + +process.GEMGeometryWriter = cms.EDAnalyzer("GEMRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(True)) + +process.CondDB.timetype = cms.untracked.string('runnumber') +process.CondDB.connect = cms.string('sqlite_file:myfile.db') +process.PoolDBOutputService = cms.Service("PoolDBOutputService", + process.CondDB, + toPut = cms.VPSet(cms.PSet(record = cms.string('GeometryFileRcd'),tag = cms.string('XMLFILE_Geometry_'+args.tag+'_Extended2025_mc')), + cms.PSet(record = cms.string('IdealGeometryRecord'),tag = cms.string('TKRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PTrackerParametersRcd'),tag = cms.string('TKParameters_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PEcalBarrelRcd'), tag = cms.string('EBRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PEcalEndcapRcd'), tag = cms.string('EERECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PEcalPreshowerRcd'),tag = cms.string('EPRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PHcalRcd'), tag = cms.string('HCALRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('HcalParametersRcd'), tag = cms.string('HCALParameters_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PCaloTowerRcd'), tag = cms.string('CTRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PZdcRcd'), tag = cms.string('ZDCRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PCastorRcd'), tag = cms.string('CASTORRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('CSCRecoGeometryRcd'),tag = cms.string('CSCRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('CSCRecoDigiParametersRcd'),tag = cms.string('CSCRECODIGI_Geometry_'+args.tag)), + cms.PSet(record = cms.string('DTRecoGeometryRcd'),tag = cms.string('DTRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('RPCRecoGeometryRcd'),tag = cms.string('RPCRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('GEMRecoGeometryRcd'),tag = cms.string('GEMRECO_Geometry_'+args.tag)) + ) + ) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) + ) + +process.p1 = cms.Path(process.XMLGeometryWriter+process.TrackerGeometryWriter+process.TrackerParametersWriter+process.CaloGeometryWriter+process.HcalParametersWriter+process.CSCGeometryWriter+process.DTGeometryWriter+process.RPCGeometryWriter+process.GEMGeometryWriter) diff --git a/CondTools/Geometry/test/writehelpers/geometryExtended2025DD4hep_xmlwriter.py b/CondTools/Geometry/test/writehelpers/geometryExtended2025DD4hep_xmlwriter.py new file mode 100644 index 0000000000000..cac3a8c34ee90 --- /dev/null +++ b/CondTools/Geometry/test/writehelpers/geometryExtended2025DD4hep_xmlwriter.py @@ -0,0 +1,40 @@ +import FWCore.ParameterSet.Config as cms + +import argparse +import sys + +parser = argparse.ArgumentParser(prog=sys.argv[0], description='Generate XML geometry.') +parser.add_argument("--geom", help="Name of parameter", type=str, default='ExtendedGeometry2025') +parser.add_argument("--out", help="Prefix for output file", type=str, default='ge') + +args = parser.parse_args() + +process = cms.Process("GeometryXMLWriter") + +process.source = cms.Source("EmptyIOVSource", + lastValue = cms.uint64(1), + timetype = cms.string('runnumber'), + firstValue = cms.uint64(1), + interval = cms.uint64(1) + ) + +process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer", + confGeomXMLFiles = cms.FileInPath('Geometry/CMSCommonData/data/dd4hep/cms'+args.geom+'.xml'), + appendToDataLabel = cms.string('make-payload') + ) + +process.DDCompactViewESProducer = cms.ESProducer("DDCompactViewESProducer", + appendToDataLabel = cms.string('make-payload') + ) + +process.BigXMLWriter = cms.EDAnalyzer("OutputDD4hepToDDL", + fileName = cms.untracked.string("./"+args.out+"SingleBigFile.xml") + ) + + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) + ) + +process.p1 = cms.Path(process.BigXMLWriter) + diff --git a/CondTools/Geometry/test/writehelpers/geometryExtended2025_writer.py b/CondTools/Geometry/test/writehelpers/geometryExtended2025_writer.py new file mode 100644 index 0000000000000..e1255855b1bbe --- /dev/null +++ b/CondTools/Geometry/test/writehelpers/geometryExtended2025_writer.py @@ -0,0 +1,73 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("GeometryWriter") + +process.load('CondCore.CondDB.CondDB_cfi') + +# This will read all the little XML files and from +# that fill the DDCompactView. The modules that fill +# the reco part of the database need the DDCompactView. +process.load('Configuration.Geometry.GeometryExtended2025_cff') +process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi') +process.load("Geometry.MuonNumbering.muonGeometryConstants_cff") +process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi') +process.load('CondTools.Geometry.HcalParametersWriter_cff') + +process.source = cms.Source("EmptyIOVSource", + lastValue = cms.uint64(1), + timetype = cms.string('runnumber'), + firstValue = cms.uint64(1), + interval = cms.uint64(1) + ) + +# This reads the big XML file and the only way to fill the +# nonreco part of the database is to read this file. It +# somewhat duplicates the information read from the little +# XML files, but there is no way to directly build the +# DDCompactView from this. +process.XMLGeometryWriter = cms.EDAnalyzer("XMLGeometryBuilder", + XMLFileName = cms.untracked.string("./geSingleBigFile.xml"), + ZIP = cms.untracked.bool(True) + ) + +process.TrackerGeometryWriter = cms.EDAnalyzer("PGeometricDetBuilder",fromDD4hep=cms.bool(False)) +process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder",fromDD4hep=cms.bool(False)) + +process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder") + +process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(False)) + +process.DTGeometryWriter = cms.EDAnalyzer("DTRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(False)) + +process.RPCGeometryWriter = cms.EDAnalyzer("RPCRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(False)) + +process.GEMGeometryWriter = cms.EDAnalyzer("GEMRecoIdealDBLoader") + +process.CondDB.timetype = cms.untracked.string('runnumber') +process.CondDB.connect = cms.string('sqlite_file:myfile.db') +process.PoolDBOutputService = cms.Service("PoolDBOutputService", + process.CondDB, + toPut = cms.VPSet(cms.PSet(record = cms.string('GeometryFileRcd'),tag = cms.string('XMLFILE_Geometry_TagXX_Extended2025_mc')), + cms.PSet(record = cms.string('IdealGeometryRecord'),tag = cms.string('TKRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('PTrackerParametersRcd'),tag = cms.string('TKParameters_Geometry_TagXX')), + cms.PSet(record = cms.string('PEcalBarrelRcd'), tag = cms.string('EBRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('PEcalEndcapRcd'), tag = cms.string('EERECO_Geometry_TagXX')), + cms.PSet(record = cms.string('PEcalPreshowerRcd'),tag = cms.string('EPRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('PHcalRcd'), tag = cms.string('HCALRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('HcalParametersRcd'), tag = cms.string('HCALParameters_Geometry_TagXX')), + cms.PSet(record = cms.string('PCaloTowerRcd'), tag = cms.string('CTRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('PZdcRcd'), tag = cms.string('ZDCRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('PCastorRcd'), tag = cms.string('CASTORRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('CSCRecoGeometryRcd'),tag = cms.string('CSCRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('CSCRecoDigiParametersRcd'),tag = cms.string('CSCRECODIGI_Geometry_TagXX')), + cms.PSet(record = cms.string('DTRecoGeometryRcd'),tag = cms.string('DTRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('RPCRecoGeometryRcd'),tag = cms.string('RPCRECO_Geometry_TagXX')), + cms.PSet(record = cms.string('GEMRecoGeometryRcd'),tag = cms.string('GEMRECO_Geometry_TagXX')) + ) + ) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) + ) + +process.p1 = cms.Path(process.XMLGeometryWriter+process.TrackerGeometryWriter+process.TrackerParametersWriter+process.CaloGeometryWriter+process.HcalParametersWriter+process.CSCGeometryWriter+process.DTGeometryWriter+process.RPCGeometryWriter+process.GEMGeometryWriter) diff --git a/CondTools/Geometry/test/writehelpers/geometryExtended2025_xmlwriter.py b/CondTools/Geometry/test/writehelpers/geometryExtended2025_xmlwriter.py new file mode 100644 index 0000000000000..3331fb444ba59 --- /dev/null +++ b/CondTools/Geometry/test/writehelpers/geometryExtended2025_xmlwriter.py @@ -0,0 +1,25 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("GeometryXMLWriter") + +process.load('Configuration.Geometry.GeometryExtended2025_cff') + +process.source = cms.Source("EmptyIOVSource", + lastValue = cms.uint64(1), + timetype = cms.string('runnumber'), + firstValue = cms.uint64(1), + interval = cms.uint64(1) + ) + +process.BigXMLWriter = cms.EDAnalyzer("OutputDDToDDL", + rotNumSeed = cms.int32(0), + fileName = cms.untracked.string("./geSingleBigFile.xml") + ) + + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) + ) + +process.p1 = cms.Path(process.BigXMLWriter) + diff --git a/CondTools/Geometry/test/writehelpers/splitExtended2025Database.sh b/CondTools/Geometry/test/writehelpers/splitExtended2025Database.sh new file mode 100644 index 0000000000000..d9a3e8bd0c012 --- /dev/null +++ b/CondTools/Geometry/test/writehelpers/splitExtended2025Database.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +conddb --yes --db myfile.db copy XMLFILE_Geometry_TagXX_Extended2025_mc --destdb GeometryFileExtended2025.db +conddb --yes --db myfile.db copy XMLFILE_Geometry_TagXX_Extended2025ZeroMaterial_mc --destdb GeometryFileExtended2025ZeroMaterial.db +conddb --yes --db myfile.db copy XMLFILE_Geometry_TagXX_Extended2025FlatMinus05Percent_mc --destdb GeometryFileExtended2025FlatMinus05Percent.db +conddb --yes --db myfile.db copy XMLFILE_Geometry_TagXX_Extended2025FlatMinus10Percent_mc --destdb GeometryFileExtended2025FlatMinus10Percent.db +conddb --yes --db myfile.db copy XMLFILE_Geometry_TagXX_Extended2025FlatPlus05Percent_mc --destdb GeometryFileExtended2025FlatPlus05Percent.db +conddb --yes --db myfile.db copy XMLFILE_Geometry_TagXX_Extended2025FlatPlus10Percent_mc --destdb GeometryFileExtended2025FlatPlus10Percent.db +conddb --yes --db myfile.db copy TKRECO_Geometry_TagXX --destdb TKRECO_Geometry.db +conddb --yes --db myfile.db copy TKParameters_Geometry_TagXX --destdb TKParameters_Geometry.db +conddb --yes --db myfile.db copy EBRECO_Geometry_TagXX --destdb EBRECO_Geometry.db +conddb --yes --db myfile.db copy EERECO_Geometry_TagXX --destdb EERECO_Geometry.db +conddb --yes --db myfile.db copy EPRECO_Geometry_TagXX --destdb EPRECO_Geometry.db +conddb --yes --db myfile.db copy HCALRECO_Geometry_TagXX --destdb HCALRECO_Geometry.db +conddb --yes --db myfile.db copy HCALParameters_Geometry_TagXX --destdb HCALParameters_Geometry.db +conddb --yes --db myfile.db copy CTRECO_Geometry_TagXX --destdb CTRECO_Geometry.db +conddb --yes --db myfile.db copy ZDCRECO_Geometry_TagXX --destdb ZDCRECO_Geometry.db +conddb --yes --db myfile.db copy CSCRECO_Geometry_TagXX --destdb CSCRECO_Geometry.db +conddb --yes --db myfile.db copy CSCRECODIGI_Geometry_TagXX --destdb CSCRECODIGI_Geometry.db +conddb --yes --db myfile.db copy DTRECO_Geometry_TagXX --destdb DTRECO_Geometry.db +conddb --yes --db myfile.db copy RPCRECO_Geometry_TagXX --destdb RPCRECO_Geometry.db +conddb --yes --db myfile.db copy GEMRECO_Geometry_TagXX --destdb GEMRECO_Geometry.db From 6ec3af7070c12459cb3253ea45c2dfeaa8be1ddc Mon Sep 17 00:00:00 2001 From: Sunanda Date: Tue, 26 Nov 2024 09:42:43 +0100 Subject: [PATCH 128/418] Complete the Run4D116 scenario which mimicj Run4D110 but with much reduced overlaps --- Configuration/Geometry/README.md | 6 ++++ .../Geometry/python/dictRun4Geometry.py | 32 +++++++++++++++++-- .../dd4hep/cmsExtendedGeometryRun4D116.xml | 5 +-- .../data/materials/2030/v1/materials.xml | 11 +++++++ .../cmsExtendedGeometryRun4D116XML_cfi.py | 5 +-- 5 files changed, 53 insertions(+), 6 deletions(-) diff --git a/Configuration/Geometry/README.md b/Configuration/Geometry/README.md index eaafd36577a64..afd225727c7db 100644 --- a/Configuration/Geometry/README.md +++ b/Configuration/Geometry/README.md @@ -109,6 +109,7 @@ Calorimeters: * C22: HGCal (v18 version of HGCal geometry as in C18 with calibration cells, nonzero cssette retraction, correct mousebite, guard ring, proper cell size) + Phase2 HCAL and EB (used in Run4D104) * C23: HGCal (same as the v18 version which is in C22 but without internal cells in the Geant4 geometry defintiion) + Phase2 HCAL and EB (used in Run4D106) * C24: HGCal (v18 version of HGCal geometry as in C122 but turning off all dead areas and gaps) + Phase2 HCAL and EB (used in Run4D109) +* C25: sane as C18 but changing ebalgo.xml to make it more conformant with standard Muon system: * M4: Phase2 muon system for TDR w/ GE2/1, ME0, RE3/1, RE4/1 (incl. granularity in ME0, staggered GE2/1), 96 iRPC strips, no overlaps, MB4Shields @@ -118,6 +119,7 @@ Muon system: * M9: same as M8 with GE0 replacing ME0 * M10: same as M9 but with a realistic support structure for GE0, Shield structure modified in muonYoke * M11: same as M10 but with a corrected eta partition sizes for GE21 +* M12: same as M11 but removing overlaps in yoke, MB3, GE0 + adding DT shield Fast Timing system: * I10: Fast Timing detector (LYSO barrel (bars along phi flat), silicon endcap), w/ passive materials, ETL in position defined in O4, material adjustments @@ -136,6 +138,7 @@ The script also handles the common and forward elements of the geometry: * O7: same as O6 with changes needed for new defintion of calorimeter boundaries * O8: same as O7 with changes needed for a newer definition of calorimeter boundaries * O9: same as O8 with changes needed to support the additional notch in ETL +*O10: same as O9 with changes needed to support the shields for DT * F2: modifications needed to accommodate detailed cavern, ZDC description is removed. * F3: same as F2 but changes due to HFNose @@ -144,6 +147,7 @@ The script also handles the common and forward elements of the geometry: * F6: same as F4 with modifications needed for BRM and forward shield * F7: same as F6 with modifications needed for HFNose * F8: same as F6 or F7 without BRM +* F9: same as F8 after removing overlap in rotated shield Several detector combinations have been generated: * D95 = T31+C17+M10+I16+O9+F8 @@ -165,4 +169,6 @@ Several detector combinations have been generated: * D112 = T37+C24+M11+I17+O9+F8 * D113 = T38+C24+M11+I17+O9+F8 * D114 = T39+C19+M11+I17+O9+F8 +* D115 = T35+C20+M11+I17+O9+F8 +* D116 = T35+C25+M12+I17+O10+F9 diff --git a/Configuration/Geometry/python/dictRun4Geometry.py b/Configuration/Geometry/python/dictRun4Geometry.py index c517a0242cda0..b91b48f4f8c22 100644 --- a/Configuration/Geometry/python/dictRun4Geometry.py +++ b/Configuration/Geometry/python/dictRun4Geometry.py @@ -58,6 +58,34 @@ ], "era" : "phase2_common, phase2_trigger", }, + "O10" : { + 1 : [ + 'Geometry/CMSCommonData/data/materials/2030/v1/materials.xml', + 'Geometry/TrackerCommonData/data/trackermaterial/2021/v2/trackermaterial.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + ], + 5 : [ + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ], + "era" : "phase2_common, phase2_trigger", + }, } trackerDict = { @@ -1293,7 +1321,7 @@ 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', 'Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2030/v1/mb4Shield.xml', 'Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml', 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', @@ -1528,7 +1556,7 @@ ("O9","T38","C24","M11","F8","I17") : "D113", ("O9","T39","C19","M11","F8","I17") : "D114", ("O9","T35","C20","M11","F8","I17") : "D115", - ("O9","T35","C25","M12","F9","I17") : "D116", + ("O10","T35","C25","M12","F9","I17") : "D116", } deprecatedDets = set([ "D1", "D2", "D3", "D5", "D6" , "D7", "D4", "D8" , "D9", "D12", "D13", "D15", "D10", "D11", "D14", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D36", "D37", "D38", "D39", "D40", "D42", "D35", "D41", "D43", "D44", "D45", "D46", "D48", "D47", "D50", "D51", "D52", "D53", "D54", "D55", "D56", "D57", "D58", "D59", "D61", "D62", "D63", "D64", "D65", "D66", "D67", "D69", "D71", "D72", "D73", "D74", "D75", "D78", "D79", "D87", "D89", "D90", "D49", "D60", "D68", "D70", "D76", "D77", "D80", "D81", "D82", "D83", "D84", "D85","D86","D88","D91","D92","D93","D94","D97"]) diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml index ae6f3ba4dcf7e..0e3cf107d8d00 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml @@ -4,7 +4,8 @@ - + + @@ -70,7 +71,7 @@ - + diff --git a/Geometry/CMSCommonData/data/materials/2030/v1/materials.xml b/Geometry/CMSCommonData/data/materials/2030/v1/materials.xml index 0cae172e93e86..02db5c952a256 100644 --- a/Geometry/CMSCommonData/data/materials/2030/v1/materials.xml +++ b/Geometry/CMSCommonData/data/materials/2030/v1/materials.xml @@ -3744,6 +3744,17 @@ + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py index 7c982eb460434..21de4ae69e0a8 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py @@ -5,7 +5,8 @@ XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', + 'Geometry/CMSCommonData/data/materials/2030/v1/materials.xml', + 'Geometry/TrackerCommonData/data/trackermaterial/2021/v2/trackermaterial.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', @@ -71,7 +72,7 @@ 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', 'Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2030/v1/mb4Shield.xml', 'Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml', 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', From 859e555977f9b45e53dab9b7927b8c8f6de54ddd Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Tue, 26 Nov 2024 03:45:19 -0800 Subject: [PATCH 129/418] Removal of useless ByLayer( functions to fix build errors --- .../LSTCore/src/alpaka/LSTEvent.dev.cc | 28 ------------------- RecoTracker/LSTCore/src/alpaka/LSTEvent.h | 4 --- 2 files changed, 32 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc index be6c2b88b73c8..653b6b0964afa 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc @@ -1271,13 +1271,6 @@ unsigned int LSTEvent::getNumberOfMiniDoublets() { return miniDoublets; } -unsigned int LSTEvent::getNumberOfMiniDoubletsByLayer(unsigned int layer) { - if (layer == 6) - return n_minidoublets_by_layer_barrel_[layer]; - else - return n_minidoublets_by_layer_barrel_[layer] + n_minidoublets_by_layer_endcap_[layer]; -} - unsigned int LSTEvent::getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer) { return n_minidoublets_by_layer_barrel_[layer]; } @@ -1298,13 +1291,6 @@ unsigned int LSTEvent::getNumberOfSegments() { return segments; } -unsigned int LSTEvent::getNumberOfSegmentsByLayer(unsigned int layer) { - if (layer == 6) - return n_segments_by_layer_barrel_[layer]; - else - return n_segments_by_layer_barrel_[layer] + n_segments_by_layer_endcap_[layer]; -} - unsigned int LSTEvent::getNumberOfSegmentsByLayerBarrel(unsigned int layer) { return n_segments_by_layer_barrel_[layer]; } @@ -1325,13 +1311,6 @@ unsigned int LSTEvent::getNumberOfTriplets() { return triplets; } -unsigned int LSTEvent::getNumberOfTripletsByLayer(unsigned int layer) { - if (layer == 6) - return n_triplets_by_layer_barrel_[layer]; - else - return n_triplets_by_layer_barrel_[layer] + n_triplets_by_layer_endcap_[layer]; -} - unsigned int LSTEvent::getNumberOfTripletsByLayerBarrel(unsigned int layer) { return n_triplets_by_layer_barrel_[layer]; } @@ -1373,13 +1352,6 @@ unsigned int LSTEvent::getNumberOfQuintuplets() { return quintuplets; } -unsigned int LSTEvent::getNumberOfQuintupletsByLayer(unsigned int layer) { - if (layer == 6) - return n_quintuplets_by_layer_barrel_[layer]; - else - return n_quintuplets_by_layer_barrel_[layer] + n_quintuplets_by_layer_endcap_[layer]; -} - unsigned int LSTEvent::getNumberOfQuintupletsByLayerBarrel(unsigned int layer) { return n_quintuplets_by_layer_barrel_[layer]; } diff --git a/RecoTracker/LSTCore/src/alpaka/LSTEvent.h b/RecoTracker/LSTCore/src/alpaka/LSTEvent.h index 59f249aa9405f..d4c659a199515 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTEvent.h +++ b/RecoTracker/LSTCore/src/alpaka/LSTEvent.h @@ -137,17 +137,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { void resetObjectsInModule(); unsigned int getNumberOfMiniDoublets(); - unsigned int getNumberOfMiniDoubletsByLayer(unsigned int layer); unsigned int getNumberOfMiniDoubletsByLayerBarrel(unsigned int layer); unsigned int getNumberOfMiniDoubletsByLayerEndcap(unsigned int layer); unsigned int getNumberOfSegments(); - unsigned int getNumberOfSegmentsByLayer(unsigned int layer); unsigned int getNumberOfSegmentsByLayerBarrel(unsigned int layer); unsigned int getNumberOfSegmentsByLayerEndcap(unsigned int layer); unsigned int getNumberOfTriplets(); - unsigned int getNumberOfTripletsByLayer(unsigned int layer); unsigned int getNumberOfTripletsByLayerBarrel(unsigned int layer); unsigned int getNumberOfTripletsByLayerEndcap(unsigned int layer); @@ -155,7 +152,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { int getNumberOfPixelQuintuplets(); unsigned int getNumberOfQuintuplets(); - unsigned int getNumberOfQuintupletsByLayer(unsigned int layer); unsigned int getNumberOfQuintupletsByLayerBarrel(unsigned int layer); unsigned int getNumberOfQuintupletsByLayerEndcap(unsigned int layer); From c53a44d13cf92e3b16da8deee69215c64d2aa496 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Tue, 26 Nov 2024 08:16:43 -0600 Subject: [PATCH 130/418] Remove obsolete comment --- CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc b/CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc index 9fa6ccbd59917..a991a45a3a2ea 100644 --- a/CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc +++ b/CondFormats/JetMETObjects/src/JetCorrectionUncertainty.cc @@ -71,7 +71,6 @@ JetCorrectionUncertainty::JetCorrectionUncertainty(const JetCorrectorParameters& } ///////////////////////////////////////////////////////////////////////// void JetCorrectionUncertainty::setParameters(const std::string& fDataFile) { - //---- delete the mParameters pointer before setting the new address --- mUncertainty = SimpleJetCorrectionUncertainty(fDataFile); } ///////////////////////////////////////////////////////////////////////// From bc94e156dab49e1a365129a3d54f554f8cd556d2 Mon Sep 17 00:00:00 2001 From: Alessandro Tarabini Date: Tue, 26 Nov 2024 15:50:35 +0100 Subject: [PATCH 131/418] [photons_cff.py] Increase precision of two shower shape observables for Hgg analysis --- PhysicsTools/NanoAOD/python/photons_cff.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PhysicsTools/NanoAOD/python/photons_cff.py b/PhysicsTools/NanoAOD/python/photons_cff.py index ca6dc18e1307a..dace9e46ad192 100644 --- a/PhysicsTools/NanoAOD/python/photons_cff.py +++ b/PhysicsTools/NanoAOD/python/photons_cff.py @@ -221,12 +221,12 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): ecalPFClusterIso = Var("ecalPFClusterIso()",float,doc="sum pt of ecal clusters, vetoing clusters part of photon", precision=10), hcalPFClusterIso = Var("hcalPFClusterIso()",float,doc="sum pt of hcal clusters, vetoing clusters part of photon", precision=10), pfPhoIso03 = Var("photonIso()",float,doc="PF absolute isolation dR=0.3, photon component (uncorrected)"), - pfChargedIso = Var("chargedHadronIso()",float,doc="PF absolute isolation dR=0.3, charged component with dxy,dz match to PV", precision=8), + pfChargedIso = Var("chargedHadronIso()",float,doc="PF absolute isolation dR=0.3, charged component with dxy,dz match to PV", precision=10), pfChargedIsoPFPV = Var("chargedHadronPFPVIso()",float,doc="PF absolute isolation dR=0.3, charged component (PF PV only)"), pfChargedIsoWorstVtx = Var("chargedHadronWorstVtxIso()",float,doc="PF absolute isolation dR=0.3, charged component (Vertex with largest isolation)"), pfRelIso03_chg_quadratic = Var("userFloat('PFIsoChgQuadratic')/pt",float,doc="PF relative isolation dR=0.3, charged hadron component (with quadraticEA*rho*rho + linearEA*rho Winter22V1 corrections)"), pfRelIso03_all_quadratic = Var("userFloat('PFIsoAllQuadratic')/pt",float,doc="PF relative isolation dR=0.3, total (with quadraticEA*rho*rho + linearEA*rho Winter22V1 corrections)"), - hoe = Var("hadronicOverEm()",float,doc="H over E",precision=8), + hoe = Var("hadronicOverEm()",float,doc="H over E",precision=10), hoe_Tower = Var("hadTowOverEm()",float,doc="H over E Tower based calculation",precision=8), hoe_PUcorr = Var("userFloat('HoverEQuadratic')",float,doc="PU corrected H/E (cone-based with quadraticEA*rho*rho + linearEA*rho Winter22V1 corrections)",precision=8), isScEtaEB = Var("abs(superCluster().eta()) < 1.4442",bool,doc="is supercluster eta within barrel acceptance"), From 3939fec1d9f03b642f5feb99f887bc799db7502f Mon Sep 17 00:00:00 2001 From: Carlos Vico Villalba Date: Tue, 26 Nov 2024 16:12:13 +0100 Subject: [PATCH 132/418] Change genDressedLepton pT threshold to 10 GeV for future differential measurements --- PhysicsTools/NanoAOD/python/particlelevel_cff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhysicsTools/NanoAOD/python/particlelevel_cff.py b/PhysicsTools/NanoAOD/python/particlelevel_cff.py index 40560be880c94..efa2bbfac4db6 100644 --- a/PhysicsTools/NanoAOD/python/particlelevel_cff.py +++ b/PhysicsTools/NanoAOD/python/particlelevel_cff.py @@ -63,7 +63,7 @@ ##################### Tables for final output and docs ########################## rivetLeptonTable = simpleCandidateFlatTableProducer.clone( src = cms.InputTag("particleLevel:leptons"), - cut = cms.string("pt > 15"), + cut = cms.string("pt > 10"), name= cms.string("GenDressedLepton"), doc = cms.string("Dressed leptons from Rivet-based ParticleLevelProducer"), externalVariables = cms.PSet( From 9e3b35473be8cf0f8f5e834acedf5b157027af6e Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 16:42:56 +0100 Subject: [PATCH 133/418] Add possibility to work with HepMC3Product --- .../interface/BaseEvtVtxGenerator.h | 2 + .../src/BaseEvtVtxGenerator.cc | 44 ++++++++++++++----- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h index 4a66bd16c3adc..ab77e103b0b82 100644 --- a/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h @@ -18,6 +18,7 @@ namespace CLHEP { namespace edm { class HepMCProduct; + class HepMC3Product; } class BaseEvtVtxGenerator : public edm::stream::EDProducer<> { @@ -39,6 +40,7 @@ class BaseEvtVtxGenerator : public edm::stream::EDProducer<> { private: edm::EDGetTokenT sourceToken; + edm::EDGetTokenT sourceToken3; }; #endif diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index 4257db6beb953..c6f9a61fd7867 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -8,7 +8,7 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" +#include "SimDataFormats/GeneratorProducts/interface/HepMC3Product.h" #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Utilities/interface/RandomNumberGenerator.h" @@ -35,7 +35,9 @@ BaseEvtVtxGenerator::BaseEvtVtxGenerator(const ParameterSet& pset) { "in the configuration file or remove the modules that require it."; } + sourceToken3 = consumes(pset.getParameter("src")); sourceToken = consumes(pset.getParameter("src")); + produces(); produces(); } @@ -47,20 +49,38 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { Handle HepUnsmearedMCEvt; - evt.getByToken(sourceToken, HepUnsmearedMCEvt); + bool found = evt.getByToken(sourceToken, HepUnsmearedMCEvt); + + if (found) { // HepMC event exists + + // Make a copy + HepMC::GenEvent* genevt = new HepMC::GenEvent(*HepUnsmearedMCEvt->GetEvent()); + + std::unique_ptr HepMCEvt(new edm::HepMCProduct(genevt)); + // generate new vertex & apply the shift + // + HepMCEvt->applyVtxGen(newVertex(engine)); + + //HepMCEvt->LorentzBoost( 0., 142.e-6 ); + HepMCEvt->boostToLab(GetInvLorentzBoost(), "vertex"); + HepMCEvt->boostToLab(GetInvLorentzBoost(), "momentum"); - // Copy the HepMC::GenEvent - HepMC::GenEvent* genevt = new HepMC::GenEvent(*HepUnsmearedMCEvt->GetEvent()); - std::unique_ptr HepMCEvt(new edm::HepMCProduct(genevt)); - // generate new vertex & apply the shift - // - HepMCEvt->applyVtxGen(newVertex(engine)); + evt.put(std::move(HepMCEvt)); - //HepMCEvt->LorentzBoost( 0., 142.e-6 ); - HepMCEvt->boostToLab(GetInvLorentzBoost(), "vertex"); - HepMCEvt->boostToLab(GetInvLorentzBoost(), "momentum"); + } else { // no HepMC event, try to get HepMC3 event - evt.put(std::move(HepMCEvt)); + Handle HepUnsmearedMCEvt3; + found = evt.getByToken(sourceToken3, HepUnsmearedMCEvt3); + + if(!found) throw cms::Exception("ProductAbsent") << "No HepMCProduct, tried to get HepMC3Product, but it is also absent " << std::endl; + + HepMC3::GenEvent* genevt3 = new HepMC3::GenEvent(); + genevt3->read_data(*HepUnsmearedMCEvt3->GetEvent()); + HepMC3Product* productcopy3 = new HepMC3Product(genevt3); // For the moment do not really smear HepMC3 + std::unique_ptr HepMC3Evt(productcopy3); + evt.put(std::move(HepMC3Evt)); + + } return; } From 256b1e80dbeffc939cc8fb0c79a5ff75eb342c0b Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 17:09:00 +0100 Subject: [PATCH 134/418] Fix for code-checks --- .../interface/BaseEvtVtxGenerator.h | 2 +- IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h index ab77e103b0b82..8614804c7cd87 100644 --- a/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h @@ -19,7 +19,7 @@ namespace CLHEP { namespace edm { class HepMCProduct; class HepMC3Product; -} +} // namespace edm class BaseEvtVtxGenerator : public edm::stream::EDProducer<> { public: diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index c6f9a61fd7867..6b41f9eff085c 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -51,7 +51,7 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { bool found = evt.getByToken(sourceToken, HepUnsmearedMCEvt); - if (found) { // HepMC event exists + if (found) { // HepMC event exists // Make a copy HepMC::GenEvent* genevt = new HepMC::GenEvent(*HepUnsmearedMCEvt->GetEvent()); @@ -67,19 +67,20 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { evt.put(std::move(HepMCEvt)); - } else { // no HepMC event, try to get HepMC3 event + } else { // no HepMC event, try to get HepMC3 event Handle HepUnsmearedMCEvt3; found = evt.getByToken(sourceToken3, HepUnsmearedMCEvt3); - if(!found) throw cms::Exception("ProductAbsent") << "No HepMCProduct, tried to get HepMC3Product, but it is also absent " << std::endl; + if (!found) + throw cms::Exception("ProductAbsent") + << "No HepMCProduct, tried to get HepMC3Product, but it is also absent " << std::endl; HepMC3::GenEvent* genevt3 = new HepMC3::GenEvent(); genevt3->read_data(*HepUnsmearedMCEvt3->GetEvent()); - HepMC3Product* productcopy3 = new HepMC3Product(genevt3); // For the moment do not really smear HepMC3 + HepMC3Product* productcopy3 = new HepMC3Product(genevt3); // For the moment do not really smear HepMC3 std::unique_ptr HepMC3Evt(productcopy3); evt.put(std::move(HepMC3Evt)); - } return; From 9bae67cdea4eac9fc69861473e44e0480f2644d0 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 17:32:38 +0100 Subject: [PATCH 135/418] Fix2 for code-checks --- IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h | 2 +- IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h index 8614804c7cd87..ae3a50fb31ac9 100644 --- a/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h @@ -19,7 +19,7 @@ namespace CLHEP { namespace edm { class HepMCProduct; class HepMC3Product; -} // namespace edm +} // namespace edm class BaseEvtVtxGenerator : public edm::stream::EDProducer<> { public: diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index 6b41f9eff085c..a46cb8d051cb6 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -80,7 +80,7 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { genevt3->read_data(*HepUnsmearedMCEvt3->GetEvent()); HepMC3Product* productcopy3 = new HepMC3Product(genevt3); // For the moment do not really smear HepMC3 std::unique_ptr HepMC3Evt(productcopy3); - evt.put(std::move(HepMC3Evt)); + evt.put(std::move(HepMC3Evt)); } return; From 6d3dc4513dafaf2967df12efe24cdb1448af81c2 Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 30 Oct 2024 09:37:07 +0100 Subject: [PATCH 136/418] HLT menu development for 14_1_X (branch for 15_0_X) These updates correspond to the changes accumulated in the 14_1_X release cycle after the "V1.0" HIon menu for the 2024 PbPb data-taking period was released. This update includes the integration of the following JIRA tickets: - [CMSHLT-3382](https://its.cern.ch/jira/browse/CMSHLT-3382) [HIN] Addition of a L1_FirstCollisionInTrain passthrough trigger for ZDC physics analysis - [CMSHLT-3386](https://its.cern.ch/jira/browse/CMSHLT-3386) [ECAL] Downgrading EnergyInDeadEB/EE_FE Warning by setting logWarningEtThreshold_EB/EE_FE parameters in the HLT configuration to -1 - [CMSHLT-3388](https://its.cern.ch/jira/browse/CMSHLT-3388) [HIN/TRK] New centrality BS trigger for PbPb menu - [CMSHLT-3390](https://its.cern.ch/jira/browse/CMSHLT-3390) [HIN/DQM] Misnaming of the output folders for DQM analyzers in HLTDQMPixelReconstructionPPOnAA - [CMSHLT-3392](https://its.cern.ch/jira/browse/CMSHLT-3392) [TSG/DQM] Missing collections for HLT dqm client in PbPb 2024 runs - [CMSHLT-3393](https://its.cern.ch/jira/browse/CMSHLT-3393) [HIN] New HLT paths for low pT double EG UPC triggers - [CMSHLT-3394](https://its.cern.ch/jira/browse/CMSHLT-3394) [HIN/AlCa] Change of L1 seed for AlCa_EcalPhiSymForHI_v in the HIon menu - [CMSHLT-3395](https://its.cern.ch/jira/browse/CMSHLT-3395) [HIN] Request for modifying UPC HLT paths for ZDC triggers - [CMSHLT-3400](https://its.cern.ch/jira/browse/CMSHLT-3400) [HIN] Sync HIon table with online post-HIRun2024B - [CMSHLT-3401](https://its.cern.ch/jira/browse/CMSHLT-3401) [HIN] Sync PRef table with online post-Run2024J --- .../Configuration/python/HLT_FULL_cff.py | 440 ++++++++++------- .../Configuration/python/HLT_GRun_cff.py | 12 +- .../Configuration/python/HLT_HIon_cff.py | 356 ++++++++------ .../Configuration/python/HLT_PIon_cff.py | 4 +- .../Configuration/python/HLT_PRef_cff.py | 90 +++- .../Configuration/python/HLT_Special_cff.py | 12 +- .../python/HLTrigger_Datasets_HIon_cff.py | 40 ++ .../python/HLTrigger_Datasets_PRef_cff.py | 25 + HLTrigger/Configuration/tables/HIon.txt | 6 +- HLTrigger/Configuration/tables/PRef.txt | 1 + .../Configuration/tables/online_hion.txt | 6 +- .../Configuration/tables/online_pref.txt | 1 + .../Configuration/test/OnLine_HLT_FULL.py | 449 +++++++++++------- .../Configuration/test/OnLine_HLT_GRun.py | 12 +- .../Configuration/test/OnLine_HLT_HIon.py | 365 ++++++++------ .../Configuration/test/OnLine_HLT_PIon.py | 4 +- .../Configuration/test/OnLine_HLT_PRef.py | 90 +++- .../Configuration/test/OnLine_HLT_Special.py | 12 +- 18 files changed, 1217 insertions(+), 708 deletions(-) diff --git a/HLTrigger/Configuration/python/HLT_FULL_cff.py b/HLTrigger/Configuration/python/HLT_FULL_cff.py index 924e32d4be3b8..e5568afb2126d 100644 --- a/HLTrigger/Configuration/python/HLT_FULL_cff.py +++ b/HLTrigger/Configuration/python/HLT_FULL_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/HLT --cff --data --type FULL -# /dev/CMSSW_14_1_0/HLT/V68 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/HLT/V79 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/HLT/V68") + tableName = cms.string("/dev/CMSSW_14_1_0/HLT/V79") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -2176,10 +2176,8 @@ HIDQMGPUvsCPU = cms.vstring( 'DQM_HIEcalReconstruction_v10', 'DQM_HIHcalReconstruction_v8', 'DQM_HIPixelReconstruction_v12' ), - HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ), + HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', + 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ), HIEmptyBX = cms.vstring( 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1UnpairedBunchBptxMinus_v14', 'HLT_HIL1UnpairedBunchBptxPlus_v14' ), @@ -2197,10 +2195,8 @@ 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', 'HLT_HIMinimumBiasHF1AND_copy_v6' ), - HIExpressAlignment = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ), + HIExpressAlignment = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', + 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ), HIExpressPhysics = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', @@ -2248,6 +2244,8 @@ HIForward0 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2386,6 +2384,8 @@ HIForward1 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2524,6 +2524,8 @@ HIForward10 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2662,6 +2664,8 @@ HIForward11 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2800,6 +2804,8 @@ HIForward12 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2938,6 +2944,8 @@ HIForward13 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3076,6 +3084,8 @@ HIForward14 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3214,6 +3224,8 @@ HIForward15 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3352,6 +3364,8 @@ HIForward16 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3490,6 +3504,8 @@ HIForward17 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3628,6 +3644,8 @@ HIForward18 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3766,6 +3784,8 @@ HIForward19 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3904,6 +3924,8 @@ HIForward2 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4042,6 +4064,8 @@ HIForward3 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4180,6 +4204,8 @@ HIForward4 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4318,6 +4344,8 @@ HIForward5 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4456,6 +4484,8 @@ HIForward6 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4594,6 +4624,8 @@ HIForward7 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4732,6 +4764,8 @@ HIForward8 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4870,6 +4904,8 @@ HIForward9 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -5021,6 +5057,7 @@ 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7', 'HLT_HIMinimumBiasHF1AND_v7' ), HIOnlineMonitor = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', + 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', @@ -13322,6 +13359,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward1 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13337,6 +13375,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward10 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13352,6 +13391,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward11 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13367,6 +13407,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward12 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13382,6 +13423,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward13 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13397,6 +13439,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward14 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13412,6 +13455,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward15 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13427,6 +13471,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward16 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13442,6 +13487,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward17 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13457,6 +13503,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward18 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13472,6 +13519,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward19 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13487,6 +13535,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward2 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13502,6 +13551,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward20 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13517,6 +13567,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward21 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13532,6 +13583,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward22 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13547,6 +13599,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward23 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13562,6 +13615,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward24 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13577,6 +13631,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward3 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13592,6 +13647,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward4 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13607,6 +13663,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward5 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13622,6 +13679,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward6 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13637,6 +13695,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward7 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13652,6 +13711,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward8 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13667,6 +13727,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward9 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13682,6 +13743,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), ParkingDoubleMuonLowMass0 = cms.vstring( 'HLT_Dimuon0_Jpsi3p5_Muon2_v17', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19', @@ -17144,8 +17206,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -17212,7 +17274,7 @@ ) fragment.hltL1sAlCaEcalPhiSymForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_MinimumBiasHF1_AND_BptxAND OR L1_ZeroBias OR L1_AlwaysTrue OR L1_IsolatedBunch" ), + L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -17681,7 +17743,7 @@ ) fragment.hltL1sAlCaEcalPi0EtaForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AND_MinimumBiasHF1_AND_BptxAND OR L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AND_MinimumBiasHF1_AND_BptxAND OR L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -22029,8 +22091,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -25921,7 +25983,7 @@ fragment.hltPixelTracksSoACompareGPUvsCPUPPOnAA = cms.EDProducer( "SiPixelHIonPhase1CompareTracks", pixelTrackReferenceSoA = cms.InputTag( "hltPixelTracksPPOnAASoASerialSync" ), pixelTrackTargetSoA = cms.InputTag( "hltPixelTracksPPOnAASoA" ), - topFolderName = cms.string( "SiPixelHeterogeneous/PixelTrackCompareDeviceVSHost" ), + topFolderName = cms.string( "SiPixelHeterogeneous/PixelTrackCompareGPUvsCPU" ), useQualityCut = cms.bool( True ), minQuality = cms.string( "loose" ), deltaR2cut = cms.double( 4.0E-4 ) @@ -25940,7 +26002,7 @@ pixelVertexReferenceSoA = cms.InputTag( "hltPixelVerticesPPOnAASoASerialSync" ), pixelVertexTargetSoA = cms.InputTag( "hltPixelVerticesPPOnAASoA" ), beamSpotSrc = cms.InputTag( "hltOnlineBeamSpot" ), - topFolderName = cms.string( "SiPixelHeterogeneous/PixelVertexCompareSoADeviceVSHost" ), + topFolderName = cms.string( "SiPixelHeterogeneous/PixelVertexCompareGPUvsCPU" ), dzCut = cms.double( 1.0 ) ) fragment.hltL1sDQMHIEcalReconstruction = cms.EDFilter( "HLTL1TSeed", @@ -94883,7 +94945,79 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltPreHIMinimumBiasHF1ANDBeamspot = cms.EDFilter( "HLTPrescaler", +fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHIMinimumBiasHF1ANDZDC1nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHIMinimumBiasHF1ANDZDC2nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHIMinimumBiasHF1ANDZDC1nORcopy = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHIMinimumBiasHF1ANDZDC2nORcopy = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInOrbit_Centrality30_100_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHICentrality30100FirstCollisionAfterAbortGap = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL1sCentrality50100MinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_Centrality_50_100_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHICentrality50100MinimumBiasHF1ANDBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) @@ -98286,73 +98420,6 @@ cut = cms.string( "!isFake" ), filter = cms.bool( True ) ) -fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC1nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC2nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC1nORcopy = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC2nORcopy = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC1nORBeamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC2nORBeamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInOrbit_Centrality30_100_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPreHICentrality30100FirstCollisionAfterAbortGap = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) fragment.hltL1Centrality30to50BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_Centrality_30_50_BptxAND" ), @@ -102574,7 +102641,7 @@ ) fragment.hltL1sZDC1nOR = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_Bkp1_OR_BptxAND OR L1_ZDC1n_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -102599,7 +102666,7 @@ ) fragment.hltL1sZDC1nXORHF1AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF1_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_XOR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -102642,7 +102709,7 @@ ) fragment.hltL1sZDC1nXORHF2AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF2_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp1_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp2_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp3_XOR_MinimumBiasHF2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -102667,7 +102734,7 @@ ) fragment.hltL1sZDC1nAsymXORHF1AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF1_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AsymXOR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -102692,7 +102759,7 @@ ) fragment.hltL1sZDC1nAsymXORHF2AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF2_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp1_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp2_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp3_AsymXOR_MinimumBiasHF2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103137,6 +103204,27 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +fragment.hltL1sDoubleEG3NotHF2AND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleEG3_NotMinimumBiasHF2_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHIUPCDoubleEG3NotMBHF2AND = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHIUPCDoubleEG3NotMBHF2ANDSinglePixelTrackMaxPixelTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreHIUPCDoubleEG5BptxANDSinglePixelTrackMaxPixelTrack = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -103164,7 +103252,7 @@ ) fragment.hltL1sZDC1nXORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_XOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103181,7 +103269,7 @@ ) fragment.hltL1sZDC1nXORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_XOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103198,7 +103286,7 @@ ) fragment.hltL1sZDC1nXORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_XOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103215,7 +103303,7 @@ ) fragment.hltL1sZDC1nXORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_XOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103232,7 +103320,7 @@ ) fragment.hltL1sZDC1nXORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_XOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103249,7 +103337,7 @@ ) fragment.hltL1sZDC1nXORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_XOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103266,7 +103354,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103283,7 +103371,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103300,7 +103388,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103317,7 +103405,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103334,7 +103422,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103351,7 +103439,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103508,7 +103596,7 @@ ) fragment.hltL1sZDC1nANDANDNotMBHF2BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AND_AND_NotMBHF2_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp1_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp2_AND_AND_NotMBHF2_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103525,7 +103613,7 @@ ) fragment.hltL1sZeroBiasZDC1nORZDC1nANDANDNotMBHF2BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_AND_AND_NotMBHF2_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_Bkp1_OR_BptxAND OR L1_ZDC1n_Bkp2_OR_BptxAND OR L1_ZDC1n_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp1_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp2_AND_AND_NotMBHF2_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104125,7 +104213,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_notZDC_OR_BptxAND OR L1_SingleJet8_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet8_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104142,7 +104230,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_notZDC_OR_BptxAND OR L1_SingleJet12_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet12_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104159,7 +104247,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_notZDC_OR_BptxAND OR L1_SingleJet16_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet16_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104176,7 +104264,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_notZDC_OR_BptxAND OR L1_SingleJet20_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet20_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104193,7 +104281,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_notZDC_OR_BptxAND OR L1_SingleJet24_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet24_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104210,7 +104298,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_notZDC_OR_BptxAND OR L1_SingleJet28_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet28_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104380,7 +104468,7 @@ ) fragment.hltL1sNotZDC1nANDDoubleJet8DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104397,7 +104485,7 @@ ) fragment.hltL1sNotZDC1nANDDoubleJet12DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104414,7 +104502,7 @@ ) fragment.hltL1sNotZDC1nANDDoubleJet16DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104431,7 +104519,7 @@ ) fragment.hltL1sNotZDC1nORDoubleJet8DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104448,7 +104536,7 @@ ) fragment.hltL1sNotZDC1nORDoubleJet12DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104465,7 +104553,7 @@ ) fragment.hltL1sNotZDC1nORDoubleJet16DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -116177,6 +116265,23 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +fragment.hltL1sL1ZeroBiasFirstCollisionInTrain = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInTrain" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPrePPRefZeroBiasFirstCollisionInTrain = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreMCReducedIterativeTracking = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -119795,7 +119900,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15', + triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15 / 2', 'HLT_HT300_Beamspot_v23', 'HLT_HT60_Beamspot_v22', 'HLT_ZeroBias_Beamspot_v16' ) @@ -120138,7 +120243,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 80', + triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 40', 'HLT_BptxOR_v6', 'HLT_DoublePhoton85_v25', 'HLT_L1ETM120_v4', @@ -120172,8 +120277,8 @@ 'HLT_L1SingleJet90_v4', 'HLT_L1SingleMu7_v5', 'HLT_PFJet500_v33 / 3', - 'HLT_PPRefGEDPhoton30_v6', - 'HLT_PPRefL3SingleMu7_v8 / 80', + 'HLT_PPRefGEDPhoton30_v6 / 50', + 'HLT_PPRefL3SingleMu7_v8 / 200', 'HLT_Physics_v14 / 10' ) ) fragment.hltPreDatasetEventDisplay = cms.EDFilter( "HLTPrescaler", @@ -120186,7 +120291,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15', + triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15 / 2', 'HLT_HT300_Beamspot_PixelClusters_WP2_v7', 'HLT_HT300_Beamspot_v23', 'HLT_HT60_Beamspot_v22', @@ -120241,7 +120346,7 @@ 'HLT_L1SingleJet60_v4', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17 / 3', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27', - 'HLT_PPRefEle15Ele10GsfMass50_v6', + 'HLT_PPRefEle15Ele10GsfMass50_v6 / 12', 'HLT_PPRefL3SingleMu7_v8 / 80', 'HLT_PPRefUPC_ZDC1nOR_v1 / 8500', 'HLT_Physics_v14 / 2', @@ -120277,10 +120382,8 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', + 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ) ) fragment.hltPreDatasetHIDQMOnlineBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120337,9 +120440,9 @@ triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14 / 15', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8 / 0', 'HLT_HIDoubleEle15GsfMass50_v14', - 'HLT_HIDoubleGEDPhoton20_v7 / 65', + 'HLT_HIDoubleGEDPhoton20_v7 / 6', 'HLT_HIL1SingleMu5_SingleEG20Gsf_v7', - 'HLT_HIL1SingleMu5_SingleGEDPhoton20_v7 / 25', + 'HLT_HIL1SingleMu5_SingleGEDPhoton20_v7 / 6', 'HLT_HIL2DoubleMu0_M1p5to6_Open_v7 / 335', 'HLT_HIL3DoubleMu2_Quarkonia_Open_v7 / 200', 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 20', @@ -120356,10 +120459,8 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', + 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ) ) fragment.hltPreDatasetHIExpressAlignment = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120385,14 +120486,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 35', 'HLT_HIL3SingleMu5_v7 / 2000', 'HLT_HIL3SingleMu7_v7 / 800', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', - 'HLT_HIMinimumBiasHF1AND_copy_v6', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14 / 2', - 'HLT_HIZeroBias_v14 / 5' ) + 'HLT_HIZeroBias_v14' ) ) fragment.hltPreDatasetHIExpressPhysics = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120406,8 +120507,8 @@ throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', - 'HLT_HIEle20Gsf_v14', - 'HLT_HIGEDPhoton40_v14 / 2', + 'HLT_HIEle20Gsf_v14 / 2', + 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1SingleMu0_Cosmic_v7 / 0', 'HLT_HIL1UnpairedBunchBptxMinus_v14 / 2', @@ -120418,14 +120519,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 35', 'HLT_HIL3SingleMu5_v7 / 2000', 'HLT_HIL3SingleMu7_v7 / 800', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', - 'HLT_HIMinimumBiasHF1AND_copy_v6', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', - 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 5', + 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14 / 2', - 'HLT_HIZeroBias_v14 / 5' ) + 'HLT_HIZeroBias_v14' ) ) fragment.hltPreDatasetHIExpressPhysicsRawPrime = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120440,6 +120541,8 @@ triggerConditions = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -120688,8 +120791,9 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', + 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 / 5', 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', - 'HLT_HIEle20Gsf_v14 / 3', + 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIHcalNZS_v14 / 3', 'HLT_HIHcalPhiSym_v14 / 3', @@ -120703,14 +120807,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 10', 'HLT_HIL3SingleMu5_v7 / 0', 'HLT_HIL3SingleMu7_v7 / 0', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 20', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 20', - 'HLT_HIMinimumBiasHF1AND_copy_v6 / 20', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', - 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 2', + 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7 / 3', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14', - 'HLT_HIZeroBias_v14 / 3' ) + 'HLT_HIZeroBias_v14' ) ) fragment.hltPreDatasetHIOnlineMonitor = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120722,9 +120826,9 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 / 700', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 / 700', - 'HLT_HIMinimumBiasHF1AND_v7 / 700' ) + triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 / 5000', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 / 5000', + 'HLT_HIMinimumBiasHF1AND_v7 / 5000' ) ) fragment.hltPreDatasetHIMinimumBias0 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120900,7 +121004,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 8', + triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 20', 'HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29', 'HLT_Ele32_WPTight_Gsf_v25 / 5', 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', @@ -121451,8 +121555,8 @@ throw = cms.bool( True ), triggerConditions = ( cms.vstring( 'DQM_Random_v1', 'DQM_ZeroBias_v3', - 'HLT_AK4PFJet100_v8', - 'HLT_AK4PFJetFwd80_v8', + 'HLT_AK4PFJet100_v8 / 10', + 'HLT_AK4PFJetFwd80_v8 / 2', 'HLT_AK8DiPFJet250_250_SoftDropMass40_v6', 'HLT_AK8DiPFJet250_250_SoftDropMass50_v6', 'HLT_AK8DiPFJet260_260_SoftDropMass30_v6', @@ -121987,13 +122091,13 @@ 'HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31', 'HLT_PFMETTypeOne140_PFMHT140_IDTight_v23', 'HLT_PFMETTypeOne200_BeamHaloCleaned_v21', - 'HLT_PPRefDoubleEle10Gsf_v6', - 'HLT_PPRefEle30Gsf_v7', - 'HLT_PPRefGEDPhoton30_EB_v6', - 'HLT_PPRefGEDPhoton40_v6', - 'HLT_PPRefL3DoubleMu0_Open_v8', - 'HLT_PPRefL3DoubleMu0_v8', - 'HLT_PPRefL3SingleMu7_v8', + 'HLT_PPRefDoubleEle10Gsf_v6 / 50', + 'HLT_PPRefEle30Gsf_v7 / 5', + 'HLT_PPRefGEDPhoton30_EB_v6 / 20', + 'HLT_PPRefGEDPhoton40_v6 / 10', + 'HLT_PPRefL3DoubleMu0_Open_v8 / 0', + 'HLT_PPRefL3DoubleMu0_v8 / 200', + 'HLT_PPRefL3SingleMu7_v8 / 200', 'HLT_Photon100EBHE10_v12', 'HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3', 'HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5', @@ -122226,6 +122330,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) ) fragment.hltPreDatasetPPRefZeroBiasPlusForward0 = cms.EDFilter( "HLTPrescaler", @@ -124732,14 +124837,12 @@ fragment.HLT_HIZeroBias_HighRateRAW_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBiasCopy + fragment.hltPreHIZeroBiasHighRateRAW + fragment.HLTDoHIStripZeroSuppression + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1AND_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1AND + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1AND_copy_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDcopy + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HIMinimumBiasHF1AND_Beamspot_v8 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDBeamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTCsAK4PFJetsSequence + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC1nOR + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC2nOR + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC1nORcopy + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC2nORcopy + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC1nORBeamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTCsAK4PFJetsSequence + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) -fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC2nORBeamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTCsAK4PFJetsSequence + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND + fragment.hltPreHICentrality30100FirstCollisionAfterAbortGap + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) +fragment.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sCentrality50100MinimumBiasHF1ANDBptxAND + fragment.hltPreHICentrality50100MinimumBiasHF1ANDBeamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTCsAK4PFJetsSequence + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) fragment.HLT_HIL1Centrality30_50_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1Centrality30to50BptxAND + fragment.hltPreHIL1Centrality3050 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIL1_UCC_0_0p5_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sUCC00p5 + fragment.hltPreHIL1UCC00p5 + fragment.HLTDoLocalHcalSequence + fragment.hltTowerMakerForHf + fragment.hltCaloMETProducerForHf + fragment.hltGlobalSumsETHfMaxFilter + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIL1_UCC_0_1_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sUCC01 + fragment.hltPreHIL1UCC01 + fragment.HLTDoLocalHcalSequence + fragment.hltTowerMakerForHf + fragment.hltCaloMETProducerForHf + fragment.hltGlobalSumsETHfMaxFilter + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) @@ -124845,6 +124948,8 @@ fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG2BptxAND + fragment.hltPreHIUPCDoubleEG2BptxANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.hltPixelActivityFilterMaxClusters1e3 + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG2NotHF2AND + fragment.hltPreHIUPCDoubleEG2NotMBHF2ANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG2NotHF2AND + fragment.hltPreHIUPCDoubleEG2NotMBHF2AND + fragment.HLTDoHIStripZeroSuppression + fragment.HLTEndSequence ) +fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG3NotHF2AND + fragment.hltPreHIUPCDoubleEG3NotMBHF2AND + fragment.HLTDoHIStripZeroSuppression + fragment.HLTEndSequence ) +fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG3NotHF2AND + fragment.hltPreHIUPCDoubleEG3NotMBHF2ANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG5BptxAND + fragment.hltPreHIUPCDoubleEG5BptxANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.hltPixelActivityFilterMaxClusters1e3 + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG5NotHF2AND + fragment.hltPreHIUPCDoubleEG5NotMBHF2ANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG5NotHF2AND + fragment.hltPreHIUPCDoubleEG5NotMBHF2AND + fragment.HLTDoHIStripZeroSuppression + fragment.HLTEndSequence ) @@ -125087,6 +125192,7 @@ fragment.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORSingleJet28 + fragment.hltPrePPRefUPCSingleJet28ZDC1nOR + fragment.HLTEndSequence ) fragment.HLT_PPRefUPC_ZDC1nAsymXOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nAsymXOR + fragment.hltPrePPRefUPCZDC1nAsymXOR + fragment.HLTEndSequence ) fragment.HLT_PPRefUPC_ZDC1nOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORPRef + fragment.hltPrePPRefUPCZDC1nOR + fragment.HLTEndSequence ) +fragment.HLT_PPRefZeroBias_FirstCollisionInTrain_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1ZeroBiasFirstCollisionInTrain + fragment.hltPrePPRefZeroBiasFirstCollisionInTrain + fragment.HLTEndSequence ) fragment.MC_ReducedIterativeTracking_v22 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreMCReducedIterativeTracking + fragment.HLTDoLocalPixelSequence + fragment.HLTRecopixelvertexingSequence + fragment.HLTDoLocalStripSequence + fragment.HLTIterativeTrackingIter02 + fragment.HLTEndSequence ) fragment.MC_AK4CaloJets_v19 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreMCAK4CaloJets + fragment.HLTAK4CaloJetsSequence + fragment.hltCaloJetCollection20Filter + fragment.HLTEndSequence ) fragment.MC_AK4CaloJetsFromPV_v18 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreMCAK4CaloJetsFromPV + fragment.HLTAK4CaloJetsSequence + fragment.HLTNoPUSequence + fragment.hltCaloJetFromPVCollection20Filter + fragment.hltHtMhtFromPVForMC + fragment.hltCaloHtMhtFromPVOpenFilter + fragment.HLTEndSequence ) @@ -125486,7 +125592,7 @@ fragment.Dataset_HIPhysicsRawPrime59 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetHIPhysicsRawPrime + fragment.hltPreDatasetHIPhysicsRawPrime59 ) -fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_EcalPhiSymForHI_v12, fragment.AlCa_EcalEtaEBonly_v25, fragment.AlCa_EcalEtaEEonly_v25, fragment.AlCa_EcalPi0EBonly_v25, fragment.AlCa_EcalPi0EEonly_v25, fragment.AlCa_EcalEtaEBonlyForHI_v13, fragment.AlCa_EcalEtaEEonlyForHI_v13, fragment.AlCa_EcalPi0EBonlyForHI_v13, fragment.AlCa_EcalPi0EEonlyForHI_v13, fragment.AlCa_HIEcalEtaEBonly_v12, fragment.AlCa_HIEcalEtaEEonly_v12, fragment.AlCa_HIEcalPi0EBonly_v12, fragment.AlCa_HIEcalPi0EEonly_v12, fragment.AlCa_RPCMuonNormalisation_v23, fragment.AlCa_RPCMuonNormalisationForHI_v11, fragment.AlCa_HIRPCMuonNormalisation_v11, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.AlCa_PFJet40_v32, fragment.AlCa_PFJet40_CPUOnly_v11, fragment.AlCa_AK8PFJet40_v27, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DQM_HIPixelReconstruction_v12, fragment.DQM_HIEcalReconstruction_v10, fragment.DQM_HIHcalReconstruction_v8, fragment.DQM_Random_v1, fragment.DQM_ZeroBias_v3, fragment.DST_ZeroBias_v11, fragment.DST_Physics_v16, fragment.DST_PFScouting_DoubleMuon_v6, fragment.DST_PFScouting_DoubleEG_v6, fragment.DST_PFScouting_JetHT_v6, fragment.DST_PFScouting_AXOVLoose_v4, fragment.DST_PFScouting_AXOLoose_v4, fragment.DST_PFScouting_AXONominal_v6, fragment.DST_PFScouting_AXOTight_v6, fragment.DST_PFScouting_AXOVTight_v4, fragment.DST_PFScouting_CICADAVLoose_v2, fragment.DST_PFScouting_CICADALoose_v2, fragment.DST_PFScouting_CICADAMedium_v2, fragment.DST_PFScouting_CICADATight_v2, fragment.DST_PFScouting_CICADAVTight_v2, fragment.DST_PFScouting_SingleMuon_v6, fragment.DST_PFScouting_SinglePhotonEB_v3, fragment.DST_PFScouting_ZeroBias_v4, fragment.HLT_EphemeralPhysics_v9, fragment.HLT_EphemeralZeroBias_v9, fragment.HLT_HIEphemeralPhysics_v5, fragment.HLT_HIEphemeralZeroBias_v5, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Alignment_v8, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_IsolatedBunches_v12, fragment.HLT_ZeroBias_FirstBXAfterTrain_v10, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_ZeroBias_FirstCollisionInTrain_v11, fragment.HLT_ZeroBias_LastCollisionInTrain_v10, fragment.HLT_HT300_Beamspot_v23, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_PFJet40_GPUvsCPU_v7, fragment.HLT_AK8PFJet380_SoftDropMass30_v6, fragment.HLT_AK8PFJet400_SoftDropMass30_v6, fragment.HLT_AK8PFJet425_SoftDropMass30_v6, fragment.HLT_AK8PFJet450_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, fragment.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, fragment.HLT_CaloJet500_NoJetID_v22, fragment.HLT_CaloJet550_NoJetID_v17, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, fragment.HLT_DoubleEle25_CaloIdL_MW_v15, fragment.HLT_DoubleEle27_CaloIdL_MW_v15, fragment.HLT_DoubleEle33_CaloIdL_MW_v28, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v17, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v17, fragment.HLT_Mu37_TkMu27_v17, fragment.HLT_DoubleMu4_3_Bs_v27, fragment.HLT_DoubleMu4_3_Jpsi_v27, fragment.HLT_DoubleMu4_3_LowMass_v13, fragment.HLT_DoubleMu4_LowMass_Displaced_v13, fragment.HLT_Mu0_L1DoubleMu_v13, fragment.HLT_Mu4_L1DoubleMu_v13, fragment.HLT_DoubleMu2_Jpsi_LowPt_v6, fragment.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu3_Trk_Tau3mu_v24, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v27, fragment.HLT_Mu3_PFJet40_v28, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v22, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v22, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v13, fragment.HLT_Mu0_Barrel_v6, fragment.HLT_Mu0_Barrel_L1HP6_v3, fragment.HLT_Mu0_Barrel_L1HP7_v3, fragment.HLT_Mu0_Barrel_L1HP8_v4, fragment.HLT_Mu0_Barrel_L1HP9_v4, fragment.HLT_Mu0_Barrel_L1HP10_v6, fragment.HLT_Mu0_Barrel_L1HP11_v6, fragment.HLT_Mu0_Barrel_L1HP6_IP6_v3, fragment.HLT_Mu6_Barrel_L1HP7_IP6_v3, fragment.HLT_Mu7_Barrel_L1HP8_IP6_v4, fragment.HLT_Mu8_Barrel_L1HP9_IP6_v4, fragment.HLT_Mu9_Barrel_L1HP10_IP6_v6, fragment.HLT_Mu10_Barrel_L1HP11_IP6_v6, fragment.HLT_DoublePhoton33_CaloIdL_v17, fragment.HLT_DoublePhoton70_v17, fragment.HLT_DoublePhoton85_v25, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, fragment.HLT_Ele30_WPTight_Gsf_v11, fragment.HLT_Ele32_WPTight_Gsf_v25, fragment.HLT_Ele35_WPTight_Gsf_v19, fragment.HLT_Ele38_WPTight_Gsf_v19, fragment.HLT_Ele40_WPTight_Gsf_v19, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, fragment.HLT_IsoMu20_v27, fragment.HLT_IsoMu24_v25, fragment.HLT_IsoMu24_eta2p1_v27, fragment.HLT_IsoMu27_v28, fragment.HLT_UncorrectedJetE30_NoBPTX_v14, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v14, fragment.HLT_L1SingleMuCosmics_v8, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v15, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, fragment.HLT_L2Mu23NoVtx_2Cha_v10, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, fragment.HLT_DoubleL2Mu50_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, fragment.HLT_Mu30_TkMu0_Psi_v13, fragment.HLT_Mu30_TkMu0_Upsilon_v13, fragment.HLT_Mu25_TkMu0_Phi_v20, fragment.HLT_Mu15_v15, fragment.HLT_Mu20_v24, fragment.HLT_Mu27_v25, fragment.HLT_Mu50_v25, fragment.HLT_Mu55_v15, fragment.HLT_CascadeMu100_v13, fragment.HLT_HighPtTkMu100_v12, fragment.HLT_DiPFJetAve40_v26, fragment.HLT_DiPFJetAve60_v26, fragment.HLT_DiPFJetAve80_v26, fragment.HLT_DiPFJetAve140_v25, fragment.HLT_DiPFJetAve200_v25, fragment.HLT_DiPFJetAve260_v26, fragment.HLT_DiPFJetAve320_v26, fragment.HLT_DiPFJetAve400_v26, fragment.HLT_DiPFJetAve500_v26, fragment.HLT_DiPFJetAve60_HFJEC_v27, fragment.HLT_DiPFJetAve80_HFJEC_v29, fragment.HLT_DiPFJetAve100_HFJEC_v29, fragment.HLT_DiPFJetAve160_HFJEC_v28, fragment.HLT_DiPFJetAve220_HFJEC_v28, fragment.HLT_DiPFJetAve260_HFJEC_v11, fragment.HLT_DiPFJetAve300_HFJEC_v28, fragment.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, fragment.HLT_AK8PFJet40_v28, fragment.HLT_AK8PFJet60_v27, fragment.HLT_AK8PFJet80_v28, fragment.HLT_AK8PFJet140_v27, fragment.HLT_AK8PFJet200_v27, fragment.HLT_AK8PFJet260_v28, fragment.HLT_AK8PFJet320_v28, fragment.HLT_AK8PFJet400_v28, fragment.HLT_AK8PFJet450_v28, fragment.HLT_AK8PFJet500_v28, fragment.HLT_AK8PFJet550_v23, fragment.HLT_PFJet40_v33, fragment.HLT_PFJet60_v33, fragment.HLT_PFJet80_v33, fragment.HLT_PFJet110_v12, fragment.HLT_PFJet140_v31, fragment.HLT_PFJet200_v31, fragment.HLT_PFJet260_v32, fragment.HLT_PFJet320_v32, fragment.HLT_PFJet400_v32, fragment.HLT_PFJet450_v33, fragment.HLT_PFJet500_v33, fragment.HLT_PFJet550_v23, fragment.HLT_PFJetFwd40_v31, fragment.HLT_PFJetFwd60_v31, fragment.HLT_PFJetFwd80_v30, fragment.HLT_PFJetFwd140_v30, fragment.HLT_PFJetFwd200_v30, fragment.HLT_PFJetFwd260_v31, fragment.HLT_PFJetFwd320_v31, fragment.HLT_PFJetFwd400_v31, fragment.HLT_PFJetFwd450_v31, fragment.HLT_PFJetFwd500_v31, fragment.HLT_AK8PFJetFwd40_v27, fragment.HLT_AK8PFJetFwd60_v26, fragment.HLT_AK8PFJetFwd80_v26, fragment.HLT_AK8PFJetFwd140_v26, fragment.HLT_AK8PFJetFwd200_v26, fragment.HLT_AK8PFJetFwd260_v27, fragment.HLT_AK8PFJetFwd320_v27, fragment.HLT_AK8PFJetFwd400_v27, fragment.HLT_AK8PFJetFwd450_v27, fragment.HLT_AK8PFJetFwd500_v27, fragment.HLT_PFHT180_v29, fragment.HLT_PFHT250_v29, fragment.HLT_PFHT370_v29, fragment.HLT_PFHT430_v29, fragment.HLT_PFHT510_v29, fragment.HLT_PFHT590_v29, fragment.HLT_PFHT680_v29, fragment.HLT_PFHT780_v29, fragment.HLT_PFHT890_v29, fragment.HLT_PFHT1050_v30, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, fragment.HLT_PFMET120_PFMHT120_IDTight_v32, fragment.HLT_PFMET130_PFMHT130_IDTight_v32, fragment.HLT_PFMET140_PFMHT140_IDTight_v32, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, fragment.HLT_L1ETMHadSeeds_v10, fragment.HLT_CaloMHT90_v14, fragment.HLT_CaloMET90_NotCleaned_v14, fragment.HLT_CaloMET350_NotCleaned_v14, fragment.HLT_PFMET200_NotCleaned_v21, fragment.HLT_PFMET250_NotCleaned_v21, fragment.HLT_PFMET300_NotCleaned_v21, fragment.HLT_PFMET200_BeamHaloCleaned_v21, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, fragment.HLT_MET105_IsoTrk50_v19, fragment.HLT_MET120_IsoTrk50_v19, fragment.HLT_Mu12eta2p3_v13, fragment.HLT_Mu12eta2p3_PFJet40_v13, fragment.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Photon300_NoHE_v23, fragment.HLT_Mu8_TrkIsoVVL_v24, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, fragment.HLT_Mu17_TrkIsoVVL_v25, fragment.HLT_Mu19_TrkIsoVVL_v16, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v24, fragment.HLT_BTagMu_AK4Jet300_Mu5_v24, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v21, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, fragment.HLT_BTagMu_AK8Jet300_Mu5_v24, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, fragment.HLT_Photon33_v15, fragment.HLT_Photon50_v23, fragment.HLT_Photon75_v23, fragment.HLT_Photon90_v23, fragment.HLT_Photon120_v23, fragment.HLT_Photon150_v17, fragment.HLT_Photon175_v25, fragment.HLT_Photon200_v24, fragment.HLT_Photon45EB_v3, fragment.HLT_Photon40EB_v3, fragment.HLT_Photon50EB_v4, fragment.HLT_Photon30EB_TightID_TightIso_v12, fragment.HLT_Photon40EB_TightID_TightIso_v3, fragment.HLT_Photon45EB_TightID_TightIso_v3, fragment.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_v8, fragment.HLT_Photon55EB_TightID_TightIso_v4, fragment.HLT_Photon75EB_TightID_TightIso_v8, fragment.HLT_Photon90EB_TightID_TightIso_v8, fragment.HLT_Photon110EB_TightID_TightIso_v12, fragment.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon100EBHE10_v12, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v25, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, fragment.HLT_DiphotonMVA14p25_Mass90_v3, fragment.HLT_DiphotonMVA14p25_Tight_Mass90_v3, fragment.HLT_Photon35_TwoProngs35_v13, fragment.HLT_IsoMu24_TwoProngs35_v13, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_v20, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v20, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v17, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v19, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v20, fragment.HLT_Dimuon0_LowMass_v20, fragment.HLT_Dimuon0_LowMass_L1_4_v20, fragment.HLT_Dimuon0_LowMass_L1_TM530_v18, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, fragment.HLT_TripleMu_10_5_5_DZ_v22, fragment.HLT_TripleMu_12_10_5_v22, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, fragment.HLT_DoubleMu4_3_LowMass_SS_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v19, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v19, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, fragment.HLT_DoubleMu4_JpsiTrk_Bc_v12, fragment.HLT_DoubleMu43NoFiltersNoVtx_v14, fragment.HLT_DoubleMu48NoFiltersNoVtx_v14, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, fragment.HLT_Ele28_HighEta_SC20_Mass55_v23, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, fragment.HLT_Ele15_IsoVVVL_PFHT450_v28, fragment.HLT_Ele50_IsoVVVL_PFHT450_v28, fragment.HLT_Ele15_IsoVVVL_PFHT600_v32, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, fragment.HLT_Mu15_IsoVVVL_PFHT450_v27, fragment.HLT_Mu50_IsoVVVL_PFHT450_v27, fragment.HLT_Mu15_IsoVVVL_PFHT600_v31, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, fragment.HLT_Dimuon10_Upsilon_y1p4_v13, fragment.HLT_Dimuon12_Upsilon_y1p4_v14, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, fragment.HLT_Dimuon25_Jpsi_v26, fragment.HLT_Dimuon14_PsiPrime_v25, fragment.HLT_Dimuon14_PsiPrime_noCorrL1_v17, fragment.HLT_Dimuon18_PsiPrime_v26, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v18, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v18, fragment.HLT_Dimuon24_Phi_noCorrL1_v18, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v18, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, fragment.HLT_DoubleIsoMu20_eta2p1_v19, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, fragment.HLT_Mu8_v24, fragment.HLT_Mu17_v25, fragment.HLT_Mu19_v16, fragment.HLT_Mu17_Photon30_IsoCaloId_v18, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, fragment.HLT_PFHT400_SixPFJet32_v21, fragment.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, fragment.HLT_PFHT450_SixPFJet36_v20, fragment.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, fragment.HLT_PFHT350_v31, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, fragment.HLT_ECALHT800_v20, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, fragment.HLT_Photon20_HoverELoose_v20, fragment.HLT_Photon30_HoverELoose_v20, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, fragment.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, fragment.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, fragment.HLT_Mu18_Mu9_SameSign_v16, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, fragment.HLT_QuadPFJet103_88_75_15_v17, fragment.HLT_QuadPFJet105_88_76_15_v17, fragment.HLT_QuadPFJet111_90_80_15_v17, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, fragment.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, fragment.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, fragment.HLT_PFHT250_QuadPFJet25_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, fragment.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, fragment.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, fragment.HLT_QuadPFJet100_88_70_30_v10, fragment.HLT_QuadPFJet105_88_75_30_v9, fragment.HLT_QuadPFJet111_90_80_30_v9, fragment.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, fragment.HLT_AK8PFJet220_SoftDropMass40_v13, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_v13, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_Nch45_v6, fragment.HLT_AK8PFJet275_Nch40_v6, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, fragment.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, fragment.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, fragment.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu10NoVtx_2Cha_v9, fragment.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L3Mu10NoVtx_v10, fragment.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, fragment.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, fragment.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, fragment.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, fragment.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, fragment.HLT_L1Mu6HT240_v9, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, fragment.HLT_HT350_v7, fragment.HLT_HT425_v19, fragment.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v23, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v23, fragment.HLT_CaloMET60_DTCluster50_v11, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v11, fragment.HLT_L1MET_DTCluster50_v11, fragment.HLT_L1MET_DTClusterNoMB1S50_v11, fragment.HLT_CscCluster_Loose_v10, fragment.HLT_CscCluster_Medium_v10, fragment.HLT_CscCluster_Tight_v10, fragment.HLT_CscCluster50_Photon20Unseeded_v4, fragment.HLT_CscCluster50_Photon30Unseeded_v4, fragment.HLT_CscCluster100_Ele5_v4, fragment.HLT_CscCluster100_Mu5_v6, fragment.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, fragment.HLT_DoubleCscCluster75_v7, fragment.HLT_IsoTrk200_L1SingleMuShower_v4, fragment.HLT_IsoTrk400_L1SingleMuShower_v4, fragment.HLT_DoubleCscCluster100_v7, fragment.HLT_L1CSCShower_DTCluster50_v10, fragment.HLT_L1CSCShower_DTCluster75_v10, fragment.HLT_PFMET105_IsoTrk50_v13, fragment.HLT_L1SingleLLPJet_v7, fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, fragment.HLT_DiPhoton10Time1ns_v10, fragment.HLT_DiPhoton10Time1p2ns_v10, fragment.HLT_DiPhoton10Time1p4ns_v10, fragment.HLT_DiPhoton10Time1p6ns_v10, fragment.HLT_DiPhoton10Time1p8ns_v10, fragment.HLT_DiPhoton10Time2ns_v10, fragment.HLT_DiPhoton10_CaloIdL_v10, fragment.HLT_DoubleEle6p5_eta1p22_mMax6_v10, fragment.HLT_DoubleEle8_eta1p22_mMax6_v10, fragment.HLT_DoubleEle10_eta1p22_mMax6_v10, fragment.HLT_SingleEle8_v9, fragment.HLT_SingleEle8_SingleEGL1_v9, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Mu50_L1SingleMuShower_v11, fragment.HLT_IsoMu24_OneProng32_v9, fragment.HLT_Photon32_OneProng32_M50To105_v10, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1050_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1200_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_PFJet200_TimeLtNeg2p5ns_v10, fragment.HLT_PFJet200_TimeGt2p5ns_v10, fragment.HLT_Photon50_TimeLtNeg2p5ns_v7, fragment.HLT_Photon50_TimeGt2p5ns_v7, fragment.HLT_PPSMaxTracksPerArm1_v9, fragment.HLT_PPSMaxTracksPerRP4_v9, fragment.HLT_PPSRandom_v1, fragment.HLT_HIL1NotBptxOR_v14, fragment.HLT_HIL1UnpairedBunchBptxPlus_v14, fragment.HLT_HIL1UnpairedBunchBptxMinus_v14, fragment.HLT_HIPhysics_v14, fragment.HLT_HIPhysicsForZS_v14, fragment.HLT_HIRandom_v7, fragment.HLT_HIRandom_HighRate_v3, fragment.HLT_HIHcalNZS_v14, fragment.HLT_HIHcalPhiSym_v14, fragment.HLT_HIZeroBias_v14, fragment.HLT_HIZeroBias_HighRate_v7, fragment.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, fragment.HLT_HIZeroBias_HighRateRAW_v4, fragment.HLT_HIMinimumBiasHF1AND_v7, fragment.HLT_HIMinimumBiasHF1AND_copy_v6, fragment.HLT_HIMinimumBiasHF1AND_Beamspot_v8, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8, fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, fragment.HLT_HIL1Centrality30_50_v7, fragment.HLT_HIL1_UCC_0_0p5_v7, fragment.HLT_HIL1_UCC_0_1_v7, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet80Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet100Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet120Eta2p1_v7, fragment.HLT_HIPuAK4CaloJet120Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet40Fwd_v7, fragment.HLT_HIPuAK4CaloJet60Fwd_v7, fragment.HLT_HIPuAK4CaloJet80Fwd_v7, fragment.HLT_HIPuAK4CaloJet100Fwd_v7, fragment.HLT_HIPuAK4CaloJet120Fwd_v7, fragment.HLT_HICsAK4PFJet60Eta1p5_v14, fragment.HLT_HICsAK4PFJet60Eta2p1_v7, fragment.HLT_HICsAK4PFJet80Eta1p5_v14, fragment.HLT_HICsAK4PFJet80Eta2p1_v7, fragment.HLT_HICsAK4PFJet100Eta1p5_v14, fragment.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8, fragment.HLT_HICsAK4PFJet100Eta2p1_v7, fragment.HLT_HICsAK4PFJet120Eta1p5_v14, fragment.HLT_HICsAK4PFJet120Eta2p1_v7, fragment.HLT_HIGEDPhoton10_v14, fragment.HLT_HIGEDPhoton10_EB_v14, fragment.HLT_HIGEDPhoton20_v14, fragment.HLT_HIGEDPhoton20_EB_v14, fragment.HLT_HIGEDPhoton30_v14, fragment.HLT_HIGEDPhoton30_EB_v14, fragment.HLT_HIGEDPhoton40_v14, fragment.HLT_HIGEDPhoton40_EB_v14, fragment.HLT_HIGEDPhoton50_v14, fragment.HLT_HIGEDPhoton50_EB_v14, fragment.HLT_HIGEDPhoton60_v14, fragment.HLT_HIGEDPhoton60_EB_v14, fragment.HLT_HIDoubleGEDPhoton20_v7, fragment.HLT_HIEle10Gsf_v14, fragment.HLT_HIEle15Gsf_v14, fragment.HLT_HIEle20Gsf_v14, fragment.HLT_HIEle30Gsf_v14, fragment.HLT_HIEle40Gsf_v14, fragment.HLT_HIEle50Gsf_v14, fragment.HLT_HIEle15Ele10Gsf_v14, fragment.HLT_HIEle15Ele10GsfMass50_v14, fragment.HLT_HIDoubleEle10Gsf_v14, fragment.HLT_HIDoubleEle10GsfMass50_v14, fragment.HLT_HIDoubleEle15Gsf_v14, fragment.HLT_HIDoubleEle15GsfMass50_v14, fragment.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_NotMBHF2_v5, fragment.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, fragment.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, fragment.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_Random_HighRate_v1, fragment.HLT_HIUPC_HFafterglowCombined_v1, fragment.HLT_HIL1SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality40to100_v1, fragment.HLT_HIL1SingleMu0_v7, fragment.HLT_HIL1SingleMu0_Open_v7, fragment.HLT_HIL1SingleMu0_Cosmic_v7, fragment.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, fragment.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, fragment.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, fragment.HLT_HIL2DoubleMuOpen_SS_v1, fragment.HLT_HIL2DoubleMuOpen_OS_v1, fragment.HLT_HIL1DoubleMu0_v7, fragment.HLT_HIL2DoubleMu0_SQ_v1, fragment.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, fragment.HLT_HIL1DoubleMu0_SQ_v7, fragment.HLT_HIL2SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality40to100_v1, fragment.HLT_HIL2SingleMu3_Open_v7, fragment.HLT_HIL2SingleMu5_v7, fragment.HLT_HIL2SingleMu7_v7, fragment.HLT_HIL2SingleMu12_v1, fragment.HLT_HIL2DoubleMu0_Open_v7, fragment.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu3_M7to15_Open_v7, fragment.HLT_HIL3SingleMu3_Open_v7, fragment.HLT_HIL3SingleMu5_v7, fragment.HLT_HIL3SingleMu7_v7, fragment.HLT_HIL3SingleMu12_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3DoubleMu0_M0toInf_Open_v7, fragment.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, fragment.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu2_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, fragment.HLT_HICscCluster_Loose_v7, fragment.HLT_HICscCluster_Medium_v7, fragment.HLT_HICscCluster_Tight_v7, fragment.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, fragment.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, fragment.HLT_HIL1NotBptxORForPPRef_v9, fragment.HLT_HIHT80_Beamspot_ppRef5TeV_v15, fragment.HLT_PPRefZeroBias_v6, fragment.HLT_AK4CaloJet40_v6, fragment.HLT_AK4CaloJet60_v6, fragment.HLT_AK4CaloJet70_v6, fragment.HLT_AK4CaloJet80_v6, fragment.HLT_AK4CaloJet100_v6, fragment.HLT_AK4CaloJet120_v6, fragment.HLT_AK4CaloJetFwd40_v6, fragment.HLT_AK4CaloJetFwd60_v6, fragment.HLT_AK4CaloJetFwd70_v6, fragment.HLT_AK4CaloJetFwd80_v6, fragment.HLT_AK4CaloJetFwd100_v6, fragment.HLT_AK4CaloJetFwd120_v6, fragment.HLT_AK4PFJet40_v8, fragment.HLT_AK4PFJet60_v8, fragment.HLT_AK4PFJet80_v8, fragment.HLT_AK4PFJet100_v8, fragment.HLT_AK4PFJet120_v8, fragment.HLT_AK4PFJetFwd40_v8, fragment.HLT_AK4PFJetFwd60_v8, fragment.HLT_AK4PFJetFwd80_v8, fragment.HLT_AK4PFJetFwd100_v8, fragment.HLT_AK4PFJetFwd120_v8, fragment.HLT_PPRefDoubleEle10Gsf_v6, fragment.HLT_PPRefDoubleEle10GsfMass50_v6, fragment.HLT_PPRefDoubleEle15Gsf_v6, fragment.HLT_PPRefDoubleEle15GsfMass50_v6, fragment.HLT_PPRefEle15Ele10Gsf_v6, fragment.HLT_PPRefEle15Ele10GsfMass50_v6, fragment.HLT_PPRefEle10Gsf_v6, fragment.HLT_PPRefEle15Gsf_v6, fragment.HLT_PPRefEle20Gsf_v7, fragment.HLT_PPRefEle30Gsf_v7, fragment.HLT_PPRefEle40Gsf_v6, fragment.HLT_PPRefEle50Gsf_v6, fragment.HLT_PPRefGEDPhoton10_v6, fragment.HLT_PPRefGEDPhoton10_EB_v6, fragment.HLT_PPRefGEDPhoton20_v6, fragment.HLT_PPRefGEDPhoton20_EB_v6, fragment.HLT_PPRefGEDPhoton30_v6, fragment.HLT_PPRefGEDPhoton30_EB_v6, fragment.HLT_PPRefGEDPhoton40_v6, fragment.HLT_PPRefGEDPhoton40_EB_v6, fragment.HLT_PPRefGEDPhoton50_v6, fragment.HLT_PPRefGEDPhoton50_EB_v6, fragment.HLT_PPRefGEDPhoton60_v6, fragment.HLT_PPRefGEDPhoton60_EB_v6, fragment.HLT_PPRefDoubleGEDPhoton20_v1, fragment.HLT_PPRefL1DoubleMu0_v6, fragment.HLT_PPRefL1DoubleMu0_SQ_v1, fragment.HLT_PPRefL1DoubleMu0_Open_v6, fragment.HLT_PPRefL1DoubleMu2_v1, fragment.HLT_PPRefL1DoubleMu2_SQ_v1, fragment.HLT_PPRefL1SingleMu0_Cosmics_v6, fragment.HLT_PPRefL1SingleMu7_v6, fragment.HLT_PPRefL1SingleMu12_v6, fragment.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, fragment.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, fragment.HLT_PPRefL2DoubleMu0_v6, fragment.HLT_PPRefL2DoubleMu0_Open_v6, fragment.HLT_PPRefL2SingleMu7_v6, fragment.HLT_PPRefL2SingleMu12_v6, fragment.HLT_PPRefL2SingleMu15_v6, fragment.HLT_PPRefL2SingleMu20_v6, fragment.HLT_PPRefL3DoubleMu0_v8, fragment.HLT_PPRefL3DoubleMu0_Open_v8, fragment.HLT_PPRefL3SingleMu3_v8, fragment.HLT_PPRefL3SingleMu5_v8, fragment.HLT_PPRefL3SingleMu7_v8, fragment.HLT_PPRefL3SingleMu12_v8, fragment.HLT_PPRefL3SingleMu15_v8, fragment.HLT_PPRefL3SingleMu20_v8, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, fragment.HLT_PPRefCscCluster_Loose_v6, fragment.HLT_PPRefCscCluster_Medium_v6, fragment.HLT_PPRefCscCluster_Tight_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt25_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt35_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt45_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt60_v6, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, fragment.HLT_PPRefUPC_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_ZDC1nOR_v1, fragment.MC_ReducedIterativeTracking_v22, fragment.MC_AK4CaloJets_v19, fragment.MC_AK4CaloJetsFromPV_v18, fragment.MC_CaloHT_v18, fragment.MC_AK8CaloHT_v18, fragment.MC_CaloMHT_v18, fragment.MC_AK4PFJets_v29, fragment.MC_PFHT_v28, fragment.MC_AK8PFJets_v29, fragment.MC_AK8PFHT_v28, fragment.MC_CaloMET_v18, fragment.MC_CaloMET_JetIdCleaned_v19, fragment.MC_PFMET_v29, fragment.MC_PFMHT_v28, fragment.MC_AK4PFJetPNet_v5, fragment.MC_AK8PFJetPNet_v5, fragment.MC_Egamma_Open_v8, fragment.MC_Egamma_Open_Unseeded_v8, fragment.MC_Ele5_WPTight_Gsf_v18, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, fragment.MC_DoubleEle5_CaloIdL_MW_v26, fragment.MC_IsoMu_v27, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v23, fragment.MC_DoubleMuNoFiltersNoVtx_v17, fragment.MC_PFScouting_v6, fragment.HLT_SpecialHLTPhysics_v7, fragment.AlCa_LumiPixelsCounts_RandomHighRate_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, fragment.HLT_L1AXOVTight_v4, fragment.HLT_L1SingleMuOpen_v6, fragment.HLT_L1SingleMuOpen_DT_v6, fragment.HLT_L1SingleMu3_v5, fragment.HLT_L1SingleMu5_v5, fragment.HLT_L1SingleMu7_v5, fragment.HLT_L1DoubleMu0_v5, fragment.HLT_L1SingleJet8erHE_v5, fragment.HLT_L1SingleJet10erHE_v5, fragment.HLT_L1SingleJet12erHE_v5, fragment.HLT_L1SingleJet35_v5, fragment.HLT_L1SingleJet200_v5, fragment.HLT_L1SingleEG8er2p5_v4, fragment.HLT_L1SingleEG10er2p5_v4, fragment.HLT_L1SingleEG15er2p5_v4, fragment.HLT_L1SingleEG26er2p5_v4, fragment.HLT_L1SingleEG28er2p5_v4, fragment.HLT_L1SingleEG28er2p1_v4, fragment.HLT_L1SingleEG28er1p5_v4, fragment.HLT_L1SingleEG34er2p5_v4, fragment.HLT_L1SingleEG36er2p5_v4, fragment.HLT_L1SingleEG38er2p5_v4, fragment.HLT_L1SingleEG40er2p5_v4, fragment.HLT_L1SingleEG42er2p5_v4, fragment.HLT_L1SingleEG45er2p5_v4, fragment.HLT_L1SingleEG50_v4, fragment.HLT_L1SingleJet60_v4, fragment.HLT_L1SingleJet90_v4, fragment.HLT_L1SingleJet120_v4, fragment.HLT_L1SingleJet180_v4, fragment.HLT_L1HTT120er_v4, fragment.HLT_L1HTT160er_v4, fragment.HLT_L1HTT200er_v4, fragment.HLT_L1HTT255er_v4, fragment.HLT_L1HTT280er_v4, fragment.HLT_L1HTT320er_v4, fragment.HLT_L1HTT360er_v4, fragment.HLT_L1HTT400er_v4, fragment.HLT_L1HTT450er_v4, fragment.HLT_L1ETM120_v4, fragment.HLT_L1ETM150_v4, fragment.HLT_L1EXT_HCAL_LaserMon1_v5, fragment.HLT_L1EXT_HCAL_LaserMon4_v5, fragment.HLT_CscCluster_Cosmic_v4, fragment.HLT_HT60_Beamspot_v22, fragment.HLT_HT300_Beamspot_PixelClusters_WP2_v7, fragment.HLT_PixelClusters_WP2_v4, fragment.HLT_PixelClusters_WP1_v4, fragment.HLT_BptxOR_v6, fragment.HLT_L1SingleMuCosmics_EMTF_v4, fragment.HLT_L1SingleMuCosmics_CosmicTracking_v1, fragment.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, fragment.HLT_L1FatEvents_v5, fragment.HLT_Random_HighRate_v1, fragment.HLT_ZeroBias_HighRate_v4, fragment.HLT_ZeroBias_Gated_v4, fragment.HLT_SpecialZeroBias_v6, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLowPtJet, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate0, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate1, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate2, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate3, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate4, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate5, fragment.Dataset_AlCaLumiPixelsCountsGated, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPSExpress, fragment.Dataset_AlCaPPSPrompt, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DQMPPSRandom, fragment.Dataset_DisplacedJet, fragment.Dataset_EGamma0, fragment.Dataset_EGamma1, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressCosmics, fragment.Dataset_ExpressPhysics, fragment.Dataset_HIDQMGPUvsCPU, fragment.Dataset_HIDQMOnlineBeamspot, fragment.Dataset_HIEmptyBX, fragment.Dataset_HIEphemeralHLTPhysics, fragment.Dataset_HIEphemeralZeroBias0, fragment.Dataset_HIEphemeralZeroBias1, fragment.Dataset_HIEventDisplay, fragment.Dataset_HIExpressAlignment, fragment.Dataset_HIExpressPhysics, fragment.Dataset_HIExpressPhysicsRawPrime, fragment.Dataset_HIForward0, fragment.Dataset_HIForward1, fragment.Dataset_HIForward2, fragment.Dataset_HIForward3, fragment.Dataset_HIForward4, fragment.Dataset_HIForward5, fragment.Dataset_HIForward6, fragment.Dataset_HIForward7, fragment.Dataset_HIForward8, fragment.Dataset_HIForward9, fragment.Dataset_HIForward10, fragment.Dataset_HIForward11, fragment.Dataset_HIForward12, fragment.Dataset_HIForward13, fragment.Dataset_HIForward14, fragment.Dataset_HIForward15, fragment.Dataset_HIForward16, fragment.Dataset_HIForward17, fragment.Dataset_HIForward18, fragment.Dataset_HIForward19, fragment.Dataset_HIHLTPhysics, fragment.Dataset_HIHcalNZS, fragment.Dataset_HIOnlineMonitor, fragment.Dataset_HIMinimumBias0, fragment.Dataset_HIMinimumBias1, fragment.Dataset_HIMinimumBias2, fragment.Dataset_HIMinimumBias3, fragment.Dataset_HIPhysicsRawPrime0, fragment.Dataset_HITrackerNZS, fragment.Dataset_HIZeroBias0, fragment.Dataset_HIZeroBias1, fragment.Dataset_HIZeroBias2, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_JetMET0, fragment.Dataset_JetMET1, fragment.Dataset_L1Accept, fragment.Dataset_MinimumBias, fragment.Dataset_MonteCarlo, fragment.Dataset_Muon0, fragment.Dataset_Muon1, fragment.Dataset_MuonEG, fragment.Dataset_MuonShower, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_PPRefDoubleMuon0, fragment.Dataset_PPRefDoubleMuon1, fragment.Dataset_PPRefDoubleMuon2, fragment.Dataset_PPRefDoubleMuon3, fragment.Dataset_PPRefHardProbes0, fragment.Dataset_PPRefSingleMuon0, fragment.Dataset_PPRefZeroBiasPlusForward0, fragment.Dataset_ParkingDoubleMuonLowMass0, fragment.Dataset_ParkingDoubleMuonLowMass1, fragment.Dataset_ParkingDoubleMuonLowMass2, fragment.Dataset_ParkingDoubleMuonLowMass3, fragment.Dataset_ParkingDoubleMuonLowMass4, fragment.Dataset_ParkingDoubleMuonLowMass5, fragment.Dataset_ParkingDoubleMuonLowMass6, fragment.Dataset_ParkingDoubleMuonLowMass7, fragment.Dataset_ParkingHH, fragment.Dataset_ParkingLLP, fragment.Dataset_ParkingSingleMuon0, fragment.Dataset_ParkingVBF0, fragment.Dataset_ParkingVBF1, fragment.Dataset_ParkingVBF2, fragment.Dataset_ParkingVBF3, fragment.Dataset_ParkingVBF4, fragment.Dataset_ParkingVBF5, fragment.Dataset_ParkingVBF6, fragment.Dataset_ParkingVBF7, fragment.Dataset_RPCMonitor, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.ScoutingPFOutput, fragment.Dataset_SpecialRandom0, fragment.Dataset_SpecialRandom1, fragment.Dataset_SpecialRandom2, fragment.Dataset_SpecialRandom3, fragment.Dataset_SpecialRandom4, fragment.Dataset_SpecialRandom5, fragment.Dataset_SpecialRandom6, fragment.Dataset_SpecialRandom7, fragment.Dataset_SpecialRandom8, fragment.Dataset_SpecialRandom9, fragment.Dataset_SpecialRandom10, fragment.Dataset_SpecialRandom11, fragment.Dataset_SpecialRandom12, fragment.Dataset_SpecialRandom13, fragment.Dataset_SpecialRandom14, fragment.Dataset_SpecialRandom15, fragment.Dataset_SpecialRandom16, fragment.Dataset_SpecialRandom17, fragment.Dataset_SpecialRandom18, fragment.Dataset_SpecialRandom19, fragment.Dataset_SpecialZeroBias0, fragment.Dataset_SpecialZeroBias1, fragment.Dataset_SpecialZeroBias2, fragment.Dataset_SpecialZeroBias3, fragment.Dataset_SpecialZeroBias4, fragment.Dataset_SpecialZeroBias5, fragment.Dataset_SpecialZeroBias6, fragment.Dataset_SpecialZeroBias7, fragment.Dataset_SpecialZeroBias8, fragment.Dataset_SpecialZeroBias9, fragment.Dataset_SpecialZeroBias10, fragment.Dataset_SpecialZeroBias11, fragment.Dataset_SpecialZeroBias12, fragment.Dataset_SpecialZeroBias13, fragment.Dataset_SpecialZeroBias14, fragment.Dataset_SpecialZeroBias15, fragment.Dataset_SpecialZeroBias16, fragment.Dataset_SpecialZeroBias17, fragment.Dataset_SpecialZeroBias18, fragment.Dataset_SpecialZeroBias19, fragment.Dataset_SpecialZeroBias20, fragment.Dataset_SpecialZeroBias21, fragment.Dataset_SpecialZeroBias22, fragment.Dataset_SpecialZeroBias23, fragment.Dataset_SpecialZeroBias24, fragment.Dataset_SpecialZeroBias25, fragment.Dataset_SpecialZeroBias26, fragment.Dataset_SpecialZeroBias27, fragment.Dataset_SpecialZeroBias28, fragment.Dataset_SpecialZeroBias29, fragment.Dataset_SpecialZeroBias30, fragment.Dataset_SpecialZeroBias31, fragment.Dataset_SpecialHLTPhysics0, fragment.Dataset_SpecialHLTPhysics1, fragment.Dataset_SpecialHLTPhysics2, fragment.Dataset_SpecialHLTPhysics3, fragment.Dataset_SpecialHLTPhysics4, fragment.Dataset_SpecialHLTPhysics5, fragment.Dataset_SpecialHLTPhysics6, fragment.Dataset_SpecialHLTPhysics7, fragment.Dataset_SpecialHLTPhysics8, fragment.Dataset_SpecialHLTPhysics9, fragment.Dataset_SpecialHLTPhysics10, fragment.Dataset_SpecialHLTPhysics11, fragment.Dataset_SpecialHLTPhysics12, fragment.Dataset_SpecialHLTPhysics13, fragment.Dataset_SpecialHLTPhysics14, fragment.Dataset_SpecialHLTPhysics15, fragment.Dataset_SpecialHLTPhysics16, fragment.Dataset_SpecialHLTPhysics17, fragment.Dataset_SpecialHLTPhysics18, fragment.Dataset_SpecialHLTPhysics19, fragment.Dataset_ParkingSingleMuon1, fragment.Dataset_ParkingSingleMuon2, fragment.Dataset_ParkingSingleMuon3, fragment.Dataset_ParkingSingleMuon4, fragment.Dataset_ParkingSingleMuon5, fragment.Dataset_ParkingSingleMuon6, fragment.Dataset_ParkingSingleMuon7, fragment.Dataset_ParkingSingleMuon8, fragment.Dataset_ParkingSingleMuon9, fragment.Dataset_ParkingSingleMuon10, fragment.Dataset_ParkingSingleMuon11, fragment.Dataset_PPRefZeroBiasPlusForward1, fragment.Dataset_PPRefZeroBiasPlusForward2, fragment.Dataset_PPRefZeroBiasPlusForward3, fragment.Dataset_PPRefZeroBiasPlusForward4, fragment.Dataset_PPRefZeroBiasPlusForward5, fragment.Dataset_PPRefZeroBiasPlusForward6, fragment.Dataset_PPRefZeroBiasPlusForward7, fragment.Dataset_PPRefZeroBiasPlusForward8, fragment.Dataset_PPRefZeroBiasPlusForward9, fragment.Dataset_PPRefZeroBiasPlusForward10, fragment.Dataset_PPRefZeroBiasPlusForward11, fragment.Dataset_PPRefZeroBiasPlusForward12, fragment.Dataset_PPRefZeroBiasPlusForward13, fragment.Dataset_PPRefZeroBiasPlusForward14, fragment.Dataset_PPRefZeroBiasPlusForward15, fragment.Dataset_PPRefZeroBiasPlusForward16, fragment.Dataset_PPRefZeroBiasPlusForward17, fragment.Dataset_PPRefZeroBiasPlusForward18, fragment.Dataset_PPRefZeroBiasPlusForward19, fragment.Dataset_PPRefZeroBiasPlusForward20, fragment.Dataset_PPRefZeroBiasPlusForward21, fragment.Dataset_PPRefZeroBiasPlusForward22, fragment.Dataset_PPRefZeroBiasPlusForward23, fragment.Dataset_PPRefZeroBiasPlusForward24, fragment.Dataset_PPRefSingleMuon1, fragment.Dataset_PPRefSingleMuon2, fragment.Dataset_PPRefSingleMuon3, fragment.Dataset_PPRefHardProbes1, fragment.Dataset_PPRefHardProbes2, fragment.Dataset_PPRefHardProbes3, fragment.Dataset_PPRefHardProbes4, fragment.Dataset_HIPhysicsRawPrime1, fragment.Dataset_HIPhysicsRawPrime2, fragment.Dataset_HIPhysicsRawPrime3, fragment.Dataset_HIPhysicsRawPrime4, fragment.Dataset_HIPhysicsRawPrime5, fragment.Dataset_HIPhysicsRawPrime6, fragment.Dataset_HIPhysicsRawPrime7, fragment.Dataset_HIPhysicsRawPrime8, fragment.Dataset_HIPhysicsRawPrime9, fragment.Dataset_HIPhysicsRawPrime10, fragment.Dataset_HIPhysicsRawPrime11, fragment.Dataset_HIPhysicsRawPrime12, fragment.Dataset_HIPhysicsRawPrime13, fragment.Dataset_HIPhysicsRawPrime14, fragment.Dataset_HIPhysicsRawPrime15, fragment.Dataset_HIPhysicsRawPrime16, fragment.Dataset_HIPhysicsRawPrime17, fragment.Dataset_HIPhysicsRawPrime18, fragment.Dataset_HIPhysicsRawPrime19, fragment.Dataset_HIPhysicsRawPrime20, fragment.Dataset_HIPhysicsRawPrime21, fragment.Dataset_HIPhysicsRawPrime22, fragment.Dataset_HIPhysicsRawPrime23, fragment.Dataset_HIPhysicsRawPrime24, fragment.Dataset_HIPhysicsRawPrime25, fragment.Dataset_HIPhysicsRawPrime26, fragment.Dataset_HIPhysicsRawPrime27, fragment.Dataset_HIPhysicsRawPrime28, fragment.Dataset_HIPhysicsRawPrime29, fragment.Dataset_HIPhysicsRawPrime30, fragment.Dataset_HIPhysicsRawPrime31, fragment.Dataset_HIPhysicsRawPrime32, fragment.Dataset_HIPhysicsRawPrime33, fragment.Dataset_HIPhysicsRawPrime34, fragment.Dataset_HIPhysicsRawPrime35, fragment.Dataset_HIPhysicsRawPrime36, fragment.Dataset_HIPhysicsRawPrime37, fragment.Dataset_HIPhysicsRawPrime38, fragment.Dataset_HIPhysicsRawPrime39, fragment.Dataset_HIPhysicsRawPrime40, fragment.Dataset_HIPhysicsRawPrime41, fragment.Dataset_HIPhysicsRawPrime42, fragment.Dataset_HIPhysicsRawPrime43, fragment.Dataset_HIPhysicsRawPrime44, fragment.Dataset_HIPhysicsRawPrime45, fragment.Dataset_HIPhysicsRawPrime46, fragment.Dataset_HIPhysicsRawPrime47, fragment.Dataset_HIPhysicsRawPrime48, fragment.Dataset_HIPhysicsRawPrime49, fragment.Dataset_HIPhysicsRawPrime50, fragment.Dataset_HIPhysicsRawPrime51, fragment.Dataset_HIPhysicsRawPrime52, fragment.Dataset_HIPhysicsRawPrime53, fragment.Dataset_HIPhysicsRawPrime54, fragment.Dataset_HIPhysicsRawPrime55, fragment.Dataset_HIPhysicsRawPrime56, fragment.Dataset_HIPhysicsRawPrime57, fragment.Dataset_HIPhysicsRawPrime58, fragment.Dataset_HIPhysicsRawPrime59, )) +fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_EcalPhiSymForHI_v12, fragment.AlCa_EcalEtaEBonly_v25, fragment.AlCa_EcalEtaEEonly_v25, fragment.AlCa_EcalPi0EBonly_v25, fragment.AlCa_EcalPi0EEonly_v25, fragment.AlCa_EcalEtaEBonlyForHI_v13, fragment.AlCa_EcalEtaEEonlyForHI_v13, fragment.AlCa_EcalPi0EBonlyForHI_v13, fragment.AlCa_EcalPi0EEonlyForHI_v13, fragment.AlCa_HIEcalEtaEBonly_v12, fragment.AlCa_HIEcalEtaEEonly_v12, fragment.AlCa_HIEcalPi0EBonly_v12, fragment.AlCa_HIEcalPi0EEonly_v12, fragment.AlCa_RPCMuonNormalisation_v23, fragment.AlCa_RPCMuonNormalisationForHI_v11, fragment.AlCa_HIRPCMuonNormalisation_v11, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.AlCa_PFJet40_v32, fragment.AlCa_PFJet40_CPUOnly_v11, fragment.AlCa_AK8PFJet40_v27, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DQM_HIPixelReconstruction_v12, fragment.DQM_HIEcalReconstruction_v10, fragment.DQM_HIHcalReconstruction_v8, fragment.DQM_Random_v1, fragment.DQM_ZeroBias_v3, fragment.DST_ZeroBias_v11, fragment.DST_Physics_v16, fragment.DST_PFScouting_DoubleMuon_v6, fragment.DST_PFScouting_DoubleEG_v6, fragment.DST_PFScouting_JetHT_v6, fragment.DST_PFScouting_AXOVLoose_v4, fragment.DST_PFScouting_AXOLoose_v4, fragment.DST_PFScouting_AXONominal_v6, fragment.DST_PFScouting_AXOTight_v6, fragment.DST_PFScouting_AXOVTight_v4, fragment.DST_PFScouting_CICADAVLoose_v2, fragment.DST_PFScouting_CICADALoose_v2, fragment.DST_PFScouting_CICADAMedium_v2, fragment.DST_PFScouting_CICADATight_v2, fragment.DST_PFScouting_CICADAVTight_v2, fragment.DST_PFScouting_SingleMuon_v6, fragment.DST_PFScouting_SinglePhotonEB_v3, fragment.DST_PFScouting_ZeroBias_v4, fragment.HLT_EphemeralPhysics_v9, fragment.HLT_EphemeralZeroBias_v9, fragment.HLT_HIEphemeralPhysics_v5, fragment.HLT_HIEphemeralZeroBias_v5, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Alignment_v8, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_IsolatedBunches_v12, fragment.HLT_ZeroBias_FirstBXAfterTrain_v10, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_ZeroBias_FirstCollisionInTrain_v11, fragment.HLT_ZeroBias_LastCollisionInTrain_v10, fragment.HLT_HT300_Beamspot_v23, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_PFJet40_GPUvsCPU_v7, fragment.HLT_AK8PFJet380_SoftDropMass30_v6, fragment.HLT_AK8PFJet400_SoftDropMass30_v6, fragment.HLT_AK8PFJet425_SoftDropMass30_v6, fragment.HLT_AK8PFJet450_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, fragment.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, fragment.HLT_CaloJet500_NoJetID_v22, fragment.HLT_CaloJet550_NoJetID_v17, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, fragment.HLT_DoubleEle25_CaloIdL_MW_v15, fragment.HLT_DoubleEle27_CaloIdL_MW_v15, fragment.HLT_DoubleEle33_CaloIdL_MW_v28, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v17, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v17, fragment.HLT_Mu37_TkMu27_v17, fragment.HLT_DoubleMu4_3_Bs_v27, fragment.HLT_DoubleMu4_3_Jpsi_v27, fragment.HLT_DoubleMu4_3_LowMass_v13, fragment.HLT_DoubleMu4_LowMass_Displaced_v13, fragment.HLT_Mu0_L1DoubleMu_v13, fragment.HLT_Mu4_L1DoubleMu_v13, fragment.HLT_DoubleMu2_Jpsi_LowPt_v6, fragment.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu3_Trk_Tau3mu_v24, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v27, fragment.HLT_Mu3_PFJet40_v28, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v22, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v22, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v13, fragment.HLT_Mu0_Barrel_v6, fragment.HLT_Mu0_Barrel_L1HP6_v3, fragment.HLT_Mu0_Barrel_L1HP7_v3, fragment.HLT_Mu0_Barrel_L1HP8_v4, fragment.HLT_Mu0_Barrel_L1HP9_v4, fragment.HLT_Mu0_Barrel_L1HP10_v6, fragment.HLT_Mu0_Barrel_L1HP11_v6, fragment.HLT_Mu0_Barrel_L1HP6_IP6_v3, fragment.HLT_Mu6_Barrel_L1HP7_IP6_v3, fragment.HLT_Mu7_Barrel_L1HP8_IP6_v4, fragment.HLT_Mu8_Barrel_L1HP9_IP6_v4, fragment.HLT_Mu9_Barrel_L1HP10_IP6_v6, fragment.HLT_Mu10_Barrel_L1HP11_IP6_v6, fragment.HLT_DoublePhoton33_CaloIdL_v17, fragment.HLT_DoublePhoton70_v17, fragment.HLT_DoublePhoton85_v25, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, fragment.HLT_Ele30_WPTight_Gsf_v11, fragment.HLT_Ele32_WPTight_Gsf_v25, fragment.HLT_Ele35_WPTight_Gsf_v19, fragment.HLT_Ele38_WPTight_Gsf_v19, fragment.HLT_Ele40_WPTight_Gsf_v19, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, fragment.HLT_IsoMu20_v27, fragment.HLT_IsoMu24_v25, fragment.HLT_IsoMu24_eta2p1_v27, fragment.HLT_IsoMu27_v28, fragment.HLT_UncorrectedJetE30_NoBPTX_v14, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v14, fragment.HLT_L1SingleMuCosmics_v8, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v15, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, fragment.HLT_L2Mu23NoVtx_2Cha_v10, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, fragment.HLT_DoubleL2Mu50_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, fragment.HLT_Mu30_TkMu0_Psi_v13, fragment.HLT_Mu30_TkMu0_Upsilon_v13, fragment.HLT_Mu25_TkMu0_Phi_v20, fragment.HLT_Mu15_v15, fragment.HLT_Mu20_v24, fragment.HLT_Mu27_v25, fragment.HLT_Mu50_v25, fragment.HLT_Mu55_v15, fragment.HLT_CascadeMu100_v13, fragment.HLT_HighPtTkMu100_v12, fragment.HLT_DiPFJetAve40_v26, fragment.HLT_DiPFJetAve60_v26, fragment.HLT_DiPFJetAve80_v26, fragment.HLT_DiPFJetAve140_v25, fragment.HLT_DiPFJetAve200_v25, fragment.HLT_DiPFJetAve260_v26, fragment.HLT_DiPFJetAve320_v26, fragment.HLT_DiPFJetAve400_v26, fragment.HLT_DiPFJetAve500_v26, fragment.HLT_DiPFJetAve60_HFJEC_v27, fragment.HLT_DiPFJetAve80_HFJEC_v29, fragment.HLT_DiPFJetAve100_HFJEC_v29, fragment.HLT_DiPFJetAve160_HFJEC_v28, fragment.HLT_DiPFJetAve220_HFJEC_v28, fragment.HLT_DiPFJetAve260_HFJEC_v11, fragment.HLT_DiPFJetAve300_HFJEC_v28, fragment.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, fragment.HLT_AK8PFJet40_v28, fragment.HLT_AK8PFJet60_v27, fragment.HLT_AK8PFJet80_v28, fragment.HLT_AK8PFJet140_v27, fragment.HLT_AK8PFJet200_v27, fragment.HLT_AK8PFJet260_v28, fragment.HLT_AK8PFJet320_v28, fragment.HLT_AK8PFJet400_v28, fragment.HLT_AK8PFJet450_v28, fragment.HLT_AK8PFJet500_v28, fragment.HLT_AK8PFJet550_v23, fragment.HLT_PFJet40_v33, fragment.HLT_PFJet60_v33, fragment.HLT_PFJet80_v33, fragment.HLT_PFJet110_v12, fragment.HLT_PFJet140_v31, fragment.HLT_PFJet200_v31, fragment.HLT_PFJet260_v32, fragment.HLT_PFJet320_v32, fragment.HLT_PFJet400_v32, fragment.HLT_PFJet450_v33, fragment.HLT_PFJet500_v33, fragment.HLT_PFJet550_v23, fragment.HLT_PFJetFwd40_v31, fragment.HLT_PFJetFwd60_v31, fragment.HLT_PFJetFwd80_v30, fragment.HLT_PFJetFwd140_v30, fragment.HLT_PFJetFwd200_v30, fragment.HLT_PFJetFwd260_v31, fragment.HLT_PFJetFwd320_v31, fragment.HLT_PFJetFwd400_v31, fragment.HLT_PFJetFwd450_v31, fragment.HLT_PFJetFwd500_v31, fragment.HLT_AK8PFJetFwd40_v27, fragment.HLT_AK8PFJetFwd60_v26, fragment.HLT_AK8PFJetFwd80_v26, fragment.HLT_AK8PFJetFwd140_v26, fragment.HLT_AK8PFJetFwd200_v26, fragment.HLT_AK8PFJetFwd260_v27, fragment.HLT_AK8PFJetFwd320_v27, fragment.HLT_AK8PFJetFwd400_v27, fragment.HLT_AK8PFJetFwd450_v27, fragment.HLT_AK8PFJetFwd500_v27, fragment.HLT_PFHT180_v29, fragment.HLT_PFHT250_v29, fragment.HLT_PFHT370_v29, fragment.HLT_PFHT430_v29, fragment.HLT_PFHT510_v29, fragment.HLT_PFHT590_v29, fragment.HLT_PFHT680_v29, fragment.HLT_PFHT780_v29, fragment.HLT_PFHT890_v29, fragment.HLT_PFHT1050_v30, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, fragment.HLT_PFMET120_PFMHT120_IDTight_v32, fragment.HLT_PFMET130_PFMHT130_IDTight_v32, fragment.HLT_PFMET140_PFMHT140_IDTight_v32, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, fragment.HLT_L1ETMHadSeeds_v10, fragment.HLT_CaloMHT90_v14, fragment.HLT_CaloMET90_NotCleaned_v14, fragment.HLT_CaloMET350_NotCleaned_v14, fragment.HLT_PFMET200_NotCleaned_v21, fragment.HLT_PFMET250_NotCleaned_v21, fragment.HLT_PFMET300_NotCleaned_v21, fragment.HLT_PFMET200_BeamHaloCleaned_v21, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, fragment.HLT_MET105_IsoTrk50_v19, fragment.HLT_MET120_IsoTrk50_v19, fragment.HLT_Mu12eta2p3_v13, fragment.HLT_Mu12eta2p3_PFJet40_v13, fragment.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Photon300_NoHE_v23, fragment.HLT_Mu8_TrkIsoVVL_v24, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, fragment.HLT_Mu17_TrkIsoVVL_v25, fragment.HLT_Mu19_TrkIsoVVL_v16, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v24, fragment.HLT_BTagMu_AK4Jet300_Mu5_v24, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v21, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, fragment.HLT_BTagMu_AK8Jet300_Mu5_v24, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, fragment.HLT_Photon33_v15, fragment.HLT_Photon50_v23, fragment.HLT_Photon75_v23, fragment.HLT_Photon90_v23, fragment.HLT_Photon120_v23, fragment.HLT_Photon150_v17, fragment.HLT_Photon175_v25, fragment.HLT_Photon200_v24, fragment.HLT_Photon45EB_v3, fragment.HLT_Photon40EB_v3, fragment.HLT_Photon50EB_v4, fragment.HLT_Photon30EB_TightID_TightIso_v12, fragment.HLT_Photon40EB_TightID_TightIso_v3, fragment.HLT_Photon45EB_TightID_TightIso_v3, fragment.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_v8, fragment.HLT_Photon55EB_TightID_TightIso_v4, fragment.HLT_Photon75EB_TightID_TightIso_v8, fragment.HLT_Photon90EB_TightID_TightIso_v8, fragment.HLT_Photon110EB_TightID_TightIso_v12, fragment.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon100EBHE10_v12, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v25, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, fragment.HLT_DiphotonMVA14p25_Mass90_v3, fragment.HLT_DiphotonMVA14p25_Tight_Mass90_v3, fragment.HLT_Photon35_TwoProngs35_v13, fragment.HLT_IsoMu24_TwoProngs35_v13, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_v20, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v20, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v17, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v19, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v20, fragment.HLT_Dimuon0_LowMass_v20, fragment.HLT_Dimuon0_LowMass_L1_4_v20, fragment.HLT_Dimuon0_LowMass_L1_TM530_v18, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, fragment.HLT_TripleMu_10_5_5_DZ_v22, fragment.HLT_TripleMu_12_10_5_v22, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, fragment.HLT_DoubleMu4_3_LowMass_SS_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v19, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v19, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, fragment.HLT_DoubleMu4_JpsiTrk_Bc_v12, fragment.HLT_DoubleMu43NoFiltersNoVtx_v14, fragment.HLT_DoubleMu48NoFiltersNoVtx_v14, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, fragment.HLT_Ele28_HighEta_SC20_Mass55_v23, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, fragment.HLT_Ele15_IsoVVVL_PFHT450_v28, fragment.HLT_Ele50_IsoVVVL_PFHT450_v28, fragment.HLT_Ele15_IsoVVVL_PFHT600_v32, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, fragment.HLT_Mu15_IsoVVVL_PFHT450_v27, fragment.HLT_Mu50_IsoVVVL_PFHT450_v27, fragment.HLT_Mu15_IsoVVVL_PFHT600_v31, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, fragment.HLT_Dimuon10_Upsilon_y1p4_v13, fragment.HLT_Dimuon12_Upsilon_y1p4_v14, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, fragment.HLT_Dimuon25_Jpsi_v26, fragment.HLT_Dimuon14_PsiPrime_v25, fragment.HLT_Dimuon14_PsiPrime_noCorrL1_v17, fragment.HLT_Dimuon18_PsiPrime_v26, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v18, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v18, fragment.HLT_Dimuon24_Phi_noCorrL1_v18, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v18, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, fragment.HLT_DoubleIsoMu20_eta2p1_v19, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, fragment.HLT_Mu8_v24, fragment.HLT_Mu17_v25, fragment.HLT_Mu19_v16, fragment.HLT_Mu17_Photon30_IsoCaloId_v18, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, fragment.HLT_PFHT400_SixPFJet32_v21, fragment.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, fragment.HLT_PFHT450_SixPFJet36_v20, fragment.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, fragment.HLT_PFHT350_v31, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, fragment.HLT_ECALHT800_v20, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, fragment.HLT_Photon20_HoverELoose_v20, fragment.HLT_Photon30_HoverELoose_v20, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, fragment.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, fragment.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, fragment.HLT_Mu18_Mu9_SameSign_v16, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, fragment.HLT_QuadPFJet103_88_75_15_v17, fragment.HLT_QuadPFJet105_88_76_15_v17, fragment.HLT_QuadPFJet111_90_80_15_v17, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, fragment.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, fragment.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, fragment.HLT_PFHT250_QuadPFJet25_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, fragment.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, fragment.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, fragment.HLT_QuadPFJet100_88_70_30_v10, fragment.HLT_QuadPFJet105_88_75_30_v9, fragment.HLT_QuadPFJet111_90_80_30_v9, fragment.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, fragment.HLT_AK8PFJet220_SoftDropMass40_v13, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_v13, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_Nch45_v6, fragment.HLT_AK8PFJet275_Nch40_v6, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, fragment.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, fragment.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, fragment.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu10NoVtx_2Cha_v9, fragment.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L3Mu10NoVtx_v10, fragment.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, fragment.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, fragment.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, fragment.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, fragment.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, fragment.HLT_L1Mu6HT240_v9, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, fragment.HLT_HT350_v7, fragment.HLT_HT425_v19, fragment.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v23, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v23, fragment.HLT_CaloMET60_DTCluster50_v11, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v11, fragment.HLT_L1MET_DTCluster50_v11, fragment.HLT_L1MET_DTClusterNoMB1S50_v11, fragment.HLT_CscCluster_Loose_v10, fragment.HLT_CscCluster_Medium_v10, fragment.HLT_CscCluster_Tight_v10, fragment.HLT_CscCluster50_Photon20Unseeded_v4, fragment.HLT_CscCluster50_Photon30Unseeded_v4, fragment.HLT_CscCluster100_Ele5_v4, fragment.HLT_CscCluster100_Mu5_v6, fragment.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, fragment.HLT_DoubleCscCluster75_v7, fragment.HLT_IsoTrk200_L1SingleMuShower_v4, fragment.HLT_IsoTrk400_L1SingleMuShower_v4, fragment.HLT_DoubleCscCluster100_v7, fragment.HLT_L1CSCShower_DTCluster50_v10, fragment.HLT_L1CSCShower_DTCluster75_v10, fragment.HLT_PFMET105_IsoTrk50_v13, fragment.HLT_L1SingleLLPJet_v7, fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, fragment.HLT_DiPhoton10Time1ns_v10, fragment.HLT_DiPhoton10Time1p2ns_v10, fragment.HLT_DiPhoton10Time1p4ns_v10, fragment.HLT_DiPhoton10Time1p6ns_v10, fragment.HLT_DiPhoton10Time1p8ns_v10, fragment.HLT_DiPhoton10Time2ns_v10, fragment.HLT_DiPhoton10_CaloIdL_v10, fragment.HLT_DoubleEle6p5_eta1p22_mMax6_v10, fragment.HLT_DoubleEle8_eta1p22_mMax6_v10, fragment.HLT_DoubleEle10_eta1p22_mMax6_v10, fragment.HLT_SingleEle8_v9, fragment.HLT_SingleEle8_SingleEGL1_v9, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Mu50_L1SingleMuShower_v11, fragment.HLT_IsoMu24_OneProng32_v9, fragment.HLT_Photon32_OneProng32_M50To105_v10, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1050_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1200_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_PFJet200_TimeLtNeg2p5ns_v10, fragment.HLT_PFJet200_TimeGt2p5ns_v10, fragment.HLT_Photon50_TimeLtNeg2p5ns_v7, fragment.HLT_Photon50_TimeGt2p5ns_v7, fragment.HLT_PPSMaxTracksPerArm1_v9, fragment.HLT_PPSMaxTracksPerRP4_v9, fragment.HLT_PPSRandom_v1, fragment.HLT_HIL1NotBptxOR_v14, fragment.HLT_HIL1UnpairedBunchBptxPlus_v14, fragment.HLT_HIL1UnpairedBunchBptxMinus_v14, fragment.HLT_HIPhysics_v14, fragment.HLT_HIPhysicsForZS_v14, fragment.HLT_HIRandom_v7, fragment.HLT_HIRandom_HighRate_v3, fragment.HLT_HIHcalNZS_v14, fragment.HLT_HIHcalPhiSym_v14, fragment.HLT_HIZeroBias_v14, fragment.HLT_HIZeroBias_HighRate_v7, fragment.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, fragment.HLT_HIZeroBias_HighRateRAW_v4, fragment.HLT_HIMinimumBiasHF1AND_v7, fragment.HLT_HIMinimumBiasHF1AND_copy_v6, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, fragment.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1, fragment.HLT_HIL1Centrality30_50_v7, fragment.HLT_HIL1_UCC_0_0p5_v7, fragment.HLT_HIL1_UCC_0_1_v7, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet80Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet100Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet120Eta2p1_v7, fragment.HLT_HIPuAK4CaloJet120Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet40Fwd_v7, fragment.HLT_HIPuAK4CaloJet60Fwd_v7, fragment.HLT_HIPuAK4CaloJet80Fwd_v7, fragment.HLT_HIPuAK4CaloJet100Fwd_v7, fragment.HLT_HIPuAK4CaloJet120Fwd_v7, fragment.HLT_HICsAK4PFJet60Eta1p5_v14, fragment.HLT_HICsAK4PFJet60Eta2p1_v7, fragment.HLT_HICsAK4PFJet80Eta1p5_v14, fragment.HLT_HICsAK4PFJet80Eta2p1_v7, fragment.HLT_HICsAK4PFJet100Eta1p5_v14, fragment.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8, fragment.HLT_HICsAK4PFJet100Eta2p1_v7, fragment.HLT_HICsAK4PFJet120Eta1p5_v14, fragment.HLT_HICsAK4PFJet120Eta2p1_v7, fragment.HLT_HIGEDPhoton10_v14, fragment.HLT_HIGEDPhoton10_EB_v14, fragment.HLT_HIGEDPhoton20_v14, fragment.HLT_HIGEDPhoton20_EB_v14, fragment.HLT_HIGEDPhoton30_v14, fragment.HLT_HIGEDPhoton30_EB_v14, fragment.HLT_HIGEDPhoton40_v14, fragment.HLT_HIGEDPhoton40_EB_v14, fragment.HLT_HIGEDPhoton50_v14, fragment.HLT_HIGEDPhoton50_EB_v14, fragment.HLT_HIGEDPhoton60_v14, fragment.HLT_HIGEDPhoton60_EB_v14, fragment.HLT_HIDoubleGEDPhoton20_v7, fragment.HLT_HIEle10Gsf_v14, fragment.HLT_HIEle15Gsf_v14, fragment.HLT_HIEle20Gsf_v14, fragment.HLT_HIEle30Gsf_v14, fragment.HLT_HIEle40Gsf_v14, fragment.HLT_HIEle50Gsf_v14, fragment.HLT_HIEle15Ele10Gsf_v14, fragment.HLT_HIEle15Ele10GsfMass50_v14, fragment.HLT_HIDoubleEle10Gsf_v14, fragment.HLT_HIDoubleEle10GsfMass50_v14, fragment.HLT_HIDoubleEle15Gsf_v14, fragment.HLT_HIDoubleEle15GsfMass50_v14, fragment.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_NotMBHF2_v5, fragment.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, fragment.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, fragment.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_Random_HighRate_v1, fragment.HLT_HIUPC_HFafterglowCombined_v1, fragment.HLT_HIL1SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality40to100_v1, fragment.HLT_HIL1SingleMu0_v7, fragment.HLT_HIL1SingleMu0_Open_v7, fragment.HLT_HIL1SingleMu0_Cosmic_v7, fragment.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, fragment.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, fragment.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, fragment.HLT_HIL2DoubleMuOpen_SS_v1, fragment.HLT_HIL2DoubleMuOpen_OS_v1, fragment.HLT_HIL1DoubleMu0_v7, fragment.HLT_HIL2DoubleMu0_SQ_v1, fragment.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, fragment.HLT_HIL1DoubleMu0_SQ_v7, fragment.HLT_HIL2SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality40to100_v1, fragment.HLT_HIL2SingleMu3_Open_v7, fragment.HLT_HIL2SingleMu5_v7, fragment.HLT_HIL2SingleMu7_v7, fragment.HLT_HIL2SingleMu12_v1, fragment.HLT_HIL2DoubleMu0_Open_v7, fragment.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu3_M7to15_Open_v7, fragment.HLT_HIL3SingleMu3_Open_v7, fragment.HLT_HIL3SingleMu5_v7, fragment.HLT_HIL3SingleMu7_v7, fragment.HLT_HIL3SingleMu12_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3DoubleMu0_M0toInf_Open_v7, fragment.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, fragment.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu2_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, fragment.HLT_HICscCluster_Loose_v7, fragment.HLT_HICscCluster_Medium_v7, fragment.HLT_HICscCluster_Tight_v7, fragment.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, fragment.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, fragment.HLT_HIL1NotBptxORForPPRef_v9, fragment.HLT_HIHT80_Beamspot_ppRef5TeV_v15, fragment.HLT_PPRefZeroBias_v6, fragment.HLT_AK4CaloJet40_v6, fragment.HLT_AK4CaloJet60_v6, fragment.HLT_AK4CaloJet70_v6, fragment.HLT_AK4CaloJet80_v6, fragment.HLT_AK4CaloJet100_v6, fragment.HLT_AK4CaloJet120_v6, fragment.HLT_AK4CaloJetFwd40_v6, fragment.HLT_AK4CaloJetFwd60_v6, fragment.HLT_AK4CaloJetFwd70_v6, fragment.HLT_AK4CaloJetFwd80_v6, fragment.HLT_AK4CaloJetFwd100_v6, fragment.HLT_AK4CaloJetFwd120_v6, fragment.HLT_AK4PFJet40_v8, fragment.HLT_AK4PFJet60_v8, fragment.HLT_AK4PFJet80_v8, fragment.HLT_AK4PFJet100_v8, fragment.HLT_AK4PFJet120_v8, fragment.HLT_AK4PFJetFwd40_v8, fragment.HLT_AK4PFJetFwd60_v8, fragment.HLT_AK4PFJetFwd80_v8, fragment.HLT_AK4PFJetFwd100_v8, fragment.HLT_AK4PFJetFwd120_v8, fragment.HLT_PPRefDoubleEle10Gsf_v6, fragment.HLT_PPRefDoubleEle10GsfMass50_v6, fragment.HLT_PPRefDoubleEle15Gsf_v6, fragment.HLT_PPRefDoubleEle15GsfMass50_v6, fragment.HLT_PPRefEle15Ele10Gsf_v6, fragment.HLT_PPRefEle15Ele10GsfMass50_v6, fragment.HLT_PPRefEle10Gsf_v6, fragment.HLT_PPRefEle15Gsf_v6, fragment.HLT_PPRefEle20Gsf_v7, fragment.HLT_PPRefEle30Gsf_v7, fragment.HLT_PPRefEle40Gsf_v6, fragment.HLT_PPRefEle50Gsf_v6, fragment.HLT_PPRefGEDPhoton10_v6, fragment.HLT_PPRefGEDPhoton10_EB_v6, fragment.HLT_PPRefGEDPhoton20_v6, fragment.HLT_PPRefGEDPhoton20_EB_v6, fragment.HLT_PPRefGEDPhoton30_v6, fragment.HLT_PPRefGEDPhoton30_EB_v6, fragment.HLT_PPRefGEDPhoton40_v6, fragment.HLT_PPRefGEDPhoton40_EB_v6, fragment.HLT_PPRefGEDPhoton50_v6, fragment.HLT_PPRefGEDPhoton50_EB_v6, fragment.HLT_PPRefGEDPhoton60_v6, fragment.HLT_PPRefGEDPhoton60_EB_v6, fragment.HLT_PPRefDoubleGEDPhoton20_v1, fragment.HLT_PPRefL1DoubleMu0_v6, fragment.HLT_PPRefL1DoubleMu0_SQ_v1, fragment.HLT_PPRefL1DoubleMu0_Open_v6, fragment.HLT_PPRefL1DoubleMu2_v1, fragment.HLT_PPRefL1DoubleMu2_SQ_v1, fragment.HLT_PPRefL1SingleMu0_Cosmics_v6, fragment.HLT_PPRefL1SingleMu7_v6, fragment.HLT_PPRefL1SingleMu12_v6, fragment.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, fragment.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, fragment.HLT_PPRefL2DoubleMu0_v6, fragment.HLT_PPRefL2DoubleMu0_Open_v6, fragment.HLT_PPRefL2SingleMu7_v6, fragment.HLT_PPRefL2SingleMu12_v6, fragment.HLT_PPRefL2SingleMu15_v6, fragment.HLT_PPRefL2SingleMu20_v6, fragment.HLT_PPRefL3DoubleMu0_v8, fragment.HLT_PPRefL3DoubleMu0_Open_v8, fragment.HLT_PPRefL3SingleMu3_v8, fragment.HLT_PPRefL3SingleMu5_v8, fragment.HLT_PPRefL3SingleMu7_v8, fragment.HLT_PPRefL3SingleMu12_v8, fragment.HLT_PPRefL3SingleMu15_v8, fragment.HLT_PPRefL3SingleMu20_v8, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, fragment.HLT_PPRefCscCluster_Loose_v6, fragment.HLT_PPRefCscCluster_Medium_v6, fragment.HLT_PPRefCscCluster_Tight_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt25_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt35_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt45_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt60_v6, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, fragment.HLT_PPRefUPC_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_ZDC1nOR_v1, fragment.HLT_PPRefZeroBias_FirstCollisionInTrain_v1, fragment.MC_ReducedIterativeTracking_v22, fragment.MC_AK4CaloJets_v19, fragment.MC_AK4CaloJetsFromPV_v18, fragment.MC_CaloHT_v18, fragment.MC_AK8CaloHT_v18, fragment.MC_CaloMHT_v18, fragment.MC_AK4PFJets_v29, fragment.MC_PFHT_v28, fragment.MC_AK8PFJets_v29, fragment.MC_AK8PFHT_v28, fragment.MC_CaloMET_v18, fragment.MC_CaloMET_JetIdCleaned_v19, fragment.MC_PFMET_v29, fragment.MC_PFMHT_v28, fragment.MC_AK4PFJetPNet_v5, fragment.MC_AK8PFJetPNet_v5, fragment.MC_Egamma_Open_v8, fragment.MC_Egamma_Open_Unseeded_v8, fragment.MC_Ele5_WPTight_Gsf_v18, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, fragment.MC_DoubleEle5_CaloIdL_MW_v26, fragment.MC_IsoMu_v27, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v23, fragment.MC_DoubleMuNoFiltersNoVtx_v17, fragment.MC_PFScouting_v6, fragment.HLT_SpecialHLTPhysics_v7, fragment.AlCa_LumiPixelsCounts_RandomHighRate_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, fragment.HLT_L1AXOVTight_v4, fragment.HLT_L1SingleMuOpen_v6, fragment.HLT_L1SingleMuOpen_DT_v6, fragment.HLT_L1SingleMu3_v5, fragment.HLT_L1SingleMu5_v5, fragment.HLT_L1SingleMu7_v5, fragment.HLT_L1DoubleMu0_v5, fragment.HLT_L1SingleJet8erHE_v5, fragment.HLT_L1SingleJet10erHE_v5, fragment.HLT_L1SingleJet12erHE_v5, fragment.HLT_L1SingleJet35_v5, fragment.HLT_L1SingleJet200_v5, fragment.HLT_L1SingleEG8er2p5_v4, fragment.HLT_L1SingleEG10er2p5_v4, fragment.HLT_L1SingleEG15er2p5_v4, fragment.HLT_L1SingleEG26er2p5_v4, fragment.HLT_L1SingleEG28er2p5_v4, fragment.HLT_L1SingleEG28er2p1_v4, fragment.HLT_L1SingleEG28er1p5_v4, fragment.HLT_L1SingleEG34er2p5_v4, fragment.HLT_L1SingleEG36er2p5_v4, fragment.HLT_L1SingleEG38er2p5_v4, fragment.HLT_L1SingleEG40er2p5_v4, fragment.HLT_L1SingleEG42er2p5_v4, fragment.HLT_L1SingleEG45er2p5_v4, fragment.HLT_L1SingleEG50_v4, fragment.HLT_L1SingleJet60_v4, fragment.HLT_L1SingleJet90_v4, fragment.HLT_L1SingleJet120_v4, fragment.HLT_L1SingleJet180_v4, fragment.HLT_L1HTT120er_v4, fragment.HLT_L1HTT160er_v4, fragment.HLT_L1HTT200er_v4, fragment.HLT_L1HTT255er_v4, fragment.HLT_L1HTT280er_v4, fragment.HLT_L1HTT320er_v4, fragment.HLT_L1HTT360er_v4, fragment.HLT_L1HTT400er_v4, fragment.HLT_L1HTT450er_v4, fragment.HLT_L1ETM120_v4, fragment.HLT_L1ETM150_v4, fragment.HLT_L1EXT_HCAL_LaserMon1_v5, fragment.HLT_L1EXT_HCAL_LaserMon4_v5, fragment.HLT_CscCluster_Cosmic_v4, fragment.HLT_HT60_Beamspot_v22, fragment.HLT_HT300_Beamspot_PixelClusters_WP2_v7, fragment.HLT_PixelClusters_WP2_v4, fragment.HLT_PixelClusters_WP1_v4, fragment.HLT_BptxOR_v6, fragment.HLT_L1SingleMuCosmics_EMTF_v4, fragment.HLT_L1SingleMuCosmics_CosmicTracking_v1, fragment.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, fragment.HLT_L1FatEvents_v5, fragment.HLT_Random_HighRate_v1, fragment.HLT_ZeroBias_HighRate_v4, fragment.HLT_ZeroBias_Gated_v4, fragment.HLT_SpecialZeroBias_v6, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLowPtJet, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate0, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate1, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate2, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate3, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate4, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate5, fragment.Dataset_AlCaLumiPixelsCountsGated, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPSExpress, fragment.Dataset_AlCaPPSPrompt, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DQMPPSRandom, fragment.Dataset_DisplacedJet, fragment.Dataset_EGamma0, fragment.Dataset_EGamma1, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressCosmics, fragment.Dataset_ExpressPhysics, fragment.Dataset_HIDQMGPUvsCPU, fragment.Dataset_HIDQMOnlineBeamspot, fragment.Dataset_HIEmptyBX, fragment.Dataset_HIEphemeralHLTPhysics, fragment.Dataset_HIEphemeralZeroBias0, fragment.Dataset_HIEphemeralZeroBias1, fragment.Dataset_HIEventDisplay, fragment.Dataset_HIExpressAlignment, fragment.Dataset_HIExpressPhysics, fragment.Dataset_HIExpressPhysicsRawPrime, fragment.Dataset_HIForward0, fragment.Dataset_HIForward1, fragment.Dataset_HIForward2, fragment.Dataset_HIForward3, fragment.Dataset_HIForward4, fragment.Dataset_HIForward5, fragment.Dataset_HIForward6, fragment.Dataset_HIForward7, fragment.Dataset_HIForward8, fragment.Dataset_HIForward9, fragment.Dataset_HIForward10, fragment.Dataset_HIForward11, fragment.Dataset_HIForward12, fragment.Dataset_HIForward13, fragment.Dataset_HIForward14, fragment.Dataset_HIForward15, fragment.Dataset_HIForward16, fragment.Dataset_HIForward17, fragment.Dataset_HIForward18, fragment.Dataset_HIForward19, fragment.Dataset_HIHLTPhysics, fragment.Dataset_HIHcalNZS, fragment.Dataset_HIOnlineMonitor, fragment.Dataset_HIMinimumBias0, fragment.Dataset_HIMinimumBias1, fragment.Dataset_HIMinimumBias2, fragment.Dataset_HIMinimumBias3, fragment.Dataset_HIPhysicsRawPrime0, fragment.Dataset_HITrackerNZS, fragment.Dataset_HIZeroBias0, fragment.Dataset_HIZeroBias1, fragment.Dataset_HIZeroBias2, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_JetMET0, fragment.Dataset_JetMET1, fragment.Dataset_L1Accept, fragment.Dataset_MinimumBias, fragment.Dataset_MonteCarlo, fragment.Dataset_Muon0, fragment.Dataset_Muon1, fragment.Dataset_MuonEG, fragment.Dataset_MuonShower, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_PPRefDoubleMuon0, fragment.Dataset_PPRefDoubleMuon1, fragment.Dataset_PPRefDoubleMuon2, fragment.Dataset_PPRefDoubleMuon3, fragment.Dataset_PPRefHardProbes0, fragment.Dataset_PPRefSingleMuon0, fragment.Dataset_PPRefZeroBiasPlusForward0, fragment.Dataset_ParkingDoubleMuonLowMass0, fragment.Dataset_ParkingDoubleMuonLowMass1, fragment.Dataset_ParkingDoubleMuonLowMass2, fragment.Dataset_ParkingDoubleMuonLowMass3, fragment.Dataset_ParkingDoubleMuonLowMass4, fragment.Dataset_ParkingDoubleMuonLowMass5, fragment.Dataset_ParkingDoubleMuonLowMass6, fragment.Dataset_ParkingDoubleMuonLowMass7, fragment.Dataset_ParkingHH, fragment.Dataset_ParkingLLP, fragment.Dataset_ParkingSingleMuon0, fragment.Dataset_ParkingVBF0, fragment.Dataset_ParkingVBF1, fragment.Dataset_ParkingVBF2, fragment.Dataset_ParkingVBF3, fragment.Dataset_ParkingVBF4, fragment.Dataset_ParkingVBF5, fragment.Dataset_ParkingVBF6, fragment.Dataset_ParkingVBF7, fragment.Dataset_RPCMonitor, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.ScoutingPFOutput, fragment.Dataset_SpecialRandom0, fragment.Dataset_SpecialRandom1, fragment.Dataset_SpecialRandom2, fragment.Dataset_SpecialRandom3, fragment.Dataset_SpecialRandom4, fragment.Dataset_SpecialRandom5, fragment.Dataset_SpecialRandom6, fragment.Dataset_SpecialRandom7, fragment.Dataset_SpecialRandom8, fragment.Dataset_SpecialRandom9, fragment.Dataset_SpecialRandom10, fragment.Dataset_SpecialRandom11, fragment.Dataset_SpecialRandom12, fragment.Dataset_SpecialRandom13, fragment.Dataset_SpecialRandom14, fragment.Dataset_SpecialRandom15, fragment.Dataset_SpecialRandom16, fragment.Dataset_SpecialRandom17, fragment.Dataset_SpecialRandom18, fragment.Dataset_SpecialRandom19, fragment.Dataset_SpecialZeroBias0, fragment.Dataset_SpecialZeroBias1, fragment.Dataset_SpecialZeroBias2, fragment.Dataset_SpecialZeroBias3, fragment.Dataset_SpecialZeroBias4, fragment.Dataset_SpecialZeroBias5, fragment.Dataset_SpecialZeroBias6, fragment.Dataset_SpecialZeroBias7, fragment.Dataset_SpecialZeroBias8, fragment.Dataset_SpecialZeroBias9, fragment.Dataset_SpecialZeroBias10, fragment.Dataset_SpecialZeroBias11, fragment.Dataset_SpecialZeroBias12, fragment.Dataset_SpecialZeroBias13, fragment.Dataset_SpecialZeroBias14, fragment.Dataset_SpecialZeroBias15, fragment.Dataset_SpecialZeroBias16, fragment.Dataset_SpecialZeroBias17, fragment.Dataset_SpecialZeroBias18, fragment.Dataset_SpecialZeroBias19, fragment.Dataset_SpecialZeroBias20, fragment.Dataset_SpecialZeroBias21, fragment.Dataset_SpecialZeroBias22, fragment.Dataset_SpecialZeroBias23, fragment.Dataset_SpecialZeroBias24, fragment.Dataset_SpecialZeroBias25, fragment.Dataset_SpecialZeroBias26, fragment.Dataset_SpecialZeroBias27, fragment.Dataset_SpecialZeroBias28, fragment.Dataset_SpecialZeroBias29, fragment.Dataset_SpecialZeroBias30, fragment.Dataset_SpecialZeroBias31, fragment.Dataset_SpecialHLTPhysics0, fragment.Dataset_SpecialHLTPhysics1, fragment.Dataset_SpecialHLTPhysics2, fragment.Dataset_SpecialHLTPhysics3, fragment.Dataset_SpecialHLTPhysics4, fragment.Dataset_SpecialHLTPhysics5, fragment.Dataset_SpecialHLTPhysics6, fragment.Dataset_SpecialHLTPhysics7, fragment.Dataset_SpecialHLTPhysics8, fragment.Dataset_SpecialHLTPhysics9, fragment.Dataset_SpecialHLTPhysics10, fragment.Dataset_SpecialHLTPhysics11, fragment.Dataset_SpecialHLTPhysics12, fragment.Dataset_SpecialHLTPhysics13, fragment.Dataset_SpecialHLTPhysics14, fragment.Dataset_SpecialHLTPhysics15, fragment.Dataset_SpecialHLTPhysics16, fragment.Dataset_SpecialHLTPhysics17, fragment.Dataset_SpecialHLTPhysics18, fragment.Dataset_SpecialHLTPhysics19, fragment.Dataset_ParkingSingleMuon1, fragment.Dataset_ParkingSingleMuon2, fragment.Dataset_ParkingSingleMuon3, fragment.Dataset_ParkingSingleMuon4, fragment.Dataset_ParkingSingleMuon5, fragment.Dataset_ParkingSingleMuon6, fragment.Dataset_ParkingSingleMuon7, fragment.Dataset_ParkingSingleMuon8, fragment.Dataset_ParkingSingleMuon9, fragment.Dataset_ParkingSingleMuon10, fragment.Dataset_ParkingSingleMuon11, fragment.Dataset_PPRefZeroBiasPlusForward1, fragment.Dataset_PPRefZeroBiasPlusForward2, fragment.Dataset_PPRefZeroBiasPlusForward3, fragment.Dataset_PPRefZeroBiasPlusForward4, fragment.Dataset_PPRefZeroBiasPlusForward5, fragment.Dataset_PPRefZeroBiasPlusForward6, fragment.Dataset_PPRefZeroBiasPlusForward7, fragment.Dataset_PPRefZeroBiasPlusForward8, fragment.Dataset_PPRefZeroBiasPlusForward9, fragment.Dataset_PPRefZeroBiasPlusForward10, fragment.Dataset_PPRefZeroBiasPlusForward11, fragment.Dataset_PPRefZeroBiasPlusForward12, fragment.Dataset_PPRefZeroBiasPlusForward13, fragment.Dataset_PPRefZeroBiasPlusForward14, fragment.Dataset_PPRefZeroBiasPlusForward15, fragment.Dataset_PPRefZeroBiasPlusForward16, fragment.Dataset_PPRefZeroBiasPlusForward17, fragment.Dataset_PPRefZeroBiasPlusForward18, fragment.Dataset_PPRefZeroBiasPlusForward19, fragment.Dataset_PPRefZeroBiasPlusForward20, fragment.Dataset_PPRefZeroBiasPlusForward21, fragment.Dataset_PPRefZeroBiasPlusForward22, fragment.Dataset_PPRefZeroBiasPlusForward23, fragment.Dataset_PPRefZeroBiasPlusForward24, fragment.Dataset_PPRefSingleMuon1, fragment.Dataset_PPRefSingleMuon2, fragment.Dataset_PPRefSingleMuon3, fragment.Dataset_PPRefHardProbes1, fragment.Dataset_PPRefHardProbes2, fragment.Dataset_PPRefHardProbes3, fragment.Dataset_PPRefHardProbes4, fragment.Dataset_HIPhysicsRawPrime1, fragment.Dataset_HIPhysicsRawPrime2, fragment.Dataset_HIPhysicsRawPrime3, fragment.Dataset_HIPhysicsRawPrime4, fragment.Dataset_HIPhysicsRawPrime5, fragment.Dataset_HIPhysicsRawPrime6, fragment.Dataset_HIPhysicsRawPrime7, fragment.Dataset_HIPhysicsRawPrime8, fragment.Dataset_HIPhysicsRawPrime9, fragment.Dataset_HIPhysicsRawPrime10, fragment.Dataset_HIPhysicsRawPrime11, fragment.Dataset_HIPhysicsRawPrime12, fragment.Dataset_HIPhysicsRawPrime13, fragment.Dataset_HIPhysicsRawPrime14, fragment.Dataset_HIPhysicsRawPrime15, fragment.Dataset_HIPhysicsRawPrime16, fragment.Dataset_HIPhysicsRawPrime17, fragment.Dataset_HIPhysicsRawPrime18, fragment.Dataset_HIPhysicsRawPrime19, fragment.Dataset_HIPhysicsRawPrime20, fragment.Dataset_HIPhysicsRawPrime21, fragment.Dataset_HIPhysicsRawPrime22, fragment.Dataset_HIPhysicsRawPrime23, fragment.Dataset_HIPhysicsRawPrime24, fragment.Dataset_HIPhysicsRawPrime25, fragment.Dataset_HIPhysicsRawPrime26, fragment.Dataset_HIPhysicsRawPrime27, fragment.Dataset_HIPhysicsRawPrime28, fragment.Dataset_HIPhysicsRawPrime29, fragment.Dataset_HIPhysicsRawPrime30, fragment.Dataset_HIPhysicsRawPrime31, fragment.Dataset_HIPhysicsRawPrime32, fragment.Dataset_HIPhysicsRawPrime33, fragment.Dataset_HIPhysicsRawPrime34, fragment.Dataset_HIPhysicsRawPrime35, fragment.Dataset_HIPhysicsRawPrime36, fragment.Dataset_HIPhysicsRawPrime37, fragment.Dataset_HIPhysicsRawPrime38, fragment.Dataset_HIPhysicsRawPrime39, fragment.Dataset_HIPhysicsRawPrime40, fragment.Dataset_HIPhysicsRawPrime41, fragment.Dataset_HIPhysicsRawPrime42, fragment.Dataset_HIPhysicsRawPrime43, fragment.Dataset_HIPhysicsRawPrime44, fragment.Dataset_HIPhysicsRawPrime45, fragment.Dataset_HIPhysicsRawPrime46, fragment.Dataset_HIPhysicsRawPrime47, fragment.Dataset_HIPhysicsRawPrime48, fragment.Dataset_HIPhysicsRawPrime49, fragment.Dataset_HIPhysicsRawPrime50, fragment.Dataset_HIPhysicsRawPrime51, fragment.Dataset_HIPhysicsRawPrime52, fragment.Dataset_HIPhysicsRawPrime53, fragment.Dataset_HIPhysicsRawPrime54, fragment.Dataset_HIPhysicsRawPrime55, fragment.Dataset_HIPhysicsRawPrime56, fragment.Dataset_HIPhysicsRawPrime57, fragment.Dataset_HIPhysicsRawPrime58, fragment.Dataset_HIPhysicsRawPrime59, )) # dummify hltGetConditions in cff's diff --git a/HLTrigger/Configuration/python/HLT_GRun_cff.py b/HLTrigger/Configuration/python/HLT_GRun_cff.py index e451153bc301d..2109dd70b9fd2 100644 --- a/HLTrigger/Configuration/python/HLT_GRun_cff.py +++ b/HLTrigger/Configuration/python/HLT_GRun_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/GRun --cff --data --type GRun -# /dev/CMSSW_14_1_0/GRun/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/GRun/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/GRun/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/GRun/V50") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -6406,8 +6406,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -11160,8 +11160,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), diff --git a/HLTrigger/Configuration/python/HLT_HIon_cff.py b/HLTrigger/Configuration/python/HLT_HIon_cff.py index 860e5af17525e..23241ec49b5e8 100644 --- a/HLTrigger/Configuration/python/HLT_HIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_HIon_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/HIon --cff --data --type HIon -# /dev/CMSSW_14_1_0/HIon/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/HIon/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/HIon/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/HIon/V50") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1516,9 +1516,7 @@ HIDQMGPUvsCPU = cms.vstring( 'DQM_HIEcalReconstruction_v10', 'DQM_HIHcalReconstruction_v8', 'DQM_HIPixelReconstruction_v12' ), - HIDQMOnlineBeamspot = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ), + HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ), HIEmptyBX = cms.vstring( 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1UnpairedBunchBptxMinus_v14', 'HLT_HIL1UnpairedBunchBptxPlus_v14' ), @@ -1535,9 +1533,7 @@ 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', 'HLT_HIMinimumBiasHF1AND_copy_v6' ), - HIExpressAlignment = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ), + HIExpressAlignment = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ), HIExpressPhysics = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', @@ -1583,6 +1579,8 @@ HIForward0 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1721,6 +1719,8 @@ HIForward1 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1859,6 +1859,8 @@ HIForward10 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1997,6 +1999,8 @@ HIForward11 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2135,6 +2139,8 @@ HIForward12 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2273,6 +2279,8 @@ HIForward13 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2411,6 +2419,8 @@ HIForward14 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2549,6 +2559,8 @@ HIForward15 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2687,6 +2699,8 @@ HIForward16 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2825,6 +2839,8 @@ HIForward17 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2963,6 +2979,8 @@ HIForward18 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3101,6 +3119,8 @@ HIForward19 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3239,6 +3259,8 @@ HIForward2 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3377,6 +3399,8 @@ HIForward3 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3515,6 +3539,8 @@ HIForward4 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3653,6 +3679,8 @@ HIForward5 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3791,6 +3819,8 @@ HIForward6 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3929,6 +3959,8 @@ HIForward7 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4067,6 +4099,8 @@ HIForward8 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4205,6 +4239,8 @@ HIForward9 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4356,6 +4392,7 @@ 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7', 'HLT_HIMinimumBiasHF1AND_v7' ), HIOnlineMonitor = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', + 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', 'HLT_HIHcalNZS_v14', @@ -12648,7 +12685,7 @@ ) fragment.hltL1sAlCaEcalPhiSymForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_MinimumBiasHF1_AND_BptxAND OR L1_ZeroBias OR L1_AlwaysTrue OR L1_IsolatedBunch" ), + L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -12788,8 +12825,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -12856,7 +12893,7 @@ ) fragment.hltL1sAlCaEcalPi0EtaForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AND_MinimumBiasHF1_AND_BptxAND OR L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AND_MinimumBiasHF1_AND_BptxAND OR L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -13649,7 +13686,7 @@ fragment.hltPixelTracksSoACompareGPUvsCPUPPOnAA = cms.EDProducer( "SiPixelHIonPhase1CompareTracks", pixelTrackReferenceSoA = cms.InputTag( "hltPixelTracksPPOnAASoASerialSync" ), pixelTrackTargetSoA = cms.InputTag( "hltPixelTracksPPOnAASoA" ), - topFolderName = cms.string( "SiPixelHeterogeneous/PixelTrackCompareDeviceVSHost" ), + topFolderName = cms.string( "SiPixelHeterogeneous/PixelTrackCompareGPUvsCPU" ), useQualityCut = cms.bool( True ), minQuality = cms.string( "loose" ), deltaR2cut = cms.double( 4.0E-4 ) @@ -13668,7 +13705,7 @@ pixelVertexReferenceSoA = cms.InputTag( "hltPixelVerticesPPOnAASoASerialSync" ), pixelVertexTargetSoA = cms.InputTag( "hltPixelVerticesPPOnAASoA" ), beamSpotSrc = cms.InputTag( "hltOnlineBeamSpot" ), - topFolderName = cms.string( "SiPixelHeterogeneous/PixelVertexCompareSoADeviceVSHost" ), + topFolderName = cms.string( "SiPixelHeterogeneous/PixelVertexCompareGPUvsCPU" ), dzCut = cms.double( 1.0 ) ) fragment.hltL1sDQMHIEcalReconstruction = cms.EDFilter( "HLTL1TSeed", @@ -13775,8 +13812,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -14607,7 +14644,79 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltPreHIMinimumBiasHF1ANDBeamspot = cms.EDFilter( "HLTPrescaler", +fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHIMinimumBiasHF1ANDZDC1nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHIMinimumBiasHF1ANDZDC2nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHIMinimumBiasHF1ANDZDC1nORcopy = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHIMinimumBiasHF1ANDZDC2nORcopy = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInOrbit_Centrality30_100_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHICentrality30100FirstCollisionAfterAbortGap = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL1sCentrality50100MinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_Centrality_50_100_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHICentrality50100MinimumBiasHF1ANDBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) @@ -18985,73 +19094,6 @@ inputTag = cms.InputTag( "rawDataCollector" ), fedList = cms.vuint32( 1022 ) ) -fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC1nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC2nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC1nORcopy = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC2nORcopy = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC1nORBeamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHIMinimumBiasHF1ANDZDC2nORBeamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInOrbit_Centrality30_100_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPreHICentrality30100FirstCollisionAfterAbortGap = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) fragment.hltL1Centrality30to50BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_Centrality_30_50_BptxAND" ), @@ -22997,7 +23039,7 @@ ) fragment.hltL1sZDC1nOR = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_Bkp1_OR_BptxAND OR L1_ZDC1n_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23022,7 +23064,7 @@ ) fragment.hltL1sZDC1nXORHF1AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF1_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_XOR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23065,7 +23107,7 @@ ) fragment.hltL1sZDC1nXORHF2AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF2_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp1_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp2_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp3_XOR_MinimumBiasHF2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23090,7 +23132,7 @@ ) fragment.hltL1sZDC1nAsymXORHF1AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF1_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AsymXOR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23115,7 +23157,7 @@ ) fragment.hltL1sZDC1nAsymXORHF2AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF2_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp1_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp2_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp3_AsymXOR_MinimumBiasHF2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23560,6 +23602,27 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +fragment.hltL1sDoubleEG3NotHF2AND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleEG3_NotMinimumBiasHF2_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPreHIUPCDoubleEG3NotMBHF2AND = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHIUPCDoubleEG3NotMBHF2ANDSinglePixelTrackMaxPixelTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreHIUPCDoubleEG5BptxANDSinglePixelTrackMaxPixelTrack = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -23587,7 +23650,7 @@ ) fragment.hltL1sZDC1nXORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_XOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23604,7 +23667,7 @@ ) fragment.hltL1sZDC1nXORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_XOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23621,7 +23684,7 @@ ) fragment.hltL1sZDC1nXORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_XOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23638,7 +23701,7 @@ ) fragment.hltL1sZDC1nXORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_XOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23655,7 +23718,7 @@ ) fragment.hltL1sZDC1nXORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_XOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23672,7 +23735,7 @@ ) fragment.hltL1sZDC1nXORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_XOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23689,7 +23752,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23706,7 +23769,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23723,7 +23786,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23740,7 +23803,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23757,7 +23820,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23774,7 +23837,7 @@ ) fragment.hltL1sZDC1nAsymXORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23931,7 +23994,7 @@ ) fragment.hltL1sZDC1nANDANDNotMBHF2BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AND_AND_NotMBHF2_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp1_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp2_AND_AND_NotMBHF2_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23948,7 +24011,7 @@ ) fragment.hltL1sZeroBiasZDC1nORZDC1nANDANDNotMBHF2BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_AND_AND_NotMBHF2_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_Bkp1_OR_BptxAND OR L1_ZDC1n_Bkp2_OR_BptxAND OR L1_ZDC1n_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp1_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp2_AND_AND_NotMBHF2_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24548,7 +24611,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_notZDC_OR_BptxAND OR L1_SingleJet8_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet8_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24565,7 +24628,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_notZDC_OR_BptxAND OR L1_SingleJet12_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet12_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24582,7 +24645,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_notZDC_OR_BptxAND OR L1_SingleJet16_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet16_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24599,7 +24662,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_notZDC_OR_BptxAND OR L1_SingleJet20_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet20_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24616,7 +24679,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_notZDC_OR_BptxAND OR L1_SingleJet24_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet24_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24633,7 +24696,7 @@ ) fragment.hltL1sNotZDC1nORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_notZDC_OR_BptxAND OR L1_SingleJet28_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet28_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24803,7 +24866,7 @@ ) fragment.hltL1sNotZDC1nANDDoubleJet8DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24820,7 +24883,7 @@ ) fragment.hltL1sNotZDC1nANDDoubleJet12DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24837,7 +24900,7 @@ ) fragment.hltL1sNotZDC1nANDDoubleJet16DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24854,7 +24917,7 @@ ) fragment.hltL1sNotZDC1nORDoubleJet8DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24871,7 +24934,7 @@ ) fragment.hltL1sNotZDC1nORDoubleJet12DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24888,7 +24951,7 @@ ) fragment.hltL1sNotZDC1nORDoubleJet16DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -29514,9 +29577,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ) ) fragment.hltPreDatasetHIDQMOnlineBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29572,9 +29633,9 @@ throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8 / 0', 'HLT_HIDoubleEle15GsfMass50_v14', - 'HLT_HIDoubleGEDPhoton20_v7 / 65', + 'HLT_HIDoubleGEDPhoton20_v7 / 6', 'HLT_HIL1SingleMu5_SingleEG20Gsf_v7', - 'HLT_HIL1SingleMu5_SingleGEDPhoton20_v7 / 25', + 'HLT_HIL1SingleMu5_SingleGEDPhoton20_v7 / 6', 'HLT_HIL2DoubleMu0_M1p5to6_Open_v7 / 335', 'HLT_HIL3DoubleMu2_Quarkonia_Open_v7 / 200', 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 20', @@ -29591,9 +29652,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ) ) fragment.hltPreDatasetHIExpressAlignment = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29618,14 +29677,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 35', 'HLT_HIL3SingleMu5_v7 / 2000', 'HLT_HIL3SingleMu7_v7 / 800', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', - 'HLT_HIMinimumBiasHF1AND_copy_v6', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14 / 2', - 'HLT_HIZeroBias_v14 / 5' ) + 'HLT_HIZeroBias_v14' ) ) fragment.hltPreDatasetHIExpressPhysics = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29638,8 +29697,8 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', - 'HLT_HIEle20Gsf_v14', - 'HLT_HIGEDPhoton40_v14 / 2', + 'HLT_HIEle20Gsf_v14 / 2', + 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1SingleMu0_Cosmic_v7 / 0', 'HLT_HIL1UnpairedBunchBptxMinus_v14 / 2', @@ -29650,14 +29709,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 35', 'HLT_HIL3SingleMu5_v7 / 2000', 'HLT_HIL3SingleMu7_v7 / 800', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', - 'HLT_HIMinimumBiasHF1AND_copy_v6', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', - 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 5', + 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14 / 2', - 'HLT_HIZeroBias_v14 / 5' ) + 'HLT_HIZeroBias_v14' ) ) fragment.hltPreDatasetHIExpressPhysicsRawPrime = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29672,6 +29731,8 @@ triggerConditions = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -29920,7 +29981,8 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', - 'HLT_HIEle20Gsf_v14 / 3', + 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 / 5', + 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIHcalNZS_v14 / 3', 'HLT_HIHcalPhiSym_v14 / 3', @@ -29934,14 +29996,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 10', 'HLT_HIL3SingleMu5_v7 / 0', 'HLT_HIL3SingleMu7_v7 / 0', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 20', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 20', - 'HLT_HIMinimumBiasHF1AND_copy_v6 / 20', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', - 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 2', + 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7 / 3', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14', - 'HLT_HIZeroBias_v14 / 3' ) + 'HLT_HIZeroBias_v14' ) ) fragment.hltPreDatasetHIOnlineMonitor = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29953,9 +30015,9 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 / 700', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 / 700', - 'HLT_HIMinimumBiasHF1AND_v7 / 700' ) + triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 / 5000', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 / 5000', + 'HLT_HIMinimumBiasHF1AND_v7 / 5000' ) ) fragment.hltPreDatasetHIMinimumBias0 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -30554,14 +30616,12 @@ fragment.HLT_HIZeroBias_HighRateRAW_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZeroBiasCopy + fragment.hltPreHIZeroBiasHighRateRAW + fragment.HLTDoHIStripZeroSuppression + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1AND_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1AND + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1AND_copy_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDcopy + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HIMinimumBiasHF1AND_Beamspot_v8 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDBeamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTCsAK4PFJetsSequence + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC1nOR + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC2nOR + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC1nORcopy + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC2nORcopy + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC1nORBeamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTCsAK4PFJetsSequence + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) -fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + fragment.hltPreHIMinimumBiasHF1ANDZDC2nORBeamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTCsAK4PFJetsSequence + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND + fragment.hltPreHICentrality30100FirstCollisionAfterAbortGap + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) +fragment.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sCentrality50100MinimumBiasHF1ANDBptxAND + fragment.hltPreHICentrality50100MinimumBiasHF1ANDBeamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTCsAK4PFJetsSequence + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) fragment.HLT_HIL1Centrality30_50_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1Centrality30to50BptxAND + fragment.hltPreHIL1Centrality3050 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIL1_UCC_0_0p5_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sUCC00p5 + fragment.hltPreHIL1UCC00p5 + fragment.HLTDoLocalHcalSequence + fragment.hltTowerMakerForHf + fragment.hltCaloMETProducerForHf + fragment.hltGlobalSumsETHfMaxFilter + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIL1_UCC_0_1_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sUCC01 + fragment.hltPreHIL1UCC01 + fragment.HLTDoLocalHcalSequence + fragment.hltTowerMakerForHf + fragment.hltCaloMETProducerForHf + fragment.hltGlobalSumsETHfMaxFilter + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) @@ -30658,6 +30718,8 @@ fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG2BptxAND + fragment.hltPreHIUPCDoubleEG2BptxANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.hltPixelActivityFilterMaxClusters1e3 + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG2NotHF2AND + fragment.hltPreHIUPCDoubleEG2NotMBHF2ANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG2NotHF2AND + fragment.hltPreHIUPCDoubleEG2NotMBHF2AND + fragment.HLTDoHIStripZeroSuppression + fragment.HLTEndSequence ) +fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG3NotHF2AND + fragment.hltPreHIUPCDoubleEG3NotMBHF2AND + fragment.HLTDoHIStripZeroSuppression + fragment.HLTEndSequence ) +fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG3NotHF2AND + fragment.hltPreHIUPCDoubleEG3NotMBHF2ANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG5BptxAND + fragment.hltPreHIUPCDoubleEG5BptxANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.hltPixelActivityFilterMaxClusters1e3 + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG5NotHF2AND + fragment.hltPreHIUPCDoubleEG5NotMBHF2ANDSinglePixelTrackMaxPixelTrack + fragment.HLTDoSiStripZeroSuppression + fragment.HLTDoLocalPixelPPOnAASequence + fragment.HLTDoLocalStripSequencePPOnAA + fragment.HLTRecopixelvertexingSequencePPOnAAForUPC + fragment.hltPixelCandsForUPCPPOnAA + fragment.hltFilteredPixelTracksForUPC + fragment.HLTDoHIStripZeroSuppressionRepacker + fragment.HLTEndSequence ) fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleEG5NotHF2AND + fragment.hltPreHIUPCDoubleEG5NotMBHF2AND + fragment.HLTDoHIStripZeroSuppression + fragment.HLTEndSequence ) @@ -30907,7 +30969,7 @@ fragment.Dataset_HIPhysicsRawPrime59 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetHIPhysicsRawPrime + fragment.hltPreDatasetHIPhysicsRawPrime59 ) -fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSymForHI_v12, fragment.AlCa_EcalEtaEBonlyForHI_v13, fragment.AlCa_EcalEtaEEonlyForHI_v13, fragment.AlCa_EcalPi0EBonlyForHI_v13, fragment.AlCa_EcalPi0EEonlyForHI_v13, fragment.AlCa_RPCMuonNormalisationForHI_v11, fragment.DQM_HIPixelReconstruction_v12, fragment.DQM_HIEcalReconstruction_v10, fragment.DQM_HIHcalReconstruction_v8, fragment.DST_Physics_v16, fragment.HLT_HIEphemeralPhysics_v5, fragment.HLT_HIEphemeralZeroBias_v5, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HIL1NotBptxOR_v14, fragment.HLT_HIL1UnpairedBunchBptxPlus_v14, fragment.HLT_HIL1UnpairedBunchBptxMinus_v14, fragment.HLT_HIPhysics_v14, fragment.HLT_HIPhysicsForZS_v14, fragment.HLT_HIRandom_v7, fragment.HLT_HIRandom_HighRate_v3, fragment.HLT_HIHcalNZS_v14, fragment.HLT_HIHcalPhiSym_v14, fragment.HLT_HIZeroBias_v14, fragment.HLT_HIZeroBias_HighRate_v7, fragment.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, fragment.HLT_HIZeroBias_HighRateRAW_v4, fragment.HLT_HIMinimumBiasHF1AND_v7, fragment.HLT_HIMinimumBiasHF1AND_copy_v6, fragment.HLT_HIMinimumBiasHF1AND_Beamspot_v8, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8, fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, fragment.HLT_HIL1Centrality30_50_v7, fragment.HLT_HIL1_UCC_0_0p5_v7, fragment.HLT_HIL1_UCC_0_1_v7, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet80Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet100Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet120Eta2p1_v7, fragment.HLT_HIPuAK4CaloJet120Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet40Fwd_v7, fragment.HLT_HIPuAK4CaloJet60Fwd_v7, fragment.HLT_HIPuAK4CaloJet80Fwd_v7, fragment.HLT_HIPuAK4CaloJet100Fwd_v7, fragment.HLT_HIPuAK4CaloJet120Fwd_v7, fragment.HLT_HIGEDPhoton10_v14, fragment.HLT_HIGEDPhoton10_EB_v14, fragment.HLT_HIGEDPhoton20_v14, fragment.HLT_HIGEDPhoton20_EB_v14, fragment.HLT_HIGEDPhoton30_v14, fragment.HLT_HIGEDPhoton30_EB_v14, fragment.HLT_HIGEDPhoton40_v14, fragment.HLT_HIGEDPhoton40_EB_v14, fragment.HLT_HIGEDPhoton50_v14, fragment.HLT_HIGEDPhoton50_EB_v14, fragment.HLT_HIGEDPhoton60_v14, fragment.HLT_HIGEDPhoton60_EB_v14, fragment.HLT_HIDoubleGEDPhoton20_v7, fragment.HLT_HIEle10Gsf_v14, fragment.HLT_HIEle15Gsf_v14, fragment.HLT_HIEle20Gsf_v14, fragment.HLT_HIEle30Gsf_v14, fragment.HLT_HIEle40Gsf_v14, fragment.HLT_HIEle50Gsf_v14, fragment.HLT_HIEle15Ele10Gsf_v14, fragment.HLT_HIEle15Ele10GsfMass50_v14, fragment.HLT_HIDoubleEle10Gsf_v14, fragment.HLT_HIDoubleEle10GsfMass50_v14, fragment.HLT_HIDoubleEle15Gsf_v14, fragment.HLT_HIDoubleEle15GsfMass50_v14, fragment.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_NotMBHF2_v5, fragment.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, fragment.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, fragment.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_Random_HighRate_v1, fragment.HLT_HIUPC_HFafterglowCombined_v1, fragment.HLT_HIL1SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality40to100_v1, fragment.HLT_HIL1SingleMu0_v7, fragment.HLT_HIL1SingleMu0_Open_v7, fragment.HLT_HIL1SingleMu0_Cosmic_v7, fragment.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, fragment.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, fragment.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, fragment.HLT_HIL2DoubleMuOpen_SS_v1, fragment.HLT_HIL2DoubleMuOpen_OS_v1, fragment.HLT_HIL1DoubleMu0_v7, fragment.HLT_HIL2DoubleMu0_SQ_v1, fragment.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, fragment.HLT_HIL1DoubleMu0_SQ_v7, fragment.HLT_HIL2SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality40to100_v1, fragment.HLT_HIL2SingleMu3_Open_v7, fragment.HLT_HIL2SingleMu5_v7, fragment.HLT_HIL2SingleMu7_v7, fragment.HLT_HIL2SingleMu12_v1, fragment.HLT_HIL2DoubleMu0_Open_v7, fragment.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu3_M7to15_Open_v7, fragment.HLT_HIL3SingleMu3_Open_v7, fragment.HLT_HIL3SingleMu5_v7, fragment.HLT_HIL3SingleMu7_v7, fragment.HLT_HIL3SingleMu12_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3DoubleMu0_M0toInf_Open_v7, fragment.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, fragment.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu2_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, fragment.HLT_HICscCluster_Loose_v7, fragment.HLT_HICscCluster_Medium_v7, fragment.HLT_HICscCluster_Tight_v7, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPhiSym, fragment.Dataset_EcalLaser, fragment.Dataset_HIDQMGPUvsCPU, fragment.Dataset_HIDQMOnlineBeamspot, fragment.Dataset_HIEmptyBX, fragment.Dataset_HIEphemeralHLTPhysics, fragment.Dataset_HIEphemeralZeroBias0, fragment.Dataset_HIEphemeralZeroBias1, fragment.Dataset_HIEventDisplay, fragment.Dataset_HIExpressAlignment, fragment.Dataset_HIExpressPhysics, fragment.Dataset_HIExpressPhysicsRawPrime, fragment.Dataset_HIForward0, fragment.Dataset_HIForward1, fragment.Dataset_HIForward2, fragment.Dataset_HIForward3, fragment.Dataset_HIForward4, fragment.Dataset_HIForward5, fragment.Dataset_HIForward6, fragment.Dataset_HIForward7, fragment.Dataset_HIForward8, fragment.Dataset_HIForward9, fragment.Dataset_HIForward10, fragment.Dataset_HIForward11, fragment.Dataset_HIForward12, fragment.Dataset_HIForward13, fragment.Dataset_HIForward14, fragment.Dataset_HIForward15, fragment.Dataset_HIForward16, fragment.Dataset_HIForward17, fragment.Dataset_HIForward18, fragment.Dataset_HIForward19, fragment.Dataset_HIHLTPhysics, fragment.Dataset_HIHcalNZS, fragment.Dataset_HIOnlineMonitor, fragment.Dataset_HIMinimumBias0, fragment.Dataset_HIMinimumBias1, fragment.Dataset_HIMinimumBias2, fragment.Dataset_HIMinimumBias3, fragment.Dataset_HIPhysicsRawPrime0, fragment.Dataset_HITrackerNZS, fragment.Dataset_HIZeroBias0, fragment.Dataset_HIZeroBias1, fragment.Dataset_HIZeroBias2, fragment.Dataset_L1Accept, fragment.Dataset_RPCMonitor, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_HIPhysicsRawPrime1, fragment.Dataset_HIPhysicsRawPrime2, fragment.Dataset_HIPhysicsRawPrime3, fragment.Dataset_HIPhysicsRawPrime4, fragment.Dataset_HIPhysicsRawPrime5, fragment.Dataset_HIPhysicsRawPrime6, fragment.Dataset_HIPhysicsRawPrime7, fragment.Dataset_HIPhysicsRawPrime8, fragment.Dataset_HIPhysicsRawPrime9, fragment.Dataset_HIPhysicsRawPrime10, fragment.Dataset_HIPhysicsRawPrime11, fragment.Dataset_HIPhysicsRawPrime12, fragment.Dataset_HIPhysicsRawPrime13, fragment.Dataset_HIPhysicsRawPrime14, fragment.Dataset_HIPhysicsRawPrime15, fragment.Dataset_HIPhysicsRawPrime16, fragment.Dataset_HIPhysicsRawPrime17, fragment.Dataset_HIPhysicsRawPrime18, fragment.Dataset_HIPhysicsRawPrime19, fragment.Dataset_HIPhysicsRawPrime20, fragment.Dataset_HIPhysicsRawPrime21, fragment.Dataset_HIPhysicsRawPrime22, fragment.Dataset_HIPhysicsRawPrime23, fragment.Dataset_HIPhysicsRawPrime24, fragment.Dataset_HIPhysicsRawPrime25, fragment.Dataset_HIPhysicsRawPrime26, fragment.Dataset_HIPhysicsRawPrime27, fragment.Dataset_HIPhysicsRawPrime28, fragment.Dataset_HIPhysicsRawPrime29, fragment.Dataset_HIPhysicsRawPrime30, fragment.Dataset_HIPhysicsRawPrime31, fragment.Dataset_HIPhysicsRawPrime32, fragment.Dataset_HIPhysicsRawPrime33, fragment.Dataset_HIPhysicsRawPrime34, fragment.Dataset_HIPhysicsRawPrime35, fragment.Dataset_HIPhysicsRawPrime36, fragment.Dataset_HIPhysicsRawPrime37, fragment.Dataset_HIPhysicsRawPrime38, fragment.Dataset_HIPhysicsRawPrime39, fragment.Dataset_HIPhysicsRawPrime40, fragment.Dataset_HIPhysicsRawPrime41, fragment.Dataset_HIPhysicsRawPrime42, fragment.Dataset_HIPhysicsRawPrime43, fragment.Dataset_HIPhysicsRawPrime44, fragment.Dataset_HIPhysicsRawPrime45, fragment.Dataset_HIPhysicsRawPrime46, fragment.Dataset_HIPhysicsRawPrime47, fragment.Dataset_HIPhysicsRawPrime48, fragment.Dataset_HIPhysicsRawPrime49, fragment.Dataset_HIPhysicsRawPrime50, fragment.Dataset_HIPhysicsRawPrime51, fragment.Dataset_HIPhysicsRawPrime52, fragment.Dataset_HIPhysicsRawPrime53, fragment.Dataset_HIPhysicsRawPrime54, fragment.Dataset_HIPhysicsRawPrime55, fragment.Dataset_HIPhysicsRawPrime56, fragment.Dataset_HIPhysicsRawPrime57, fragment.Dataset_HIPhysicsRawPrime58, fragment.Dataset_HIPhysicsRawPrime59, )) +fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSymForHI_v12, fragment.AlCa_EcalEtaEBonlyForHI_v13, fragment.AlCa_EcalEtaEEonlyForHI_v13, fragment.AlCa_EcalPi0EBonlyForHI_v13, fragment.AlCa_EcalPi0EEonlyForHI_v13, fragment.AlCa_RPCMuonNormalisationForHI_v11, fragment.DQM_HIPixelReconstruction_v12, fragment.DQM_HIEcalReconstruction_v10, fragment.DQM_HIHcalReconstruction_v8, fragment.DST_Physics_v16, fragment.HLT_HIEphemeralPhysics_v5, fragment.HLT_HIEphemeralZeroBias_v5, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HIL1NotBptxOR_v14, fragment.HLT_HIL1UnpairedBunchBptxPlus_v14, fragment.HLT_HIL1UnpairedBunchBptxMinus_v14, fragment.HLT_HIPhysics_v14, fragment.HLT_HIPhysicsForZS_v14, fragment.HLT_HIRandom_v7, fragment.HLT_HIRandom_HighRate_v3, fragment.HLT_HIHcalNZS_v14, fragment.HLT_HIHcalPhiSym_v14, fragment.HLT_HIZeroBias_v14, fragment.HLT_HIZeroBias_HighRate_v7, fragment.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, fragment.HLT_HIZeroBias_HighRateRAW_v4, fragment.HLT_HIMinimumBiasHF1AND_v7, fragment.HLT_HIMinimumBiasHF1AND_copy_v6, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, fragment.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1, fragment.HLT_HIL1Centrality30_50_v7, fragment.HLT_HIL1_UCC_0_0p5_v7, fragment.HLT_HIL1_UCC_0_1_v7, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet80Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet100Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet120Eta2p1_v7, fragment.HLT_HIPuAK4CaloJet120Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet40Fwd_v7, fragment.HLT_HIPuAK4CaloJet60Fwd_v7, fragment.HLT_HIPuAK4CaloJet80Fwd_v7, fragment.HLT_HIPuAK4CaloJet100Fwd_v7, fragment.HLT_HIPuAK4CaloJet120Fwd_v7, fragment.HLT_HIGEDPhoton10_v14, fragment.HLT_HIGEDPhoton10_EB_v14, fragment.HLT_HIGEDPhoton20_v14, fragment.HLT_HIGEDPhoton20_EB_v14, fragment.HLT_HIGEDPhoton30_v14, fragment.HLT_HIGEDPhoton30_EB_v14, fragment.HLT_HIGEDPhoton40_v14, fragment.HLT_HIGEDPhoton40_EB_v14, fragment.HLT_HIGEDPhoton50_v14, fragment.HLT_HIGEDPhoton50_EB_v14, fragment.HLT_HIGEDPhoton60_v14, fragment.HLT_HIGEDPhoton60_EB_v14, fragment.HLT_HIDoubleGEDPhoton20_v7, fragment.HLT_HIEle10Gsf_v14, fragment.HLT_HIEle15Gsf_v14, fragment.HLT_HIEle20Gsf_v14, fragment.HLT_HIEle30Gsf_v14, fragment.HLT_HIEle40Gsf_v14, fragment.HLT_HIEle50Gsf_v14, fragment.HLT_HIEle15Ele10Gsf_v14, fragment.HLT_HIEle15Ele10GsfMass50_v14, fragment.HLT_HIDoubleEle10Gsf_v14, fragment.HLT_HIDoubleEle10GsfMass50_v14, fragment.HLT_HIDoubleEle15Gsf_v14, fragment.HLT_HIDoubleEle15GsfMass50_v14, fragment.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_NotMBHF2_v5, fragment.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, fragment.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, fragment.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_Random_HighRate_v1, fragment.HLT_HIUPC_HFafterglowCombined_v1, fragment.HLT_HIL1SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality40to100_v1, fragment.HLT_HIL1SingleMu0_v7, fragment.HLT_HIL1SingleMu0_Open_v7, fragment.HLT_HIL1SingleMu0_Cosmic_v7, fragment.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, fragment.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, fragment.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, fragment.HLT_HIL2DoubleMuOpen_SS_v1, fragment.HLT_HIL2DoubleMuOpen_OS_v1, fragment.HLT_HIL1DoubleMu0_v7, fragment.HLT_HIL2DoubleMu0_SQ_v1, fragment.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, fragment.HLT_HIL1DoubleMu0_SQ_v7, fragment.HLT_HIL2SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality40to100_v1, fragment.HLT_HIL2SingleMu3_Open_v7, fragment.HLT_HIL2SingleMu5_v7, fragment.HLT_HIL2SingleMu7_v7, fragment.HLT_HIL2SingleMu12_v1, fragment.HLT_HIL2DoubleMu0_Open_v7, fragment.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu3_M7to15_Open_v7, fragment.HLT_HIL3SingleMu3_Open_v7, fragment.HLT_HIL3SingleMu5_v7, fragment.HLT_HIL3SingleMu7_v7, fragment.HLT_HIL3SingleMu12_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3DoubleMu0_M0toInf_Open_v7, fragment.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, fragment.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu2_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, fragment.HLT_HICscCluster_Loose_v7, fragment.HLT_HICscCluster_Medium_v7, fragment.HLT_HICscCluster_Tight_v7, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPhiSym, fragment.Dataset_EcalLaser, fragment.Dataset_HIDQMGPUvsCPU, fragment.Dataset_HIDQMOnlineBeamspot, fragment.Dataset_HIEmptyBX, fragment.Dataset_HIEphemeralHLTPhysics, fragment.Dataset_HIEphemeralZeroBias0, fragment.Dataset_HIEphemeralZeroBias1, fragment.Dataset_HIEventDisplay, fragment.Dataset_HIExpressAlignment, fragment.Dataset_HIExpressPhysics, fragment.Dataset_HIExpressPhysicsRawPrime, fragment.Dataset_HIForward0, fragment.Dataset_HIForward1, fragment.Dataset_HIForward2, fragment.Dataset_HIForward3, fragment.Dataset_HIForward4, fragment.Dataset_HIForward5, fragment.Dataset_HIForward6, fragment.Dataset_HIForward7, fragment.Dataset_HIForward8, fragment.Dataset_HIForward9, fragment.Dataset_HIForward10, fragment.Dataset_HIForward11, fragment.Dataset_HIForward12, fragment.Dataset_HIForward13, fragment.Dataset_HIForward14, fragment.Dataset_HIForward15, fragment.Dataset_HIForward16, fragment.Dataset_HIForward17, fragment.Dataset_HIForward18, fragment.Dataset_HIForward19, fragment.Dataset_HIHLTPhysics, fragment.Dataset_HIHcalNZS, fragment.Dataset_HIOnlineMonitor, fragment.Dataset_HIMinimumBias0, fragment.Dataset_HIMinimumBias1, fragment.Dataset_HIMinimumBias2, fragment.Dataset_HIMinimumBias3, fragment.Dataset_HIPhysicsRawPrime0, fragment.Dataset_HITrackerNZS, fragment.Dataset_HIZeroBias0, fragment.Dataset_HIZeroBias1, fragment.Dataset_HIZeroBias2, fragment.Dataset_L1Accept, fragment.Dataset_RPCMonitor, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_HIPhysicsRawPrime1, fragment.Dataset_HIPhysicsRawPrime2, fragment.Dataset_HIPhysicsRawPrime3, fragment.Dataset_HIPhysicsRawPrime4, fragment.Dataset_HIPhysicsRawPrime5, fragment.Dataset_HIPhysicsRawPrime6, fragment.Dataset_HIPhysicsRawPrime7, fragment.Dataset_HIPhysicsRawPrime8, fragment.Dataset_HIPhysicsRawPrime9, fragment.Dataset_HIPhysicsRawPrime10, fragment.Dataset_HIPhysicsRawPrime11, fragment.Dataset_HIPhysicsRawPrime12, fragment.Dataset_HIPhysicsRawPrime13, fragment.Dataset_HIPhysicsRawPrime14, fragment.Dataset_HIPhysicsRawPrime15, fragment.Dataset_HIPhysicsRawPrime16, fragment.Dataset_HIPhysicsRawPrime17, fragment.Dataset_HIPhysicsRawPrime18, fragment.Dataset_HIPhysicsRawPrime19, fragment.Dataset_HIPhysicsRawPrime20, fragment.Dataset_HIPhysicsRawPrime21, fragment.Dataset_HIPhysicsRawPrime22, fragment.Dataset_HIPhysicsRawPrime23, fragment.Dataset_HIPhysicsRawPrime24, fragment.Dataset_HIPhysicsRawPrime25, fragment.Dataset_HIPhysicsRawPrime26, fragment.Dataset_HIPhysicsRawPrime27, fragment.Dataset_HIPhysicsRawPrime28, fragment.Dataset_HIPhysicsRawPrime29, fragment.Dataset_HIPhysicsRawPrime30, fragment.Dataset_HIPhysicsRawPrime31, fragment.Dataset_HIPhysicsRawPrime32, fragment.Dataset_HIPhysicsRawPrime33, fragment.Dataset_HIPhysicsRawPrime34, fragment.Dataset_HIPhysicsRawPrime35, fragment.Dataset_HIPhysicsRawPrime36, fragment.Dataset_HIPhysicsRawPrime37, fragment.Dataset_HIPhysicsRawPrime38, fragment.Dataset_HIPhysicsRawPrime39, fragment.Dataset_HIPhysicsRawPrime40, fragment.Dataset_HIPhysicsRawPrime41, fragment.Dataset_HIPhysicsRawPrime42, fragment.Dataset_HIPhysicsRawPrime43, fragment.Dataset_HIPhysicsRawPrime44, fragment.Dataset_HIPhysicsRawPrime45, fragment.Dataset_HIPhysicsRawPrime46, fragment.Dataset_HIPhysicsRawPrime47, fragment.Dataset_HIPhysicsRawPrime48, fragment.Dataset_HIPhysicsRawPrime49, fragment.Dataset_HIPhysicsRawPrime50, fragment.Dataset_HIPhysicsRawPrime51, fragment.Dataset_HIPhysicsRawPrime52, fragment.Dataset_HIPhysicsRawPrime53, fragment.Dataset_HIPhysicsRawPrime54, fragment.Dataset_HIPhysicsRawPrime55, fragment.Dataset_HIPhysicsRawPrime56, fragment.Dataset_HIPhysicsRawPrime57, fragment.Dataset_HIPhysicsRawPrime58, fragment.Dataset_HIPhysicsRawPrime59, )) # dummify hltGetConditions in cff's diff --git a/HLTrigger/Configuration/python/HLT_PIon_cff.py b/HLTrigger/Configuration/python/HLT_PIon_cff.py index 7387cd98a6529..aa1b7a4168630 100644 --- a/HLTrigger/Configuration/python/HLT_PIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_PIon_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/PIon --cff --data --type PIon -# /dev/CMSSW_14_1_0/PIon/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/PIon/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/PIon/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/PIon/V50") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( diff --git a/HLTrigger/Configuration/python/HLT_PRef_cff.py b/HLTrigger/Configuration/python/HLT_PRef_cff.py index f05560f955442..078e15c0cb35b 100644 --- a/HLTrigger/Configuration/python/HLT_PRef_cff.py +++ b/HLTrigger/Configuration/python/HLT_PRef_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/PRef --cff --data --type PRef -# /dev/CMSSW_14_1_0/PRef/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/PRef/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/PRef/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/PRef/V50") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1932,6 +1932,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward1 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -1947,6 +1948,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward10 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -1962,6 +1964,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward11 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -1977,6 +1980,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward12 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -1992,6 +1996,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward13 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2007,6 +2012,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward14 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2022,6 +2028,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward15 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2037,6 +2044,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward16 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2052,6 +2060,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward17 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2067,6 +2076,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward18 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2082,6 +2092,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward19 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2097,6 +2108,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward2 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2112,6 +2124,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward20 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2127,6 +2140,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward21 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2142,6 +2156,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward22 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2157,6 +2172,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward23 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2172,6 +2188,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward24 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2187,6 +2204,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward3 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2202,6 +2220,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward4 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2217,6 +2236,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward5 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2232,6 +2252,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward6 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2247,6 +2268,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward7 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2262,6 +2284,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward8 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2277,6 +2300,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward9 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2292,6 +2316,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), RPCMonitor = cms.vstring( 'AlCa_HIRPCMuonNormalisation_v11' ), SpecialRandom0 = cms.vstring( 'HLT_Random_HighRate_v1' ), @@ -4661,8 +4686,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -5678,8 +5703,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -15898,6 +15923,23 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +fragment.hltL1sL1ZeroBiasFirstCollisionInTrain = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInTrain" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +fragment.hltPrePPRefZeroBiasFirstCollisionInTrain = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreRandomHighRate = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -16016,7 +16058,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15', + triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15 / 2', 'HLT_ZeroBias_Beamspot_v16' ) ) fragment.hltPreDatasetDQMOnlineBeamspot = cms.EDFilter( "HLTPrescaler", @@ -16055,9 +16097,9 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 80', - 'HLT_PPRefGEDPhoton30_v6', - 'HLT_PPRefL3SingleMu7_v8 / 80', + triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 40', + 'HLT_PPRefGEDPhoton30_v6 / 50', + 'HLT_PPRefL3SingleMu7_v8 / 200', 'HLT_Physics_v14 / 10' ) ) fragment.hltPreDatasetEventDisplay = cms.EDFilter( "HLTPrescaler", @@ -16070,7 +16112,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15', + triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15 / 2', 'HLT_ZeroBias_Beamspot_v16' ) ) fragment.hltPreDatasetExpressAlignment = cms.EDFilter( "HLTPrescaler", @@ -16084,7 +16126,7 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 80', - 'HLT_PPRefEle15Ele10GsfMass50_v6', + 'HLT_PPRefEle15Ele10GsfMass50_v6 / 12', 'HLT_PPRefL3SingleMu7_v8 / 80', 'HLT_PPRefUPC_ZDC1nOR_v1 / 8500', 'HLT_Physics_v14 / 2', @@ -16102,7 +16144,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 8', + triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 20', 'HLT_PPRefEle15Ele10GsfMass50_v6', 'HLT_PPRefEle50Gsf_v6' ) ) @@ -16166,8 +16208,8 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8', - 'HLT_AK4PFJetFwd80_v8', + triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 10', + 'HLT_AK4PFJetFwd80_v8 / 2', 'HLT_CDC_L2cosmic_10_er1p0_v10', 'HLT_CDC_L2cosmic_5p5_er1p0_v10', 'HLT_HIL1NotBptxORForPPRef_v9', @@ -16177,13 +16219,13 @@ 'HLT_HcalPhiSym_v23', 'HLT_IsoTrackHB_v14', 'HLT_IsoTrackHE_v14', - 'HLT_PPRefDoubleEle10Gsf_v6', - 'HLT_PPRefEle30Gsf_v7', - 'HLT_PPRefGEDPhoton30_EB_v6', - 'HLT_PPRefGEDPhoton40_v6', - 'HLT_PPRefL3DoubleMu0_Open_v8', - 'HLT_PPRefL3DoubleMu0_v8', - 'HLT_PPRefL3SingleMu7_v8', + 'HLT_PPRefDoubleEle10Gsf_v6 / 50', + 'HLT_PPRefEle30Gsf_v7 / 5', + 'HLT_PPRefGEDPhoton30_EB_v6 / 20', + 'HLT_PPRefGEDPhoton40_v6 / 10', + 'HLT_PPRefL3DoubleMu0_Open_v8 / 0', + 'HLT_PPRefL3DoubleMu0_v8 / 200', + 'HLT_PPRefL3SingleMu7_v8 / 200', 'HLT_Physics_v14', 'HLT_Random_v3', 'HLT_ZeroBias_FirstCollisionAfterAbortGap_v12', @@ -16340,6 +16382,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) ) fragment.hltPreDatasetPPRefZeroBiasPlusForward0 = cms.EDFilter( "HLTPrescaler", @@ -16831,6 +16874,7 @@ fragment.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORSingleJet28 + fragment.hltPrePPRefUPCSingleJet28ZDC1nOR + fragment.HLTEndSequence ) fragment.HLT_PPRefUPC_ZDC1nAsymXOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nAsymXOR + fragment.hltPrePPRefUPCZDC1nAsymXOR + fragment.HLTEndSequence ) fragment.HLT_PPRefUPC_ZDC1nOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nORPRef + fragment.hltPrePPRefUPCZDC1nOR + fragment.HLTEndSequence ) +fragment.HLT_PPRefZeroBias_FirstCollisionInTrain_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1ZeroBiasFirstCollisionInTrain + fragment.hltPrePPRefZeroBiasFirstCollisionInTrain + fragment.HLTEndSequence ) fragment.HLT_Random_HighRate_v1 = cms.Path( fragment.HLTBeginSequenceRandom + fragment.hltPreRandomHighRate + fragment.HLTEndSequence ) fragment.HLTriggerFinalPath = cms.Path( fragment.hltGtStage2Digis + fragment.hltTriggerSummaryAOD + fragment.hltTriggerSummaryRAW + fragment.hltBoolFalse ) fragment.HLTAnalyzerEndpath = cms.EndPath( fragment.hltGtStage2Digis + fragment.hltL1TGlobalSummary + fragment.hltTrigReport ) @@ -16916,7 +16960,7 @@ fragment.Dataset_PPRefHardProbes4 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetPPRefHardProbes + fragment.hltPreDatasetPPRefHardProbes4 ) -fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_HIEcalEtaEBonly_v12, fragment.AlCa_HIEcalEtaEEonly_v12, fragment.AlCa_HIEcalPi0EBonly_v12, fragment.AlCa_HIEcalPi0EEonly_v12, fragment.AlCa_HIRPCMuonNormalisation_v11, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DST_Physics_v16, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, fragment.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, fragment.HLT_HIL1NotBptxORForPPRef_v9, fragment.HLT_HIHT80_Beamspot_ppRef5TeV_v15, fragment.HLT_PPRefZeroBias_v6, fragment.HLT_AK4CaloJet40_v6, fragment.HLT_AK4CaloJet60_v6, fragment.HLT_AK4CaloJet70_v6, fragment.HLT_AK4CaloJet80_v6, fragment.HLT_AK4CaloJet100_v6, fragment.HLT_AK4CaloJet120_v6, fragment.HLT_AK4CaloJetFwd40_v6, fragment.HLT_AK4CaloJetFwd60_v6, fragment.HLT_AK4CaloJetFwd70_v6, fragment.HLT_AK4CaloJetFwd80_v6, fragment.HLT_AK4CaloJetFwd100_v6, fragment.HLT_AK4CaloJetFwd120_v6, fragment.HLT_AK4PFJet40_v8, fragment.HLT_AK4PFJet60_v8, fragment.HLT_AK4PFJet80_v8, fragment.HLT_AK4PFJet100_v8, fragment.HLT_AK4PFJet120_v8, fragment.HLT_AK4PFJetFwd40_v8, fragment.HLT_AK4PFJetFwd60_v8, fragment.HLT_AK4PFJetFwd80_v8, fragment.HLT_AK4PFJetFwd100_v8, fragment.HLT_AK4PFJetFwd120_v8, fragment.HLT_PPRefDoubleEle10Gsf_v6, fragment.HLT_PPRefDoubleEle10GsfMass50_v6, fragment.HLT_PPRefDoubleEle15Gsf_v6, fragment.HLT_PPRefDoubleEle15GsfMass50_v6, fragment.HLT_PPRefEle15Ele10Gsf_v6, fragment.HLT_PPRefEle15Ele10GsfMass50_v6, fragment.HLT_PPRefEle10Gsf_v6, fragment.HLT_PPRefEle15Gsf_v6, fragment.HLT_PPRefEle20Gsf_v7, fragment.HLT_PPRefEle30Gsf_v7, fragment.HLT_PPRefEle40Gsf_v6, fragment.HLT_PPRefEle50Gsf_v6, fragment.HLT_PPRefGEDPhoton10_v6, fragment.HLT_PPRefGEDPhoton10_EB_v6, fragment.HLT_PPRefGEDPhoton20_v6, fragment.HLT_PPRefGEDPhoton20_EB_v6, fragment.HLT_PPRefGEDPhoton30_v6, fragment.HLT_PPRefGEDPhoton30_EB_v6, fragment.HLT_PPRefGEDPhoton40_v6, fragment.HLT_PPRefGEDPhoton40_EB_v6, fragment.HLT_PPRefGEDPhoton50_v6, fragment.HLT_PPRefGEDPhoton50_EB_v6, fragment.HLT_PPRefGEDPhoton60_v6, fragment.HLT_PPRefGEDPhoton60_EB_v6, fragment.HLT_PPRefDoubleGEDPhoton20_v1, fragment.HLT_PPRefL1DoubleMu0_v6, fragment.HLT_PPRefL1DoubleMu0_SQ_v1, fragment.HLT_PPRefL1DoubleMu0_Open_v6, fragment.HLT_PPRefL1DoubleMu2_v1, fragment.HLT_PPRefL1DoubleMu2_SQ_v1, fragment.HLT_PPRefL1SingleMu0_Cosmics_v6, fragment.HLT_PPRefL1SingleMu7_v6, fragment.HLT_PPRefL1SingleMu12_v6, fragment.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, fragment.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, fragment.HLT_PPRefL2DoubleMu0_v6, fragment.HLT_PPRefL2DoubleMu0_Open_v6, fragment.HLT_PPRefL2SingleMu7_v6, fragment.HLT_PPRefL2SingleMu12_v6, fragment.HLT_PPRefL2SingleMu15_v6, fragment.HLT_PPRefL2SingleMu20_v6, fragment.HLT_PPRefL3DoubleMu0_v8, fragment.HLT_PPRefL3DoubleMu0_Open_v8, fragment.HLT_PPRefL3SingleMu3_v8, fragment.HLT_PPRefL3SingleMu5_v8, fragment.HLT_PPRefL3SingleMu7_v8, fragment.HLT_PPRefL3SingleMu12_v8, fragment.HLT_PPRefL3SingleMu15_v8, fragment.HLT_PPRefL3SingleMu20_v8, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, fragment.HLT_PPRefCscCluster_Loose_v6, fragment.HLT_PPRefCscCluster_Medium_v6, fragment.HLT_PPRefCscCluster_Tight_v6, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, fragment.HLT_PPRefUPC_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_ZDC1nOR_v1, fragment.HLT_Random_HighRate_v1, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPhiSym, fragment.Dataset_Commissioning, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressPhysics, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_L1Accept, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_PPRefDoubleMuon0, fragment.Dataset_PPRefDoubleMuon1, fragment.Dataset_PPRefDoubleMuon2, fragment.Dataset_PPRefDoubleMuon3, fragment.Dataset_PPRefHardProbes0, fragment.Dataset_PPRefSingleMuon0, fragment.Dataset_PPRefZeroBiasPlusForward0, fragment.Dataset_RPCMonitor, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.Dataset_SpecialRandom0, fragment.Dataset_SpecialRandom1, fragment.Dataset_SpecialRandom2, fragment.Dataset_SpecialRandom3, fragment.Dataset_SpecialRandom4, fragment.Dataset_SpecialRandom5, fragment.Dataset_SpecialRandom6, fragment.Dataset_SpecialRandom7, fragment.Dataset_SpecialRandom8, fragment.Dataset_SpecialRandom9, fragment.Dataset_SpecialRandom10, fragment.Dataset_SpecialRandom11, fragment.Dataset_SpecialRandom12, fragment.Dataset_SpecialRandom13, fragment.Dataset_SpecialRandom14, fragment.Dataset_SpecialRandom15, fragment.Dataset_SpecialRandom16, fragment.Dataset_SpecialRandom17, fragment.Dataset_SpecialRandom18, fragment.Dataset_SpecialRandom19, fragment.Dataset_PPRefZeroBiasPlusForward1, fragment.Dataset_PPRefZeroBiasPlusForward2, fragment.Dataset_PPRefZeroBiasPlusForward3, fragment.Dataset_PPRefZeroBiasPlusForward4, fragment.Dataset_PPRefZeroBiasPlusForward5, fragment.Dataset_PPRefZeroBiasPlusForward6, fragment.Dataset_PPRefZeroBiasPlusForward7, fragment.Dataset_PPRefZeroBiasPlusForward8, fragment.Dataset_PPRefZeroBiasPlusForward9, fragment.Dataset_PPRefZeroBiasPlusForward10, fragment.Dataset_PPRefZeroBiasPlusForward11, fragment.Dataset_PPRefZeroBiasPlusForward12, fragment.Dataset_PPRefZeroBiasPlusForward13, fragment.Dataset_PPRefZeroBiasPlusForward14, fragment.Dataset_PPRefZeroBiasPlusForward15, fragment.Dataset_PPRefZeroBiasPlusForward16, fragment.Dataset_PPRefZeroBiasPlusForward17, fragment.Dataset_PPRefZeroBiasPlusForward18, fragment.Dataset_PPRefZeroBiasPlusForward19, fragment.Dataset_PPRefZeroBiasPlusForward20, fragment.Dataset_PPRefZeroBiasPlusForward21, fragment.Dataset_PPRefZeroBiasPlusForward22, fragment.Dataset_PPRefZeroBiasPlusForward23, fragment.Dataset_PPRefZeroBiasPlusForward24, fragment.Dataset_PPRefSingleMuon1, fragment.Dataset_PPRefSingleMuon2, fragment.Dataset_PPRefSingleMuon3, fragment.Dataset_PPRefHardProbes1, fragment.Dataset_PPRefHardProbes2, fragment.Dataset_PPRefHardProbes3, fragment.Dataset_PPRefHardProbes4, )) +fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_HIEcalEtaEBonly_v12, fragment.AlCa_HIEcalEtaEEonly_v12, fragment.AlCa_HIEcalPi0EBonly_v12, fragment.AlCa_HIEcalPi0EEonly_v12, fragment.AlCa_HIRPCMuonNormalisation_v11, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DST_Physics_v16, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, fragment.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, fragment.HLT_HIL1NotBptxORForPPRef_v9, fragment.HLT_HIHT80_Beamspot_ppRef5TeV_v15, fragment.HLT_PPRefZeroBias_v6, fragment.HLT_AK4CaloJet40_v6, fragment.HLT_AK4CaloJet60_v6, fragment.HLT_AK4CaloJet70_v6, fragment.HLT_AK4CaloJet80_v6, fragment.HLT_AK4CaloJet100_v6, fragment.HLT_AK4CaloJet120_v6, fragment.HLT_AK4CaloJetFwd40_v6, fragment.HLT_AK4CaloJetFwd60_v6, fragment.HLT_AK4CaloJetFwd70_v6, fragment.HLT_AK4CaloJetFwd80_v6, fragment.HLT_AK4CaloJetFwd100_v6, fragment.HLT_AK4CaloJetFwd120_v6, fragment.HLT_AK4PFJet40_v8, fragment.HLT_AK4PFJet60_v8, fragment.HLT_AK4PFJet80_v8, fragment.HLT_AK4PFJet100_v8, fragment.HLT_AK4PFJet120_v8, fragment.HLT_AK4PFJetFwd40_v8, fragment.HLT_AK4PFJetFwd60_v8, fragment.HLT_AK4PFJetFwd80_v8, fragment.HLT_AK4PFJetFwd100_v8, fragment.HLT_AK4PFJetFwd120_v8, fragment.HLT_PPRefDoubleEle10Gsf_v6, fragment.HLT_PPRefDoubleEle10GsfMass50_v6, fragment.HLT_PPRefDoubleEle15Gsf_v6, fragment.HLT_PPRefDoubleEle15GsfMass50_v6, fragment.HLT_PPRefEle15Ele10Gsf_v6, fragment.HLT_PPRefEle15Ele10GsfMass50_v6, fragment.HLT_PPRefEle10Gsf_v6, fragment.HLT_PPRefEle15Gsf_v6, fragment.HLT_PPRefEle20Gsf_v7, fragment.HLT_PPRefEle30Gsf_v7, fragment.HLT_PPRefEle40Gsf_v6, fragment.HLT_PPRefEle50Gsf_v6, fragment.HLT_PPRefGEDPhoton10_v6, fragment.HLT_PPRefGEDPhoton10_EB_v6, fragment.HLT_PPRefGEDPhoton20_v6, fragment.HLT_PPRefGEDPhoton20_EB_v6, fragment.HLT_PPRefGEDPhoton30_v6, fragment.HLT_PPRefGEDPhoton30_EB_v6, fragment.HLT_PPRefGEDPhoton40_v6, fragment.HLT_PPRefGEDPhoton40_EB_v6, fragment.HLT_PPRefGEDPhoton50_v6, fragment.HLT_PPRefGEDPhoton50_EB_v6, fragment.HLT_PPRefGEDPhoton60_v6, fragment.HLT_PPRefGEDPhoton60_EB_v6, fragment.HLT_PPRefDoubleGEDPhoton20_v1, fragment.HLT_PPRefL1DoubleMu0_v6, fragment.HLT_PPRefL1DoubleMu0_SQ_v1, fragment.HLT_PPRefL1DoubleMu0_Open_v6, fragment.HLT_PPRefL1DoubleMu2_v1, fragment.HLT_PPRefL1DoubleMu2_SQ_v1, fragment.HLT_PPRefL1SingleMu0_Cosmics_v6, fragment.HLT_PPRefL1SingleMu7_v6, fragment.HLT_PPRefL1SingleMu12_v6, fragment.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, fragment.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, fragment.HLT_PPRefL2DoubleMu0_v6, fragment.HLT_PPRefL2DoubleMu0_Open_v6, fragment.HLT_PPRefL2SingleMu7_v6, fragment.HLT_PPRefL2SingleMu12_v6, fragment.HLT_PPRefL2SingleMu15_v6, fragment.HLT_PPRefL2SingleMu20_v6, fragment.HLT_PPRefL3DoubleMu0_v8, fragment.HLT_PPRefL3DoubleMu0_Open_v8, fragment.HLT_PPRefL3SingleMu3_v8, fragment.HLT_PPRefL3SingleMu5_v8, fragment.HLT_PPRefL3SingleMu7_v8, fragment.HLT_PPRefL3SingleMu12_v8, fragment.HLT_PPRefL3SingleMu15_v8, fragment.HLT_PPRefL3SingleMu20_v8, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, fragment.HLT_PPRefCscCluster_Loose_v6, fragment.HLT_PPRefCscCluster_Medium_v6, fragment.HLT_PPRefCscCluster_Tight_v6, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, fragment.HLT_PPRefUPC_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_ZDC1nOR_v1, fragment.HLT_PPRefZeroBias_FirstCollisionInTrain_v1, fragment.HLT_Random_HighRate_v1, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPhiSym, fragment.Dataset_Commissioning, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressPhysics, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_L1Accept, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_PPRefDoubleMuon0, fragment.Dataset_PPRefDoubleMuon1, fragment.Dataset_PPRefDoubleMuon2, fragment.Dataset_PPRefDoubleMuon3, fragment.Dataset_PPRefHardProbes0, fragment.Dataset_PPRefSingleMuon0, fragment.Dataset_PPRefZeroBiasPlusForward0, fragment.Dataset_RPCMonitor, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.Dataset_SpecialRandom0, fragment.Dataset_SpecialRandom1, fragment.Dataset_SpecialRandom2, fragment.Dataset_SpecialRandom3, fragment.Dataset_SpecialRandom4, fragment.Dataset_SpecialRandom5, fragment.Dataset_SpecialRandom6, fragment.Dataset_SpecialRandom7, fragment.Dataset_SpecialRandom8, fragment.Dataset_SpecialRandom9, fragment.Dataset_SpecialRandom10, fragment.Dataset_SpecialRandom11, fragment.Dataset_SpecialRandom12, fragment.Dataset_SpecialRandom13, fragment.Dataset_SpecialRandom14, fragment.Dataset_SpecialRandom15, fragment.Dataset_SpecialRandom16, fragment.Dataset_SpecialRandom17, fragment.Dataset_SpecialRandom18, fragment.Dataset_SpecialRandom19, fragment.Dataset_PPRefZeroBiasPlusForward1, fragment.Dataset_PPRefZeroBiasPlusForward2, fragment.Dataset_PPRefZeroBiasPlusForward3, fragment.Dataset_PPRefZeroBiasPlusForward4, fragment.Dataset_PPRefZeroBiasPlusForward5, fragment.Dataset_PPRefZeroBiasPlusForward6, fragment.Dataset_PPRefZeroBiasPlusForward7, fragment.Dataset_PPRefZeroBiasPlusForward8, fragment.Dataset_PPRefZeroBiasPlusForward9, fragment.Dataset_PPRefZeroBiasPlusForward10, fragment.Dataset_PPRefZeroBiasPlusForward11, fragment.Dataset_PPRefZeroBiasPlusForward12, fragment.Dataset_PPRefZeroBiasPlusForward13, fragment.Dataset_PPRefZeroBiasPlusForward14, fragment.Dataset_PPRefZeroBiasPlusForward15, fragment.Dataset_PPRefZeroBiasPlusForward16, fragment.Dataset_PPRefZeroBiasPlusForward17, fragment.Dataset_PPRefZeroBiasPlusForward18, fragment.Dataset_PPRefZeroBiasPlusForward19, fragment.Dataset_PPRefZeroBiasPlusForward20, fragment.Dataset_PPRefZeroBiasPlusForward21, fragment.Dataset_PPRefZeroBiasPlusForward22, fragment.Dataset_PPRefZeroBiasPlusForward23, fragment.Dataset_PPRefZeroBiasPlusForward24, fragment.Dataset_PPRefSingleMuon1, fragment.Dataset_PPRefSingleMuon2, fragment.Dataset_PPRefSingleMuon3, fragment.Dataset_PPRefHardProbes1, fragment.Dataset_PPRefHardProbes2, fragment.Dataset_PPRefHardProbes3, fragment.Dataset_PPRefHardProbes4, )) # dummify hltGetConditions in cff's diff --git a/HLTrigger/Configuration/python/HLT_Special_cff.py b/HLTrigger/Configuration/python/HLT_Special_cff.py index 6a1b763592904..7993bf7df81c0 100644 --- a/HLTrigger/Configuration/python/HLT_Special_cff.py +++ b/HLTrigger/Configuration/python/HLT_Special_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/Special --cff --data --type Special -# /dev/CMSSW_14_1_0/Special/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/Special/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Special/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/Special/V50") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -4213,8 +4213,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -5230,8 +5230,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), diff --git a/HLTrigger/Configuration/python/HLTrigger_Datasets_HIon_cff.py b/HLTrigger/Configuration/python/HLTrigger_Datasets_HIon_cff.py index 2c5c5002a5b49..031a1921f1bf6 100644 --- a/HLTrigger/Configuration/python/HLTrigger_Datasets_HIon_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_Datasets_HIon_cff.py @@ -41,6 +41,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -189,6 +191,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -337,6 +341,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -485,6 +491,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -633,6 +641,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -781,6 +791,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -929,6 +941,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1077,6 +1091,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1225,6 +1241,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1373,6 +1391,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1521,6 +1541,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1669,6 +1691,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1817,6 +1841,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1965,6 +1991,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2113,6 +2141,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2261,6 +2291,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2409,6 +2441,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2557,6 +2591,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2705,6 +2741,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2853,6 +2891,8 @@ 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', diff --git a/HLTrigger/Configuration/python/HLTrigger_Datasets_PRef_cff.py b/HLTrigger/Configuration/python/HLTrigger_Datasets_PRef_cff.py index 3c33eb8291a63..1cf2ffcf1040a 100644 --- a/HLTrigger/Configuration/python/HLTrigger_Datasets_PRef_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_Datasets_PRef_cff.py @@ -585,6 +585,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -610,6 +611,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -635,6 +637,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -660,6 +663,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -685,6 +689,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -710,6 +715,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -735,6 +741,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -760,6 +767,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -785,6 +793,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -810,6 +819,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -835,6 +845,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -860,6 +871,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -885,6 +897,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -910,6 +923,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -935,6 +949,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -960,6 +975,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -985,6 +1001,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -1010,6 +1027,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -1035,6 +1053,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -1060,6 +1079,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -1085,6 +1105,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -1110,6 +1131,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -1135,6 +1157,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -1160,6 +1183,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) @@ -1185,6 +1209,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) diff --git a/HLTrigger/Configuration/tables/HIon.txt b/HLTrigger/Configuration/tables/HIon.txt index 1cb4882b70695..f1e93983bf61e 100644 --- a/HLTrigger/Configuration/tables/HIon.txt +++ b/HLTrigger/Configuration/tables/HIon.txt @@ -20,6 +20,7 @@ AlCa_EcalPi0EEonlyForHI_v* AlCa_EcalEtaEBonlyForHI_v* AlCa_EcalEtaEEonlyForHI_v* HLT_HICentrality30100_FirstCollisionAfterAbortGap_v* +HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v* # CMSHLT-3388 HLT_HIZeroBias_v* HLT_HIZeroBias_HighRate_v* # CMSHLT-2944 HLT_HIZeroBias_FirstCollisionAfterAbortGap_v* @@ -64,6 +65,8 @@ HLT_HIL1UnpairedBunchBptxPlus_v* HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-2471 HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-2471 HLT_HIUPC_DoubleEG2_NotMBHF2AND_v* # CMSHLT-2471 +HLT_HIUPC_DoubleEG3_NotMBHF2AND_v* # CMSHLT-3393 +HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-3393 HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-2471 HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-2471 HLT_HIUPC_DoubleEG5_NotMBHF2AND_v* # CMSHLT-2471 @@ -273,13 +276,10 @@ HLT_HIEphemeralZeroBias_v* # CMSHLT-2915 HLT_HIMinimumBiasHF1AND_v* # CMSHLT-2521, CMSHLT-2914 HLT_HIMinimumBiasHF1AND_copy_v* # CMSHLT-2939 -HLT_HIMinimumBiasHF1AND_Beamspot_v* # CMSHLT-2914 HLT_HIMinimumBiasHF1ANDZDC1nOR_v* # CMSHLT-2956 HLT_HIMinimumBiasHF1ANDZDC2nOR_v* # CMSHLT-2914 HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v* # CMSHLT-2956 HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v* # CMSHLT-2939 -HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v* # CMSHLT-2956 -HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v* # CMSHLT-2914 HLT_HIZeroBias_HighRateRAW_v* # CMSHLT-2963 HLT_HIUPC_Random_HighRate_v* # CMSHLT-2963 diff --git a/HLTrigger/Configuration/tables/PRef.txt b/HLTrigger/Configuration/tables/PRef.txt index aa46e839fdbcb..6e9fd7c343ad3 100644 --- a/HLTrigger/Configuration/tables/PRef.txt +++ b/HLTrigger/Configuration/tables/PRef.txt @@ -37,6 +37,7 @@ HLT_HIL1NotBptxORForPPRef_v* # CMSHLT-1673 HLT_HIHT80_Beamspot_ppRef5TeV_v* # CMSHLT-1676 HLT_PPRefZeroBias_v* # CMSHLT-2883 +HLT_PPRefZeroBias_FirstCollisionInTrain_v* # CMSHLT-3382 HLT_AK4CaloJet40_v* # CMSHLT-2883 HLT_AK4CaloJet60_v* # CMSHLT-2883 diff --git a/HLTrigger/Configuration/tables/online_hion.txt b/HLTrigger/Configuration/tables/online_hion.txt index eba9d22349192..7367c4d420991 100644 --- a/HLTrigger/Configuration/tables/online_hion.txt +++ b/HLTrigger/Configuration/tables/online_hion.txt @@ -20,6 +20,7 @@ AlCa_EcalPi0EEonlyForHI_v* AlCa_EcalEtaEBonlyForHI_v* AlCa_EcalEtaEEonlyForHI_v* HLT_HICentrality30100_FirstCollisionAfterAbortGap_v* +HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v* # CMSHLT-3388 HLT_HIZeroBias_v* HLT_HIZeroBias_HighRate_v* # CMSHLT-2944 HLT_HIZeroBias_FirstCollisionAfterAbortGap_v* @@ -64,6 +65,8 @@ HLT_HIL1UnpairedBunchBptxPlus_v* HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-2471 HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-2471 HLT_HIUPC_DoubleEG2_NotMBHF2AND_v* # CMSHLT-2471 +HLT_HIUPC_DoubleEG3_NotMBHF2AND_v* # CMSHLT-3393 +HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-3393 HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-2471 HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v* # CMSHLT-2471 HLT_HIUPC_DoubleEG5_NotMBHF2AND_v* # CMSHLT-2471 @@ -273,13 +276,10 @@ HLT_HIEphemeralZeroBias_v* # CMSHLT-2915 HLT_HIMinimumBiasHF1AND_v* # CMSHLT-2521, CMSHLT-2914 HLT_HIMinimumBiasHF1AND_copy_v* # CMSHLT-2939 -HLT_HIMinimumBiasHF1AND_Beamspot_v* # CMSHLT-2914 HLT_HIMinimumBiasHF1ANDZDC1nOR_v* # CMSHLT-2956 HLT_HIMinimumBiasHF1ANDZDC2nOR_v* # CMSHLT-2914 HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v* # CMSHLT-2956 HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v* # CMSHLT-2939 -HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v* # CMSHLT-2956 -HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v* # CMSHLT-2914 HLT_HIZeroBias_HighRateRAW_v* # CMSHLT-2963 HLT_HIUPC_Random_HighRate_v* # CMSHLT-2963 diff --git a/HLTrigger/Configuration/tables/online_pref.txt b/HLTrigger/Configuration/tables/online_pref.txt index e3d9e13d45a5a..447087678b3b4 100644 --- a/HLTrigger/Configuration/tables/online_pref.txt +++ b/HLTrigger/Configuration/tables/online_pref.txt @@ -37,6 +37,7 @@ HLT_HIL1NotBptxORForPPRef_v* # CMSHLT-1673 HLT_HIHT80_Beamspot_ppRef5TeV_v* # CMSHLT-1676 HLT_PPRefZeroBias_v* # CMSHLT-2883 +HLT_PPRefZeroBias_FirstCollisionInTrain_v* # CMSHLT-3382 HLT_AK4CaloJet40_v* # CMSHLT-2883 HLT_AK4CaloJet60_v* # CMSHLT-2883 diff --git a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py index 08c15413450b0..edf74dcc1b03d 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/HLT --full --data --type FULL --unprescale --process HLTFULL --globaltag auto:run3_hlt_FULL --input file:RelVal_Raw_FULL_DATA.root -# /dev/CMSSW_14_1_0/HLT/V68 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/HLT/V79 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/HLT/V68") + tableName = cms.string("/dev/CMSSW_14_1_0/HLT/V79") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -2176,10 +2176,8 @@ HIDQMGPUvsCPU = cms.vstring( 'DQM_HIEcalReconstruction_v10', 'DQM_HIHcalReconstruction_v8', 'DQM_HIPixelReconstruction_v12' ), - HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ), + HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', + 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ), HIEmptyBX = cms.vstring( 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1UnpairedBunchBptxMinus_v14', 'HLT_HIL1UnpairedBunchBptxPlus_v14' ), @@ -2197,10 +2195,8 @@ 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', 'HLT_HIMinimumBiasHF1AND_copy_v6' ), - HIExpressAlignment = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ), + HIExpressAlignment = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', + 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ), HIExpressPhysics = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', @@ -2248,6 +2244,8 @@ HIForward0 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2386,6 +2384,8 @@ HIForward1 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2524,6 +2524,8 @@ HIForward10 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2662,6 +2664,8 @@ HIForward11 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2800,6 +2804,8 @@ HIForward12 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2938,6 +2944,8 @@ HIForward13 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3076,6 +3084,8 @@ HIForward14 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3214,6 +3224,8 @@ HIForward15 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3352,6 +3364,8 @@ HIForward16 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3490,6 +3504,8 @@ HIForward17 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3628,6 +3644,8 @@ HIForward18 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3766,6 +3784,8 @@ HIForward19 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3904,6 +3924,8 @@ HIForward2 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4042,6 +4064,8 @@ HIForward3 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4180,6 +4204,8 @@ HIForward4 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4318,6 +4344,8 @@ HIForward5 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4456,6 +4484,8 @@ HIForward6 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4594,6 +4624,8 @@ HIForward7 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4732,6 +4764,8 @@ HIForward8 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4870,6 +4904,8 @@ HIForward9 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -5021,6 +5057,7 @@ 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7', 'HLT_HIMinimumBiasHF1AND_v7' ), HIOnlineMonitor = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', + 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', @@ -13322,6 +13359,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward1 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13337,6 +13375,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward10 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13352,6 +13391,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward11 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13367,6 +13407,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward12 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13382,6 +13423,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward13 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13397,6 +13439,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward14 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13412,6 +13455,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward15 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13427,6 +13471,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward16 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13442,6 +13487,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward17 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13457,6 +13503,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward18 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13472,6 +13519,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward19 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13487,6 +13535,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward2 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13502,6 +13551,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward20 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13517,6 +13567,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward21 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13532,6 +13583,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward22 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13547,6 +13599,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward23 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13562,6 +13615,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward24 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13577,6 +13631,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward3 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13592,6 +13647,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward4 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13607,6 +13663,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward5 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13622,6 +13679,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward6 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13637,6 +13695,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward7 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13652,6 +13711,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward8 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13667,6 +13727,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward9 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -13682,6 +13743,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), ParkingDoubleMuonLowMass0 = cms.vstring( 'HLT_Dimuon0_Jpsi3p5_Muon2_v17', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19', @@ -17430,8 +17492,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -17498,7 +17560,7 @@ ) process.hltL1sAlCaEcalPhiSymForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_MinimumBiasHF1_AND_BptxAND OR L1_ZeroBias OR L1_AlwaysTrue OR L1_IsolatedBunch" ), + L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -17967,7 +18029,7 @@ ) process.hltL1sAlCaEcalPi0EtaForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AND_MinimumBiasHF1_AND_BptxAND OR L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AND_MinimumBiasHF1_AND_BptxAND OR L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -22315,8 +22377,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -26207,7 +26269,7 @@ process.hltPixelTracksSoACompareGPUvsCPUPPOnAA = cms.EDProducer( "SiPixelHIonPhase1CompareTracks", pixelTrackReferenceSoA = cms.InputTag( "hltPixelTracksPPOnAASoASerialSync" ), pixelTrackTargetSoA = cms.InputTag( "hltPixelTracksPPOnAASoA" ), - topFolderName = cms.string( "SiPixelHeterogeneous/PixelTrackCompareDeviceVSHost" ), + topFolderName = cms.string( "SiPixelHeterogeneous/PixelTrackCompareGPUvsCPU" ), useQualityCut = cms.bool( True ), minQuality = cms.string( "loose" ), deltaR2cut = cms.double( 4.0E-4 ) @@ -26226,7 +26288,7 @@ pixelVertexReferenceSoA = cms.InputTag( "hltPixelVerticesPPOnAASoASerialSync" ), pixelVertexTargetSoA = cms.InputTag( "hltPixelVerticesPPOnAASoA" ), beamSpotSrc = cms.InputTag( "hltOnlineBeamSpot" ), - topFolderName = cms.string( "SiPixelHeterogeneous/PixelVertexCompareSoADeviceVSHost" ), + topFolderName = cms.string( "SiPixelHeterogeneous/PixelVertexCompareGPUvsCPU" ), dzCut = cms.double( 1.0 ) ) process.hltL1sDQMHIEcalReconstruction = cms.EDFilter( "HLTL1TSeed", @@ -95169,7 +95231,79 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltPreHIMinimumBiasHF1ANDBeamspot = cms.EDFilter( "HLTPrescaler", +process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHIMinimumBiasHF1ANDZDC1nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHIMinimumBiasHF1ANDZDC2nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHIMinimumBiasHF1ANDZDC1nORcopy = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHIMinimumBiasHF1ANDZDC2nORcopy = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInOrbit_Centrality30_100_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHICentrality30100FirstCollisionAfterAbortGap = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL1sCentrality50100MinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_Centrality_50_100_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHICentrality50100MinimumBiasHF1ANDBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) @@ -98572,73 +98706,6 @@ cut = cms.string( "!isFake" ), filter = cms.bool( True ) ) -process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPreHIMinimumBiasHF1ANDZDC1nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPreHIMinimumBiasHF1ANDZDC2nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHIMinimumBiasHF1ANDZDC1nORcopy = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHIMinimumBiasHF1ANDZDC2nORcopy = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHIMinimumBiasHF1ANDZDC1nORBeamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHIMinimumBiasHF1ANDZDC2nORBeamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInOrbit_Centrality30_100_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPreHICentrality30100FirstCollisionAfterAbortGap = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) process.hltL1Centrality30to50BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_Centrality_30_50_BptxAND" ), @@ -102860,7 +102927,7 @@ ) process.hltL1sZDC1nOR = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_Bkp1_OR_BptxAND OR L1_ZDC1n_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -102885,7 +102952,7 @@ ) process.hltL1sZDC1nXORHF1AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF1_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_XOR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -102928,7 +102995,7 @@ ) process.hltL1sZDC1nXORHF2AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF2_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp1_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp2_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp3_XOR_MinimumBiasHF2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -102953,7 +103020,7 @@ ) process.hltL1sZDC1nAsymXORHF1AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF1_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AsymXOR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -102978,7 +103045,7 @@ ) process.hltL1sZDC1nAsymXORHF2AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF2_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp1_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp2_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp3_AsymXOR_MinimumBiasHF2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103423,6 +103490,27 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +process.hltL1sDoubleEG3NotHF2AND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleEG3_NotMinimumBiasHF2_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHIUPCDoubleEG3NotMBHF2AND = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHIUPCDoubleEG3NotMBHF2ANDSinglePixelTrackMaxPixelTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreHIUPCDoubleEG5BptxANDSinglePixelTrackMaxPixelTrack = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -103450,7 +103538,7 @@ ) process.hltL1sZDC1nXORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_XOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103467,7 +103555,7 @@ ) process.hltL1sZDC1nXORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_XOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103484,7 +103572,7 @@ ) process.hltL1sZDC1nXORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_XOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103501,7 +103589,7 @@ ) process.hltL1sZDC1nXORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_XOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103518,7 +103606,7 @@ ) process.hltL1sZDC1nXORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_XOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103535,7 +103623,7 @@ ) process.hltL1sZDC1nXORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_XOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103552,7 +103640,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103569,7 +103657,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103586,7 +103674,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103603,7 +103691,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103620,7 +103708,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103637,7 +103725,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103794,7 +103882,7 @@ ) process.hltL1sZDC1nANDANDNotMBHF2BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AND_AND_NotMBHF2_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp1_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp2_AND_AND_NotMBHF2_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -103811,7 +103899,7 @@ ) process.hltL1sZeroBiasZDC1nORZDC1nANDANDNotMBHF2BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_AND_AND_NotMBHF2_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_Bkp1_OR_BptxAND OR L1_ZDC1n_Bkp2_OR_BptxAND OR L1_ZDC1n_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp1_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp2_AND_AND_NotMBHF2_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104411,7 +104499,7 @@ ) process.hltL1sNotZDC1nORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_notZDC_OR_BptxAND OR L1_SingleJet8_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet8_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104428,7 +104516,7 @@ ) process.hltL1sNotZDC1nORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_notZDC_OR_BptxAND OR L1_SingleJet12_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet12_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104445,7 +104533,7 @@ ) process.hltL1sNotZDC1nORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_notZDC_OR_BptxAND OR L1_SingleJet16_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet16_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104462,7 +104550,7 @@ ) process.hltL1sNotZDC1nORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_notZDC_OR_BptxAND OR L1_SingleJet20_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet20_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104479,7 +104567,7 @@ ) process.hltL1sNotZDC1nORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_notZDC_OR_BptxAND OR L1_SingleJet24_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet24_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104496,7 +104584,7 @@ ) process.hltL1sNotZDC1nORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_notZDC_OR_BptxAND OR L1_SingleJet28_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet28_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104666,7 +104754,7 @@ ) process.hltL1sNotZDC1nANDDoubleJet8DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104683,7 +104771,7 @@ ) process.hltL1sNotZDC1nANDDoubleJet12DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104700,7 +104788,7 @@ ) process.hltL1sNotZDC1nANDDoubleJet16DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104717,7 +104805,7 @@ ) process.hltL1sNotZDC1nORDoubleJet8DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104734,7 +104822,7 @@ ) process.hltL1sNotZDC1nORDoubleJet12DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -104751,7 +104839,7 @@ ) process.hltL1sNotZDC1nORDoubleJet16DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -116463,6 +116551,23 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +process.hltL1sL1ZeroBiasFirstCollisionInTrain = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInTrain" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPrePPRefZeroBiasFirstCollisionInTrain = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreMCReducedIterativeTracking = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -120447,7 +120552,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15', + triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15 / 2', 'HLT_HT300_Beamspot_v23', 'HLT_HT60_Beamspot_v22', 'HLT_ZeroBias_Beamspot_v16' ) @@ -120790,7 +120895,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 80', + triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 40', 'HLT_BptxOR_v6', 'HLT_DoublePhoton85_v25', 'HLT_L1ETM120_v4', @@ -120824,8 +120929,8 @@ 'HLT_L1SingleJet90_v4', 'HLT_L1SingleMu7_v5', 'HLT_PFJet500_v33 / 3', - 'HLT_PPRefGEDPhoton30_v6', - 'HLT_PPRefL3SingleMu7_v8 / 80', + 'HLT_PPRefGEDPhoton30_v6 / 50', + 'HLT_PPRefL3SingleMu7_v8 / 200', 'HLT_Physics_v14 / 10' ) ) process.hltPreDatasetEventDisplay = cms.EDFilter( "HLTPrescaler", @@ -120838,7 +120943,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15', + triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15 / 2', 'HLT_HT300_Beamspot_PixelClusters_WP2_v7', 'HLT_HT300_Beamspot_v23', 'HLT_HT60_Beamspot_v22', @@ -120893,7 +120998,7 @@ 'HLT_L1SingleJet60_v4', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17 / 3', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27', - 'HLT_PPRefEle15Ele10GsfMass50_v6', + 'HLT_PPRefEle15Ele10GsfMass50_v6 / 12', 'HLT_PPRefL3SingleMu7_v8 / 80', 'HLT_PPRefUPC_ZDC1nOR_v1 / 8500', 'HLT_Physics_v14 / 2', @@ -120929,10 +121034,8 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', + 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ) ) process.hltPreDatasetHIDQMOnlineBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120989,9 +121092,9 @@ triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14 / 15', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8 / 0', 'HLT_HIDoubleEle15GsfMass50_v14', - 'HLT_HIDoubleGEDPhoton20_v7 / 65', + 'HLT_HIDoubleGEDPhoton20_v7 / 6', 'HLT_HIL1SingleMu5_SingleEG20Gsf_v7', - 'HLT_HIL1SingleMu5_SingleGEDPhoton20_v7 / 25', + 'HLT_HIL1SingleMu5_SingleGEDPhoton20_v7 / 6', 'HLT_HIL2DoubleMu0_M1p5to6_Open_v7 / 335', 'HLT_HIL3DoubleMu2_Quarkonia_Open_v7 / 200', 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 20', @@ -121008,10 +121111,8 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', + 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ) ) process.hltPreDatasetHIExpressAlignment = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -121037,14 +121138,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 35', 'HLT_HIL3SingleMu5_v7 / 2000', 'HLT_HIL3SingleMu7_v7 / 800', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', - 'HLT_HIMinimumBiasHF1AND_copy_v6', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14 / 2', - 'HLT_HIZeroBias_v14 / 5' ) + 'HLT_HIZeroBias_v14' ) ) process.hltPreDatasetHIExpressPhysics = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -121058,8 +121159,8 @@ throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', - 'HLT_HIEle20Gsf_v14', - 'HLT_HIGEDPhoton40_v14 / 2', + 'HLT_HIEle20Gsf_v14 / 2', + 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1SingleMu0_Cosmic_v7 / 0', 'HLT_HIL1UnpairedBunchBptxMinus_v14 / 2', @@ -121070,14 +121171,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 35', 'HLT_HIL3SingleMu5_v7 / 2000', 'HLT_HIL3SingleMu7_v7 / 800', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', - 'HLT_HIMinimumBiasHF1AND_copy_v6', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', - 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 5', + 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14 / 2', - 'HLT_HIZeroBias_v14 / 5' ) + 'HLT_HIZeroBias_v14' ) ) process.hltPreDatasetHIExpressPhysicsRawPrime = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -121092,6 +121193,8 @@ triggerConditions = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -121340,8 +121443,9 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', + 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 / 5', 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', - 'HLT_HIEle20Gsf_v14 / 3', + 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIHcalNZS_v14 / 3', 'HLT_HIHcalPhiSym_v14 / 3', @@ -121355,14 +121459,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 10', 'HLT_HIL3SingleMu5_v7 / 0', 'HLT_HIL3SingleMu7_v7 / 0', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 20', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 20', - 'HLT_HIMinimumBiasHF1AND_copy_v6 / 20', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', - 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 2', + 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7 / 3', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14', - 'HLT_HIZeroBias_v14 / 3' ) + 'HLT_HIZeroBias_v14' ) ) process.hltPreDatasetHIOnlineMonitor = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -121374,9 +121478,9 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 / 700', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 / 700', - 'HLT_HIMinimumBiasHF1AND_v7 / 700' ) + triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 / 5000', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 / 5000', + 'HLT_HIMinimumBiasHF1AND_v7 / 5000' ) ) process.hltPreDatasetHIMinimumBias0 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -121552,7 +121656,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 8', + triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 20', 'HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29', 'HLT_Ele32_WPTight_Gsf_v25 / 5', 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', @@ -122103,8 +122207,8 @@ throw = cms.bool( True ), triggerConditions = ( cms.vstring( 'DQM_Random_v1', 'DQM_ZeroBias_v3', - 'HLT_AK4PFJet100_v8', - 'HLT_AK4PFJetFwd80_v8', + 'HLT_AK4PFJet100_v8 / 10', + 'HLT_AK4PFJetFwd80_v8 / 2', 'HLT_AK8DiPFJet250_250_SoftDropMass40_v6', 'HLT_AK8DiPFJet250_250_SoftDropMass50_v6', 'HLT_AK8DiPFJet260_260_SoftDropMass30_v6', @@ -122639,13 +122743,13 @@ 'HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31', 'HLT_PFMETTypeOne140_PFMHT140_IDTight_v23', 'HLT_PFMETTypeOne200_BeamHaloCleaned_v21', - 'HLT_PPRefDoubleEle10Gsf_v6', - 'HLT_PPRefEle30Gsf_v7', - 'HLT_PPRefGEDPhoton30_EB_v6', - 'HLT_PPRefGEDPhoton40_v6', - 'HLT_PPRefL3DoubleMu0_Open_v8', - 'HLT_PPRefL3DoubleMu0_v8', - 'HLT_PPRefL3SingleMu7_v8', + 'HLT_PPRefDoubleEle10Gsf_v6 / 50', + 'HLT_PPRefEle30Gsf_v7 / 5', + 'HLT_PPRefGEDPhoton30_EB_v6 / 20', + 'HLT_PPRefGEDPhoton40_v6 / 10', + 'HLT_PPRefL3DoubleMu0_Open_v8 / 0', + 'HLT_PPRefL3DoubleMu0_v8 / 200', + 'HLT_PPRefL3SingleMu7_v8 / 200', 'HLT_Photon100EBHE10_v12', 'HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3', 'HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5', @@ -122878,6 +122982,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) ) process.hltPreDatasetPPRefZeroBiasPlusForward0 = cms.EDFilter( "HLTPrescaler", @@ -124360,13 +124465,22 @@ ), SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_HIOnlineMonitor' ) ), outputCommands = cms.untracked.vstring( 'drop *', + 'keep *_hltDoubletRecoveryPFlowTrackSelectionHighPurityPPOnAA_*_*', 'keep *_hltEcalRecHit_*_*', + 'keep *_hltHITrackingSiStripRawToClustersFacilityFullZeroSuppression_*_*', 'keep *_hltHbhereco_*_*', 'keep *_hltHfreco_*_*', 'keep *_hltHoreco_*_*', + 'keep *_hltMergedTracksPPOnAA_*_*', 'keep *_hltOnlineBeamSpot_*_*', + 'keep *_hltPFMuonMergingPPOnAA_*_*', + 'keep *_hltPixelTracksPPOnAA_*_*', + 'keep *_hltPixelVerticesPPOnAA_*_*', + 'keep *_hltSiPixelClustersAfterSplittingPPOnAA_*_*', 'keep *_hltSiStripClusterizerForRawPrime_*_*', 'keep *_hltSiStripClusters2ApproxClusters_*_*', + 'keep *_hltTrimmedPixelVerticesPPOnAA_*_*', + 'keep *_hltVerticesPFFilterPPOnAA_*_*', 'keep DetIds_hltSiStripRawToDigi_*_*', 'keep FEDRawDataCollection_rawDataCollector_*_*', 'keep FEDRawDataCollection_rawDataRepacker_*_*', @@ -129641,14 +129755,12 @@ process.HLT_HIZeroBias_HighRateRAW_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBiasCopy + process.hltPreHIZeroBiasHighRateRAW + process.HLTDoHIStripZeroSuppression + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1AND_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1AND + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1AND_copy_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDcopy + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HIMinimumBiasHF1AND_Beamspot_v8 = cms.Path( process.HLTBeginSequence + process.hltL1sMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDBeamspot + process.HLTPuAK4CaloJetsSequence + process.HLTCsAK4PFJetsSequence + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC1nOR + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC2nOR + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC1nORcopy + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC2nORcopy + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC1nORBeamspot + process.HLTPuAK4CaloJetsSequence + process.HLTCsAK4PFJetsSequence + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) -process.HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC2nORBeamspot + process.HLTPuAK4CaloJetsSequence + process.HLTCsAK4PFJetsSequence + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND + process.hltPreHICentrality30100FirstCollisionAfterAbortGap + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) +process.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sCentrality50100MinimumBiasHF1ANDBptxAND + process.hltPreHICentrality50100MinimumBiasHF1ANDBeamspot + process.HLTPuAK4CaloJetsSequence + process.HLTCsAK4PFJetsSequence + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) process.HLT_HIL1Centrality30_50_v7 = cms.Path( process.HLTBeginSequence + process.hltL1Centrality30to50BptxAND + process.hltPreHIL1Centrality3050 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIL1_UCC_0_0p5_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sUCC00p5 + process.hltPreHIL1UCC00p5 + process.HLTDoLocalHcalSequence + process.hltTowerMakerForHf + process.hltCaloMETProducerForHf + process.hltGlobalSumsETHfMaxFilter + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIL1_UCC_0_1_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sUCC01 + process.hltPreHIL1UCC01 + process.HLTDoLocalHcalSequence + process.hltTowerMakerForHf + process.hltCaloMETProducerForHf + process.hltGlobalSumsETHfMaxFilter + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) @@ -129754,6 +129866,8 @@ process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG2BptxAND + process.hltPreHIUPCDoubleEG2BptxANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.hltPixelActivityFilterMaxClusters1e3 + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG2NotHF2AND + process.hltPreHIUPCDoubleEG2NotMBHF2ANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG2NotHF2AND + process.hltPreHIUPCDoubleEG2NotMBHF2AND + process.HLTDoHIStripZeroSuppression + process.HLTEndSequence ) +process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG3NotHF2AND + process.hltPreHIUPCDoubleEG3NotMBHF2AND + process.HLTDoHIStripZeroSuppression + process.HLTEndSequence ) +process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG3NotHF2AND + process.hltPreHIUPCDoubleEG3NotMBHF2ANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG5BptxAND + process.hltPreHIUPCDoubleEG5BptxANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.hltPixelActivityFilterMaxClusters1e3 + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG5NotHF2AND + process.hltPreHIUPCDoubleEG5NotMBHF2ANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG5NotHF2AND + process.hltPreHIUPCDoubleEG5NotMBHF2AND + process.HLTDoHIStripZeroSuppression + process.HLTEndSequence ) @@ -129996,6 +130110,7 @@ process.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORSingleJet28 + process.hltPrePPRefUPCSingleJet28ZDC1nOR + process.HLTEndSequence ) process.HLT_PPRefUPC_ZDC1nAsymXOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nAsymXOR + process.hltPrePPRefUPCZDC1nAsymXOR + process.HLTEndSequence ) process.HLT_PPRefUPC_ZDC1nOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORPRef + process.hltPrePPRefUPCZDC1nOR + process.HLTEndSequence ) +process.HLT_PPRefZeroBias_FirstCollisionInTrain_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sL1ZeroBiasFirstCollisionInTrain + process.hltPrePPRefZeroBiasFirstCollisionInTrain + process.HLTEndSequence ) process.MC_ReducedIterativeTracking_v22 = cms.Path( process.HLTBeginSequence + process.hltPreMCReducedIterativeTracking + process.HLTDoLocalPixelSequence + process.HLTRecopixelvertexingSequence + process.HLTDoLocalStripSequence + process.HLTIterativeTrackingIter02 + process.HLTEndSequence ) process.MC_AK4CaloJets_v19 = cms.Path( process.HLTBeginSequence + process.hltPreMCAK4CaloJets + process.HLTAK4CaloJetsSequence + process.hltCaloJetCollection20Filter + process.HLTEndSequence ) process.MC_AK4CaloJetsFromPV_v18 = cms.Path( process.HLTBeginSequence + process.hltPreMCAK4CaloJetsFromPV + process.HLTAK4CaloJetsSequence + process.HLTNoPUSequence + process.hltCaloJetFromPVCollection20Filter + process.hltHtMhtFromPVForMC + process.hltCaloHtMhtFromPVOpenFilter + process.HLTEndSequence ) @@ -130653,7 +130768,7 @@ process.PhysicsHIPhysicsRawPrime43Output = cms.FinalPath( process.hltOutputPhysicsHIPhysicsRawPrime43 ) -process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_EcalPhiSymForHI_v12, process.AlCa_EcalEtaEBonly_v25, process.AlCa_EcalEtaEEonly_v25, process.AlCa_EcalPi0EBonly_v25, process.AlCa_EcalPi0EEonly_v25, process.AlCa_EcalEtaEBonlyForHI_v13, process.AlCa_EcalEtaEEonlyForHI_v13, process.AlCa_EcalPi0EBonlyForHI_v13, process.AlCa_EcalPi0EEonlyForHI_v13, process.AlCa_HIEcalEtaEBonly_v12, process.AlCa_HIEcalEtaEEonly_v12, process.AlCa_HIEcalPi0EBonly_v12, process.AlCa_HIEcalPi0EEonly_v12, process.AlCa_RPCMuonNormalisation_v23, process.AlCa_RPCMuonNormalisationForHI_v11, process.AlCa_HIRPCMuonNormalisation_v11, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.AlCa_PFJet40_v32, process.AlCa_PFJet40_CPUOnly_v11, process.AlCa_AK8PFJet40_v27, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DQM_HIPixelReconstruction_v12, process.DQM_HIEcalReconstruction_v10, process.DQM_HIHcalReconstruction_v8, process.DQM_Random_v1, process.DQM_ZeroBias_v3, process.DST_ZeroBias_v11, process.DST_Physics_v16, process.DST_PFScouting_DoubleMuon_v6, process.DST_PFScouting_DoubleEG_v6, process.DST_PFScouting_JetHT_v6, process.DST_PFScouting_AXOVLoose_v4, process.DST_PFScouting_AXOLoose_v4, process.DST_PFScouting_AXONominal_v6, process.DST_PFScouting_AXOTight_v6, process.DST_PFScouting_AXOVTight_v4, process.DST_PFScouting_CICADAVLoose_v2, process.DST_PFScouting_CICADALoose_v2, process.DST_PFScouting_CICADAMedium_v2, process.DST_PFScouting_CICADATight_v2, process.DST_PFScouting_CICADAVTight_v2, process.DST_PFScouting_SingleMuon_v6, process.DST_PFScouting_SinglePhotonEB_v3, process.DST_PFScouting_ZeroBias_v4, process.HLT_EphemeralPhysics_v9, process.HLT_EphemeralZeroBias_v9, process.HLT_HIEphemeralPhysics_v5, process.HLT_HIEphemeralZeroBias_v5, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Alignment_v8, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_IsolatedBunches_v12, process.HLT_ZeroBias_FirstBXAfterTrain_v10, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_ZeroBias_FirstCollisionInTrain_v11, process.HLT_ZeroBias_LastCollisionInTrain_v10, process.HLT_HT300_Beamspot_v23, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_PFJet40_GPUvsCPU_v7, process.HLT_AK8PFJet380_SoftDropMass30_v6, process.HLT_AK8PFJet400_SoftDropMass30_v6, process.HLT_AK8PFJet425_SoftDropMass30_v6, process.HLT_AK8PFJet450_SoftDropMass30_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, process.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, process.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, process.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, process.HLT_CaloJet500_NoJetID_v22, process.HLT_CaloJet550_NoJetID_v17, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, process.HLT_DoubleEle25_CaloIdL_MW_v15, process.HLT_DoubleEle27_CaloIdL_MW_v15, process.HLT_DoubleEle33_CaloIdL_MW_v28, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, process.HLT_Mu27_Ele37_CaloIdL_MW_v17, process.HLT_Mu37_Ele27_CaloIdL_MW_v17, process.HLT_Mu37_TkMu27_v17, process.HLT_DoubleMu4_3_Bs_v27, process.HLT_DoubleMu4_3_Jpsi_v27, process.HLT_DoubleMu4_3_LowMass_v13, process.HLT_DoubleMu4_LowMass_Displaced_v13, process.HLT_Mu0_L1DoubleMu_v13, process.HLT_Mu4_L1DoubleMu_v13, process.HLT_DoubleMu2_Jpsi_LowPt_v6, process.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, process.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, process.HLT_DoubleMu3_Trk_Tau3mu_v24, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, process.HLT_DoubleMu4_MuMuTrk_Displaced_v27, process.HLT_Mu3_PFJet40_v28, process.HLT_Mu7p5_L2Mu2_Jpsi_v22, process.HLT_Mu7p5_L2Mu2_Upsilon_v22, process.HLT_Mu3_L1SingleMu5orSingleMu7_v13, process.HLT_Mu0_Barrel_v6, process.HLT_Mu0_Barrel_L1HP6_v3, process.HLT_Mu0_Barrel_L1HP7_v3, process.HLT_Mu0_Barrel_L1HP8_v4, process.HLT_Mu0_Barrel_L1HP9_v4, process.HLT_Mu0_Barrel_L1HP10_v6, process.HLT_Mu0_Barrel_L1HP11_v6, process.HLT_Mu0_Barrel_L1HP6_IP6_v3, process.HLT_Mu6_Barrel_L1HP7_IP6_v3, process.HLT_Mu7_Barrel_L1HP8_IP6_v4, process.HLT_Mu8_Barrel_L1HP9_IP6_v4, process.HLT_Mu9_Barrel_L1HP10_IP6_v6, process.HLT_Mu10_Barrel_L1HP11_IP6_v6, process.HLT_DoublePhoton33_CaloIdL_v17, process.HLT_DoublePhoton70_v17, process.HLT_DoublePhoton85_v25, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, process.HLT_Ele30_WPTight_Gsf_v11, process.HLT_Ele32_WPTight_Gsf_v25, process.HLT_Ele35_WPTight_Gsf_v19, process.HLT_Ele38_WPTight_Gsf_v19, process.HLT_Ele40_WPTight_Gsf_v19, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, process.HLT_IsoMu20_v27, process.HLT_IsoMu24_v25, process.HLT_IsoMu24_eta2p1_v27, process.HLT_IsoMu27_v28, process.HLT_UncorrectedJetE30_NoBPTX_v14, process.HLT_UncorrectedJetE30_NoBPTX3BX_v14, process.HLT_UncorrectedJetE60_NoBPTX3BX_v14, process.HLT_UncorrectedJetE70_NoBPTX3BX_v14, process.HLT_L1SingleMuCosmics_v8, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, process.HLT_L2Mu10_NoVertex_NoBPTX_v15, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, process.HLT_L2Mu23NoVtx_2Cha_v10, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, process.HLT_DoubleL2Mu50_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, process.HLT_Mu30_TkMu0_Psi_v13, process.HLT_Mu30_TkMu0_Upsilon_v13, process.HLT_Mu25_TkMu0_Phi_v20, process.HLT_Mu15_v15, process.HLT_Mu20_v24, process.HLT_Mu27_v25, process.HLT_Mu50_v25, process.HLT_Mu55_v15, process.HLT_CascadeMu100_v13, process.HLT_HighPtTkMu100_v12, process.HLT_DiPFJetAve40_v26, process.HLT_DiPFJetAve60_v26, process.HLT_DiPFJetAve80_v26, process.HLT_DiPFJetAve140_v25, process.HLT_DiPFJetAve200_v25, process.HLT_DiPFJetAve260_v26, process.HLT_DiPFJetAve320_v26, process.HLT_DiPFJetAve400_v26, process.HLT_DiPFJetAve500_v26, process.HLT_DiPFJetAve60_HFJEC_v27, process.HLT_DiPFJetAve80_HFJEC_v29, process.HLT_DiPFJetAve100_HFJEC_v29, process.HLT_DiPFJetAve160_HFJEC_v28, process.HLT_DiPFJetAve220_HFJEC_v28, process.HLT_DiPFJetAve260_HFJEC_v11, process.HLT_DiPFJetAve300_HFJEC_v28, process.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, process.HLT_AK8PFJet40_v28, process.HLT_AK8PFJet60_v27, process.HLT_AK8PFJet80_v28, process.HLT_AK8PFJet140_v27, process.HLT_AK8PFJet200_v27, process.HLT_AK8PFJet260_v28, process.HLT_AK8PFJet320_v28, process.HLT_AK8PFJet400_v28, process.HLT_AK8PFJet450_v28, process.HLT_AK8PFJet500_v28, process.HLT_AK8PFJet550_v23, process.HLT_PFJet40_v33, process.HLT_PFJet60_v33, process.HLT_PFJet80_v33, process.HLT_PFJet110_v12, process.HLT_PFJet140_v31, process.HLT_PFJet200_v31, process.HLT_PFJet260_v32, process.HLT_PFJet320_v32, process.HLT_PFJet400_v32, process.HLT_PFJet450_v33, process.HLT_PFJet500_v33, process.HLT_PFJet550_v23, process.HLT_PFJetFwd40_v31, process.HLT_PFJetFwd60_v31, process.HLT_PFJetFwd80_v30, process.HLT_PFJetFwd140_v30, process.HLT_PFJetFwd200_v30, process.HLT_PFJetFwd260_v31, process.HLT_PFJetFwd320_v31, process.HLT_PFJetFwd400_v31, process.HLT_PFJetFwd450_v31, process.HLT_PFJetFwd500_v31, process.HLT_AK8PFJetFwd40_v27, process.HLT_AK8PFJetFwd60_v26, process.HLT_AK8PFJetFwd80_v26, process.HLT_AK8PFJetFwd140_v26, process.HLT_AK8PFJetFwd200_v26, process.HLT_AK8PFJetFwd260_v27, process.HLT_AK8PFJetFwd320_v27, process.HLT_AK8PFJetFwd400_v27, process.HLT_AK8PFJetFwd450_v27, process.HLT_AK8PFJetFwd500_v27, process.HLT_PFHT180_v29, process.HLT_PFHT250_v29, process.HLT_PFHT370_v29, process.HLT_PFHT430_v29, process.HLT_PFHT510_v29, process.HLT_PFHT590_v29, process.HLT_PFHT680_v29, process.HLT_PFHT780_v29, process.HLT_PFHT890_v29, process.HLT_PFHT1050_v30, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, process.HLT_PFMET120_PFMHT120_IDTight_v32, process.HLT_PFMET130_PFMHT130_IDTight_v32, process.HLT_PFMET140_PFMHT140_IDTight_v32, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, process.HLT_L1ETMHadSeeds_v10, process.HLT_CaloMHT90_v14, process.HLT_CaloMET90_NotCleaned_v14, process.HLT_CaloMET350_NotCleaned_v14, process.HLT_PFMET200_NotCleaned_v21, process.HLT_PFMET250_NotCleaned_v21, process.HLT_PFMET300_NotCleaned_v21, process.HLT_PFMET200_BeamHaloCleaned_v21, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, process.HLT_MET105_IsoTrk50_v19, process.HLT_MET120_IsoTrk50_v19, process.HLT_Mu12eta2p3_v13, process.HLT_Mu12eta2p3_PFJet40_v13, process.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Photon300_NoHE_v23, process.HLT_Mu8_TrkIsoVVL_v24, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, process.HLT_Mu17_TrkIsoVVL_v25, process.HLT_Mu19_TrkIsoVVL_v16, process.HLT_BTagMu_AK4DiJet20_Mu5_v25, process.HLT_BTagMu_AK4DiJet40_Mu5_v25, process.HLT_BTagMu_AK4DiJet70_Mu5_v25, process.HLT_BTagMu_AK4DiJet110_Mu5_v25, process.HLT_BTagMu_AK4DiJet170_Mu5_v24, process.HLT_BTagMu_AK4Jet300_Mu5_v24, process.HLT_BTagMu_AK8DiJet170_Mu5_v21, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, process.HLT_BTagMu_AK8Jet300_Mu5_v24, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, process.HLT_Photon33_v15, process.HLT_Photon50_v23, process.HLT_Photon75_v23, process.HLT_Photon90_v23, process.HLT_Photon120_v23, process.HLT_Photon150_v17, process.HLT_Photon175_v25, process.HLT_Photon200_v24, process.HLT_Photon45EB_v3, process.HLT_Photon40EB_v3, process.HLT_Photon50EB_v4, process.HLT_Photon30EB_TightID_TightIso_v12, process.HLT_Photon40EB_TightID_TightIso_v3, process.HLT_Photon45EB_TightID_TightIso_v3, process.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_v8, process.HLT_Photon55EB_TightID_TightIso_v4, process.HLT_Photon75EB_TightID_TightIso_v8, process.HLT_Photon90EB_TightID_TightIso_v8, process.HLT_Photon110EB_TightID_TightIso_v12, process.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon100EBHE10_v12, process.HLT_Photon50_R9Id90_HE10_IsoM_v24, process.HLT_Photon75_R9Id90_HE10_IsoM_v24, process.HLT_Photon90_R9Id90_HE10_IsoM_v24, process.HLT_Photon120_R9Id90_HE10_IsoM_v24, process.HLT_Photon165_R9Id90_HE10_IsoM_v25, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, process.HLT_DiphotonMVA14p25_Mass90_v3, process.HLT_DiphotonMVA14p25_Tight_Mass90_v3, process.HLT_Photon35_TwoProngs35_v13, process.HLT_IsoMu24_TwoProngs35_v13, process.HLT_Dimuon0_Jpsi_L1_NoOS_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, process.HLT_Dimuon0_Jpsi_v20, process.HLT_Dimuon0_Jpsi_NoVertexing_v20, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi3p5_Muon2_v17, process.HLT_Dimuon0_Upsilon_L1_4p5_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, process.HLT_Dimuon0_Upsilon_NoVertexing_v19, process.HLT_Dimuon0_LowMass_L1_0er1p5_v20, process.HLT_Dimuon0_LowMass_v20, process.HLT_Dimuon0_LowMass_L1_4_v20, process.HLT_Dimuon0_LowMass_L1_TM530_v18, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, process.HLT_TripleMu_10_5_5_DZ_v22, process.HLT_TripleMu_12_10_5_v22, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, process.HLT_DoubleMu4_3_LowMass_SS_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v19, process.HLT_DoubleMu4_Jpsi_NoVertexing_v19, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, process.HLT_DoubleMu4_JpsiTrk_Bc_v12, process.HLT_DoubleMu43NoFiltersNoVtx_v14, process.HLT_DoubleMu48NoFiltersNoVtx_v14, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, process.HLT_Ele28_HighEta_SC20_Mass55_v23, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, process.HLT_Ele15_IsoVVVL_PFHT450_v28, process.HLT_Ele50_IsoVVVL_PFHT450_v28, process.HLT_Ele15_IsoVVVL_PFHT600_v32, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, process.HLT_Mu15_IsoVVVL_PFHT450_v27, process.HLT_Mu50_IsoVVVL_PFHT450_v27, process.HLT_Mu15_IsoVVVL_PFHT600_v31, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, process.HLT_Dimuon10_Upsilon_y1p4_v13, process.HLT_Dimuon12_Upsilon_y1p4_v14, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, process.HLT_Dimuon25_Jpsi_v26, process.HLT_Dimuon14_PsiPrime_v25, process.HLT_Dimuon14_PsiPrime_noCorrL1_v17, process.HLT_Dimuon18_PsiPrime_v26, process.HLT_Dimuon18_PsiPrime_noCorrL1_v18, process.HLT_Dimuon24_Upsilon_noCorrL1_v18, process.HLT_Dimuon24_Phi_noCorrL1_v18, process.HLT_Dimuon25_Jpsi_noCorrL1_v18, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, process.HLT_DoubleIsoMu20_eta2p1_v19, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, process.HLT_Mu8_v24, process.HLT_Mu17_v25, process.HLT_Mu19_v16, process.HLT_Mu17_Photon30_IsoCaloId_v18, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, process.HLT_PFHT400_SixPFJet32_v21, process.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, process.HLT_PFHT450_SixPFJet36_v20, process.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, process.HLT_PFHT350_v31, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, process.HLT_ECALHT800_v20, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, process.HLT_Photon20_HoverELoose_v20, process.HLT_Photon30_HoverELoose_v20, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, process.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, process.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, process.HLT_Mu18_Mu9_SameSign_v16, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, process.HLT_QuadPFJet103_88_75_15_v17, process.HLT_QuadPFJet105_88_76_15_v17, process.HLT_QuadPFJet111_90_80_15_v17, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, process.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, process.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, process.HLT_PFHT250_QuadPFJet25_v6, process.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, process.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, process.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, process.HLT_QuadPFJet100_88_70_30_v10, process.HLT_QuadPFJet105_88_75_30_v9, process.HLT_QuadPFJet111_90_80_30_v9, process.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, process.HLT_AK8PFJet220_SoftDropMass40_v13, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, process.HLT_AK8PFJet230_SoftDropMass40_v13, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_Nch45_v6, process.HLT_AK8PFJet275_Nch40_v6, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PFHT250_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, process.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, process.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, process.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, process.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu10NoVtx_2Cha_v9, process.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_L3Mu10NoVtx_v10, process.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, process.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, process.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, process.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, process.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, process.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, process.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, process.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, process.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, process.HLT_L1Mu6HT240_v9, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, process.HLT_HT350_v7, process.HLT_HT425_v19, process.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT550_DisplacedDijet60_Inclusive_v23, process.HLT_HT650_DisplacedDijet60_Inclusive_v23, process.HLT_CaloMET60_DTCluster50_v11, process.HLT_CaloMET60_DTClusterNoMB1S50_v11, process.HLT_L1MET_DTCluster50_v11, process.HLT_L1MET_DTClusterNoMB1S50_v11, process.HLT_CscCluster_Loose_v10, process.HLT_CscCluster_Medium_v10, process.HLT_CscCluster_Tight_v10, process.HLT_CscCluster50_Photon20Unseeded_v4, process.HLT_CscCluster50_Photon30Unseeded_v4, process.HLT_CscCluster100_Ele5_v4, process.HLT_CscCluster100_Mu5_v6, process.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, process.HLT_DoubleCscCluster75_v7, process.HLT_IsoTrk200_L1SingleMuShower_v4, process.HLT_IsoTrk400_L1SingleMuShower_v4, process.HLT_DoubleCscCluster100_v7, process.HLT_L1CSCShower_DTCluster50_v10, process.HLT_L1CSCShower_DTCluster75_v10, process.HLT_PFMET105_IsoTrk50_v13, process.HLT_L1SingleLLPJet_v7, process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, process.HLT_DiPhoton10Time1ns_v10, process.HLT_DiPhoton10Time1p2ns_v10, process.HLT_DiPhoton10Time1p4ns_v10, process.HLT_DiPhoton10Time1p6ns_v10, process.HLT_DiPhoton10Time1p8ns_v10, process.HLT_DiPhoton10Time2ns_v10, process.HLT_DiPhoton10_CaloIdL_v10, process.HLT_DoubleEle6p5_eta1p22_mMax6_v10, process.HLT_DoubleEle8_eta1p22_mMax6_v10, process.HLT_DoubleEle10_eta1p22_mMax6_v10, process.HLT_SingleEle8_v9, process.HLT_SingleEle8_SingleEGL1_v9, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Mu50_L1SingleMuShower_v11, process.HLT_IsoMu24_OneProng32_v9, process.HLT_Photon32_OneProng32_M50To105_v10, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, process.HLT_VBF_DiPFJet125_45_Mjj1050_v8, process.HLT_VBF_DiPFJet125_45_Mjj1200_v6, process.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, process.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, process.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, process.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_PFJet200_TimeLtNeg2p5ns_v10, process.HLT_PFJet200_TimeGt2p5ns_v10, process.HLT_Photon50_TimeLtNeg2p5ns_v7, process.HLT_Photon50_TimeGt2p5ns_v7, process.HLT_PPSMaxTracksPerArm1_v9, process.HLT_PPSMaxTracksPerRP4_v9, process.HLT_PPSRandom_v1, process.HLT_HIL1NotBptxOR_v14, process.HLT_HIL1UnpairedBunchBptxPlus_v14, process.HLT_HIL1UnpairedBunchBptxMinus_v14, process.HLT_HIPhysics_v14, process.HLT_HIPhysicsForZS_v14, process.HLT_HIRandom_v7, process.HLT_HIRandom_HighRate_v3, process.HLT_HIHcalNZS_v14, process.HLT_HIHcalPhiSym_v14, process.HLT_HIZeroBias_v14, process.HLT_HIZeroBias_HighRate_v7, process.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, process.HLT_HIZeroBias_HighRateRAW_v4, process.HLT_HIMinimumBiasHF1AND_v7, process.HLT_HIMinimumBiasHF1AND_copy_v6, process.HLT_HIMinimumBiasHF1AND_Beamspot_v8, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8, process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, process.HLT_HIL1Centrality30_50_v7, process.HLT_HIL1_UCC_0_0p5_v7, process.HLT_HIL1_UCC_0_1_v7, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet80Eta5p1_v14, process.HLT_HIPuAK4CaloJet100Eta5p1_v14, process.HLT_HIPuAK4CaloJet120Eta2p1_v7, process.HLT_HIPuAK4CaloJet120Eta5p1_v14, process.HLT_HIPuAK4CaloJet40Fwd_v7, process.HLT_HIPuAK4CaloJet60Fwd_v7, process.HLT_HIPuAK4CaloJet80Fwd_v7, process.HLT_HIPuAK4CaloJet100Fwd_v7, process.HLT_HIPuAK4CaloJet120Fwd_v7, process.HLT_HICsAK4PFJet60Eta1p5_v14, process.HLT_HICsAK4PFJet60Eta2p1_v7, process.HLT_HICsAK4PFJet80Eta1p5_v14, process.HLT_HICsAK4PFJet80Eta2p1_v7, process.HLT_HICsAK4PFJet100Eta1p5_v14, process.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8, process.HLT_HICsAK4PFJet100Eta2p1_v7, process.HLT_HICsAK4PFJet120Eta1p5_v14, process.HLT_HICsAK4PFJet120Eta2p1_v7, process.HLT_HIGEDPhoton10_v14, process.HLT_HIGEDPhoton10_EB_v14, process.HLT_HIGEDPhoton20_v14, process.HLT_HIGEDPhoton20_EB_v14, process.HLT_HIGEDPhoton30_v14, process.HLT_HIGEDPhoton30_EB_v14, process.HLT_HIGEDPhoton40_v14, process.HLT_HIGEDPhoton40_EB_v14, process.HLT_HIGEDPhoton50_v14, process.HLT_HIGEDPhoton50_EB_v14, process.HLT_HIGEDPhoton60_v14, process.HLT_HIGEDPhoton60_EB_v14, process.HLT_HIDoubleGEDPhoton20_v7, process.HLT_HIEle10Gsf_v14, process.HLT_HIEle15Gsf_v14, process.HLT_HIEle20Gsf_v14, process.HLT_HIEle30Gsf_v14, process.HLT_HIEle40Gsf_v14, process.HLT_HIEle50Gsf_v14, process.HLT_HIEle15Ele10Gsf_v14, process.HLT_HIEle15Ele10GsfMass50_v14, process.HLT_HIDoubleEle10Gsf_v14, process.HLT_HIDoubleEle10GsfMass50_v14, process.HLT_HIDoubleEle15Gsf_v14, process.HLT_HIDoubleEle15GsfMass50_v14, process.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_NotMBHF2_v5, process.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, process.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, process.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, process.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_Random_HighRate_v1, process.HLT_HIUPC_HFafterglowCombined_v1, process.HLT_HIL1SingleMuOpen_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality40to100_v1, process.HLT_HIL1SingleMu0_v7, process.HLT_HIL1SingleMu0_Open_v7, process.HLT_HIL1SingleMu0_Cosmic_v7, process.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, process.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, process.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, process.HLT_HIL2DoubleMuOpen_SS_v1, process.HLT_HIL2DoubleMuOpen_OS_v1, process.HLT_HIL1DoubleMu0_v7, process.HLT_HIL2DoubleMu0_SQ_v1, process.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, process.HLT_HIL1DoubleMu0_SQ_v7, process.HLT_HIL2SingleMuOpen_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality40to100_v1, process.HLT_HIL2SingleMu3_Open_v7, process.HLT_HIL2SingleMu5_v7, process.HLT_HIL2SingleMu7_v7, process.HLT_HIL2SingleMu12_v1, process.HLT_HIL2DoubleMu0_Open_v7, process.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu0_M7to15_Open_v7, process.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu3_M7to15_Open_v7, process.HLT_HIL3SingleMu3_Open_v7, process.HLT_HIL3SingleMu5_v7, process.HLT_HIL3SingleMu7_v7, process.HLT_HIL3SingleMu12_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, process.HLT_HIL3DoubleMu0_M0toInf_Open_v7, process.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu0_M7to15_Open_v7, process.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, process.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu2_M7to15_Open_v7, process.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, process.HLT_HICscCluster_Loose_v7, process.HLT_HICscCluster_Medium_v7, process.HLT_HICscCluster_Tight_v7, process.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, process.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, process.HLT_HIL1NotBptxORForPPRef_v9, process.HLT_HIHT80_Beamspot_ppRef5TeV_v15, process.HLT_PPRefZeroBias_v6, process.HLT_AK4CaloJet40_v6, process.HLT_AK4CaloJet60_v6, process.HLT_AK4CaloJet70_v6, process.HLT_AK4CaloJet80_v6, process.HLT_AK4CaloJet100_v6, process.HLT_AK4CaloJet120_v6, process.HLT_AK4CaloJetFwd40_v6, process.HLT_AK4CaloJetFwd60_v6, process.HLT_AK4CaloJetFwd70_v6, process.HLT_AK4CaloJetFwd80_v6, process.HLT_AK4CaloJetFwd100_v6, process.HLT_AK4CaloJetFwd120_v6, process.HLT_AK4PFJet40_v8, process.HLT_AK4PFJet60_v8, process.HLT_AK4PFJet80_v8, process.HLT_AK4PFJet100_v8, process.HLT_AK4PFJet120_v8, process.HLT_AK4PFJetFwd40_v8, process.HLT_AK4PFJetFwd60_v8, process.HLT_AK4PFJetFwd80_v8, process.HLT_AK4PFJetFwd100_v8, process.HLT_AK4PFJetFwd120_v8, process.HLT_PPRefDoubleEle10Gsf_v6, process.HLT_PPRefDoubleEle10GsfMass50_v6, process.HLT_PPRefDoubleEle15Gsf_v6, process.HLT_PPRefDoubleEle15GsfMass50_v6, process.HLT_PPRefEle15Ele10Gsf_v6, process.HLT_PPRefEle15Ele10GsfMass50_v6, process.HLT_PPRefEle10Gsf_v6, process.HLT_PPRefEle15Gsf_v6, process.HLT_PPRefEle20Gsf_v7, process.HLT_PPRefEle30Gsf_v7, process.HLT_PPRefEle40Gsf_v6, process.HLT_PPRefEle50Gsf_v6, process.HLT_PPRefGEDPhoton10_v6, process.HLT_PPRefGEDPhoton10_EB_v6, process.HLT_PPRefGEDPhoton20_v6, process.HLT_PPRefGEDPhoton20_EB_v6, process.HLT_PPRefGEDPhoton30_v6, process.HLT_PPRefGEDPhoton30_EB_v6, process.HLT_PPRefGEDPhoton40_v6, process.HLT_PPRefGEDPhoton40_EB_v6, process.HLT_PPRefGEDPhoton50_v6, process.HLT_PPRefGEDPhoton50_EB_v6, process.HLT_PPRefGEDPhoton60_v6, process.HLT_PPRefGEDPhoton60_EB_v6, process.HLT_PPRefDoubleGEDPhoton20_v1, process.HLT_PPRefL1DoubleMu0_v6, process.HLT_PPRefL1DoubleMu0_SQ_v1, process.HLT_PPRefL1DoubleMu0_Open_v6, process.HLT_PPRefL1DoubleMu2_v1, process.HLT_PPRefL1DoubleMu2_SQ_v1, process.HLT_PPRefL1SingleMu0_Cosmics_v6, process.HLT_PPRefL1SingleMu7_v6, process.HLT_PPRefL1SingleMu12_v6, process.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, process.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, process.HLT_PPRefL2DoubleMu0_v6, process.HLT_PPRefL2DoubleMu0_Open_v6, process.HLT_PPRefL2SingleMu7_v6, process.HLT_PPRefL2SingleMu12_v6, process.HLT_PPRefL2SingleMu15_v6, process.HLT_PPRefL2SingleMu20_v6, process.HLT_PPRefL3DoubleMu0_v8, process.HLT_PPRefL3DoubleMu0_Open_v8, process.HLT_PPRefL3SingleMu3_v8, process.HLT_PPRefL3SingleMu5_v8, process.HLT_PPRefL3SingleMu7_v8, process.HLT_PPRefL3SingleMu12_v8, process.HLT_PPRefL3SingleMu15_v8, process.HLT_PPRefL3SingleMu20_v8, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, process.HLT_PPRefCscCluster_Loose_v6, process.HLT_PPRefCscCluster_Medium_v6, process.HLT_PPRefCscCluster_Tight_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt25_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt35_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt45_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt60_v6, process.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, process.HLT_PPRefUPC_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_ZDC1nOR_v1, process.MC_ReducedIterativeTracking_v22, process.MC_AK4CaloJets_v19, process.MC_AK4CaloJetsFromPV_v18, process.MC_CaloHT_v18, process.MC_AK8CaloHT_v18, process.MC_CaloMHT_v18, process.MC_AK4PFJets_v29, process.MC_PFHT_v28, process.MC_AK8PFJets_v29, process.MC_AK8PFHT_v28, process.MC_CaloMET_v18, process.MC_CaloMET_JetIdCleaned_v19, process.MC_PFMET_v29, process.MC_PFMHT_v28, process.MC_AK4PFJetPNet_v5, process.MC_AK8PFJetPNet_v5, process.MC_Egamma_Open_v8, process.MC_Egamma_Open_Unseeded_v8, process.MC_Ele5_WPTight_Gsf_v18, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, process.MC_DoubleEle5_CaloIdL_MW_v26, process.MC_IsoMu_v27, process.MC_DoubleMu_TrkIsoVVL_DZ_v23, process.MC_DoubleMuNoFiltersNoVtx_v17, process.MC_PFScouting_v6, process.HLT_SpecialHLTPhysics_v7, process.AlCa_LumiPixelsCounts_RandomHighRate_v4, process.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, process.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, process.HLT_L1AXOVTight_v4, process.HLT_L1SingleMuOpen_v6, process.HLT_L1SingleMuOpen_DT_v6, process.HLT_L1SingleMu3_v5, process.HLT_L1SingleMu5_v5, process.HLT_L1SingleMu7_v5, process.HLT_L1DoubleMu0_v5, process.HLT_L1SingleJet8erHE_v5, process.HLT_L1SingleJet10erHE_v5, process.HLT_L1SingleJet12erHE_v5, process.HLT_L1SingleJet35_v5, process.HLT_L1SingleJet200_v5, process.HLT_L1SingleEG8er2p5_v4, process.HLT_L1SingleEG10er2p5_v4, process.HLT_L1SingleEG15er2p5_v4, process.HLT_L1SingleEG26er2p5_v4, process.HLT_L1SingleEG28er2p5_v4, process.HLT_L1SingleEG28er2p1_v4, process.HLT_L1SingleEG28er1p5_v4, process.HLT_L1SingleEG34er2p5_v4, process.HLT_L1SingleEG36er2p5_v4, process.HLT_L1SingleEG38er2p5_v4, process.HLT_L1SingleEG40er2p5_v4, process.HLT_L1SingleEG42er2p5_v4, process.HLT_L1SingleEG45er2p5_v4, process.HLT_L1SingleEG50_v4, process.HLT_L1SingleJet60_v4, process.HLT_L1SingleJet90_v4, process.HLT_L1SingleJet120_v4, process.HLT_L1SingleJet180_v4, process.HLT_L1HTT120er_v4, process.HLT_L1HTT160er_v4, process.HLT_L1HTT200er_v4, process.HLT_L1HTT255er_v4, process.HLT_L1HTT280er_v4, process.HLT_L1HTT320er_v4, process.HLT_L1HTT360er_v4, process.HLT_L1HTT400er_v4, process.HLT_L1HTT450er_v4, process.HLT_L1ETM120_v4, process.HLT_L1ETM150_v4, process.HLT_L1EXT_HCAL_LaserMon1_v5, process.HLT_L1EXT_HCAL_LaserMon4_v5, process.HLT_CscCluster_Cosmic_v4, process.HLT_HT60_Beamspot_v22, process.HLT_HT300_Beamspot_PixelClusters_WP2_v7, process.HLT_PixelClusters_WP2_v4, process.HLT_PixelClusters_WP1_v4, process.HLT_BptxOR_v6, process.HLT_L1SingleMuCosmics_EMTF_v4, process.HLT_L1SingleMuCosmics_CosmicTracking_v1, process.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, process.HLT_L1FatEvents_v5, process.HLT_Random_HighRate_v1, process.HLT_ZeroBias_HighRate_v4, process.HLT_ZeroBias_Gated_v4, process.HLT_SpecialZeroBias_v6, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.DQMHistograms, process.RatesMonitoring, process.Dataset_AlCaLowPtJet, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaLumiPixelsCountsPromptHighRate0, process.Dataset_AlCaLumiPixelsCountsPromptHighRate1, process.Dataset_AlCaLumiPixelsCountsPromptHighRate2, process.Dataset_AlCaLumiPixelsCountsPromptHighRate3, process.Dataset_AlCaLumiPixelsCountsPromptHighRate4, process.Dataset_AlCaLumiPixelsCountsPromptHighRate5, process.Dataset_AlCaLumiPixelsCountsGated, process.Dataset_AlCaP0, process.Dataset_AlCaPPSExpress, process.Dataset_AlCaPPSPrompt, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DQMPPSRandom, process.Dataset_DisplacedJet, process.Dataset_EGamma0, process.Dataset_EGamma1, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressCosmics, process.Dataset_ExpressPhysics, process.Dataset_HIDQMGPUvsCPU, process.Dataset_HIDQMOnlineBeamspot, process.Dataset_HIEmptyBX, process.Dataset_HIEphemeralHLTPhysics, process.Dataset_HIEphemeralZeroBias0, process.Dataset_HIEphemeralZeroBias1, process.Dataset_HIEventDisplay, process.Dataset_HIExpressAlignment, process.Dataset_HIExpressPhysics, process.Dataset_HIExpressPhysicsRawPrime, process.Dataset_HIForward0, process.Dataset_HIForward1, process.Dataset_HIForward2, process.Dataset_HIForward3, process.Dataset_HIForward4, process.Dataset_HIForward5, process.Dataset_HIForward6, process.Dataset_HIForward7, process.Dataset_HIForward8, process.Dataset_HIForward9, process.Dataset_HIForward10, process.Dataset_HIForward11, process.Dataset_HIForward12, process.Dataset_HIForward13, process.Dataset_HIForward14, process.Dataset_HIForward15, process.Dataset_HIForward16, process.Dataset_HIForward17, process.Dataset_HIForward18, process.Dataset_HIForward19, process.Dataset_HIHLTPhysics, process.Dataset_HIHcalNZS, process.Dataset_HIOnlineMonitor, process.Dataset_HIMinimumBias0, process.Dataset_HIMinimumBias1, process.Dataset_HIMinimumBias2, process.Dataset_HIMinimumBias3, process.Dataset_HIPhysicsRawPrime0, process.Dataset_HITrackerNZS, process.Dataset_HIZeroBias0, process.Dataset_HIZeroBias1, process.Dataset_HIZeroBias2, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_JetMET0, process.Dataset_JetMET1, process.Dataset_L1Accept, process.Dataset_MinimumBias, process.Dataset_MonteCarlo, process.Dataset_Muon0, process.Dataset_Muon1, process.Dataset_MuonEG, process.Dataset_MuonShower, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_PPRefDoubleMuon0, process.Dataset_PPRefDoubleMuon1, process.Dataset_PPRefDoubleMuon2, process.Dataset_PPRefDoubleMuon3, process.Dataset_PPRefHardProbes0, process.Dataset_PPRefSingleMuon0, process.Dataset_PPRefZeroBiasPlusForward0, process.Dataset_ParkingDoubleMuonLowMass0, process.Dataset_ParkingDoubleMuonLowMass1, process.Dataset_ParkingDoubleMuonLowMass2, process.Dataset_ParkingDoubleMuonLowMass3, process.Dataset_ParkingDoubleMuonLowMass4, process.Dataset_ParkingDoubleMuonLowMass5, process.Dataset_ParkingDoubleMuonLowMass6, process.Dataset_ParkingDoubleMuonLowMass7, process.Dataset_ParkingHH, process.Dataset_ParkingLLP, process.Dataset_ParkingSingleMuon0, process.Dataset_ParkingVBF0, process.Dataset_ParkingVBF1, process.Dataset_ParkingVBF2, process.Dataset_ParkingVBF3, process.Dataset_ParkingVBF4, process.Dataset_ParkingVBF5, process.Dataset_ParkingVBF6, process.Dataset_ParkingVBF7, process.Dataset_RPCMonitor, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.ALCALowPtJetOutput, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsGatedOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCALumiPixelsCountsPromptHighRate0Output, process.ALCALumiPixelsCountsPromptHighRate1Output, process.ALCALumiPixelsCountsPromptHighRate2Output, process.ALCALumiPixelsCountsPromptHighRate3Output, process.ALCALumiPixelsCountsPromptHighRate4Output, process.ALCALumiPixelsCountsPromptHighRate5Output, process.ALCAP0Output, process.ALCAPHISYMOutput, process.ALCAPPSExpressOutput, process.ALCAPPSPromptOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.DQMPPSRandomOutput, process.HIDQMOutput, process.HIDQMEventDisplayOutput, process.HIDQMGPUvsCPUOutput, process.HIDQMOnlineBeamspotOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.ExpressCosmicsOutput, process.HIExpressOutput, process.HIExpressAlignmentOutput, process.HIExpressRawPrimeOutput, process.HLTMonitorOutput, process.PhysicsHLTPhysics2Output, process.ParkingDoubleMuonLowMass0Output, process.ParkingDoubleMuonLowMass1Output, process.ParkingDoubleMuonLowMass2Output, process.ParkingDoubleMuonLowMass3Output, process.ParkingHHOutput, process.ParkingLLPOutput, process.ParkingSingleMuon0Output, process.ParkingSingleMuon1Output, process.ParkingSingleMuon2Output, process.ParkingSingleMuon3Output, process.ParkingSingleMuon4Output, process.ParkingSingleMuon5Output, process.ParkingSingleMuon6Output, process.ParkingSingleMuon7Output, process.ParkingSingleMuon8Output, process.ParkingSingleMuon9Output, process.ParkingSingleMuon10Output, process.ParkingSingleMuon11Output, process.ParkingVBF0Output, process.ParkingVBF1Output, process.ParkingVBF2Output, process.ParkingVBF3Output, process.PhysicsCommissioningOutput, process.PhysicsDispJetBTagMuEGTauOutput, process.PhysicsEGamma0Output, process.PhysicsEGamma1Output, process.PhysicsHICommissioningOutput, process.PhysicsHIForward0Output, process.PhysicsHIForward1Output, process.PhysicsHIForward2Output, process.PhysicsHIForward3Output, process.PhysicsHIForward4Output, process.PhysicsHIForward5Output, process.PhysicsHIForward6Output, process.PhysicsHIForward7Output, process.PhysicsHIForward8Output, process.PhysicsHIForward9Output, process.PhysicsHIForward10Output, process.PhysicsHIForward11Output, process.PhysicsHIForward12Output, process.PhysicsHIForward13Output, process.PhysicsHIForward14Output, process.PhysicsHIForward15Output, process.PhysicsHIForward16Output, process.PhysicsHIForward17Output, process.PhysicsHIForward18Output, process.PhysicsHIForward19Output, process.PhysicsHIHLTPhysicsOutput, process.PhysicsHIMinimumBias0Output, process.PhysicsHIMinimumBias1Output, process.PhysicsHIMinimumBias2Output, process.PhysicsHIMinimumBias3Output, process.PhysicsHIPhysicsRawPrime0Output, process.PhysicsHIPhysicsRawPrime1Output, process.PhysicsHIPhysicsRawPrime2Output, process.PhysicsHIPhysicsRawPrime3Output, process.PhysicsHIPhysicsRawPrime4Output, process.PhysicsHIPhysicsRawPrime5Output, process.PhysicsHIPhysicsRawPrime6Output, process.PhysicsHIPhysicsRawPrime7Output, process.PhysicsHIPhysicsRawPrime8Output, process.PhysicsHIPhysicsRawPrime9Output, process.PhysicsHIPhysicsRawPrime10Output, process.PhysicsHIPhysicsRawPrime11Output, process.PhysicsHIPhysicsRawPrime12Output, process.PhysicsHIPhysicsRawPrime13Output, process.PhysicsHIPhysicsRawPrime14Output, process.PhysicsHIPhysicsRawPrime15Output, process.PhysicsHIPhysicsRawPrime16Output, process.PhysicsHIPhysicsRawPrime17Output, process.PhysicsHIPhysicsRawPrime18Output, process.PhysicsHIPhysicsRawPrime19Output, process.PhysicsHIPhysicsRawPrime20Output, process.PhysicsHIPhysicsRawPrime21Output, process.PhysicsHIPhysicsRawPrime22Output, process.PhysicsHIPhysicsRawPrime23Output, process.PhysicsHIPhysicsRawPrime24Output, process.PhysicsHIPhysicsRawPrime25Output, process.PhysicsHIPhysicsRawPrime26Output, process.PhysicsHIPhysicsRawPrime27Output, process.PhysicsHIPhysicsRawPrime28Output, process.PhysicsHIPhysicsRawPrime29Output, process.PhysicsHIPhysicsRawPrime30Output, process.PhysicsHIPhysicsRawPrime31Output, process.PhysicsHITrackerNZSOutput, process.PhysicsHIZeroBiasOutput, process.PhysicsHIZeroBiasRAW0Output, process.PhysicsHIZeroBiasRAW1Output, process.PhysicsHIZeroBiasRAW2Output, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics3Output, process.PhysicsJetMET0Output, process.PhysicsJetMET1Output, process.PhysicsMuon0Output, process.PhysicsMuon1Output, process.PhysicsPPRefDoubleMuon0Output, process.PhysicsPPRefDoubleMuon1Output, process.PhysicsPPRefDoubleMuon2Output, process.PhysicsPPRefDoubleMuon3Output, process.PhysicsPPRefHardProbes0Output, process.PhysicsPPRefHardProbes1Output, process.PhysicsPPRefHardProbes2Output, process.PhysicsPPRefSingleMuon0Output, process.PhysicsPPRefSingleMuon1Output, process.PhysicsPPRefSingleMuon2Output, process.PhysicsPPRefZeroBiasPlusForward0Output, process.PhysicsPPRefZeroBiasPlusForward1Output, process.PhysicsPPRefZeroBiasPlusForward2Output, process.PhysicsPPRefZeroBiasPlusForward3Output, process.PhysicsPPRefZeroBiasPlusForward4Output, process.PhysicsPPRefZeroBiasPlusForward5Output, process.PhysicsPPRefZeroBiasPlusForward6Output, process.PhysicsPPRefZeroBiasPlusForward7Output, process.PhysicsPPRefZeroBiasPlusForward8Output, process.PhysicsPPRefZeroBiasPlusForward9Output, process.PhysicsScoutingPFMonitorOutput, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.NanoDSTOutput, process.RPCMONOutput, process.ScoutingPFOutput, process.PhysicsSpecialHLTPhysics0Output, process.PhysicsSpecialHLTPhysics1Output, process.PhysicsSpecialHLTPhysics2Output, process.PhysicsSpecialHLTPhysics3Output, process.PhysicsSpecialHLTPhysics4Output, process.PhysicsSpecialHLTPhysics5Output, process.PhysicsSpecialHLTPhysics6Output, process.PhysicsSpecialHLTPhysics7Output, process.PhysicsSpecialHLTPhysics8Output, process.PhysicsSpecialHLTPhysics9Output, process.PhysicsSpecialHLTPhysics10Output, process.PhysicsSpecialHLTPhysics11Output, process.PhysicsSpecialHLTPhysics12Output, process.PhysicsSpecialHLTPhysics13Output, process.PhysicsSpecialHLTPhysics14Output, process.PhysicsSpecialHLTPhysics15Output, process.PhysicsSpecialHLTPhysics16Output, process.PhysicsSpecialHLTPhysics17Output, process.PhysicsSpecialHLTPhysics18Output, process.PhysicsSpecialHLTPhysics19Output, process.PhysicsSpecialRandom0Output, process.PhysicsSpecialRandom1Output, process.PhysicsSpecialRandom2Output, process.PhysicsSpecialRandom3Output, process.PhysicsSpecialRandom4Output, process.PhysicsSpecialRandom5Output, process.PhysicsSpecialRandom6Output, process.PhysicsSpecialRandom7Output, process.PhysicsSpecialRandom8Output, process.PhysicsSpecialRandom9Output, process.PhysicsSpecialZeroBias0Output, process.PhysicsSpecialZeroBias1Output, process.PhysicsSpecialZeroBias2Output, process.PhysicsSpecialZeroBias3Output, process.PhysicsSpecialZeroBias4Output, process.PhysicsSpecialZeroBias5Output, process.PhysicsSpecialZeroBias6Output, process.PhysicsSpecialZeroBias7Output, process.PhysicsSpecialZeroBias8Output, process.PhysicsSpecialZeroBias9Output, process.PhysicsSpecialZeroBias10Output, process.PhysicsSpecialZeroBias11Output, process.PhysicsSpecialZeroBias12Output, process.PhysicsSpecialZeroBias13Output, process.PhysicsSpecialZeroBias14Output, process.PhysicsSpecialZeroBias15Output, process.Dataset_SpecialRandom0, process.Dataset_SpecialRandom1, process.Dataset_SpecialRandom2, process.Dataset_SpecialRandom3, process.Dataset_SpecialRandom4, process.Dataset_SpecialRandom5, process.Dataset_SpecialRandom6, process.Dataset_SpecialRandom7, process.Dataset_SpecialRandom8, process.Dataset_SpecialRandom9, process.Dataset_SpecialRandom10, process.Dataset_SpecialRandom11, process.Dataset_SpecialRandom12, process.Dataset_SpecialRandom13, process.Dataset_SpecialRandom14, process.Dataset_SpecialRandom15, process.Dataset_SpecialRandom16, process.Dataset_SpecialRandom17, process.Dataset_SpecialRandom18, process.Dataset_SpecialRandom19, process.Dataset_SpecialZeroBias0, process.Dataset_SpecialZeroBias1, process.Dataset_SpecialZeroBias2, process.Dataset_SpecialZeroBias3, process.Dataset_SpecialZeroBias4, process.Dataset_SpecialZeroBias5, process.Dataset_SpecialZeroBias6, process.Dataset_SpecialZeroBias7, process.Dataset_SpecialZeroBias8, process.Dataset_SpecialZeroBias9, process.Dataset_SpecialZeroBias10, process.Dataset_SpecialZeroBias11, process.Dataset_SpecialZeroBias12, process.Dataset_SpecialZeroBias13, process.Dataset_SpecialZeroBias14, process.Dataset_SpecialZeroBias15, process.Dataset_SpecialZeroBias16, process.Dataset_SpecialZeroBias17, process.Dataset_SpecialZeroBias18, process.Dataset_SpecialZeroBias19, process.Dataset_SpecialZeroBias20, process.Dataset_SpecialZeroBias21, process.Dataset_SpecialZeroBias22, process.Dataset_SpecialZeroBias23, process.Dataset_SpecialZeroBias24, process.Dataset_SpecialZeroBias25, process.Dataset_SpecialZeroBias26, process.Dataset_SpecialZeroBias27, process.Dataset_SpecialZeroBias28, process.Dataset_SpecialZeroBias29, process.Dataset_SpecialZeroBias30, process.Dataset_SpecialZeroBias31, process.Dataset_SpecialHLTPhysics0, process.Dataset_SpecialHLTPhysics1, process.Dataset_SpecialHLTPhysics2, process.Dataset_SpecialHLTPhysics3, process.Dataset_SpecialHLTPhysics4, process.Dataset_SpecialHLTPhysics5, process.Dataset_SpecialHLTPhysics6, process.Dataset_SpecialHLTPhysics7, process.Dataset_SpecialHLTPhysics8, process.Dataset_SpecialHLTPhysics9, process.Dataset_SpecialHLTPhysics10, process.Dataset_SpecialHLTPhysics11, process.Dataset_SpecialHLTPhysics12, process.Dataset_SpecialHLTPhysics13, process.Dataset_SpecialHLTPhysics14, process.Dataset_SpecialHLTPhysics15, process.Dataset_SpecialHLTPhysics16, process.Dataset_SpecialHLTPhysics17, process.Dataset_SpecialHLTPhysics18, process.Dataset_SpecialHLTPhysics19, process.Dataset_ParkingSingleMuon1, process.Dataset_ParkingSingleMuon2, process.Dataset_ParkingSingleMuon3, process.Dataset_ParkingSingleMuon4, process.Dataset_ParkingSingleMuon5, process.Dataset_ParkingSingleMuon6, process.Dataset_ParkingSingleMuon7, process.Dataset_ParkingSingleMuon8, process.Dataset_ParkingSingleMuon9, process.Dataset_ParkingSingleMuon10, process.Dataset_ParkingSingleMuon11, process.Dataset_PPRefZeroBiasPlusForward1, process.Dataset_PPRefZeroBiasPlusForward2, process.Dataset_PPRefZeroBiasPlusForward3, process.Dataset_PPRefZeroBiasPlusForward4, process.Dataset_PPRefZeroBiasPlusForward5, process.Dataset_PPRefZeroBiasPlusForward6, process.Dataset_PPRefZeroBiasPlusForward7, process.Dataset_PPRefZeroBiasPlusForward8, process.Dataset_PPRefZeroBiasPlusForward9, process.Dataset_PPRefZeroBiasPlusForward10, process.Dataset_PPRefZeroBiasPlusForward11, process.Dataset_PPRefZeroBiasPlusForward12, process.Dataset_PPRefZeroBiasPlusForward13, process.Dataset_PPRefZeroBiasPlusForward14, process.Dataset_PPRefZeroBiasPlusForward15, process.Dataset_PPRefZeroBiasPlusForward16, process.Dataset_PPRefZeroBiasPlusForward17, process.Dataset_PPRefZeroBiasPlusForward18, process.Dataset_PPRefZeroBiasPlusForward19, process.Dataset_PPRefZeroBiasPlusForward20, process.Dataset_PPRefZeroBiasPlusForward21, process.Dataset_PPRefZeroBiasPlusForward22, process.Dataset_PPRefZeroBiasPlusForward23, process.Dataset_PPRefZeroBiasPlusForward24, process.Dataset_PPRefSingleMuon1, process.Dataset_PPRefSingleMuon2, process.Dataset_PPRefSingleMuon3, process.Dataset_PPRefHardProbes1, process.Dataset_PPRefHardProbes2, process.Dataset_PPRefHardProbes3, process.Dataset_PPRefHardProbes4, process.PhysicsPPRefHardProbes3Output, process.PhysicsPPRefHardProbes4Output, process.PhysicsPPRefSingleMuon3Output, process.PhysicsPPRefZeroBiasPlusForward10Output, process.PhysicsPPRefZeroBiasPlusForward11Output, process.PhysicsPPRefZeroBiasPlusForward12Output, process.PhysicsPPRefZeroBiasPlusForward13Output, process.PhysicsPPRefZeroBiasPlusForward14Output, process.PhysicsPPRefZeroBiasPlusForward15Output, process.PhysicsPPRefZeroBiasPlusForward16Output, process.PhysicsPPRefZeroBiasPlusForward18Output, process.PhysicsPPRefZeroBiasPlusForward19Output, process.PhysicsPPRefZeroBiasPlusForward17Output, process.PhysicsPPRefZeroBiasPlusForward24Output, process.PhysicsPPRefZeroBiasPlusForward23Output, process.PhysicsPPRefZeroBiasPlusForward22Output, process.PhysicsPPRefZeroBiasPlusForward21Output, process.PhysicsPPRefZeroBiasPlusForward20Output, process.Dataset_HIPhysicsRawPrime1, process.Dataset_HIPhysicsRawPrime2, process.Dataset_HIPhysicsRawPrime3, process.Dataset_HIPhysicsRawPrime4, process.Dataset_HIPhysicsRawPrime5, process.Dataset_HIPhysicsRawPrime6, process.Dataset_HIPhysicsRawPrime7, process.Dataset_HIPhysicsRawPrime8, process.Dataset_HIPhysicsRawPrime9, process.Dataset_HIPhysicsRawPrime10, process.Dataset_HIPhysicsRawPrime11, process.Dataset_HIPhysicsRawPrime12, process.Dataset_HIPhysicsRawPrime13, process.Dataset_HIPhysicsRawPrime14, process.Dataset_HIPhysicsRawPrime15, process.Dataset_HIPhysicsRawPrime16, process.Dataset_HIPhysicsRawPrime17, process.Dataset_HIPhysicsRawPrime18, process.Dataset_HIPhysicsRawPrime19, process.Dataset_HIPhysicsRawPrime20, process.Dataset_HIPhysicsRawPrime21, process.Dataset_HIPhysicsRawPrime22, process.Dataset_HIPhysicsRawPrime23, process.Dataset_HIPhysicsRawPrime24, process.Dataset_HIPhysicsRawPrime25, process.Dataset_HIPhysicsRawPrime26, process.Dataset_HIPhysicsRawPrime27, process.Dataset_HIPhysicsRawPrime28, process.Dataset_HIPhysicsRawPrime29, process.Dataset_HIPhysicsRawPrime30, process.Dataset_HIPhysicsRawPrime31, process.Dataset_HIPhysicsRawPrime32, process.Dataset_HIPhysicsRawPrime33, process.Dataset_HIPhysicsRawPrime34, process.Dataset_HIPhysicsRawPrime35, process.Dataset_HIPhysicsRawPrime36, process.Dataset_HIPhysicsRawPrime37, process.Dataset_HIPhysicsRawPrime38, process.Dataset_HIPhysicsRawPrime39, process.Dataset_HIPhysicsRawPrime40, process.Dataset_HIPhysicsRawPrime41, process.Dataset_HIPhysicsRawPrime42, process.Dataset_HIPhysicsRawPrime43, process.Dataset_HIPhysicsRawPrime44, process.Dataset_HIPhysicsRawPrime45, process.Dataset_HIPhysicsRawPrime46, process.Dataset_HIPhysicsRawPrime47, process.Dataset_HIPhysicsRawPrime48, process.Dataset_HIPhysicsRawPrime49, process.Dataset_HIPhysicsRawPrime50, process.Dataset_HIPhysicsRawPrime51, process.Dataset_HIPhysicsRawPrime52, process.Dataset_HIPhysicsRawPrime53, process.Dataset_HIPhysicsRawPrime54, process.Dataset_HIPhysicsRawPrime55, process.Dataset_HIPhysicsRawPrime56, process.Dataset_HIPhysicsRawPrime57, process.Dataset_HIPhysicsRawPrime58, process.Dataset_HIPhysicsRawPrime59, process.PhysicsHIPhysicsRawPrime59Output, process.PhysicsHIPhysicsRawPrime58Output, process.PhysicsHIPhysicsRawPrime57Output, process.PhysicsHIPhysicsRawPrime56Output, process.PhysicsHIPhysicsRawPrime55Output, process.PhysicsHIPhysicsRawPrime54Output, process.PhysicsHIPhysicsRawPrime53Output, process.PhysicsHIPhysicsRawPrime52Output, process.PhysicsHIPhysicsRawPrime51Output, process.PhysicsHIPhysicsRawPrime50Output, process.PhysicsHIPhysicsRawPrime49Output, process.PhysicsHIPhysicsRawPrime48Output, process.PhysicsHIPhysicsRawPrime47Output, process.PhysicsHIPhysicsRawPrime46Output, process.PhysicsHIPhysicsRawPrime45Output, process.PhysicsHIPhysicsRawPrime44Output, process.PhysicsHIPhysicsRawPrime42Output, process.PhysicsHIPhysicsRawPrime41Output, process.PhysicsHIPhysicsRawPrime40Output, process.PhysicsHIPhysicsRawPrime39Output, process.PhysicsHIPhysicsRawPrime38Output, process.PhysicsHIPhysicsRawPrime37Output, process.PhysicsHIPhysicsRawPrime36Output, process.PhysicsHIPhysicsRawPrime35Output, process.PhysicsHIPhysicsRawPrime34Output, process.PhysicsHIPhysicsRawPrime33Output, process.PhysicsHIPhysicsRawPrime32Output, process.PhysicsHIPhysicsRawPrime43Output, )) +process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_EcalPhiSymForHI_v12, process.AlCa_EcalEtaEBonly_v25, process.AlCa_EcalEtaEEonly_v25, process.AlCa_EcalPi0EBonly_v25, process.AlCa_EcalPi0EEonly_v25, process.AlCa_EcalEtaEBonlyForHI_v13, process.AlCa_EcalEtaEEonlyForHI_v13, process.AlCa_EcalPi0EBonlyForHI_v13, process.AlCa_EcalPi0EEonlyForHI_v13, process.AlCa_HIEcalEtaEBonly_v12, process.AlCa_HIEcalEtaEEonly_v12, process.AlCa_HIEcalPi0EBonly_v12, process.AlCa_HIEcalPi0EEonly_v12, process.AlCa_RPCMuonNormalisation_v23, process.AlCa_RPCMuonNormalisationForHI_v11, process.AlCa_HIRPCMuonNormalisation_v11, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.AlCa_PFJet40_v32, process.AlCa_PFJet40_CPUOnly_v11, process.AlCa_AK8PFJet40_v27, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DQM_HIPixelReconstruction_v12, process.DQM_HIEcalReconstruction_v10, process.DQM_HIHcalReconstruction_v8, process.DQM_Random_v1, process.DQM_ZeroBias_v3, process.DST_ZeroBias_v11, process.DST_Physics_v16, process.DST_PFScouting_DoubleMuon_v6, process.DST_PFScouting_DoubleEG_v6, process.DST_PFScouting_JetHT_v6, process.DST_PFScouting_AXOVLoose_v4, process.DST_PFScouting_AXOLoose_v4, process.DST_PFScouting_AXONominal_v6, process.DST_PFScouting_AXOTight_v6, process.DST_PFScouting_AXOVTight_v4, process.DST_PFScouting_CICADAVLoose_v2, process.DST_PFScouting_CICADALoose_v2, process.DST_PFScouting_CICADAMedium_v2, process.DST_PFScouting_CICADATight_v2, process.DST_PFScouting_CICADAVTight_v2, process.DST_PFScouting_SingleMuon_v6, process.DST_PFScouting_SinglePhotonEB_v3, process.DST_PFScouting_ZeroBias_v4, process.HLT_EphemeralPhysics_v9, process.HLT_EphemeralZeroBias_v9, process.HLT_HIEphemeralPhysics_v5, process.HLT_HIEphemeralZeroBias_v5, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Alignment_v8, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_IsolatedBunches_v12, process.HLT_ZeroBias_FirstBXAfterTrain_v10, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_ZeroBias_FirstCollisionInTrain_v11, process.HLT_ZeroBias_LastCollisionInTrain_v10, process.HLT_HT300_Beamspot_v23, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_PFJet40_GPUvsCPU_v7, process.HLT_AK8PFJet380_SoftDropMass30_v6, process.HLT_AK8PFJet400_SoftDropMass30_v6, process.HLT_AK8PFJet425_SoftDropMass30_v6, process.HLT_AK8PFJet450_SoftDropMass30_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, process.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, process.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, process.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, process.HLT_CaloJet500_NoJetID_v22, process.HLT_CaloJet550_NoJetID_v17, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, process.HLT_DoubleEle25_CaloIdL_MW_v15, process.HLT_DoubleEle27_CaloIdL_MW_v15, process.HLT_DoubleEle33_CaloIdL_MW_v28, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, process.HLT_Mu27_Ele37_CaloIdL_MW_v17, process.HLT_Mu37_Ele27_CaloIdL_MW_v17, process.HLT_Mu37_TkMu27_v17, process.HLT_DoubleMu4_3_Bs_v27, process.HLT_DoubleMu4_3_Jpsi_v27, process.HLT_DoubleMu4_3_LowMass_v13, process.HLT_DoubleMu4_LowMass_Displaced_v13, process.HLT_Mu0_L1DoubleMu_v13, process.HLT_Mu4_L1DoubleMu_v13, process.HLT_DoubleMu2_Jpsi_LowPt_v6, process.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, process.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, process.HLT_DoubleMu3_Trk_Tau3mu_v24, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, process.HLT_DoubleMu4_MuMuTrk_Displaced_v27, process.HLT_Mu3_PFJet40_v28, process.HLT_Mu7p5_L2Mu2_Jpsi_v22, process.HLT_Mu7p5_L2Mu2_Upsilon_v22, process.HLT_Mu3_L1SingleMu5orSingleMu7_v13, process.HLT_Mu0_Barrel_v6, process.HLT_Mu0_Barrel_L1HP6_v3, process.HLT_Mu0_Barrel_L1HP7_v3, process.HLT_Mu0_Barrel_L1HP8_v4, process.HLT_Mu0_Barrel_L1HP9_v4, process.HLT_Mu0_Barrel_L1HP10_v6, process.HLT_Mu0_Barrel_L1HP11_v6, process.HLT_Mu0_Barrel_L1HP6_IP6_v3, process.HLT_Mu6_Barrel_L1HP7_IP6_v3, process.HLT_Mu7_Barrel_L1HP8_IP6_v4, process.HLT_Mu8_Barrel_L1HP9_IP6_v4, process.HLT_Mu9_Barrel_L1HP10_IP6_v6, process.HLT_Mu10_Barrel_L1HP11_IP6_v6, process.HLT_DoublePhoton33_CaloIdL_v17, process.HLT_DoublePhoton70_v17, process.HLT_DoublePhoton85_v25, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, process.HLT_Ele30_WPTight_Gsf_v11, process.HLT_Ele32_WPTight_Gsf_v25, process.HLT_Ele35_WPTight_Gsf_v19, process.HLT_Ele38_WPTight_Gsf_v19, process.HLT_Ele40_WPTight_Gsf_v19, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, process.HLT_IsoMu20_v27, process.HLT_IsoMu24_v25, process.HLT_IsoMu24_eta2p1_v27, process.HLT_IsoMu27_v28, process.HLT_UncorrectedJetE30_NoBPTX_v14, process.HLT_UncorrectedJetE30_NoBPTX3BX_v14, process.HLT_UncorrectedJetE60_NoBPTX3BX_v14, process.HLT_UncorrectedJetE70_NoBPTX3BX_v14, process.HLT_L1SingleMuCosmics_v8, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, process.HLT_L2Mu10_NoVertex_NoBPTX_v15, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, process.HLT_L2Mu23NoVtx_2Cha_v10, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, process.HLT_DoubleL2Mu50_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, process.HLT_Mu30_TkMu0_Psi_v13, process.HLT_Mu30_TkMu0_Upsilon_v13, process.HLT_Mu25_TkMu0_Phi_v20, process.HLT_Mu15_v15, process.HLT_Mu20_v24, process.HLT_Mu27_v25, process.HLT_Mu50_v25, process.HLT_Mu55_v15, process.HLT_CascadeMu100_v13, process.HLT_HighPtTkMu100_v12, process.HLT_DiPFJetAve40_v26, process.HLT_DiPFJetAve60_v26, process.HLT_DiPFJetAve80_v26, process.HLT_DiPFJetAve140_v25, process.HLT_DiPFJetAve200_v25, process.HLT_DiPFJetAve260_v26, process.HLT_DiPFJetAve320_v26, process.HLT_DiPFJetAve400_v26, process.HLT_DiPFJetAve500_v26, process.HLT_DiPFJetAve60_HFJEC_v27, process.HLT_DiPFJetAve80_HFJEC_v29, process.HLT_DiPFJetAve100_HFJEC_v29, process.HLT_DiPFJetAve160_HFJEC_v28, process.HLT_DiPFJetAve220_HFJEC_v28, process.HLT_DiPFJetAve260_HFJEC_v11, process.HLT_DiPFJetAve300_HFJEC_v28, process.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, process.HLT_AK8PFJet40_v28, process.HLT_AK8PFJet60_v27, process.HLT_AK8PFJet80_v28, process.HLT_AK8PFJet140_v27, process.HLT_AK8PFJet200_v27, process.HLT_AK8PFJet260_v28, process.HLT_AK8PFJet320_v28, process.HLT_AK8PFJet400_v28, process.HLT_AK8PFJet450_v28, process.HLT_AK8PFJet500_v28, process.HLT_AK8PFJet550_v23, process.HLT_PFJet40_v33, process.HLT_PFJet60_v33, process.HLT_PFJet80_v33, process.HLT_PFJet110_v12, process.HLT_PFJet140_v31, process.HLT_PFJet200_v31, process.HLT_PFJet260_v32, process.HLT_PFJet320_v32, process.HLT_PFJet400_v32, process.HLT_PFJet450_v33, process.HLT_PFJet500_v33, process.HLT_PFJet550_v23, process.HLT_PFJetFwd40_v31, process.HLT_PFJetFwd60_v31, process.HLT_PFJetFwd80_v30, process.HLT_PFJetFwd140_v30, process.HLT_PFJetFwd200_v30, process.HLT_PFJetFwd260_v31, process.HLT_PFJetFwd320_v31, process.HLT_PFJetFwd400_v31, process.HLT_PFJetFwd450_v31, process.HLT_PFJetFwd500_v31, process.HLT_AK8PFJetFwd40_v27, process.HLT_AK8PFJetFwd60_v26, process.HLT_AK8PFJetFwd80_v26, process.HLT_AK8PFJetFwd140_v26, process.HLT_AK8PFJetFwd200_v26, process.HLT_AK8PFJetFwd260_v27, process.HLT_AK8PFJetFwd320_v27, process.HLT_AK8PFJetFwd400_v27, process.HLT_AK8PFJetFwd450_v27, process.HLT_AK8PFJetFwd500_v27, process.HLT_PFHT180_v29, process.HLT_PFHT250_v29, process.HLT_PFHT370_v29, process.HLT_PFHT430_v29, process.HLT_PFHT510_v29, process.HLT_PFHT590_v29, process.HLT_PFHT680_v29, process.HLT_PFHT780_v29, process.HLT_PFHT890_v29, process.HLT_PFHT1050_v30, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, process.HLT_PFMET120_PFMHT120_IDTight_v32, process.HLT_PFMET130_PFMHT130_IDTight_v32, process.HLT_PFMET140_PFMHT140_IDTight_v32, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, process.HLT_L1ETMHadSeeds_v10, process.HLT_CaloMHT90_v14, process.HLT_CaloMET90_NotCleaned_v14, process.HLT_CaloMET350_NotCleaned_v14, process.HLT_PFMET200_NotCleaned_v21, process.HLT_PFMET250_NotCleaned_v21, process.HLT_PFMET300_NotCleaned_v21, process.HLT_PFMET200_BeamHaloCleaned_v21, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, process.HLT_MET105_IsoTrk50_v19, process.HLT_MET120_IsoTrk50_v19, process.HLT_Mu12eta2p3_v13, process.HLT_Mu12eta2p3_PFJet40_v13, process.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Photon300_NoHE_v23, process.HLT_Mu8_TrkIsoVVL_v24, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, process.HLT_Mu17_TrkIsoVVL_v25, process.HLT_Mu19_TrkIsoVVL_v16, process.HLT_BTagMu_AK4DiJet20_Mu5_v25, process.HLT_BTagMu_AK4DiJet40_Mu5_v25, process.HLT_BTagMu_AK4DiJet70_Mu5_v25, process.HLT_BTagMu_AK4DiJet110_Mu5_v25, process.HLT_BTagMu_AK4DiJet170_Mu5_v24, process.HLT_BTagMu_AK4Jet300_Mu5_v24, process.HLT_BTagMu_AK8DiJet170_Mu5_v21, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, process.HLT_BTagMu_AK8Jet300_Mu5_v24, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, process.HLT_Photon33_v15, process.HLT_Photon50_v23, process.HLT_Photon75_v23, process.HLT_Photon90_v23, process.HLT_Photon120_v23, process.HLT_Photon150_v17, process.HLT_Photon175_v25, process.HLT_Photon200_v24, process.HLT_Photon45EB_v3, process.HLT_Photon40EB_v3, process.HLT_Photon50EB_v4, process.HLT_Photon30EB_TightID_TightIso_v12, process.HLT_Photon40EB_TightID_TightIso_v3, process.HLT_Photon45EB_TightID_TightIso_v3, process.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_v8, process.HLT_Photon55EB_TightID_TightIso_v4, process.HLT_Photon75EB_TightID_TightIso_v8, process.HLT_Photon90EB_TightID_TightIso_v8, process.HLT_Photon110EB_TightID_TightIso_v12, process.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon100EBHE10_v12, process.HLT_Photon50_R9Id90_HE10_IsoM_v24, process.HLT_Photon75_R9Id90_HE10_IsoM_v24, process.HLT_Photon90_R9Id90_HE10_IsoM_v24, process.HLT_Photon120_R9Id90_HE10_IsoM_v24, process.HLT_Photon165_R9Id90_HE10_IsoM_v25, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, process.HLT_DiphotonMVA14p25_Mass90_v3, process.HLT_DiphotonMVA14p25_Tight_Mass90_v3, process.HLT_Photon35_TwoProngs35_v13, process.HLT_IsoMu24_TwoProngs35_v13, process.HLT_Dimuon0_Jpsi_L1_NoOS_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, process.HLT_Dimuon0_Jpsi_v20, process.HLT_Dimuon0_Jpsi_NoVertexing_v20, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi3p5_Muon2_v17, process.HLT_Dimuon0_Upsilon_L1_4p5_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, process.HLT_Dimuon0_Upsilon_NoVertexing_v19, process.HLT_Dimuon0_LowMass_L1_0er1p5_v20, process.HLT_Dimuon0_LowMass_v20, process.HLT_Dimuon0_LowMass_L1_4_v20, process.HLT_Dimuon0_LowMass_L1_TM530_v18, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, process.HLT_TripleMu_10_5_5_DZ_v22, process.HLT_TripleMu_12_10_5_v22, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, process.HLT_DoubleMu4_3_LowMass_SS_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v19, process.HLT_DoubleMu4_Jpsi_NoVertexing_v19, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, process.HLT_DoubleMu4_JpsiTrk_Bc_v12, process.HLT_DoubleMu43NoFiltersNoVtx_v14, process.HLT_DoubleMu48NoFiltersNoVtx_v14, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, process.HLT_Ele28_HighEta_SC20_Mass55_v23, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, process.HLT_Ele15_IsoVVVL_PFHT450_v28, process.HLT_Ele50_IsoVVVL_PFHT450_v28, process.HLT_Ele15_IsoVVVL_PFHT600_v32, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, process.HLT_Mu15_IsoVVVL_PFHT450_v27, process.HLT_Mu50_IsoVVVL_PFHT450_v27, process.HLT_Mu15_IsoVVVL_PFHT600_v31, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, process.HLT_Dimuon10_Upsilon_y1p4_v13, process.HLT_Dimuon12_Upsilon_y1p4_v14, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, process.HLT_Dimuon25_Jpsi_v26, process.HLT_Dimuon14_PsiPrime_v25, process.HLT_Dimuon14_PsiPrime_noCorrL1_v17, process.HLT_Dimuon18_PsiPrime_v26, process.HLT_Dimuon18_PsiPrime_noCorrL1_v18, process.HLT_Dimuon24_Upsilon_noCorrL1_v18, process.HLT_Dimuon24_Phi_noCorrL1_v18, process.HLT_Dimuon25_Jpsi_noCorrL1_v18, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, process.HLT_DoubleIsoMu20_eta2p1_v19, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, process.HLT_Mu8_v24, process.HLT_Mu17_v25, process.HLT_Mu19_v16, process.HLT_Mu17_Photon30_IsoCaloId_v18, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, process.HLT_PFHT400_SixPFJet32_v21, process.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, process.HLT_PFHT450_SixPFJet36_v20, process.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, process.HLT_PFHT350_v31, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, process.HLT_ECALHT800_v20, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, process.HLT_Photon20_HoverELoose_v20, process.HLT_Photon30_HoverELoose_v20, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, process.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, process.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, process.HLT_Mu18_Mu9_SameSign_v16, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, process.HLT_QuadPFJet103_88_75_15_v17, process.HLT_QuadPFJet105_88_76_15_v17, process.HLT_QuadPFJet111_90_80_15_v17, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, process.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, process.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, process.HLT_PFHT250_QuadPFJet25_v6, process.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, process.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, process.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, process.HLT_QuadPFJet100_88_70_30_v10, process.HLT_QuadPFJet105_88_75_30_v9, process.HLT_QuadPFJet111_90_80_30_v9, process.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, process.HLT_AK8PFJet220_SoftDropMass40_v13, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, process.HLT_AK8PFJet230_SoftDropMass40_v13, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_Nch45_v6, process.HLT_AK8PFJet275_Nch40_v6, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PFHT250_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, process.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, process.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, process.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, process.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu10NoVtx_2Cha_v9, process.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_L3Mu10NoVtx_v10, process.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, process.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, process.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, process.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, process.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, process.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, process.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, process.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, process.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, process.HLT_L1Mu6HT240_v9, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, process.HLT_HT350_v7, process.HLT_HT425_v19, process.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT550_DisplacedDijet60_Inclusive_v23, process.HLT_HT650_DisplacedDijet60_Inclusive_v23, process.HLT_CaloMET60_DTCluster50_v11, process.HLT_CaloMET60_DTClusterNoMB1S50_v11, process.HLT_L1MET_DTCluster50_v11, process.HLT_L1MET_DTClusterNoMB1S50_v11, process.HLT_CscCluster_Loose_v10, process.HLT_CscCluster_Medium_v10, process.HLT_CscCluster_Tight_v10, process.HLT_CscCluster50_Photon20Unseeded_v4, process.HLT_CscCluster50_Photon30Unseeded_v4, process.HLT_CscCluster100_Ele5_v4, process.HLT_CscCluster100_Mu5_v6, process.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, process.HLT_DoubleCscCluster75_v7, process.HLT_IsoTrk200_L1SingleMuShower_v4, process.HLT_IsoTrk400_L1SingleMuShower_v4, process.HLT_DoubleCscCluster100_v7, process.HLT_L1CSCShower_DTCluster50_v10, process.HLT_L1CSCShower_DTCluster75_v10, process.HLT_PFMET105_IsoTrk50_v13, process.HLT_L1SingleLLPJet_v7, process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, process.HLT_DiPhoton10Time1ns_v10, process.HLT_DiPhoton10Time1p2ns_v10, process.HLT_DiPhoton10Time1p4ns_v10, process.HLT_DiPhoton10Time1p6ns_v10, process.HLT_DiPhoton10Time1p8ns_v10, process.HLT_DiPhoton10Time2ns_v10, process.HLT_DiPhoton10_CaloIdL_v10, process.HLT_DoubleEle6p5_eta1p22_mMax6_v10, process.HLT_DoubleEle8_eta1p22_mMax6_v10, process.HLT_DoubleEle10_eta1p22_mMax6_v10, process.HLT_SingleEle8_v9, process.HLT_SingleEle8_SingleEGL1_v9, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Mu50_L1SingleMuShower_v11, process.HLT_IsoMu24_OneProng32_v9, process.HLT_Photon32_OneProng32_M50To105_v10, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, process.HLT_VBF_DiPFJet125_45_Mjj1050_v8, process.HLT_VBF_DiPFJet125_45_Mjj1200_v6, process.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, process.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, process.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, process.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_PFJet200_TimeLtNeg2p5ns_v10, process.HLT_PFJet200_TimeGt2p5ns_v10, process.HLT_Photon50_TimeLtNeg2p5ns_v7, process.HLT_Photon50_TimeGt2p5ns_v7, process.HLT_PPSMaxTracksPerArm1_v9, process.HLT_PPSMaxTracksPerRP4_v9, process.HLT_PPSRandom_v1, process.HLT_HIL1NotBptxOR_v14, process.HLT_HIL1UnpairedBunchBptxPlus_v14, process.HLT_HIL1UnpairedBunchBptxMinus_v14, process.HLT_HIPhysics_v14, process.HLT_HIPhysicsForZS_v14, process.HLT_HIRandom_v7, process.HLT_HIRandom_HighRate_v3, process.HLT_HIHcalNZS_v14, process.HLT_HIHcalPhiSym_v14, process.HLT_HIZeroBias_v14, process.HLT_HIZeroBias_HighRate_v7, process.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, process.HLT_HIZeroBias_HighRateRAW_v4, process.HLT_HIMinimumBiasHF1AND_v7, process.HLT_HIMinimumBiasHF1AND_copy_v6, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, process.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1, process.HLT_HIL1Centrality30_50_v7, process.HLT_HIL1_UCC_0_0p5_v7, process.HLT_HIL1_UCC_0_1_v7, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet80Eta5p1_v14, process.HLT_HIPuAK4CaloJet100Eta5p1_v14, process.HLT_HIPuAK4CaloJet120Eta2p1_v7, process.HLT_HIPuAK4CaloJet120Eta5p1_v14, process.HLT_HIPuAK4CaloJet40Fwd_v7, process.HLT_HIPuAK4CaloJet60Fwd_v7, process.HLT_HIPuAK4CaloJet80Fwd_v7, process.HLT_HIPuAK4CaloJet100Fwd_v7, process.HLT_HIPuAK4CaloJet120Fwd_v7, process.HLT_HICsAK4PFJet60Eta1p5_v14, process.HLT_HICsAK4PFJet60Eta2p1_v7, process.HLT_HICsAK4PFJet80Eta1p5_v14, process.HLT_HICsAK4PFJet80Eta2p1_v7, process.HLT_HICsAK4PFJet100Eta1p5_v14, process.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8, process.HLT_HICsAK4PFJet100Eta2p1_v7, process.HLT_HICsAK4PFJet120Eta1p5_v14, process.HLT_HICsAK4PFJet120Eta2p1_v7, process.HLT_HIGEDPhoton10_v14, process.HLT_HIGEDPhoton10_EB_v14, process.HLT_HIGEDPhoton20_v14, process.HLT_HIGEDPhoton20_EB_v14, process.HLT_HIGEDPhoton30_v14, process.HLT_HIGEDPhoton30_EB_v14, process.HLT_HIGEDPhoton40_v14, process.HLT_HIGEDPhoton40_EB_v14, process.HLT_HIGEDPhoton50_v14, process.HLT_HIGEDPhoton50_EB_v14, process.HLT_HIGEDPhoton60_v14, process.HLT_HIGEDPhoton60_EB_v14, process.HLT_HIDoubleGEDPhoton20_v7, process.HLT_HIEle10Gsf_v14, process.HLT_HIEle15Gsf_v14, process.HLT_HIEle20Gsf_v14, process.HLT_HIEle30Gsf_v14, process.HLT_HIEle40Gsf_v14, process.HLT_HIEle50Gsf_v14, process.HLT_HIEle15Ele10Gsf_v14, process.HLT_HIEle15Ele10GsfMass50_v14, process.HLT_HIDoubleEle10Gsf_v14, process.HLT_HIDoubleEle10GsfMass50_v14, process.HLT_HIDoubleEle15Gsf_v14, process.HLT_HIDoubleEle15GsfMass50_v14, process.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_NotMBHF2_v5, process.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, process.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, process.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, process.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_Random_HighRate_v1, process.HLT_HIUPC_HFafterglowCombined_v1, process.HLT_HIL1SingleMuOpen_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality40to100_v1, process.HLT_HIL1SingleMu0_v7, process.HLT_HIL1SingleMu0_Open_v7, process.HLT_HIL1SingleMu0_Cosmic_v7, process.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, process.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, process.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, process.HLT_HIL2DoubleMuOpen_SS_v1, process.HLT_HIL2DoubleMuOpen_OS_v1, process.HLT_HIL1DoubleMu0_v7, process.HLT_HIL2DoubleMu0_SQ_v1, process.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, process.HLT_HIL1DoubleMu0_SQ_v7, process.HLT_HIL2SingleMuOpen_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality40to100_v1, process.HLT_HIL2SingleMu3_Open_v7, process.HLT_HIL2SingleMu5_v7, process.HLT_HIL2SingleMu7_v7, process.HLT_HIL2SingleMu12_v1, process.HLT_HIL2DoubleMu0_Open_v7, process.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu0_M7to15_Open_v7, process.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu3_M7to15_Open_v7, process.HLT_HIL3SingleMu3_Open_v7, process.HLT_HIL3SingleMu5_v7, process.HLT_HIL3SingleMu7_v7, process.HLT_HIL3SingleMu12_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, process.HLT_HIL3DoubleMu0_M0toInf_Open_v7, process.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu0_M7to15_Open_v7, process.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, process.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu2_M7to15_Open_v7, process.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, process.HLT_HICscCluster_Loose_v7, process.HLT_HICscCluster_Medium_v7, process.HLT_HICscCluster_Tight_v7, process.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, process.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, process.HLT_HIL1NotBptxORForPPRef_v9, process.HLT_HIHT80_Beamspot_ppRef5TeV_v15, process.HLT_PPRefZeroBias_v6, process.HLT_AK4CaloJet40_v6, process.HLT_AK4CaloJet60_v6, process.HLT_AK4CaloJet70_v6, process.HLT_AK4CaloJet80_v6, process.HLT_AK4CaloJet100_v6, process.HLT_AK4CaloJet120_v6, process.HLT_AK4CaloJetFwd40_v6, process.HLT_AK4CaloJetFwd60_v6, process.HLT_AK4CaloJetFwd70_v6, process.HLT_AK4CaloJetFwd80_v6, process.HLT_AK4CaloJetFwd100_v6, process.HLT_AK4CaloJetFwd120_v6, process.HLT_AK4PFJet40_v8, process.HLT_AK4PFJet60_v8, process.HLT_AK4PFJet80_v8, process.HLT_AK4PFJet100_v8, process.HLT_AK4PFJet120_v8, process.HLT_AK4PFJetFwd40_v8, process.HLT_AK4PFJetFwd60_v8, process.HLT_AK4PFJetFwd80_v8, process.HLT_AK4PFJetFwd100_v8, process.HLT_AK4PFJetFwd120_v8, process.HLT_PPRefDoubleEle10Gsf_v6, process.HLT_PPRefDoubleEle10GsfMass50_v6, process.HLT_PPRefDoubleEle15Gsf_v6, process.HLT_PPRefDoubleEle15GsfMass50_v6, process.HLT_PPRefEle15Ele10Gsf_v6, process.HLT_PPRefEle15Ele10GsfMass50_v6, process.HLT_PPRefEle10Gsf_v6, process.HLT_PPRefEle15Gsf_v6, process.HLT_PPRefEle20Gsf_v7, process.HLT_PPRefEle30Gsf_v7, process.HLT_PPRefEle40Gsf_v6, process.HLT_PPRefEle50Gsf_v6, process.HLT_PPRefGEDPhoton10_v6, process.HLT_PPRefGEDPhoton10_EB_v6, process.HLT_PPRefGEDPhoton20_v6, process.HLT_PPRefGEDPhoton20_EB_v6, process.HLT_PPRefGEDPhoton30_v6, process.HLT_PPRefGEDPhoton30_EB_v6, process.HLT_PPRefGEDPhoton40_v6, process.HLT_PPRefGEDPhoton40_EB_v6, process.HLT_PPRefGEDPhoton50_v6, process.HLT_PPRefGEDPhoton50_EB_v6, process.HLT_PPRefGEDPhoton60_v6, process.HLT_PPRefGEDPhoton60_EB_v6, process.HLT_PPRefDoubleGEDPhoton20_v1, process.HLT_PPRefL1DoubleMu0_v6, process.HLT_PPRefL1DoubleMu0_SQ_v1, process.HLT_PPRefL1DoubleMu0_Open_v6, process.HLT_PPRefL1DoubleMu2_v1, process.HLT_PPRefL1DoubleMu2_SQ_v1, process.HLT_PPRefL1SingleMu0_Cosmics_v6, process.HLT_PPRefL1SingleMu7_v6, process.HLT_PPRefL1SingleMu12_v6, process.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, process.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, process.HLT_PPRefL2DoubleMu0_v6, process.HLT_PPRefL2DoubleMu0_Open_v6, process.HLT_PPRefL2SingleMu7_v6, process.HLT_PPRefL2SingleMu12_v6, process.HLT_PPRefL2SingleMu15_v6, process.HLT_PPRefL2SingleMu20_v6, process.HLT_PPRefL3DoubleMu0_v8, process.HLT_PPRefL3DoubleMu0_Open_v8, process.HLT_PPRefL3SingleMu3_v8, process.HLT_PPRefL3SingleMu5_v8, process.HLT_PPRefL3SingleMu7_v8, process.HLT_PPRefL3SingleMu12_v8, process.HLT_PPRefL3SingleMu15_v8, process.HLT_PPRefL3SingleMu20_v8, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, process.HLT_PPRefCscCluster_Loose_v6, process.HLT_PPRefCscCluster_Medium_v6, process.HLT_PPRefCscCluster_Tight_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt25_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt35_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt45_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt60_v6, process.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, process.HLT_PPRefUPC_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_ZDC1nOR_v1, process.HLT_PPRefZeroBias_FirstCollisionInTrain_v1, process.MC_ReducedIterativeTracking_v22, process.MC_AK4CaloJets_v19, process.MC_AK4CaloJetsFromPV_v18, process.MC_CaloHT_v18, process.MC_AK8CaloHT_v18, process.MC_CaloMHT_v18, process.MC_AK4PFJets_v29, process.MC_PFHT_v28, process.MC_AK8PFJets_v29, process.MC_AK8PFHT_v28, process.MC_CaloMET_v18, process.MC_CaloMET_JetIdCleaned_v19, process.MC_PFMET_v29, process.MC_PFMHT_v28, process.MC_AK4PFJetPNet_v5, process.MC_AK8PFJetPNet_v5, process.MC_Egamma_Open_v8, process.MC_Egamma_Open_Unseeded_v8, process.MC_Ele5_WPTight_Gsf_v18, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, process.MC_DoubleEle5_CaloIdL_MW_v26, process.MC_IsoMu_v27, process.MC_DoubleMu_TrkIsoVVL_DZ_v23, process.MC_DoubleMuNoFiltersNoVtx_v17, process.MC_PFScouting_v6, process.HLT_SpecialHLTPhysics_v7, process.AlCa_LumiPixelsCounts_RandomHighRate_v4, process.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, process.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, process.HLT_L1AXOVTight_v4, process.HLT_L1SingleMuOpen_v6, process.HLT_L1SingleMuOpen_DT_v6, process.HLT_L1SingleMu3_v5, process.HLT_L1SingleMu5_v5, process.HLT_L1SingleMu7_v5, process.HLT_L1DoubleMu0_v5, process.HLT_L1SingleJet8erHE_v5, process.HLT_L1SingleJet10erHE_v5, process.HLT_L1SingleJet12erHE_v5, process.HLT_L1SingleJet35_v5, process.HLT_L1SingleJet200_v5, process.HLT_L1SingleEG8er2p5_v4, process.HLT_L1SingleEG10er2p5_v4, process.HLT_L1SingleEG15er2p5_v4, process.HLT_L1SingleEG26er2p5_v4, process.HLT_L1SingleEG28er2p5_v4, process.HLT_L1SingleEG28er2p1_v4, process.HLT_L1SingleEG28er1p5_v4, process.HLT_L1SingleEG34er2p5_v4, process.HLT_L1SingleEG36er2p5_v4, process.HLT_L1SingleEG38er2p5_v4, process.HLT_L1SingleEG40er2p5_v4, process.HLT_L1SingleEG42er2p5_v4, process.HLT_L1SingleEG45er2p5_v4, process.HLT_L1SingleEG50_v4, process.HLT_L1SingleJet60_v4, process.HLT_L1SingleJet90_v4, process.HLT_L1SingleJet120_v4, process.HLT_L1SingleJet180_v4, process.HLT_L1HTT120er_v4, process.HLT_L1HTT160er_v4, process.HLT_L1HTT200er_v4, process.HLT_L1HTT255er_v4, process.HLT_L1HTT280er_v4, process.HLT_L1HTT320er_v4, process.HLT_L1HTT360er_v4, process.HLT_L1HTT400er_v4, process.HLT_L1HTT450er_v4, process.HLT_L1ETM120_v4, process.HLT_L1ETM150_v4, process.HLT_L1EXT_HCAL_LaserMon1_v5, process.HLT_L1EXT_HCAL_LaserMon4_v5, process.HLT_CscCluster_Cosmic_v4, process.HLT_HT60_Beamspot_v22, process.HLT_HT300_Beamspot_PixelClusters_WP2_v7, process.HLT_PixelClusters_WP2_v4, process.HLT_PixelClusters_WP1_v4, process.HLT_BptxOR_v6, process.HLT_L1SingleMuCosmics_EMTF_v4, process.HLT_L1SingleMuCosmics_CosmicTracking_v1, process.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, process.HLT_L1FatEvents_v5, process.HLT_Random_HighRate_v1, process.HLT_ZeroBias_HighRate_v4, process.HLT_ZeroBias_Gated_v4, process.HLT_SpecialZeroBias_v6, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.DQMHistograms, process.RatesMonitoring, process.Dataset_AlCaLowPtJet, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaLumiPixelsCountsPromptHighRate0, process.Dataset_AlCaLumiPixelsCountsPromptHighRate1, process.Dataset_AlCaLumiPixelsCountsPromptHighRate2, process.Dataset_AlCaLumiPixelsCountsPromptHighRate3, process.Dataset_AlCaLumiPixelsCountsPromptHighRate4, process.Dataset_AlCaLumiPixelsCountsPromptHighRate5, process.Dataset_AlCaLumiPixelsCountsGated, process.Dataset_AlCaP0, process.Dataset_AlCaPPSExpress, process.Dataset_AlCaPPSPrompt, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DQMPPSRandom, process.Dataset_DisplacedJet, process.Dataset_EGamma0, process.Dataset_EGamma1, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressCosmics, process.Dataset_ExpressPhysics, process.Dataset_HIDQMGPUvsCPU, process.Dataset_HIDQMOnlineBeamspot, process.Dataset_HIEmptyBX, process.Dataset_HIEphemeralHLTPhysics, process.Dataset_HIEphemeralZeroBias0, process.Dataset_HIEphemeralZeroBias1, process.Dataset_HIEventDisplay, process.Dataset_HIExpressAlignment, process.Dataset_HIExpressPhysics, process.Dataset_HIExpressPhysicsRawPrime, process.Dataset_HIForward0, process.Dataset_HIForward1, process.Dataset_HIForward2, process.Dataset_HIForward3, process.Dataset_HIForward4, process.Dataset_HIForward5, process.Dataset_HIForward6, process.Dataset_HIForward7, process.Dataset_HIForward8, process.Dataset_HIForward9, process.Dataset_HIForward10, process.Dataset_HIForward11, process.Dataset_HIForward12, process.Dataset_HIForward13, process.Dataset_HIForward14, process.Dataset_HIForward15, process.Dataset_HIForward16, process.Dataset_HIForward17, process.Dataset_HIForward18, process.Dataset_HIForward19, process.Dataset_HIHLTPhysics, process.Dataset_HIHcalNZS, process.Dataset_HIOnlineMonitor, process.Dataset_HIMinimumBias0, process.Dataset_HIMinimumBias1, process.Dataset_HIMinimumBias2, process.Dataset_HIMinimumBias3, process.Dataset_HIPhysicsRawPrime0, process.Dataset_HITrackerNZS, process.Dataset_HIZeroBias0, process.Dataset_HIZeroBias1, process.Dataset_HIZeroBias2, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_JetMET0, process.Dataset_JetMET1, process.Dataset_L1Accept, process.Dataset_MinimumBias, process.Dataset_MonteCarlo, process.Dataset_Muon0, process.Dataset_Muon1, process.Dataset_MuonEG, process.Dataset_MuonShower, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_PPRefDoubleMuon0, process.Dataset_PPRefDoubleMuon1, process.Dataset_PPRefDoubleMuon2, process.Dataset_PPRefDoubleMuon3, process.Dataset_PPRefHardProbes0, process.Dataset_PPRefSingleMuon0, process.Dataset_PPRefZeroBiasPlusForward0, process.Dataset_ParkingDoubleMuonLowMass0, process.Dataset_ParkingDoubleMuonLowMass1, process.Dataset_ParkingDoubleMuonLowMass2, process.Dataset_ParkingDoubleMuonLowMass3, process.Dataset_ParkingDoubleMuonLowMass4, process.Dataset_ParkingDoubleMuonLowMass5, process.Dataset_ParkingDoubleMuonLowMass6, process.Dataset_ParkingDoubleMuonLowMass7, process.Dataset_ParkingHH, process.Dataset_ParkingLLP, process.Dataset_ParkingSingleMuon0, process.Dataset_ParkingVBF0, process.Dataset_ParkingVBF1, process.Dataset_ParkingVBF2, process.Dataset_ParkingVBF3, process.Dataset_ParkingVBF4, process.Dataset_ParkingVBF5, process.Dataset_ParkingVBF6, process.Dataset_ParkingVBF7, process.Dataset_RPCMonitor, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.ALCALowPtJetOutput, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsGatedOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCALumiPixelsCountsPromptHighRate0Output, process.ALCALumiPixelsCountsPromptHighRate1Output, process.ALCALumiPixelsCountsPromptHighRate2Output, process.ALCALumiPixelsCountsPromptHighRate3Output, process.ALCALumiPixelsCountsPromptHighRate4Output, process.ALCALumiPixelsCountsPromptHighRate5Output, process.ALCAP0Output, process.ALCAPHISYMOutput, process.ALCAPPSExpressOutput, process.ALCAPPSPromptOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.DQMPPSRandomOutput, process.HIDQMOutput, process.HIDQMEventDisplayOutput, process.HIDQMGPUvsCPUOutput, process.HIDQMOnlineBeamspotOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.ExpressCosmicsOutput, process.HIExpressOutput, process.HIExpressAlignmentOutput, process.HIExpressRawPrimeOutput, process.HLTMonitorOutput, process.PhysicsHLTPhysics2Output, process.ParkingDoubleMuonLowMass0Output, process.ParkingDoubleMuonLowMass1Output, process.ParkingDoubleMuonLowMass2Output, process.ParkingDoubleMuonLowMass3Output, process.ParkingHHOutput, process.ParkingLLPOutput, process.ParkingSingleMuon0Output, process.ParkingSingleMuon1Output, process.ParkingSingleMuon2Output, process.ParkingSingleMuon3Output, process.ParkingSingleMuon4Output, process.ParkingSingleMuon5Output, process.ParkingSingleMuon6Output, process.ParkingSingleMuon7Output, process.ParkingSingleMuon8Output, process.ParkingSingleMuon9Output, process.ParkingSingleMuon10Output, process.ParkingSingleMuon11Output, process.ParkingVBF0Output, process.ParkingVBF1Output, process.ParkingVBF2Output, process.ParkingVBF3Output, process.PhysicsCommissioningOutput, process.PhysicsDispJetBTagMuEGTauOutput, process.PhysicsEGamma0Output, process.PhysicsEGamma1Output, process.PhysicsHICommissioningOutput, process.PhysicsHIForward0Output, process.PhysicsHIForward1Output, process.PhysicsHIForward2Output, process.PhysicsHIForward3Output, process.PhysicsHIForward4Output, process.PhysicsHIForward5Output, process.PhysicsHIForward6Output, process.PhysicsHIForward7Output, process.PhysicsHIForward8Output, process.PhysicsHIForward9Output, process.PhysicsHIForward10Output, process.PhysicsHIForward11Output, process.PhysicsHIForward12Output, process.PhysicsHIForward13Output, process.PhysicsHIForward14Output, process.PhysicsHIForward15Output, process.PhysicsHIForward16Output, process.PhysicsHIForward17Output, process.PhysicsHIForward18Output, process.PhysicsHIForward19Output, process.PhysicsHIHLTPhysicsOutput, process.PhysicsHIMinimumBias0Output, process.PhysicsHIMinimumBias1Output, process.PhysicsHIMinimumBias2Output, process.PhysicsHIMinimumBias3Output, process.PhysicsHIPhysicsRawPrime0Output, process.PhysicsHIPhysicsRawPrime1Output, process.PhysicsHIPhysicsRawPrime2Output, process.PhysicsHIPhysicsRawPrime3Output, process.PhysicsHIPhysicsRawPrime4Output, process.PhysicsHIPhysicsRawPrime5Output, process.PhysicsHIPhysicsRawPrime6Output, process.PhysicsHIPhysicsRawPrime7Output, process.PhysicsHIPhysicsRawPrime8Output, process.PhysicsHIPhysicsRawPrime9Output, process.PhysicsHIPhysicsRawPrime10Output, process.PhysicsHIPhysicsRawPrime11Output, process.PhysicsHIPhysicsRawPrime12Output, process.PhysicsHIPhysicsRawPrime13Output, process.PhysicsHIPhysicsRawPrime14Output, process.PhysicsHIPhysicsRawPrime15Output, process.PhysicsHIPhysicsRawPrime16Output, process.PhysicsHIPhysicsRawPrime17Output, process.PhysicsHIPhysicsRawPrime18Output, process.PhysicsHIPhysicsRawPrime19Output, process.PhysicsHIPhysicsRawPrime20Output, process.PhysicsHIPhysicsRawPrime21Output, process.PhysicsHIPhysicsRawPrime22Output, process.PhysicsHIPhysicsRawPrime23Output, process.PhysicsHIPhysicsRawPrime24Output, process.PhysicsHIPhysicsRawPrime25Output, process.PhysicsHIPhysicsRawPrime26Output, process.PhysicsHIPhysicsRawPrime27Output, process.PhysicsHIPhysicsRawPrime28Output, process.PhysicsHIPhysicsRawPrime29Output, process.PhysicsHIPhysicsRawPrime30Output, process.PhysicsHIPhysicsRawPrime31Output, process.PhysicsHITrackerNZSOutput, process.PhysicsHIZeroBiasOutput, process.PhysicsHIZeroBiasRAW0Output, process.PhysicsHIZeroBiasRAW1Output, process.PhysicsHIZeroBiasRAW2Output, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics3Output, process.PhysicsJetMET0Output, process.PhysicsJetMET1Output, process.PhysicsMuon0Output, process.PhysicsMuon1Output, process.PhysicsPPRefDoubleMuon0Output, process.PhysicsPPRefDoubleMuon1Output, process.PhysicsPPRefDoubleMuon2Output, process.PhysicsPPRefDoubleMuon3Output, process.PhysicsPPRefHardProbes0Output, process.PhysicsPPRefHardProbes1Output, process.PhysicsPPRefHardProbes2Output, process.PhysicsPPRefSingleMuon0Output, process.PhysicsPPRefSingleMuon1Output, process.PhysicsPPRefSingleMuon2Output, process.PhysicsPPRefZeroBiasPlusForward0Output, process.PhysicsPPRefZeroBiasPlusForward1Output, process.PhysicsPPRefZeroBiasPlusForward2Output, process.PhysicsPPRefZeroBiasPlusForward3Output, process.PhysicsPPRefZeroBiasPlusForward4Output, process.PhysicsPPRefZeroBiasPlusForward5Output, process.PhysicsPPRefZeroBiasPlusForward6Output, process.PhysicsPPRefZeroBiasPlusForward7Output, process.PhysicsPPRefZeroBiasPlusForward8Output, process.PhysicsPPRefZeroBiasPlusForward9Output, process.PhysicsScoutingPFMonitorOutput, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.NanoDSTOutput, process.RPCMONOutput, process.ScoutingPFOutput, process.PhysicsSpecialHLTPhysics0Output, process.PhysicsSpecialHLTPhysics1Output, process.PhysicsSpecialHLTPhysics2Output, process.PhysicsSpecialHLTPhysics3Output, process.PhysicsSpecialHLTPhysics4Output, process.PhysicsSpecialHLTPhysics5Output, process.PhysicsSpecialHLTPhysics6Output, process.PhysicsSpecialHLTPhysics7Output, process.PhysicsSpecialHLTPhysics8Output, process.PhysicsSpecialHLTPhysics9Output, process.PhysicsSpecialHLTPhysics10Output, process.PhysicsSpecialHLTPhysics11Output, process.PhysicsSpecialHLTPhysics12Output, process.PhysicsSpecialHLTPhysics13Output, process.PhysicsSpecialHLTPhysics14Output, process.PhysicsSpecialHLTPhysics15Output, process.PhysicsSpecialHLTPhysics16Output, process.PhysicsSpecialHLTPhysics17Output, process.PhysicsSpecialHLTPhysics18Output, process.PhysicsSpecialHLTPhysics19Output, process.PhysicsSpecialRandom0Output, process.PhysicsSpecialRandom1Output, process.PhysicsSpecialRandom2Output, process.PhysicsSpecialRandom3Output, process.PhysicsSpecialRandom4Output, process.PhysicsSpecialRandom5Output, process.PhysicsSpecialRandom6Output, process.PhysicsSpecialRandom7Output, process.PhysicsSpecialRandom8Output, process.PhysicsSpecialRandom9Output, process.PhysicsSpecialZeroBias0Output, process.PhysicsSpecialZeroBias1Output, process.PhysicsSpecialZeroBias2Output, process.PhysicsSpecialZeroBias3Output, process.PhysicsSpecialZeroBias4Output, process.PhysicsSpecialZeroBias5Output, process.PhysicsSpecialZeroBias6Output, process.PhysicsSpecialZeroBias7Output, process.PhysicsSpecialZeroBias8Output, process.PhysicsSpecialZeroBias9Output, process.PhysicsSpecialZeroBias10Output, process.PhysicsSpecialZeroBias11Output, process.PhysicsSpecialZeroBias12Output, process.PhysicsSpecialZeroBias13Output, process.PhysicsSpecialZeroBias14Output, process.PhysicsSpecialZeroBias15Output, process.Dataset_SpecialRandom0, process.Dataset_SpecialRandom1, process.Dataset_SpecialRandom2, process.Dataset_SpecialRandom3, process.Dataset_SpecialRandom4, process.Dataset_SpecialRandom5, process.Dataset_SpecialRandom6, process.Dataset_SpecialRandom7, process.Dataset_SpecialRandom8, process.Dataset_SpecialRandom9, process.Dataset_SpecialRandom10, process.Dataset_SpecialRandom11, process.Dataset_SpecialRandom12, process.Dataset_SpecialRandom13, process.Dataset_SpecialRandom14, process.Dataset_SpecialRandom15, process.Dataset_SpecialRandom16, process.Dataset_SpecialRandom17, process.Dataset_SpecialRandom18, process.Dataset_SpecialRandom19, process.Dataset_SpecialZeroBias0, process.Dataset_SpecialZeroBias1, process.Dataset_SpecialZeroBias2, process.Dataset_SpecialZeroBias3, process.Dataset_SpecialZeroBias4, process.Dataset_SpecialZeroBias5, process.Dataset_SpecialZeroBias6, process.Dataset_SpecialZeroBias7, process.Dataset_SpecialZeroBias8, process.Dataset_SpecialZeroBias9, process.Dataset_SpecialZeroBias10, process.Dataset_SpecialZeroBias11, process.Dataset_SpecialZeroBias12, process.Dataset_SpecialZeroBias13, process.Dataset_SpecialZeroBias14, process.Dataset_SpecialZeroBias15, process.Dataset_SpecialZeroBias16, process.Dataset_SpecialZeroBias17, process.Dataset_SpecialZeroBias18, process.Dataset_SpecialZeroBias19, process.Dataset_SpecialZeroBias20, process.Dataset_SpecialZeroBias21, process.Dataset_SpecialZeroBias22, process.Dataset_SpecialZeroBias23, process.Dataset_SpecialZeroBias24, process.Dataset_SpecialZeroBias25, process.Dataset_SpecialZeroBias26, process.Dataset_SpecialZeroBias27, process.Dataset_SpecialZeroBias28, process.Dataset_SpecialZeroBias29, process.Dataset_SpecialZeroBias30, process.Dataset_SpecialZeroBias31, process.Dataset_SpecialHLTPhysics0, process.Dataset_SpecialHLTPhysics1, process.Dataset_SpecialHLTPhysics2, process.Dataset_SpecialHLTPhysics3, process.Dataset_SpecialHLTPhysics4, process.Dataset_SpecialHLTPhysics5, process.Dataset_SpecialHLTPhysics6, process.Dataset_SpecialHLTPhysics7, process.Dataset_SpecialHLTPhysics8, process.Dataset_SpecialHLTPhysics9, process.Dataset_SpecialHLTPhysics10, process.Dataset_SpecialHLTPhysics11, process.Dataset_SpecialHLTPhysics12, process.Dataset_SpecialHLTPhysics13, process.Dataset_SpecialHLTPhysics14, process.Dataset_SpecialHLTPhysics15, process.Dataset_SpecialHLTPhysics16, process.Dataset_SpecialHLTPhysics17, process.Dataset_SpecialHLTPhysics18, process.Dataset_SpecialHLTPhysics19, process.Dataset_ParkingSingleMuon1, process.Dataset_ParkingSingleMuon2, process.Dataset_ParkingSingleMuon3, process.Dataset_ParkingSingleMuon4, process.Dataset_ParkingSingleMuon5, process.Dataset_ParkingSingleMuon6, process.Dataset_ParkingSingleMuon7, process.Dataset_ParkingSingleMuon8, process.Dataset_ParkingSingleMuon9, process.Dataset_ParkingSingleMuon10, process.Dataset_ParkingSingleMuon11, process.Dataset_PPRefZeroBiasPlusForward1, process.Dataset_PPRefZeroBiasPlusForward2, process.Dataset_PPRefZeroBiasPlusForward3, process.Dataset_PPRefZeroBiasPlusForward4, process.Dataset_PPRefZeroBiasPlusForward5, process.Dataset_PPRefZeroBiasPlusForward6, process.Dataset_PPRefZeroBiasPlusForward7, process.Dataset_PPRefZeroBiasPlusForward8, process.Dataset_PPRefZeroBiasPlusForward9, process.Dataset_PPRefZeroBiasPlusForward10, process.Dataset_PPRefZeroBiasPlusForward11, process.Dataset_PPRefZeroBiasPlusForward12, process.Dataset_PPRefZeroBiasPlusForward13, process.Dataset_PPRefZeroBiasPlusForward14, process.Dataset_PPRefZeroBiasPlusForward15, process.Dataset_PPRefZeroBiasPlusForward16, process.Dataset_PPRefZeroBiasPlusForward17, process.Dataset_PPRefZeroBiasPlusForward18, process.Dataset_PPRefZeroBiasPlusForward19, process.Dataset_PPRefZeroBiasPlusForward20, process.Dataset_PPRefZeroBiasPlusForward21, process.Dataset_PPRefZeroBiasPlusForward22, process.Dataset_PPRefZeroBiasPlusForward23, process.Dataset_PPRefZeroBiasPlusForward24, process.Dataset_PPRefSingleMuon1, process.Dataset_PPRefSingleMuon2, process.Dataset_PPRefSingleMuon3, process.Dataset_PPRefHardProbes1, process.Dataset_PPRefHardProbes2, process.Dataset_PPRefHardProbes3, process.Dataset_PPRefHardProbes4, process.PhysicsPPRefHardProbes3Output, process.PhysicsPPRefHardProbes4Output, process.PhysicsPPRefSingleMuon3Output, process.PhysicsPPRefZeroBiasPlusForward10Output, process.PhysicsPPRefZeroBiasPlusForward11Output, process.PhysicsPPRefZeroBiasPlusForward12Output, process.PhysicsPPRefZeroBiasPlusForward13Output, process.PhysicsPPRefZeroBiasPlusForward14Output, process.PhysicsPPRefZeroBiasPlusForward15Output, process.PhysicsPPRefZeroBiasPlusForward16Output, process.PhysicsPPRefZeroBiasPlusForward18Output, process.PhysicsPPRefZeroBiasPlusForward19Output, process.PhysicsPPRefZeroBiasPlusForward17Output, process.PhysicsPPRefZeroBiasPlusForward24Output, process.PhysicsPPRefZeroBiasPlusForward23Output, process.PhysicsPPRefZeroBiasPlusForward22Output, process.PhysicsPPRefZeroBiasPlusForward21Output, process.PhysicsPPRefZeroBiasPlusForward20Output, process.Dataset_HIPhysicsRawPrime1, process.Dataset_HIPhysicsRawPrime2, process.Dataset_HIPhysicsRawPrime3, process.Dataset_HIPhysicsRawPrime4, process.Dataset_HIPhysicsRawPrime5, process.Dataset_HIPhysicsRawPrime6, process.Dataset_HIPhysicsRawPrime7, process.Dataset_HIPhysicsRawPrime8, process.Dataset_HIPhysicsRawPrime9, process.Dataset_HIPhysicsRawPrime10, process.Dataset_HIPhysicsRawPrime11, process.Dataset_HIPhysicsRawPrime12, process.Dataset_HIPhysicsRawPrime13, process.Dataset_HIPhysicsRawPrime14, process.Dataset_HIPhysicsRawPrime15, process.Dataset_HIPhysicsRawPrime16, process.Dataset_HIPhysicsRawPrime17, process.Dataset_HIPhysicsRawPrime18, process.Dataset_HIPhysicsRawPrime19, process.Dataset_HIPhysicsRawPrime20, process.Dataset_HIPhysicsRawPrime21, process.Dataset_HIPhysicsRawPrime22, process.Dataset_HIPhysicsRawPrime23, process.Dataset_HIPhysicsRawPrime24, process.Dataset_HIPhysicsRawPrime25, process.Dataset_HIPhysicsRawPrime26, process.Dataset_HIPhysicsRawPrime27, process.Dataset_HIPhysicsRawPrime28, process.Dataset_HIPhysicsRawPrime29, process.Dataset_HIPhysicsRawPrime30, process.Dataset_HIPhysicsRawPrime31, process.Dataset_HIPhysicsRawPrime32, process.Dataset_HIPhysicsRawPrime33, process.Dataset_HIPhysicsRawPrime34, process.Dataset_HIPhysicsRawPrime35, process.Dataset_HIPhysicsRawPrime36, process.Dataset_HIPhysicsRawPrime37, process.Dataset_HIPhysicsRawPrime38, process.Dataset_HIPhysicsRawPrime39, process.Dataset_HIPhysicsRawPrime40, process.Dataset_HIPhysicsRawPrime41, process.Dataset_HIPhysicsRawPrime42, process.Dataset_HIPhysicsRawPrime43, process.Dataset_HIPhysicsRawPrime44, process.Dataset_HIPhysicsRawPrime45, process.Dataset_HIPhysicsRawPrime46, process.Dataset_HIPhysicsRawPrime47, process.Dataset_HIPhysicsRawPrime48, process.Dataset_HIPhysicsRawPrime49, process.Dataset_HIPhysicsRawPrime50, process.Dataset_HIPhysicsRawPrime51, process.Dataset_HIPhysicsRawPrime52, process.Dataset_HIPhysicsRawPrime53, process.Dataset_HIPhysicsRawPrime54, process.Dataset_HIPhysicsRawPrime55, process.Dataset_HIPhysicsRawPrime56, process.Dataset_HIPhysicsRawPrime57, process.Dataset_HIPhysicsRawPrime58, process.Dataset_HIPhysicsRawPrime59, process.PhysicsHIPhysicsRawPrime59Output, process.PhysicsHIPhysicsRawPrime58Output, process.PhysicsHIPhysicsRawPrime57Output, process.PhysicsHIPhysicsRawPrime56Output, process.PhysicsHIPhysicsRawPrime55Output, process.PhysicsHIPhysicsRawPrime54Output, process.PhysicsHIPhysicsRawPrime53Output, process.PhysicsHIPhysicsRawPrime52Output, process.PhysicsHIPhysicsRawPrime51Output, process.PhysicsHIPhysicsRawPrime50Output, process.PhysicsHIPhysicsRawPrime49Output, process.PhysicsHIPhysicsRawPrime48Output, process.PhysicsHIPhysicsRawPrime47Output, process.PhysicsHIPhysicsRawPrime46Output, process.PhysicsHIPhysicsRawPrime45Output, process.PhysicsHIPhysicsRawPrime44Output, process.PhysicsHIPhysicsRawPrime42Output, process.PhysicsHIPhysicsRawPrime41Output, process.PhysicsHIPhysicsRawPrime40Output, process.PhysicsHIPhysicsRawPrime39Output, process.PhysicsHIPhysicsRawPrime38Output, process.PhysicsHIPhysicsRawPrime37Output, process.PhysicsHIPhysicsRawPrime36Output, process.PhysicsHIPhysicsRawPrime35Output, process.PhysicsHIPhysicsRawPrime34Output, process.PhysicsHIPhysicsRawPrime33Output, process.PhysicsHIPhysicsRawPrime32Output, process.PhysicsHIPhysicsRawPrime43Output, )) # source module (EDM inputs) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py index be78d8760227b..f633088769340 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/GRun --full --data --type GRun --unprescale --process HLTGRun --globaltag auto:run3_hlt_GRun --input file:RelVal_Raw_GRun_DATA.root -# /dev/CMSSW_14_1_0/GRun/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/GRun/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/GRun/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/GRun/V50") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -6692,8 +6692,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -11446,8 +11446,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), diff --git a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py index d5a0cfa4a7a45..8ab0d5e8ef626 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/HIon --full --data --type HIon --unprescale --process HLTHIon --globaltag auto:run3_hlt_HIon --input file:RelVal_Raw_HIon_DATA.root -# /dev/CMSSW_14_1_0/HIon/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/HIon/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/HIon/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/HIon/V50") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1516,9 +1516,7 @@ HIDQMGPUvsCPU = cms.vstring( 'DQM_HIEcalReconstruction_v10', 'DQM_HIHcalReconstruction_v8', 'DQM_HIPixelReconstruction_v12' ), - HIDQMOnlineBeamspot = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ), + HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ), HIEmptyBX = cms.vstring( 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1UnpairedBunchBptxMinus_v14', 'HLT_HIL1UnpairedBunchBptxPlus_v14' ), @@ -1535,9 +1533,7 @@ 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', 'HLT_HIMinimumBiasHF1AND_copy_v6' ), - HIExpressAlignment = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ), + HIExpressAlignment = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ), HIExpressPhysics = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', @@ -1583,6 +1579,8 @@ HIForward0 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1721,6 +1719,8 @@ HIForward1 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1859,6 +1859,8 @@ HIForward10 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -1997,6 +1999,8 @@ HIForward11 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2135,6 +2139,8 @@ HIForward12 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2273,6 +2279,8 @@ HIForward13 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2411,6 +2419,8 @@ HIForward14 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2549,6 +2559,8 @@ HIForward15 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2687,6 +2699,8 @@ HIForward16 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2825,6 +2839,8 @@ HIForward17 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -2963,6 +2979,8 @@ HIForward18 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3101,6 +3119,8 @@ HIForward19 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3239,6 +3259,8 @@ HIForward2 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3377,6 +3399,8 @@ HIForward3 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3515,6 +3539,8 @@ HIForward4 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3653,6 +3679,8 @@ HIForward5 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3791,6 +3819,8 @@ HIForward6 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -3929,6 +3959,8 @@ HIForward7 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4067,6 +4099,8 @@ HIForward8 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4205,6 +4239,8 @@ HIForward9 = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -4356,6 +4392,7 @@ 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7', 'HLT_HIMinimumBiasHF1AND_v7' ), HIOnlineMonitor = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', + 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', 'HLT_HIHcalNZS_v14', @@ -12934,7 +12971,7 @@ ) process.hltL1sAlCaEcalPhiSymForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_MinimumBiasHF1_AND_BptxAND OR L1_ZeroBias OR L1_AlwaysTrue OR L1_IsolatedBunch" ), + L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -13074,8 +13111,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -13142,7 +13179,7 @@ ) process.hltL1sAlCaEcalPi0EtaForHI = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AND_MinimumBiasHF1_AND_BptxAND OR L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC2n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC3n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AND_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AND_MinimumBiasHF1_AND_BptxAND OR L1_MinimumBiasHF1_AND_BptxAND OR L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG21_BptxAND OR L1_SingleJet56_BptxAND OR L1_SingleEG3 OR L1_SingleEG5 OR L1_SingleEG50 OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -13935,7 +13972,7 @@ process.hltPixelTracksSoACompareGPUvsCPUPPOnAA = cms.EDProducer( "SiPixelHIonPhase1CompareTracks", pixelTrackReferenceSoA = cms.InputTag( "hltPixelTracksPPOnAASoASerialSync" ), pixelTrackTargetSoA = cms.InputTag( "hltPixelTracksPPOnAASoA" ), - topFolderName = cms.string( "SiPixelHeterogeneous/PixelTrackCompareDeviceVSHost" ), + topFolderName = cms.string( "SiPixelHeterogeneous/PixelTrackCompareGPUvsCPU" ), useQualityCut = cms.bool( True ), minQuality = cms.string( "loose" ), deltaR2cut = cms.double( 4.0E-4 ) @@ -13954,7 +13991,7 @@ pixelVertexReferenceSoA = cms.InputTag( "hltPixelVerticesPPOnAASoASerialSync" ), pixelVertexTargetSoA = cms.InputTag( "hltPixelVerticesPPOnAASoA" ), beamSpotSrc = cms.InputTag( "hltOnlineBeamSpot" ), - topFolderName = cms.string( "SiPixelHeterogeneous/PixelVertexCompareSoADeviceVSHost" ), + topFolderName = cms.string( "SiPixelHeterogeneous/PixelVertexCompareGPUvsCPU" ), dzCut = cms.double( 1.0 ) ) process.hltL1sDQMHIEcalReconstruction = cms.EDFilter( "HLTL1TSeed", @@ -14061,8 +14098,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -14893,7 +14930,79 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltPreHIMinimumBiasHF1ANDBeamspot = cms.EDFilter( "HLTPrescaler", +process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_OR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_OR_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHIMinimumBiasHF1ANDZDC1nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHIMinimumBiasHF1ANDZDC2nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHIMinimumBiasHF1ANDZDC1nORcopy = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHIMinimumBiasHF1ANDZDC2nORcopy = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInOrbit_Centrality30_100_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHICentrality30100FirstCollisionAfterAbortGap = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL1sCentrality50100MinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_Centrality_50_100_MinimumBiasHF1_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHICentrality50100MinimumBiasHF1ANDBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) @@ -19271,73 +19380,6 @@ inputTag = cms.InputTag( "rawDataCollector" ), fedList = cms.vuint32( 1022 ) ) -process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_MinimumBiasHF1_AND_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPreHIMinimumBiasHF1ANDZDC1nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC2n_OR_MinimumBiasHF1_AND_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPreHIMinimumBiasHF1ANDZDC2nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHIMinimumBiasHF1ANDZDC1nORcopy = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHIMinimumBiasHF1ANDZDC2nORcopy = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHIMinimumBiasHF1ANDZDC1nORBeamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHIMinimumBiasHF1ANDZDC2nORBeamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInOrbit_Centrality30_100_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPreHICentrality30100FirstCollisionAfterAbortGap = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) process.hltL1Centrality30to50BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_Centrality_30_50_BptxAND" ), @@ -23283,7 +23325,7 @@ ) process.hltL1sZDC1nOR = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_Bkp1_OR_BptxAND OR L1_ZDC1n_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23308,7 +23350,7 @@ ) process.hltL1sZDC1nXORHF1AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF1_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_XOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_XOR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23351,7 +23393,7 @@ ) process.hltL1sZDC1nXORHF2AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF2_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp1_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp2_XOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp3_XOR_MinimumBiasHF2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23376,7 +23418,7 @@ ) process.hltL1sZDC1nAsymXORHF1AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF1_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp1_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp2_AsymXOR_MinimumBiasHF1_AND_BptxAND OR L1_ZDC1n_Bkp3_AsymXOR_MinimumBiasHF1_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23401,7 +23443,7 @@ ) process.hltL1sZDC1nAsymXORHF2AND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF2_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp1_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp2_AsymXOR_MinimumBiasHF2_AND_BptxAND OR L1_ZDC1n_Bkp3_AsymXOR_MinimumBiasHF2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23846,6 +23888,27 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +process.hltL1sDoubleEG3NotHF2AND = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleEG3_NotMinimumBiasHF2_AND_BptxAND" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPreHIUPCDoubleEG3NotMBHF2AND = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHIUPCDoubleEG3NotMBHF2ANDSinglePixelTrackMaxPixelTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreHIUPCDoubleEG5BptxANDSinglePixelTrackMaxPixelTrack = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -23873,7 +23936,7 @@ ) process.hltL1sZDC1nXORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_XOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23890,7 +23953,7 @@ ) process.hltL1sZDC1nXORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_XOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23907,7 +23970,7 @@ ) process.hltL1sZDC1nXORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_XOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23924,7 +23987,7 @@ ) process.hltL1sZDC1nXORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_XOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23941,7 +24004,7 @@ ) process.hltL1sZDC1nXORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_XOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23958,7 +24021,7 @@ ) process.hltL1sZDC1nXORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_XOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_XOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp1_XOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp2_XOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23975,7 +24038,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet8_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -23992,7 +24055,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet12_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24009,7 +24072,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet16_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24026,7 +24089,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet20_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24043,7 +24106,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet24_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24060,7 +24123,7 @@ ) process.hltL1sZDC1nAsymXORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp1_AsymXOR_BptxAND OR L1_SingleJet28_ZDC1n_Bkp2_AsymXOR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24217,7 +24280,7 @@ ) process.hltL1sZDC1nANDANDNotMBHF2BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AND_AND_NotMBHF2_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZDC1n_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp1_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp2_AND_AND_NotMBHF2_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24234,7 +24297,7 @@ ) process.hltL1sZeroBiasZDC1nORZDC1nANDANDNotMBHF2BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_AND_AND_NotMBHF2_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_ZeroBias OR L1_ZDC1n_OR_BptxAND OR L1_ZDC1n_Bkp1_OR_BptxAND OR L1_ZDC1n_Bkp2_OR_BptxAND OR L1_ZDC1n_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp1_AND_AND_NotMBHF2_BptxAND OR L1_ZDC1n_Bkp2_AND_AND_NotMBHF2_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24834,7 +24897,7 @@ ) process.hltL1sNotZDC1nORSingleJet8BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_notZDC_OR_BptxAND OR L1_SingleJet8_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet8_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24851,7 +24914,7 @@ ) process.hltL1sNotZDC1nORSingleJet12BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_notZDC_OR_BptxAND OR L1_SingleJet12_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet12_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24868,7 +24931,7 @@ ) process.hltL1sNotZDC1nORSingleJet16BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_notZDC_OR_BptxAND OR L1_SingleJet16_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet16_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24885,7 +24948,7 @@ ) process.hltL1sNotZDC1nORSingleJet20BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_notZDC_OR_BptxAND OR L1_SingleJet20_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet20_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24902,7 +24965,7 @@ ) process.hltL1sNotZDC1nORSingleJet24BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_notZDC_OR_BptxAND OR L1_SingleJet24_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet24_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -24919,7 +24982,7 @@ ) process.hltL1sNotZDC1nORSingleJet28BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_notZDC_OR_BptxAND OR L1_SingleJet28_notZDC_Bkp1_OR_BptxAND OR L1_SingleJet28_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -25089,7 +25152,7 @@ ) process.hltL1sNotZDC1nANDDoubleJet8DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -25106,7 +25169,7 @@ ) process.hltL1sNotZDC1nANDDoubleJet12DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -25123,7 +25186,7 @@ ) process.hltL1sNotZDC1nANDDoubleJet16DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_AND_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_AND_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_Bkp1_AND_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_NotZDC1n_Bkp2_AND_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -25140,7 +25203,7 @@ ) process.hltL1sNotZDC1nORDoubleJet8DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet8_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet8_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -25157,7 +25220,7 @@ ) process.hltL1sNotZDC1nORDoubleJet12DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet12_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet12_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -25174,7 +25237,7 @@ ) process.hltL1sNotZDC1nORDoubleJet16DeltaPhi2p0BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_notZDC_OR_BptxAND" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleJet16_DeltaPhi2p0_notZDC_OR_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_notZDC_Bkp1_OR_BptxAND OR L1_DoubleJet16_DeltaPhi2p0_notZDC_Bkp2_OR_BptxAND" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -29800,9 +29863,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ) ) process.hltPreDatasetHIDQMOnlineBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29858,9 +29919,9 @@ throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8 / 0', 'HLT_HIDoubleEle15GsfMass50_v14', - 'HLT_HIDoubleGEDPhoton20_v7 / 65', + 'HLT_HIDoubleGEDPhoton20_v7 / 6', 'HLT_HIL1SingleMu5_SingleEG20Gsf_v7', - 'HLT_HIL1SingleMu5_SingleGEDPhoton20_v7 / 25', + 'HLT_HIL1SingleMu5_SingleGEDPhoton20_v7 / 6', 'HLT_HIL2DoubleMu0_M1p5to6_Open_v7 / 335', 'HLT_HIL3DoubleMu2_Quarkonia_Open_v7 / 200', 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 20', @@ -29877,9 +29938,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8', - 'HLT_HIMinimumBiasHF1AND_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ) ) process.hltPreDatasetHIExpressAlignment = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29904,14 +29963,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 35', 'HLT_HIL3SingleMu5_v7 / 2000', 'HLT_HIL3SingleMu7_v7 / 800', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', - 'HLT_HIMinimumBiasHF1AND_copy_v6', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14 / 2', - 'HLT_HIZeroBias_v14 / 5' ) + 'HLT_HIZeroBias_v14' ) ) process.hltPreDatasetHIExpressPhysics = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29924,8 +29983,8 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', - 'HLT_HIEle20Gsf_v14', - 'HLT_HIGEDPhoton40_v14 / 2', + 'HLT_HIEle20Gsf_v14 / 2', + 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1SingleMu0_Cosmic_v7 / 0', 'HLT_HIL1UnpairedBunchBptxMinus_v14 / 2', @@ -29936,14 +29995,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 35', 'HLT_HIL3SingleMu5_v7 / 2000', 'HLT_HIL3SingleMu7_v7 / 800', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', - 'HLT_HIMinimumBiasHF1AND_copy_v6', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', - 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 5', + 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14 / 2', - 'HLT_HIZeroBias_v14 / 5' ) + 'HLT_HIZeroBias_v14' ) ) process.hltPreDatasetHIExpressPhysicsRawPrime = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -29958,6 +30017,8 @@ triggerConditions = cms.vstring( 'HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1', + 'HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1', 'HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14', 'HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12', @@ -30206,7 +30267,8 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', - 'HLT_HIEle20Gsf_v14 / 3', + 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 / 5', + 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIHcalNZS_v14 / 3', 'HLT_HIHcalPhiSym_v14 / 3', @@ -30220,14 +30282,14 @@ 'HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7 / 10', 'HLT_HIL3SingleMu5_v7 / 0', 'HLT_HIL3SingleMu7_v7 / 0', - 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 20', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 20', - 'HLT_HIMinimumBiasHF1AND_copy_v6 / 20', + 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 / 15', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 / 15', + 'HLT_HIMinimumBiasHF1AND_copy_v6 / 15', 'HLT_HIPhysics_v14', - 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 2', + 'HLT_HIPuAK4CaloJet100Eta5p1_v14 / 8', 'HLT_HIRandom_v7 / 3', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14', - 'HLT_HIZeroBias_v14 / 3' ) + 'HLT_HIZeroBias_v14' ) ) process.hltPreDatasetHIOnlineMonitor = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -30239,9 +30301,9 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 / 700', - 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 / 700', - 'HLT_HIMinimumBiasHF1AND_v7 / 700' ) + triggerConditions = cms.vstring( 'HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 / 5000', + 'HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 / 5000', + 'HLT_HIMinimumBiasHF1AND_v7 / 5000' ) ) process.hltPreDatasetHIMinimumBias0 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -30768,13 +30830,22 @@ ), SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_HIOnlineMonitor' ) ), outputCommands = cms.untracked.vstring( 'drop *', + 'keep *_hltDoubletRecoveryPFlowTrackSelectionHighPurityPPOnAA_*_*', 'keep *_hltEcalRecHit_*_*', + 'keep *_hltHITrackingSiStripRawToClustersFacilityFullZeroSuppression_*_*', 'keep *_hltHbhereco_*_*', 'keep *_hltHfreco_*_*', 'keep *_hltHoreco_*_*', + 'keep *_hltMergedTracksPPOnAA_*_*', 'keep *_hltOnlineBeamSpot_*_*', + 'keep *_hltPFMuonMergingPPOnAA_*_*', + 'keep *_hltPixelTracksPPOnAA_*_*', + 'keep *_hltPixelVerticesPPOnAA_*_*', + 'keep *_hltSiPixelClustersAfterSplittingPPOnAA_*_*', 'keep *_hltSiStripClusterizerForRawPrime_*_*', 'keep *_hltSiStripClusters2ApproxClusters_*_*', + 'keep *_hltTrimmedPixelVerticesPPOnAA_*_*', + 'keep *_hltVerticesPFFilterPPOnAA_*_*', 'keep DetIds_hltSiStripRawToDigi_*_*', 'keep FEDRawDataCollection_rawDataCollector_*_*', 'keep FEDRawDataCollection_rawDataRepacker_*_*', @@ -32674,14 +32745,12 @@ process.HLT_HIZeroBias_HighRateRAW_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sZeroBiasCopy + process.hltPreHIZeroBiasHighRateRAW + process.HLTDoHIStripZeroSuppression + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1AND_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1AND + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1AND_copy_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDcopy + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HIMinimumBiasHF1AND_Beamspot_v8 = cms.Path( process.HLTBeginSequence + process.hltL1sMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDBeamspot + process.HLTPuAK4CaloJetsSequence + process.HLTCsAK4PFJetsSequence + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC1nOR + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC2nOR + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC1nORcopy + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC2nORcopy + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC1nORBeamspot + process.HLTPuAK4CaloJetsSequence + process.HLTCsAK4PFJetsSequence + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) -process.HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC2nORMinimumBiasHF1ANDBptxAND + process.hltPreHIMinimumBiasHF1ANDZDC2nORBeamspot + process.HLTPuAK4CaloJetsSequence + process.HLTCsAK4PFJetsSequence + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sL1FirstCollisionAfterAbortGapCentrality30100BptxAND + process.hltPreHICentrality30100FirstCollisionAfterAbortGap + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) +process.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sCentrality50100MinimumBiasHF1ANDBptxAND + process.hltPreHICentrality50100MinimumBiasHF1ANDBeamspot + process.HLTPuAK4CaloJetsSequence + process.HLTCsAK4PFJetsSequence + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) process.HLT_HIL1Centrality30_50_v7 = cms.Path( process.HLTBeginSequence + process.hltL1Centrality30to50BptxAND + process.hltPreHIL1Centrality3050 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIL1_UCC_0_0p5_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sUCC00p5 + process.hltPreHIL1UCC00p5 + process.HLTDoLocalHcalSequence + process.hltTowerMakerForHf + process.hltCaloMETProducerForHf + process.hltGlobalSumsETHfMaxFilter + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIL1_UCC_0_1_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sUCC01 + process.hltPreHIL1UCC01 + process.HLTDoLocalHcalSequence + process.hltTowerMakerForHf + process.hltCaloMETProducerForHf + process.hltGlobalSumsETHfMaxFilter + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) @@ -32778,6 +32847,8 @@ process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG2BptxAND + process.hltPreHIUPCDoubleEG2BptxANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.hltPixelActivityFilterMaxClusters1e3 + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG2NotHF2AND + process.hltPreHIUPCDoubleEG2NotMBHF2ANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG2NotHF2AND + process.hltPreHIUPCDoubleEG2NotMBHF2AND + process.HLTDoHIStripZeroSuppression + process.HLTEndSequence ) +process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG3NotHF2AND + process.hltPreHIUPCDoubleEG3NotMBHF2AND + process.HLTDoHIStripZeroSuppression + process.HLTEndSequence ) +process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG3NotHF2AND + process.hltPreHIUPCDoubleEG3NotMBHF2ANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG5BptxAND + process.hltPreHIUPCDoubleEG5BptxANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.hltPixelActivityFilterMaxClusters1e3 + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG5NotHF2AND + process.hltPreHIUPCDoubleEG5NotMBHF2ANDSinglePixelTrackMaxPixelTrack + process.HLTDoSiStripZeroSuppression + process.HLTDoLocalPixelPPOnAASequence + process.HLTDoLocalStripSequencePPOnAA + process.HLTRecopixelvertexingSequencePPOnAAForUPC + process.hltPixelCandsForUPCPPOnAA + process.hltFilteredPixelTracksForUPC + process.HLTDoHIStripZeroSuppressionRepacker + process.HLTEndSequence ) process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleEG5NotHF2AND + process.hltPreHIUPCDoubleEG5NotMBHF2AND + process.HLTDoHIStripZeroSuppression + process.HLTEndSequence ) @@ -33132,7 +33203,7 @@ process.PhysicsHIPhysicsRawPrime43Output = cms.FinalPath( process.hltOutputPhysicsHIPhysicsRawPrime43 ) -process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSymForHI_v12, process.AlCa_EcalEtaEBonlyForHI_v13, process.AlCa_EcalEtaEEonlyForHI_v13, process.AlCa_EcalPi0EBonlyForHI_v13, process.AlCa_EcalPi0EEonlyForHI_v13, process.AlCa_RPCMuonNormalisationForHI_v11, process.DQM_HIPixelReconstruction_v12, process.DQM_HIEcalReconstruction_v10, process.DQM_HIHcalReconstruction_v8, process.DST_Physics_v16, process.HLT_HIEphemeralPhysics_v5, process.HLT_HIEphemeralZeroBias_v5, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HIL1NotBptxOR_v14, process.HLT_HIL1UnpairedBunchBptxPlus_v14, process.HLT_HIL1UnpairedBunchBptxMinus_v14, process.HLT_HIPhysics_v14, process.HLT_HIPhysicsForZS_v14, process.HLT_HIRandom_v7, process.HLT_HIRandom_HighRate_v3, process.HLT_HIHcalNZS_v14, process.HLT_HIHcalPhiSym_v14, process.HLT_HIZeroBias_v14, process.HLT_HIZeroBias_HighRate_v7, process.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, process.HLT_HIZeroBias_HighRateRAW_v4, process.HLT_HIMinimumBiasHF1AND_v7, process.HLT_HIMinimumBiasHF1AND_copy_v6, process.HLT_HIMinimumBiasHF1AND_Beamspot_v8, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_Beamspot_v5, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_Beamspot_v8, process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, process.HLT_HIL1Centrality30_50_v7, process.HLT_HIL1_UCC_0_0p5_v7, process.HLT_HIL1_UCC_0_1_v7, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet80Eta5p1_v14, process.HLT_HIPuAK4CaloJet100Eta5p1_v14, process.HLT_HIPuAK4CaloJet120Eta2p1_v7, process.HLT_HIPuAK4CaloJet120Eta5p1_v14, process.HLT_HIPuAK4CaloJet40Fwd_v7, process.HLT_HIPuAK4CaloJet60Fwd_v7, process.HLT_HIPuAK4CaloJet80Fwd_v7, process.HLT_HIPuAK4CaloJet100Fwd_v7, process.HLT_HIPuAK4CaloJet120Fwd_v7, process.HLT_HIGEDPhoton10_v14, process.HLT_HIGEDPhoton10_EB_v14, process.HLT_HIGEDPhoton20_v14, process.HLT_HIGEDPhoton20_EB_v14, process.HLT_HIGEDPhoton30_v14, process.HLT_HIGEDPhoton30_EB_v14, process.HLT_HIGEDPhoton40_v14, process.HLT_HIGEDPhoton40_EB_v14, process.HLT_HIGEDPhoton50_v14, process.HLT_HIGEDPhoton50_EB_v14, process.HLT_HIGEDPhoton60_v14, process.HLT_HIGEDPhoton60_EB_v14, process.HLT_HIDoubleGEDPhoton20_v7, process.HLT_HIEle10Gsf_v14, process.HLT_HIEle15Gsf_v14, process.HLT_HIEle20Gsf_v14, process.HLT_HIEle30Gsf_v14, process.HLT_HIEle40Gsf_v14, process.HLT_HIEle50Gsf_v14, process.HLT_HIEle15Ele10Gsf_v14, process.HLT_HIEle15Ele10GsfMass50_v14, process.HLT_HIDoubleEle10Gsf_v14, process.HLT_HIDoubleEle10GsfMass50_v14, process.HLT_HIDoubleEle15Gsf_v14, process.HLT_HIDoubleEle15GsfMass50_v14, process.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_NotMBHF2_v5, process.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, process.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, process.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, process.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_Random_HighRate_v1, process.HLT_HIUPC_HFafterglowCombined_v1, process.HLT_HIL1SingleMuOpen_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality40to100_v1, process.HLT_HIL1SingleMu0_v7, process.HLT_HIL1SingleMu0_Open_v7, process.HLT_HIL1SingleMu0_Cosmic_v7, process.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, process.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, process.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, process.HLT_HIL2DoubleMuOpen_SS_v1, process.HLT_HIL2DoubleMuOpen_OS_v1, process.HLT_HIL1DoubleMu0_v7, process.HLT_HIL2DoubleMu0_SQ_v1, process.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, process.HLT_HIL1DoubleMu0_SQ_v7, process.HLT_HIL2SingleMuOpen_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality40to100_v1, process.HLT_HIL2SingleMu3_Open_v7, process.HLT_HIL2SingleMu5_v7, process.HLT_HIL2SingleMu7_v7, process.HLT_HIL2SingleMu12_v1, process.HLT_HIL2DoubleMu0_Open_v7, process.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu0_M7to15_Open_v7, process.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu3_M7to15_Open_v7, process.HLT_HIL3SingleMu3_Open_v7, process.HLT_HIL3SingleMu5_v7, process.HLT_HIL3SingleMu7_v7, process.HLT_HIL3SingleMu12_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, process.HLT_HIL3DoubleMu0_M0toInf_Open_v7, process.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu0_M7to15_Open_v7, process.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, process.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu2_M7to15_Open_v7, process.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, process.HLT_HICscCluster_Loose_v7, process.HLT_HICscCluster_Medium_v7, process.HLT_HICscCluster_Tight_v7, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.Dataset_AlCaP0, process.Dataset_AlCaPhiSym, process.Dataset_EcalLaser, process.Dataset_HIDQMGPUvsCPU, process.Dataset_HIDQMOnlineBeamspot, process.Dataset_HIEmptyBX, process.Dataset_HIEphemeralHLTPhysics, process.Dataset_HIEphemeralZeroBias0, process.Dataset_HIEphemeralZeroBias1, process.Dataset_HIEventDisplay, process.Dataset_HIExpressAlignment, process.Dataset_HIExpressPhysics, process.Dataset_HIExpressPhysicsRawPrime, process.Dataset_HIForward0, process.Dataset_HIForward1, process.Dataset_HIForward2, process.Dataset_HIForward3, process.Dataset_HIForward4, process.Dataset_HIForward5, process.Dataset_HIForward6, process.Dataset_HIForward7, process.Dataset_HIForward8, process.Dataset_HIForward9, process.Dataset_HIForward10, process.Dataset_HIForward11, process.Dataset_HIForward12, process.Dataset_HIForward13, process.Dataset_HIForward14, process.Dataset_HIForward15, process.Dataset_HIForward16, process.Dataset_HIForward17, process.Dataset_HIForward18, process.Dataset_HIForward19, process.Dataset_HIHLTPhysics, process.Dataset_HIHcalNZS, process.Dataset_HIOnlineMonitor, process.Dataset_HIMinimumBias0, process.Dataset_HIMinimumBias1, process.Dataset_HIMinimumBias2, process.Dataset_HIMinimumBias3, process.Dataset_HIPhysicsRawPrime0, process.Dataset_HITrackerNZS, process.Dataset_HIZeroBias0, process.Dataset_HIZeroBias1, process.Dataset_HIZeroBias2, process.Dataset_L1Accept, process.Dataset_RPCMonitor, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.ALCAP0Output, process.ALCAPHISYMOutput, process.CalibrationOutput, process.DQMCalibrationOutput, process.HIDQMOutput, process.HIDQMEventDisplayOutput, process.HIDQMGPUvsCPUOutput, process.HIDQMOnlineBeamspotOutput, process.EcalCalibrationOutput, process.HIExpressOutput, process.HIExpressAlignmentOutput, process.HIExpressRawPrimeOutput, process.PhysicsHICommissioningOutput, process.PhysicsHIForward0Output, process.PhysicsHIForward1Output, process.PhysicsHIForward2Output, process.PhysicsHIForward3Output, process.PhysicsHIForward4Output, process.PhysicsHIForward5Output, process.PhysicsHIForward6Output, process.PhysicsHIForward7Output, process.PhysicsHIForward8Output, process.PhysicsHIForward9Output, process.PhysicsHIForward10Output, process.PhysicsHIForward11Output, process.PhysicsHIForward12Output, process.PhysicsHIForward13Output, process.PhysicsHIForward14Output, process.PhysicsHIForward15Output, process.PhysicsHIForward16Output, process.PhysicsHIForward17Output, process.PhysicsHIForward18Output, process.PhysicsHIForward19Output, process.PhysicsHIHLTPhysicsOutput, process.PhysicsHIMinimumBias0Output, process.PhysicsHIMinimumBias1Output, process.PhysicsHIMinimumBias2Output, process.PhysicsHIMinimumBias3Output, process.PhysicsHIPhysicsRawPrime0Output, process.PhysicsHIPhysicsRawPrime1Output, process.PhysicsHIPhysicsRawPrime2Output, process.PhysicsHIPhysicsRawPrime3Output, process.PhysicsHIPhysicsRawPrime4Output, process.PhysicsHIPhysicsRawPrime5Output, process.PhysicsHIPhysicsRawPrime6Output, process.PhysicsHIPhysicsRawPrime7Output, process.PhysicsHIPhysicsRawPrime8Output, process.PhysicsHIPhysicsRawPrime9Output, process.PhysicsHIPhysicsRawPrime10Output, process.PhysicsHIPhysicsRawPrime11Output, process.PhysicsHIPhysicsRawPrime12Output, process.PhysicsHIPhysicsRawPrime13Output, process.PhysicsHIPhysicsRawPrime14Output, process.PhysicsHIPhysicsRawPrime15Output, process.PhysicsHIPhysicsRawPrime16Output, process.PhysicsHIPhysicsRawPrime17Output, process.PhysicsHIPhysicsRawPrime18Output, process.PhysicsHIPhysicsRawPrime19Output, process.PhysicsHIPhysicsRawPrime20Output, process.PhysicsHIPhysicsRawPrime21Output, process.PhysicsHIPhysicsRawPrime22Output, process.PhysicsHIPhysicsRawPrime23Output, process.PhysicsHIPhysicsRawPrime24Output, process.PhysicsHIPhysicsRawPrime25Output, process.PhysicsHIPhysicsRawPrime26Output, process.PhysicsHIPhysicsRawPrime27Output, process.PhysicsHIPhysicsRawPrime28Output, process.PhysicsHIPhysicsRawPrime29Output, process.PhysicsHIPhysicsRawPrime30Output, process.PhysicsHIPhysicsRawPrime31Output, process.PhysicsHITrackerNZSOutput, process.PhysicsHIZeroBiasOutput, process.PhysicsHIZeroBiasRAW0Output, process.PhysicsHIZeroBiasRAW1Output, process.PhysicsHIZeroBiasRAW2Output, process.NanoDSTOutput, process.RPCMONOutput, process.Dataset_HIPhysicsRawPrime1, process.Dataset_HIPhysicsRawPrime2, process.Dataset_HIPhysicsRawPrime3, process.Dataset_HIPhysicsRawPrime4, process.Dataset_HIPhysicsRawPrime5, process.Dataset_HIPhysicsRawPrime6, process.Dataset_HIPhysicsRawPrime7, process.Dataset_HIPhysicsRawPrime8, process.Dataset_HIPhysicsRawPrime9, process.Dataset_HIPhysicsRawPrime10, process.Dataset_HIPhysicsRawPrime11, process.Dataset_HIPhysicsRawPrime12, process.Dataset_HIPhysicsRawPrime13, process.Dataset_HIPhysicsRawPrime14, process.Dataset_HIPhysicsRawPrime15, process.Dataset_HIPhysicsRawPrime16, process.Dataset_HIPhysicsRawPrime17, process.Dataset_HIPhysicsRawPrime18, process.Dataset_HIPhysicsRawPrime19, process.Dataset_HIPhysicsRawPrime20, process.Dataset_HIPhysicsRawPrime21, process.Dataset_HIPhysicsRawPrime22, process.Dataset_HIPhysicsRawPrime23, process.Dataset_HIPhysicsRawPrime24, process.Dataset_HIPhysicsRawPrime25, process.Dataset_HIPhysicsRawPrime26, process.Dataset_HIPhysicsRawPrime27, process.Dataset_HIPhysicsRawPrime28, process.Dataset_HIPhysicsRawPrime29, process.Dataset_HIPhysicsRawPrime30, process.Dataset_HIPhysicsRawPrime31, process.Dataset_HIPhysicsRawPrime32, process.Dataset_HIPhysicsRawPrime33, process.Dataset_HIPhysicsRawPrime34, process.Dataset_HIPhysicsRawPrime35, process.Dataset_HIPhysicsRawPrime36, process.Dataset_HIPhysicsRawPrime37, process.Dataset_HIPhysicsRawPrime38, process.Dataset_HIPhysicsRawPrime39, process.Dataset_HIPhysicsRawPrime40, process.Dataset_HIPhysicsRawPrime41, process.Dataset_HIPhysicsRawPrime42, process.Dataset_HIPhysicsRawPrime43, process.Dataset_HIPhysicsRawPrime44, process.Dataset_HIPhysicsRawPrime45, process.Dataset_HIPhysicsRawPrime46, process.Dataset_HIPhysicsRawPrime47, process.Dataset_HIPhysicsRawPrime48, process.Dataset_HIPhysicsRawPrime49, process.Dataset_HIPhysicsRawPrime50, process.Dataset_HIPhysicsRawPrime51, process.Dataset_HIPhysicsRawPrime52, process.Dataset_HIPhysicsRawPrime53, process.Dataset_HIPhysicsRawPrime54, process.Dataset_HIPhysicsRawPrime55, process.Dataset_HIPhysicsRawPrime56, process.Dataset_HIPhysicsRawPrime57, process.Dataset_HIPhysicsRawPrime58, process.Dataset_HIPhysicsRawPrime59, process.PhysicsHIPhysicsRawPrime59Output, process.PhysicsHIPhysicsRawPrime58Output, process.PhysicsHIPhysicsRawPrime57Output, process.PhysicsHIPhysicsRawPrime56Output, process.PhysicsHIPhysicsRawPrime55Output, process.PhysicsHIPhysicsRawPrime54Output, process.PhysicsHIPhysicsRawPrime53Output, process.PhysicsHIPhysicsRawPrime52Output, process.PhysicsHIPhysicsRawPrime51Output, process.PhysicsHIPhysicsRawPrime50Output, process.PhysicsHIPhysicsRawPrime49Output, process.PhysicsHIPhysicsRawPrime48Output, process.PhysicsHIPhysicsRawPrime47Output, process.PhysicsHIPhysicsRawPrime46Output, process.PhysicsHIPhysicsRawPrime45Output, process.PhysicsHIPhysicsRawPrime44Output, process.PhysicsHIPhysicsRawPrime42Output, process.PhysicsHIPhysicsRawPrime41Output, process.PhysicsHIPhysicsRawPrime40Output, process.PhysicsHIPhysicsRawPrime39Output, process.PhysicsHIPhysicsRawPrime38Output, process.PhysicsHIPhysicsRawPrime37Output, process.PhysicsHIPhysicsRawPrime36Output, process.PhysicsHIPhysicsRawPrime35Output, process.PhysicsHIPhysicsRawPrime34Output, process.PhysicsHIPhysicsRawPrime33Output, process.PhysicsHIPhysicsRawPrime32Output, process.PhysicsHIPhysicsRawPrime43Output, )) +process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSymForHI_v12, process.AlCa_EcalEtaEBonlyForHI_v13, process.AlCa_EcalEtaEEonlyForHI_v13, process.AlCa_EcalPi0EBonlyForHI_v13, process.AlCa_EcalPi0EEonlyForHI_v13, process.AlCa_RPCMuonNormalisationForHI_v11, process.DQM_HIPixelReconstruction_v12, process.DQM_HIEcalReconstruction_v10, process.DQM_HIHcalReconstruction_v8, process.DST_Physics_v16, process.HLT_HIEphemeralPhysics_v5, process.HLT_HIEphemeralZeroBias_v5, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HIL1NotBptxOR_v14, process.HLT_HIL1UnpairedBunchBptxPlus_v14, process.HLT_HIL1UnpairedBunchBptxMinus_v14, process.HLT_HIPhysics_v14, process.HLT_HIPhysicsForZS_v14, process.HLT_HIRandom_v7, process.HLT_HIRandom_HighRate_v3, process.HLT_HIHcalNZS_v14, process.HLT_HIHcalPhiSym_v14, process.HLT_HIZeroBias_v14, process.HLT_HIZeroBias_HighRate_v7, process.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, process.HLT_HIZeroBias_HighRateRAW_v4, process.HLT_HIMinimumBiasHF1AND_v7, process.HLT_HIMinimumBiasHF1AND_copy_v6, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, process.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1, process.HLT_HIL1Centrality30_50_v7, process.HLT_HIL1_UCC_0_0p5_v7, process.HLT_HIL1_UCC_0_1_v7, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet80Eta5p1_v14, process.HLT_HIPuAK4CaloJet100Eta5p1_v14, process.HLT_HIPuAK4CaloJet120Eta2p1_v7, process.HLT_HIPuAK4CaloJet120Eta5p1_v14, process.HLT_HIPuAK4CaloJet40Fwd_v7, process.HLT_HIPuAK4CaloJet60Fwd_v7, process.HLT_HIPuAK4CaloJet80Fwd_v7, process.HLT_HIPuAK4CaloJet100Fwd_v7, process.HLT_HIPuAK4CaloJet120Fwd_v7, process.HLT_HIGEDPhoton10_v14, process.HLT_HIGEDPhoton10_EB_v14, process.HLT_HIGEDPhoton20_v14, process.HLT_HIGEDPhoton20_EB_v14, process.HLT_HIGEDPhoton30_v14, process.HLT_HIGEDPhoton30_EB_v14, process.HLT_HIGEDPhoton40_v14, process.HLT_HIGEDPhoton40_EB_v14, process.HLT_HIGEDPhoton50_v14, process.HLT_HIGEDPhoton50_EB_v14, process.HLT_HIGEDPhoton60_v14, process.HLT_HIGEDPhoton60_EB_v14, process.HLT_HIDoubleGEDPhoton20_v7, process.HLT_HIEle10Gsf_v14, process.HLT_HIEle15Gsf_v14, process.HLT_HIEle20Gsf_v14, process.HLT_HIEle30Gsf_v14, process.HLT_HIEle40Gsf_v14, process.HLT_HIEle50Gsf_v14, process.HLT_HIEle15Ele10Gsf_v14, process.HLT_HIEle15Ele10GsfMass50_v14, process.HLT_HIDoubleEle10Gsf_v14, process.HLT_HIDoubleEle10GsfMass50_v14, process.HLT_HIDoubleEle15Gsf_v14, process.HLT_HIDoubleEle15GsfMass50_v14, process.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_NotMBHF2_v5, process.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, process.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, process.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, process.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_Random_HighRate_v1, process.HLT_HIUPC_HFafterglowCombined_v1, process.HLT_HIL1SingleMuOpen_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality40to100_v1, process.HLT_HIL1SingleMu0_v7, process.HLT_HIL1SingleMu0_Open_v7, process.HLT_HIL1SingleMu0_Cosmic_v7, process.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, process.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, process.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, process.HLT_HIL2DoubleMuOpen_SS_v1, process.HLT_HIL2DoubleMuOpen_OS_v1, process.HLT_HIL1DoubleMu0_v7, process.HLT_HIL2DoubleMu0_SQ_v1, process.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, process.HLT_HIL1DoubleMu0_SQ_v7, process.HLT_HIL2SingleMuOpen_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality40to100_v1, process.HLT_HIL2SingleMu3_Open_v7, process.HLT_HIL2SingleMu5_v7, process.HLT_HIL2SingleMu7_v7, process.HLT_HIL2SingleMu12_v1, process.HLT_HIL2DoubleMu0_Open_v7, process.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu0_M7to15_Open_v7, process.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu3_M7to15_Open_v7, process.HLT_HIL3SingleMu3_Open_v7, process.HLT_HIL3SingleMu5_v7, process.HLT_HIL3SingleMu7_v7, process.HLT_HIL3SingleMu12_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, process.HLT_HIL3DoubleMu0_M0toInf_Open_v7, process.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu0_M7to15_Open_v7, process.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, process.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu2_M7to15_Open_v7, process.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, process.HLT_HICscCluster_Loose_v7, process.HLT_HICscCluster_Medium_v7, process.HLT_HICscCluster_Tight_v7, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.Dataset_AlCaP0, process.Dataset_AlCaPhiSym, process.Dataset_EcalLaser, process.Dataset_HIDQMGPUvsCPU, process.Dataset_HIDQMOnlineBeamspot, process.Dataset_HIEmptyBX, process.Dataset_HIEphemeralHLTPhysics, process.Dataset_HIEphemeralZeroBias0, process.Dataset_HIEphemeralZeroBias1, process.Dataset_HIEventDisplay, process.Dataset_HIExpressAlignment, process.Dataset_HIExpressPhysics, process.Dataset_HIExpressPhysicsRawPrime, process.Dataset_HIForward0, process.Dataset_HIForward1, process.Dataset_HIForward2, process.Dataset_HIForward3, process.Dataset_HIForward4, process.Dataset_HIForward5, process.Dataset_HIForward6, process.Dataset_HIForward7, process.Dataset_HIForward8, process.Dataset_HIForward9, process.Dataset_HIForward10, process.Dataset_HIForward11, process.Dataset_HIForward12, process.Dataset_HIForward13, process.Dataset_HIForward14, process.Dataset_HIForward15, process.Dataset_HIForward16, process.Dataset_HIForward17, process.Dataset_HIForward18, process.Dataset_HIForward19, process.Dataset_HIHLTPhysics, process.Dataset_HIHcalNZS, process.Dataset_HIOnlineMonitor, process.Dataset_HIMinimumBias0, process.Dataset_HIMinimumBias1, process.Dataset_HIMinimumBias2, process.Dataset_HIMinimumBias3, process.Dataset_HIPhysicsRawPrime0, process.Dataset_HITrackerNZS, process.Dataset_HIZeroBias0, process.Dataset_HIZeroBias1, process.Dataset_HIZeroBias2, process.Dataset_L1Accept, process.Dataset_RPCMonitor, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.ALCAP0Output, process.ALCAPHISYMOutput, process.CalibrationOutput, process.DQMCalibrationOutput, process.HIDQMOutput, process.HIDQMEventDisplayOutput, process.HIDQMGPUvsCPUOutput, process.HIDQMOnlineBeamspotOutput, process.EcalCalibrationOutput, process.HIExpressOutput, process.HIExpressAlignmentOutput, process.HIExpressRawPrimeOutput, process.PhysicsHICommissioningOutput, process.PhysicsHIForward0Output, process.PhysicsHIForward1Output, process.PhysicsHIForward2Output, process.PhysicsHIForward3Output, process.PhysicsHIForward4Output, process.PhysicsHIForward5Output, process.PhysicsHIForward6Output, process.PhysicsHIForward7Output, process.PhysicsHIForward8Output, process.PhysicsHIForward9Output, process.PhysicsHIForward10Output, process.PhysicsHIForward11Output, process.PhysicsHIForward12Output, process.PhysicsHIForward13Output, process.PhysicsHIForward14Output, process.PhysicsHIForward15Output, process.PhysicsHIForward16Output, process.PhysicsHIForward17Output, process.PhysicsHIForward18Output, process.PhysicsHIForward19Output, process.PhysicsHIHLTPhysicsOutput, process.PhysicsHIMinimumBias0Output, process.PhysicsHIMinimumBias1Output, process.PhysicsHIMinimumBias2Output, process.PhysicsHIMinimumBias3Output, process.PhysicsHIPhysicsRawPrime0Output, process.PhysicsHIPhysicsRawPrime1Output, process.PhysicsHIPhysicsRawPrime2Output, process.PhysicsHIPhysicsRawPrime3Output, process.PhysicsHIPhysicsRawPrime4Output, process.PhysicsHIPhysicsRawPrime5Output, process.PhysicsHIPhysicsRawPrime6Output, process.PhysicsHIPhysicsRawPrime7Output, process.PhysicsHIPhysicsRawPrime8Output, process.PhysicsHIPhysicsRawPrime9Output, process.PhysicsHIPhysicsRawPrime10Output, process.PhysicsHIPhysicsRawPrime11Output, process.PhysicsHIPhysicsRawPrime12Output, process.PhysicsHIPhysicsRawPrime13Output, process.PhysicsHIPhysicsRawPrime14Output, process.PhysicsHIPhysicsRawPrime15Output, process.PhysicsHIPhysicsRawPrime16Output, process.PhysicsHIPhysicsRawPrime17Output, process.PhysicsHIPhysicsRawPrime18Output, process.PhysicsHIPhysicsRawPrime19Output, process.PhysicsHIPhysicsRawPrime20Output, process.PhysicsHIPhysicsRawPrime21Output, process.PhysicsHIPhysicsRawPrime22Output, process.PhysicsHIPhysicsRawPrime23Output, process.PhysicsHIPhysicsRawPrime24Output, process.PhysicsHIPhysicsRawPrime25Output, process.PhysicsHIPhysicsRawPrime26Output, process.PhysicsHIPhysicsRawPrime27Output, process.PhysicsHIPhysicsRawPrime28Output, process.PhysicsHIPhysicsRawPrime29Output, process.PhysicsHIPhysicsRawPrime30Output, process.PhysicsHIPhysicsRawPrime31Output, process.PhysicsHITrackerNZSOutput, process.PhysicsHIZeroBiasOutput, process.PhysicsHIZeroBiasRAW0Output, process.PhysicsHIZeroBiasRAW1Output, process.PhysicsHIZeroBiasRAW2Output, process.NanoDSTOutput, process.RPCMONOutput, process.Dataset_HIPhysicsRawPrime1, process.Dataset_HIPhysicsRawPrime2, process.Dataset_HIPhysicsRawPrime3, process.Dataset_HIPhysicsRawPrime4, process.Dataset_HIPhysicsRawPrime5, process.Dataset_HIPhysicsRawPrime6, process.Dataset_HIPhysicsRawPrime7, process.Dataset_HIPhysicsRawPrime8, process.Dataset_HIPhysicsRawPrime9, process.Dataset_HIPhysicsRawPrime10, process.Dataset_HIPhysicsRawPrime11, process.Dataset_HIPhysicsRawPrime12, process.Dataset_HIPhysicsRawPrime13, process.Dataset_HIPhysicsRawPrime14, process.Dataset_HIPhysicsRawPrime15, process.Dataset_HIPhysicsRawPrime16, process.Dataset_HIPhysicsRawPrime17, process.Dataset_HIPhysicsRawPrime18, process.Dataset_HIPhysicsRawPrime19, process.Dataset_HIPhysicsRawPrime20, process.Dataset_HIPhysicsRawPrime21, process.Dataset_HIPhysicsRawPrime22, process.Dataset_HIPhysicsRawPrime23, process.Dataset_HIPhysicsRawPrime24, process.Dataset_HIPhysicsRawPrime25, process.Dataset_HIPhysicsRawPrime26, process.Dataset_HIPhysicsRawPrime27, process.Dataset_HIPhysicsRawPrime28, process.Dataset_HIPhysicsRawPrime29, process.Dataset_HIPhysicsRawPrime30, process.Dataset_HIPhysicsRawPrime31, process.Dataset_HIPhysicsRawPrime32, process.Dataset_HIPhysicsRawPrime33, process.Dataset_HIPhysicsRawPrime34, process.Dataset_HIPhysicsRawPrime35, process.Dataset_HIPhysicsRawPrime36, process.Dataset_HIPhysicsRawPrime37, process.Dataset_HIPhysicsRawPrime38, process.Dataset_HIPhysicsRawPrime39, process.Dataset_HIPhysicsRawPrime40, process.Dataset_HIPhysicsRawPrime41, process.Dataset_HIPhysicsRawPrime42, process.Dataset_HIPhysicsRawPrime43, process.Dataset_HIPhysicsRawPrime44, process.Dataset_HIPhysicsRawPrime45, process.Dataset_HIPhysicsRawPrime46, process.Dataset_HIPhysicsRawPrime47, process.Dataset_HIPhysicsRawPrime48, process.Dataset_HIPhysicsRawPrime49, process.Dataset_HIPhysicsRawPrime50, process.Dataset_HIPhysicsRawPrime51, process.Dataset_HIPhysicsRawPrime52, process.Dataset_HIPhysicsRawPrime53, process.Dataset_HIPhysicsRawPrime54, process.Dataset_HIPhysicsRawPrime55, process.Dataset_HIPhysicsRawPrime56, process.Dataset_HIPhysicsRawPrime57, process.Dataset_HIPhysicsRawPrime58, process.Dataset_HIPhysicsRawPrime59, process.PhysicsHIPhysicsRawPrime59Output, process.PhysicsHIPhysicsRawPrime58Output, process.PhysicsHIPhysicsRawPrime57Output, process.PhysicsHIPhysicsRawPrime56Output, process.PhysicsHIPhysicsRawPrime55Output, process.PhysicsHIPhysicsRawPrime54Output, process.PhysicsHIPhysicsRawPrime53Output, process.PhysicsHIPhysicsRawPrime52Output, process.PhysicsHIPhysicsRawPrime51Output, process.PhysicsHIPhysicsRawPrime50Output, process.PhysicsHIPhysicsRawPrime49Output, process.PhysicsHIPhysicsRawPrime48Output, process.PhysicsHIPhysicsRawPrime47Output, process.PhysicsHIPhysicsRawPrime46Output, process.PhysicsHIPhysicsRawPrime45Output, process.PhysicsHIPhysicsRawPrime44Output, process.PhysicsHIPhysicsRawPrime42Output, process.PhysicsHIPhysicsRawPrime41Output, process.PhysicsHIPhysicsRawPrime40Output, process.PhysicsHIPhysicsRawPrime39Output, process.PhysicsHIPhysicsRawPrime38Output, process.PhysicsHIPhysicsRawPrime37Output, process.PhysicsHIPhysicsRawPrime36Output, process.PhysicsHIPhysicsRawPrime35Output, process.PhysicsHIPhysicsRawPrime34Output, process.PhysicsHIPhysicsRawPrime33Output, process.PhysicsHIPhysicsRawPrime32Output, process.PhysicsHIPhysicsRawPrime43Output, )) # source module (EDM inputs) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py index bb2fbc3550019..d9bb137b681fd 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/PIon --full --data --type PIon --unprescale --process HLTPIon --globaltag auto:run3_hlt_PIon --input file:RelVal_Raw_PIon_DATA.root -# /dev/CMSSW_14_1_0/PIon/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/PIon/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/PIon/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/PIon/V50") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py index c16179e2a330e..edf6ba9311658 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/PRef --full --data --type PRef --unprescale --process HLTPRef --globaltag auto:run3_hlt_PRef --input file:RelVal_Raw_PRef_DATA.root -# /dev/CMSSW_14_1_0/PRef/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/PRef/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/PRef/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/PRef/V50") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1932,6 +1932,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward1 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -1947,6 +1948,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward10 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -1962,6 +1964,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward11 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -1977,6 +1980,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward12 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -1992,6 +1996,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward13 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2007,6 +2012,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward14 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2022,6 +2028,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward15 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2037,6 +2044,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward16 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2052,6 +2060,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward17 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2067,6 +2076,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward18 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2082,6 +2092,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward19 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2097,6 +2108,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward2 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2112,6 +2124,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward20 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2127,6 +2140,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward21 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2142,6 +2156,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward22 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2157,6 +2172,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward23 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2172,6 +2188,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward24 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2187,6 +2204,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward3 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2202,6 +2220,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward4 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2217,6 +2236,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward5 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2232,6 +2252,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward6 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2247,6 +2268,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward7 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2262,6 +2284,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward8 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2277,6 +2300,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), PPRefZeroBiasPlusForward9 = cms.vstring( 'HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1', @@ -2292,6 +2316,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ), RPCMonitor = cms.vstring( 'AlCa_HIRPCMuonNormalisation_v11' ), SpecialRandom0 = cms.vstring( 'HLT_Random_HighRate_v1' ), @@ -4947,8 +4972,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -5964,8 +5989,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -16184,6 +16209,23 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +process.hltL1sL1ZeroBiasFirstCollisionInTrain = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_FirstCollisionInTrain" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +) +process.hltPrePPRefZeroBiasFirstCollisionInTrain = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreRandomHighRate = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -16302,7 +16344,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15', + triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15 / 2', 'HLT_ZeroBias_Beamspot_v16' ) ) process.hltPreDatasetDQMOnlineBeamspot = cms.EDFilter( "HLTPrescaler", @@ -16341,9 +16383,9 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 80', - 'HLT_PPRefGEDPhoton30_v6', - 'HLT_PPRefL3SingleMu7_v8 / 80', + triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 40', + 'HLT_PPRefGEDPhoton30_v6 / 50', + 'HLT_PPRefL3SingleMu7_v8 / 200', 'HLT_Physics_v14 / 10' ) ) process.hltPreDatasetEventDisplay = cms.EDFilter( "HLTPrescaler", @@ -16356,7 +16398,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15', + triggerConditions = cms.vstring( 'HLT_HIHT80_Beamspot_ppRef5TeV_v15 / 2', 'HLT_ZeroBias_Beamspot_v16' ) ) process.hltPreDatasetExpressAlignment = cms.EDFilter( "HLTPrescaler", @@ -16370,7 +16412,7 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 80', - 'HLT_PPRefEle15Ele10GsfMass50_v6', + 'HLT_PPRefEle15Ele10GsfMass50_v6 / 12', 'HLT_PPRefL3SingleMu7_v8 / 80', 'HLT_PPRefUPC_ZDC1nOR_v1 / 8500', 'HLT_Physics_v14 / 2', @@ -16388,7 +16430,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 8', + triggerConditions = cms.vstring( 'HLT_AK4PFJet80_v8 / 20', 'HLT_PPRefEle15Ele10GsfMass50_v6', 'HLT_PPRefEle50Gsf_v6' ) ) @@ -16452,8 +16494,8 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8', - 'HLT_AK4PFJetFwd80_v8', + triggerConditions = cms.vstring( 'HLT_AK4PFJet100_v8 / 10', + 'HLT_AK4PFJetFwd80_v8 / 2', 'HLT_CDC_L2cosmic_10_er1p0_v10', 'HLT_CDC_L2cosmic_5p5_er1p0_v10', 'HLT_HIL1NotBptxORForPPRef_v9', @@ -16463,13 +16505,13 @@ 'HLT_HcalPhiSym_v23', 'HLT_IsoTrackHB_v14', 'HLT_IsoTrackHE_v14', - 'HLT_PPRefDoubleEle10Gsf_v6', - 'HLT_PPRefEle30Gsf_v7', - 'HLT_PPRefGEDPhoton30_EB_v6', - 'HLT_PPRefGEDPhoton40_v6', - 'HLT_PPRefL3DoubleMu0_Open_v8', - 'HLT_PPRefL3DoubleMu0_v8', - 'HLT_PPRefL3SingleMu7_v8', + 'HLT_PPRefDoubleEle10Gsf_v6 / 50', + 'HLT_PPRefEle30Gsf_v7 / 5', + 'HLT_PPRefGEDPhoton30_EB_v6 / 20', + 'HLT_PPRefGEDPhoton40_v6 / 10', + 'HLT_PPRefL3DoubleMu0_Open_v8 / 0', + 'HLT_PPRefL3DoubleMu0_v8 / 200', + 'HLT_PPRefL3SingleMu7_v8 / 200', 'HLT_Physics_v14', 'HLT_Random_v3', 'HLT_ZeroBias_FirstCollisionAfterAbortGap_v12', @@ -16626,6 +16668,7 @@ 'HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1', 'HLT_PPRefUPC_ZDC1nAsymXOR_v1', 'HLT_PPRefUPC_ZDC1nOR_v1', + 'HLT_PPRefZeroBias_FirstCollisionInTrain_v1', 'HLT_PPRefZeroBias_v6' ) ) process.hltPreDatasetPPRefZeroBiasPlusForward0 = cms.EDFilter( "HLTPrescaler", @@ -18236,6 +18279,7 @@ process.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORSingleJet28 + process.hltPrePPRefUPCSingleJet28ZDC1nOR + process.HLTEndSequence ) process.HLT_PPRefUPC_ZDC1nAsymXOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nAsymXOR + process.hltPrePPRefUPCZDC1nAsymXOR + process.HLTEndSequence ) process.HLT_PPRefUPC_ZDC1nOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nORPRef + process.hltPrePPRefUPCZDC1nOR + process.HLTEndSequence ) +process.HLT_PPRefZeroBias_FirstCollisionInTrain_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sL1ZeroBiasFirstCollisionInTrain + process.hltPrePPRefZeroBiasFirstCollisionInTrain + process.HLTEndSequence ) process.HLT_Random_HighRate_v1 = cms.Path( process.HLTBeginSequenceRandom + process.hltPreRandomHighRate + process.HLTEndSequence ) process.HLTriggerFinalPath = cms.Path( process.hltGtStage2Digis + process.hltTriggerSummaryAOD + process.hltTriggerSummaryRAW + process.hltBoolFalse ) process.HLTAnalyzerEndpath = cms.EndPath( process.hltGtStage2Digis + process.hltL1TGlobalSummary + process.hltTrigReport ) @@ -18393,7 +18437,7 @@ process.PhysicsPPRefZeroBiasPlusForward20Output = cms.FinalPath( process.hltOutputPhysicsPPRefZeroBiasPlusForward20 ) -process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_HIEcalEtaEBonly_v12, process.AlCa_HIEcalEtaEEonly_v12, process.AlCa_HIEcalPi0EBonly_v12, process.AlCa_HIEcalPi0EEonly_v12, process.AlCa_HIRPCMuonNormalisation_v11, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DST_Physics_v16, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, process.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, process.HLT_HIL1NotBptxORForPPRef_v9, process.HLT_HIHT80_Beamspot_ppRef5TeV_v15, process.HLT_PPRefZeroBias_v6, process.HLT_AK4CaloJet40_v6, process.HLT_AK4CaloJet60_v6, process.HLT_AK4CaloJet70_v6, process.HLT_AK4CaloJet80_v6, process.HLT_AK4CaloJet100_v6, process.HLT_AK4CaloJet120_v6, process.HLT_AK4CaloJetFwd40_v6, process.HLT_AK4CaloJetFwd60_v6, process.HLT_AK4CaloJetFwd70_v6, process.HLT_AK4CaloJetFwd80_v6, process.HLT_AK4CaloJetFwd100_v6, process.HLT_AK4CaloJetFwd120_v6, process.HLT_AK4PFJet40_v8, process.HLT_AK4PFJet60_v8, process.HLT_AK4PFJet80_v8, process.HLT_AK4PFJet100_v8, process.HLT_AK4PFJet120_v8, process.HLT_AK4PFJetFwd40_v8, process.HLT_AK4PFJetFwd60_v8, process.HLT_AK4PFJetFwd80_v8, process.HLT_AK4PFJetFwd100_v8, process.HLT_AK4PFJetFwd120_v8, process.HLT_PPRefDoubleEle10Gsf_v6, process.HLT_PPRefDoubleEle10GsfMass50_v6, process.HLT_PPRefDoubleEle15Gsf_v6, process.HLT_PPRefDoubleEle15GsfMass50_v6, process.HLT_PPRefEle15Ele10Gsf_v6, process.HLT_PPRefEle15Ele10GsfMass50_v6, process.HLT_PPRefEle10Gsf_v6, process.HLT_PPRefEle15Gsf_v6, process.HLT_PPRefEle20Gsf_v7, process.HLT_PPRefEle30Gsf_v7, process.HLT_PPRefEle40Gsf_v6, process.HLT_PPRefEle50Gsf_v6, process.HLT_PPRefGEDPhoton10_v6, process.HLT_PPRefGEDPhoton10_EB_v6, process.HLT_PPRefGEDPhoton20_v6, process.HLT_PPRefGEDPhoton20_EB_v6, process.HLT_PPRefGEDPhoton30_v6, process.HLT_PPRefGEDPhoton30_EB_v6, process.HLT_PPRefGEDPhoton40_v6, process.HLT_PPRefGEDPhoton40_EB_v6, process.HLT_PPRefGEDPhoton50_v6, process.HLT_PPRefGEDPhoton50_EB_v6, process.HLT_PPRefGEDPhoton60_v6, process.HLT_PPRefGEDPhoton60_EB_v6, process.HLT_PPRefDoubleGEDPhoton20_v1, process.HLT_PPRefL1DoubleMu0_v6, process.HLT_PPRefL1DoubleMu0_SQ_v1, process.HLT_PPRefL1DoubleMu0_Open_v6, process.HLT_PPRefL1DoubleMu2_v1, process.HLT_PPRefL1DoubleMu2_SQ_v1, process.HLT_PPRefL1SingleMu0_Cosmics_v6, process.HLT_PPRefL1SingleMu7_v6, process.HLT_PPRefL1SingleMu12_v6, process.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, process.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, process.HLT_PPRefL2DoubleMu0_v6, process.HLT_PPRefL2DoubleMu0_Open_v6, process.HLT_PPRefL2SingleMu7_v6, process.HLT_PPRefL2SingleMu12_v6, process.HLT_PPRefL2SingleMu15_v6, process.HLT_PPRefL2SingleMu20_v6, process.HLT_PPRefL3DoubleMu0_v8, process.HLT_PPRefL3DoubleMu0_Open_v8, process.HLT_PPRefL3SingleMu3_v8, process.HLT_PPRefL3SingleMu5_v8, process.HLT_PPRefL3SingleMu7_v8, process.HLT_PPRefL3SingleMu12_v8, process.HLT_PPRefL3SingleMu15_v8, process.HLT_PPRefL3SingleMu20_v8, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, process.HLT_PPRefCscCluster_Loose_v6, process.HLT_PPRefCscCluster_Medium_v6, process.HLT_PPRefCscCluster_Tight_v6, process.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, process.HLT_PPRefUPC_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_ZDC1nOR_v1, process.HLT_Random_HighRate_v1, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaP0, process.Dataset_AlCaPhiSym, process.Dataset_Commissioning, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressPhysics, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_L1Accept, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_PPRefDoubleMuon0, process.Dataset_PPRefDoubleMuon1, process.Dataset_PPRefDoubleMuon2, process.Dataset_PPRefDoubleMuon3, process.Dataset_PPRefHardProbes0, process.Dataset_PPRefSingleMuon0, process.Dataset_PPRefZeroBiasPlusForward0, process.Dataset_RPCMonitor, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCAP0Output, process.ALCAPHISYMOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.HLTMonitorOutput, process.PhysicsCommissioningOutput, process.PhysicsPPRefDoubleMuon0Output, process.PhysicsPPRefDoubleMuon1Output, process.PhysicsPPRefDoubleMuon2Output, process.PhysicsPPRefDoubleMuon3Output, process.PhysicsPPRefHardProbes0Output, process.PhysicsPPRefHardProbes1Output, process.PhysicsPPRefHardProbes2Output, process.PhysicsPPRefSingleMuon0Output, process.PhysicsPPRefSingleMuon1Output, process.PhysicsPPRefSingleMuon2Output, process.PhysicsPPRefZeroBiasPlusForward0Output, process.PhysicsPPRefZeroBiasPlusForward1Output, process.PhysicsPPRefZeroBiasPlusForward2Output, process.PhysicsPPRefZeroBiasPlusForward3Output, process.PhysicsPPRefZeroBiasPlusForward4Output, process.PhysicsPPRefZeroBiasPlusForward5Output, process.PhysicsPPRefZeroBiasPlusForward6Output, process.PhysicsPPRefZeroBiasPlusForward7Output, process.PhysicsPPRefZeroBiasPlusForward8Output, process.PhysicsPPRefZeroBiasPlusForward9Output, process.NanoDSTOutput, process.RPCMONOutput, process.PhysicsSpecialRandom0Output, process.PhysicsSpecialRandom1Output, process.PhysicsSpecialRandom2Output, process.PhysicsSpecialRandom3Output, process.PhysicsSpecialRandom4Output, process.PhysicsSpecialRandom5Output, process.PhysicsSpecialRandom6Output, process.PhysicsSpecialRandom7Output, process.PhysicsSpecialRandom8Output, process.PhysicsSpecialRandom9Output, process.Dataset_SpecialRandom0, process.Dataset_SpecialRandom1, process.Dataset_SpecialRandom2, process.Dataset_SpecialRandom3, process.Dataset_SpecialRandom4, process.Dataset_SpecialRandom5, process.Dataset_SpecialRandom6, process.Dataset_SpecialRandom7, process.Dataset_SpecialRandom8, process.Dataset_SpecialRandom9, process.Dataset_SpecialRandom10, process.Dataset_SpecialRandom11, process.Dataset_SpecialRandom12, process.Dataset_SpecialRandom13, process.Dataset_SpecialRandom14, process.Dataset_SpecialRandom15, process.Dataset_SpecialRandom16, process.Dataset_SpecialRandom17, process.Dataset_SpecialRandom18, process.Dataset_SpecialRandom19, process.Dataset_PPRefZeroBiasPlusForward1, process.Dataset_PPRefZeroBiasPlusForward2, process.Dataset_PPRefZeroBiasPlusForward3, process.Dataset_PPRefZeroBiasPlusForward4, process.Dataset_PPRefZeroBiasPlusForward5, process.Dataset_PPRefZeroBiasPlusForward6, process.Dataset_PPRefZeroBiasPlusForward7, process.Dataset_PPRefZeroBiasPlusForward8, process.Dataset_PPRefZeroBiasPlusForward9, process.Dataset_PPRefZeroBiasPlusForward10, process.Dataset_PPRefZeroBiasPlusForward11, process.Dataset_PPRefZeroBiasPlusForward12, process.Dataset_PPRefZeroBiasPlusForward13, process.Dataset_PPRefZeroBiasPlusForward14, process.Dataset_PPRefZeroBiasPlusForward15, process.Dataset_PPRefZeroBiasPlusForward16, process.Dataset_PPRefZeroBiasPlusForward17, process.Dataset_PPRefZeroBiasPlusForward18, process.Dataset_PPRefZeroBiasPlusForward19, process.Dataset_PPRefZeroBiasPlusForward20, process.Dataset_PPRefZeroBiasPlusForward21, process.Dataset_PPRefZeroBiasPlusForward22, process.Dataset_PPRefZeroBiasPlusForward23, process.Dataset_PPRefZeroBiasPlusForward24, process.Dataset_PPRefSingleMuon1, process.Dataset_PPRefSingleMuon2, process.Dataset_PPRefSingleMuon3, process.Dataset_PPRefHardProbes1, process.Dataset_PPRefHardProbes2, process.Dataset_PPRefHardProbes3, process.Dataset_PPRefHardProbes4, process.PhysicsPPRefHardProbes3Output, process.PhysicsPPRefHardProbes4Output, process.PhysicsPPRefSingleMuon3Output, process.PhysicsPPRefZeroBiasPlusForward10Output, process.PhysicsPPRefZeroBiasPlusForward11Output, process.PhysicsPPRefZeroBiasPlusForward12Output, process.PhysicsPPRefZeroBiasPlusForward13Output, process.PhysicsPPRefZeroBiasPlusForward14Output, process.PhysicsPPRefZeroBiasPlusForward15Output, process.PhysicsPPRefZeroBiasPlusForward16Output, process.PhysicsPPRefZeroBiasPlusForward18Output, process.PhysicsPPRefZeroBiasPlusForward19Output, process.PhysicsPPRefZeroBiasPlusForward17Output, process.PhysicsPPRefZeroBiasPlusForward24Output, process.PhysicsPPRefZeroBiasPlusForward23Output, process.PhysicsPPRefZeroBiasPlusForward22Output, process.PhysicsPPRefZeroBiasPlusForward21Output, process.PhysicsPPRefZeroBiasPlusForward20Output, )) +process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_HIEcalEtaEBonly_v12, process.AlCa_HIEcalEtaEEonly_v12, process.AlCa_HIEcalPi0EBonly_v12, process.AlCa_HIEcalPi0EEonly_v12, process.AlCa_HIRPCMuonNormalisation_v11, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DST_Physics_v16, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, process.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, process.HLT_HIL1NotBptxORForPPRef_v9, process.HLT_HIHT80_Beamspot_ppRef5TeV_v15, process.HLT_PPRefZeroBias_v6, process.HLT_AK4CaloJet40_v6, process.HLT_AK4CaloJet60_v6, process.HLT_AK4CaloJet70_v6, process.HLT_AK4CaloJet80_v6, process.HLT_AK4CaloJet100_v6, process.HLT_AK4CaloJet120_v6, process.HLT_AK4CaloJetFwd40_v6, process.HLT_AK4CaloJetFwd60_v6, process.HLT_AK4CaloJetFwd70_v6, process.HLT_AK4CaloJetFwd80_v6, process.HLT_AK4CaloJetFwd100_v6, process.HLT_AK4CaloJetFwd120_v6, process.HLT_AK4PFJet40_v8, process.HLT_AK4PFJet60_v8, process.HLT_AK4PFJet80_v8, process.HLT_AK4PFJet100_v8, process.HLT_AK4PFJet120_v8, process.HLT_AK4PFJetFwd40_v8, process.HLT_AK4PFJetFwd60_v8, process.HLT_AK4PFJetFwd80_v8, process.HLT_AK4PFJetFwd100_v8, process.HLT_AK4PFJetFwd120_v8, process.HLT_PPRefDoubleEle10Gsf_v6, process.HLT_PPRefDoubleEle10GsfMass50_v6, process.HLT_PPRefDoubleEle15Gsf_v6, process.HLT_PPRefDoubleEle15GsfMass50_v6, process.HLT_PPRefEle15Ele10Gsf_v6, process.HLT_PPRefEle15Ele10GsfMass50_v6, process.HLT_PPRefEle10Gsf_v6, process.HLT_PPRefEle15Gsf_v6, process.HLT_PPRefEle20Gsf_v7, process.HLT_PPRefEle30Gsf_v7, process.HLT_PPRefEle40Gsf_v6, process.HLT_PPRefEle50Gsf_v6, process.HLT_PPRefGEDPhoton10_v6, process.HLT_PPRefGEDPhoton10_EB_v6, process.HLT_PPRefGEDPhoton20_v6, process.HLT_PPRefGEDPhoton20_EB_v6, process.HLT_PPRefGEDPhoton30_v6, process.HLT_PPRefGEDPhoton30_EB_v6, process.HLT_PPRefGEDPhoton40_v6, process.HLT_PPRefGEDPhoton40_EB_v6, process.HLT_PPRefGEDPhoton50_v6, process.HLT_PPRefGEDPhoton50_EB_v6, process.HLT_PPRefGEDPhoton60_v6, process.HLT_PPRefGEDPhoton60_EB_v6, process.HLT_PPRefDoubleGEDPhoton20_v1, process.HLT_PPRefL1DoubleMu0_v6, process.HLT_PPRefL1DoubleMu0_SQ_v1, process.HLT_PPRefL1DoubleMu0_Open_v6, process.HLT_PPRefL1DoubleMu2_v1, process.HLT_PPRefL1DoubleMu2_SQ_v1, process.HLT_PPRefL1SingleMu0_Cosmics_v6, process.HLT_PPRefL1SingleMu7_v6, process.HLT_PPRefL1SingleMu12_v6, process.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, process.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, process.HLT_PPRefL2DoubleMu0_v6, process.HLT_PPRefL2DoubleMu0_Open_v6, process.HLT_PPRefL2SingleMu7_v6, process.HLT_PPRefL2SingleMu12_v6, process.HLT_PPRefL2SingleMu15_v6, process.HLT_PPRefL2SingleMu20_v6, process.HLT_PPRefL3DoubleMu0_v8, process.HLT_PPRefL3DoubleMu0_Open_v8, process.HLT_PPRefL3SingleMu3_v8, process.HLT_PPRefL3SingleMu5_v8, process.HLT_PPRefL3SingleMu7_v8, process.HLT_PPRefL3SingleMu12_v8, process.HLT_PPRefL3SingleMu15_v8, process.HLT_PPRefL3SingleMu20_v8, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, process.HLT_PPRefCscCluster_Loose_v6, process.HLT_PPRefCscCluster_Medium_v6, process.HLT_PPRefCscCluster_Tight_v6, process.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, process.HLT_PPRefUPC_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_ZDC1nOR_v1, process.HLT_PPRefZeroBias_FirstCollisionInTrain_v1, process.HLT_Random_HighRate_v1, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaP0, process.Dataset_AlCaPhiSym, process.Dataset_Commissioning, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressPhysics, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_L1Accept, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_PPRefDoubleMuon0, process.Dataset_PPRefDoubleMuon1, process.Dataset_PPRefDoubleMuon2, process.Dataset_PPRefDoubleMuon3, process.Dataset_PPRefHardProbes0, process.Dataset_PPRefSingleMuon0, process.Dataset_PPRefZeroBiasPlusForward0, process.Dataset_RPCMonitor, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCAP0Output, process.ALCAPHISYMOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.HLTMonitorOutput, process.PhysicsCommissioningOutput, process.PhysicsPPRefDoubleMuon0Output, process.PhysicsPPRefDoubleMuon1Output, process.PhysicsPPRefDoubleMuon2Output, process.PhysicsPPRefDoubleMuon3Output, process.PhysicsPPRefHardProbes0Output, process.PhysicsPPRefHardProbes1Output, process.PhysicsPPRefHardProbes2Output, process.PhysicsPPRefSingleMuon0Output, process.PhysicsPPRefSingleMuon1Output, process.PhysicsPPRefSingleMuon2Output, process.PhysicsPPRefZeroBiasPlusForward0Output, process.PhysicsPPRefZeroBiasPlusForward1Output, process.PhysicsPPRefZeroBiasPlusForward2Output, process.PhysicsPPRefZeroBiasPlusForward3Output, process.PhysicsPPRefZeroBiasPlusForward4Output, process.PhysicsPPRefZeroBiasPlusForward5Output, process.PhysicsPPRefZeroBiasPlusForward6Output, process.PhysicsPPRefZeroBiasPlusForward7Output, process.PhysicsPPRefZeroBiasPlusForward8Output, process.PhysicsPPRefZeroBiasPlusForward9Output, process.NanoDSTOutput, process.RPCMONOutput, process.PhysicsSpecialRandom0Output, process.PhysicsSpecialRandom1Output, process.PhysicsSpecialRandom2Output, process.PhysicsSpecialRandom3Output, process.PhysicsSpecialRandom4Output, process.PhysicsSpecialRandom5Output, process.PhysicsSpecialRandom6Output, process.PhysicsSpecialRandom7Output, process.PhysicsSpecialRandom8Output, process.PhysicsSpecialRandom9Output, process.Dataset_SpecialRandom0, process.Dataset_SpecialRandom1, process.Dataset_SpecialRandom2, process.Dataset_SpecialRandom3, process.Dataset_SpecialRandom4, process.Dataset_SpecialRandom5, process.Dataset_SpecialRandom6, process.Dataset_SpecialRandom7, process.Dataset_SpecialRandom8, process.Dataset_SpecialRandom9, process.Dataset_SpecialRandom10, process.Dataset_SpecialRandom11, process.Dataset_SpecialRandom12, process.Dataset_SpecialRandom13, process.Dataset_SpecialRandom14, process.Dataset_SpecialRandom15, process.Dataset_SpecialRandom16, process.Dataset_SpecialRandom17, process.Dataset_SpecialRandom18, process.Dataset_SpecialRandom19, process.Dataset_PPRefZeroBiasPlusForward1, process.Dataset_PPRefZeroBiasPlusForward2, process.Dataset_PPRefZeroBiasPlusForward3, process.Dataset_PPRefZeroBiasPlusForward4, process.Dataset_PPRefZeroBiasPlusForward5, process.Dataset_PPRefZeroBiasPlusForward6, process.Dataset_PPRefZeroBiasPlusForward7, process.Dataset_PPRefZeroBiasPlusForward8, process.Dataset_PPRefZeroBiasPlusForward9, process.Dataset_PPRefZeroBiasPlusForward10, process.Dataset_PPRefZeroBiasPlusForward11, process.Dataset_PPRefZeroBiasPlusForward12, process.Dataset_PPRefZeroBiasPlusForward13, process.Dataset_PPRefZeroBiasPlusForward14, process.Dataset_PPRefZeroBiasPlusForward15, process.Dataset_PPRefZeroBiasPlusForward16, process.Dataset_PPRefZeroBiasPlusForward17, process.Dataset_PPRefZeroBiasPlusForward18, process.Dataset_PPRefZeroBiasPlusForward19, process.Dataset_PPRefZeroBiasPlusForward20, process.Dataset_PPRefZeroBiasPlusForward21, process.Dataset_PPRefZeroBiasPlusForward22, process.Dataset_PPRefZeroBiasPlusForward23, process.Dataset_PPRefZeroBiasPlusForward24, process.Dataset_PPRefSingleMuon1, process.Dataset_PPRefSingleMuon2, process.Dataset_PPRefSingleMuon3, process.Dataset_PPRefHardProbes1, process.Dataset_PPRefHardProbes2, process.Dataset_PPRefHardProbes3, process.Dataset_PPRefHardProbes4, process.PhysicsPPRefHardProbes3Output, process.PhysicsPPRefHardProbes4Output, process.PhysicsPPRefSingleMuon3Output, process.PhysicsPPRefZeroBiasPlusForward10Output, process.PhysicsPPRefZeroBiasPlusForward11Output, process.PhysicsPPRefZeroBiasPlusForward12Output, process.PhysicsPPRefZeroBiasPlusForward13Output, process.PhysicsPPRefZeroBiasPlusForward14Output, process.PhysicsPPRefZeroBiasPlusForward15Output, process.PhysicsPPRefZeroBiasPlusForward16Output, process.PhysicsPPRefZeroBiasPlusForward18Output, process.PhysicsPPRefZeroBiasPlusForward19Output, process.PhysicsPPRefZeroBiasPlusForward17Output, process.PhysicsPPRefZeroBiasPlusForward24Output, process.PhysicsPPRefZeroBiasPlusForward23Output, process.PhysicsPPRefZeroBiasPlusForward22Output, process.PhysicsPPRefZeroBiasPlusForward21Output, process.PhysicsPPRefZeroBiasPlusForward20Output, )) # source module (EDM inputs) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Special.py b/HLTrigger/Configuration/test/OnLine_HLT_Special.py index b2128742e1649..372912f71aaa1 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Special.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Special.py @@ -1,6 +1,6 @@ # hltGetConfiguration /dev/CMSSW_14_1_0/Special --full --data --type Special --unprescale --process HLTSpecial --globaltag auto:run3_hlt_Special --input file:RelVal_Raw_Special_DATA.root -# /dev/CMSSW_14_1_0/Special/V40 (CMSSW_14_1_1) +# /dev/CMSSW_14_1_0/Special/V50 (CMSSW_14_1_1) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Special/V40") + tableName = cms.string("/dev/CMSSW_14_1_0/Special/V50") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -4499,8 +4499,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), @@ -5516,8 +5516,8 @@ recoverEEFE = cms.bool( False ), dbStatusToBeExcludedEE = cms.vint32( 14, 78, 142 ), dbStatusToBeExcludedEB = cms.vint32( 14, 78, 142 ), - logWarningEtThreshold_EB_FE = cms.double( 50.0 ), - logWarningEtThreshold_EE_FE = cms.double( 50.0 ), + logWarningEtThreshold_EB_FE = cms.double( -1.0 ), + logWarningEtThreshold_EE_FE = cms.double( -1.0 ), ebDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebDetId' ), eeDetIdToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','eeDetId' ), ebFEToBeRecovered = cms.InputTag( 'hltEcalDetIdToBeRecovered','ebFE' ), From 6007679640da752e93aff8c1e11e9ddfec7cd49f Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 6 Nov 2024 16:29:13 +0100 Subject: [PATCH 137/418] update of L1T HIon menu in TSG GTs to L1Menu_CollisionsHeavyIons2024_v1_0_6_xml --- Configuration/HLT/python/autoCondHLT.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configuration/HLT/python/autoCondHLT.py b/Configuration/HLT/python/autoCondHLT.py index 28a2d403ff47b..1631eeafa6fe1 100644 --- a/Configuration/HLT/python/autoCondHLT.py +++ b/Configuration/HLT/python/autoCondHLT.py @@ -21,7 +21,7 @@ 'FULL' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-03 09:00:00.000"] ), ), 'GRun' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-03 09:00:00.000"] ), ), '2024v14' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-03 09:00:00.000"] ), ), - 'HIon' : ( ','.join( [ 'L1Menu_CollisionsHeavyIons2024_v1_0_5_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-10-11 21:16:08.000"] ), ), + 'HIon' : ( ','.join( [ 'L1Menu_CollisionsHeavyIons2024_v1_0_6_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-11-05 11:11:22.000"] ), ), 'PIon' : ( ','.join( [ 'L1Menu_HeavyIons2016_v3_m2_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2016-11-22 11:11:00.000"] ), ), 'PRef' : ( ','.join( [ 'L1Menu_CollisionsPPRef2024_v1_0_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-09-24 11:45:00.000"] ), ), 'Special' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-03 09:00:00.000"] ), ), From 24289e7fcd1257387c3128f5c3adeb983ee6fc3f Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 20 Nov 2024 09:22:55 +0100 Subject: [PATCH 138/418] move from L1Menu_Collisions2024_v1_3_0_xml to L1Menu_Collisions2024_v1_3_0-d1_xml in autoCondHLT in order to have the same firmware uuid as in the real data-taking --- Configuration/HLT/python/autoCondHLT.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Configuration/HLT/python/autoCondHLT.py b/Configuration/HLT/python/autoCondHLT.py index 1631eeafa6fe1..e6b819a30d862 100644 --- a/Configuration/HLT/python/autoCondHLT.py +++ b/Configuration/HLT/python/autoCondHLT.py @@ -18,13 +18,13 @@ 'Fake' : ( ','.join( [ 'L1GtTriggerMenu_L1Menu_Collisions2012_v3_mc' , l1MenuRecord,connectionString, l1MenuLabel, "2015-10-26 12:00:00.000"] ), ), 'Fake1' : ( ','.join( [ 'L1Menu_Collisions2015_25nsStage1_v5' , l1MenuRecord,connectionString, l1MenuLabel, "2015-10-26 12:00:00.000"] ), ), 'Fake2' : ( ','.join( [ 'L1Menu_Collisions2016_v9_m2_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2016-10-06 19:36:53.000"] ), ), - 'FULL' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-03 09:00:00.000"] ), ), - 'GRun' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-03 09:00:00.000"] ), ), - '2024v14' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-03 09:00:00.000"] ), ), + 'FULL' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0-d1_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-26 09:00:00.000"] ), ), + 'GRun' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0-d1_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-26 09:00:00.000"] ), ), + '2024v14' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0-d1_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-26 09:00:00.000"] ), ), 'HIon' : ( ','.join( [ 'L1Menu_CollisionsHeavyIons2024_v1_0_6_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-11-05 11:11:22.000"] ), ), 'PIon' : ( ','.join( [ 'L1Menu_HeavyIons2016_v3_m2_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2016-11-22 11:11:00.000"] ), ), 'PRef' : ( ','.join( [ 'L1Menu_CollisionsPPRef2024_v1_0_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-09-24 11:45:00.000"] ), ), - 'Special' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-03 09:00:00.000"] ), ), + 'Special' : ( ','.join( [ 'L1Menu_Collisions2024_v1_3_0-d1_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2024-07-26 09:00:00.000"] ), ), } hltGTs = { From b06577fedee374d09235d07e4ccf8505ad3647ac Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 26 Nov 2024 17:59:45 +0100 Subject: [PATCH 139/418] fix buggy customization function customiseHLTFor46647 --- HLTrigger/Configuration/python/customizeHLTforCMSSW.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index 1d87fe0c1011d..dc725f23f5e51 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -56,11 +56,11 @@ def customiseHLTFor46647(process): # Replace it with cms.uint32 prod.DontCountDetsAboveNClusters = cms.uint32(value) - for prod in producers_by_type(process, 'SeedCombiner'): - if hasattr(prod, "PairCollection"): - delattr(prod, "PairCollection") - if hasattr(prod, "TripletCollection"): - delattr(prod, "TripletCollection") + for prod in producers_by_type(process, 'SeedCombiner'): + if hasattr(prod, "PairCollection"): + delattr(prod, "PairCollection") + if hasattr(prod, "TripletCollection"): + delattr(prod, "TripletCollection") return process From 021c96d61247d2fef17237cbb961e880afb46b3a Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 18:39:11 +0100 Subject: [PATCH 140/418] Do not crash if HepMCProduct is not found --- .../plugins/GenParticleProducer.cc | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc b/PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc index e0f06928f57f7..c120d58545095 100644 --- a/PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc +++ b/PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc @@ -175,6 +175,7 @@ std::shared_ptr GenParticleProducer::globalBeginRun(const Run&, con } void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) const { + std::unordered_map barcodes; size_t totalSize = 0; @@ -195,12 +196,17 @@ void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) co } LogDebug("GenParticleProducer") << "totalSize : " << totalSize << endl; } else { + Handle mcp; - evt.getByToken(srcToken_, mcp); - mc = mcp->GetEvent(); - if (mc == nullptr) - throw edm::Exception(edm::errors::InvalidReference) << "HepMC has null pointer to GenEvent" << endl; - totalSize = mc->particles_size(); + bool found = evt.getByToken(srcToken_, mcp); + if (found) { + mc = mcp->GetEvent(); + if (mc == nullptr) + throw edm::Exception(edm::errors::InvalidReference) << "HepMC has null pointer to GenEvent" << endl; + totalSize = mc->particles_size(); + } else { + totalSize = 0; + } } // initialise containers @@ -281,6 +287,7 @@ void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) co offset += num_particles; } } else { + if (totalSize) { auto origin = (*mc->vertices_begin())->position(); xyz0Ptr->SetXYZ(origin.x() * mmToCm, origin.y() * mmToCm, origin.z() * mmToCm); *t0Ptr = origin.t() * mmToNs; @@ -304,6 +311,7 @@ void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) co fillDaughters(cands, part, ref, d, barcodes); cands[d].setCollisionId(0); } + } } evt.put(std::move(candsPtr)); @@ -313,6 +321,7 @@ void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) co delete cfhepmcprod; evt.put(std::move(xyz0Ptr), "xyz0"); evt.put(std::move(t0Ptr), "t0"); + } bool GenParticleProducer::convertParticle(reco::GenParticle& cand, @@ -353,7 +362,6 @@ bool GenParticleProducer::fillDaughters(reco::GenParticleCollection& cands, cands[index].addMother(GenParticleRef(ref, m)); } } - return true; } From 3a2705378378f0f66a0b2d18c66a39beba8485a3 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 18:48:54 +0100 Subject: [PATCH 141/418] Fix codechecks --- .../plugins/GenParticleProducer.cc | 47 +++++++++---------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc b/PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc index c120d58545095..9c48fbb2ba91f 100644 --- a/PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc +++ b/PhysicsTools/HepMCCandAlgos/plugins/GenParticleProducer.cc @@ -175,7 +175,6 @@ std::shared_ptr GenParticleProducer::globalBeginRun(const Run&, con } void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) const { - std::unordered_map barcodes; size_t totalSize = 0; @@ -196,7 +195,6 @@ void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) co } LogDebug("GenParticleProducer") << "totalSize : " << totalSize << endl; } else { - Handle mcp; bool found = evt.getByToken(srcToken_, mcp); if (found) { @@ -288,29 +286,29 @@ void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) co } } else { if (totalSize) { - auto origin = (*mc->vertices_begin())->position(); - xyz0Ptr->SetXYZ(origin.x() * mmToCm, origin.y() * mmToCm, origin.z() * mmToCm); - *t0Ptr = origin.t() * mmToNs; - fillIndices(mc, particles, *barCodeVector, 0, barcodes); - - // fill output collection and save association - for (size_t i = 0; i < particles.size(); ++i) { - const HepMC::GenParticle* part = particles[i]; - reco::GenParticle& cand = cands[i]; - // convert HepMC::GenParticle to new reco::GenParticle - convertParticle(cand, part, id2Charge); - cand.resetDaughters(ref.id()); - } + auto origin = (*mc->vertices_begin())->position(); + xyz0Ptr->SetXYZ(origin.x() * mmToCm, origin.y() * mmToCm, origin.z() * mmToCm); + *t0Ptr = origin.t() * mmToNs; + fillIndices(mc, particles, *barCodeVector, 0, barcodes); - // fill references to daughters - for (size_t d = 0; d < cands.size(); ++d) { - const HepMC::GenParticle* part = particles[d]; - const GenVertex* productionVertex = part->production_vertex(); - // search barcode map and attach daughters - if (productionVertex != nullptr) - fillDaughters(cands, part, ref, d, barcodes); - cands[d].setCollisionId(0); - } + // fill output collection and save association + for (size_t i = 0; i < particles.size(); ++i) { + const HepMC::GenParticle* part = particles[i]; + reco::GenParticle& cand = cands[i]; + // convert HepMC::GenParticle to new reco::GenParticle + convertParticle(cand, part, id2Charge); + cand.resetDaughters(ref.id()); + } + + // fill references to daughters + for (size_t d = 0; d < cands.size(); ++d) { + const HepMC::GenParticle* part = particles[d]; + const GenVertex* productionVertex = part->production_vertex(); + // search barcode map and attach daughters + if (productionVertex != nullptr) + fillDaughters(cands, part, ref, d, barcodes); + cands[d].setCollisionId(0); + } } } @@ -321,7 +319,6 @@ void GenParticleProducer::produce(StreamID, Event& evt, const EventSetup& es) co delete cfhepmcprod; evt.put(std::move(xyz0Ptr), "xyz0"); evt.put(std::move(t0Ptr), "t0"); - } bool GenParticleProducer::convertParticle(reco::GenParticle& cand, From d4fd2c8c206b1812f944db9d4dfa7ef093619f6f Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Tue, 26 Nov 2024 14:12:33 -0500 Subject: [PATCH 142/418] Fixed memcpy size mismatch (#133) --- RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc index c9c6d5c051b27..d77e242a1a88c 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc @@ -1202,8 +1202,9 @@ void LSTEvent::addQuintupletsToEventExplicit() { // FIXME: replace by ES host data auto module_subdets_buf = cms::alpakatools::make_host_buffer(queue_, nLowerModules_); - auto module_subdets_view = cms::alpakatools::make_device_view(queue_, modules.subdets(), modules.metadata().size()); - alpaka::memcpy(queue_, module_subdets_buf, module_subdets_view, nModules_); + auto module_subdets_view = + cms::alpakatools::make_device_view(queue_, modules.subdets(), nLowerModules_); // only lower modules + alpaka::memcpy(queue_, module_subdets_buf, module_subdets_view, nLowerModules_); auto module_layers_buf = cms::alpakatools::make_host_buffer(queue_, nLowerModules_); auto module_layers_view = From 142d711a0defc933936e34e38a18755b537c7349 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Tue, 19 Nov 2024 10:37:58 -0800 Subject: [PATCH 143/418] Add Occupancy Branches Co-authored-by: Gavin Niendorf --- .../standalone/code/core/write_lst_ntuple.cc | 80 +++++++++++++++++++ .../standalone/code/core/write_lst_ntuple.h | 1 + 2 files changed, 81 insertions(+) diff --git a/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc index 1da3099947c79..ffa193e7e13d0 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc @@ -134,6 +134,23 @@ void createOptionalOutputBranches() { ana.tx->createBranch>("t5_rzChiSquared"); ana.tx->createBranch>("t5_nonAnchorChiSquared"); + // Occupancy branches + ana.tx->createBranch>("module_layers"); + ana.tx->createBranch>("module_subdets"); + ana.tx->createBranch>("module_rings"); + ana.tx->createBranch>("module_rods"); + ana.tx->createBranch>("module_modules"); + ana.tx->createBranch>("module_isTilted"); + ana.tx->createBranch>("module_eta"); + ana.tx->createBranch>("module_r"); + ana.tx->createBranch>("md_occupancies"); + ana.tx->createBranch>("sg_occupancies"); + ana.tx->createBranch>("t3_occupancies"); + ana.tx->createBranch("tc_occupancies"); + ana.tx->createBranch>("t5_occupancies"); + ana.tx->createBranch("pT3_occupancies"); + ana.tx->createBranch("pT5_occupancies"); + #endif } @@ -284,10 +301,73 @@ void setOptionalOutputBranches(LSTEvent* event) { setPixelQuintupletOutputBranches(event); setQuintupletOutputBranches(event); setPixelTripletOutputBranches(event); + setOccupancyBranches(event); #endif } +//________________________________________________________________________________________________________________________________ +void setOccupancyBranches(LSTEvent* event) { + auto modules = event->getModules(); + auto miniDoublets = event->getMiniDoublets(); + auto segments = event->getSegments(); + auto triplets = event->getTriplets(); + auto quintuplets = event->getQuintuplets(); + auto pixelQuintuplets = event->getPixelQuintuplets(); + auto pixelTriplets = event->getPixelTriplets(); + auto trackCandidates = event->getTrackCandidates(); + + std::vector moduleLayer; + std::vector moduleSubdet; + std::vector moduleRing; + std::vector moduleRod; + std::vector moduleModule; + std::vector moduleEta; + std::vector moduleR; + std::vector moduleIsTilted; + std::vector trackCandidateOccupancy; + std::vector tripletOccupancy; + std::vector segmentOccupancy; + std::vector mdOccupancy; + std::vector quintupletOccupancy; + + for (unsigned int lowerIdx = 0; lowerIdx <= modules.nLowerModules(); lowerIdx++) { + //layer = 0, subdet = 0 => pixel module + moduleLayer.push_back(modules.layers()[lowerIdx]); + moduleSubdet.push_back(modules.subdets()[lowerIdx]); + moduleRing.push_back(modules.rings()[lowerIdx]); + moduleRod.push_back(modules.rods()[lowerIdx]); + moduleEta.push_back(modules.eta()[lowerIdx]); + moduleR.push_back(modules.r()[lowerIdx]); + bool isTilted = (modules.subdets()[lowerIdx] == 5 and modules.sides()[lowerIdx] != 3); + moduleIsTilted.push_back(isTilted); + moduleModule.push_back(modules.modules()[lowerIdx]); + segmentOccupancy.push_back(segments.totOccupancySegments()[lowerIdx]); + mdOccupancy.push_back(miniDoublets.totOccupancyMDs()[lowerIdx]); + + if (lowerIdx < modules.nLowerModules()) { + quintupletOccupancy.push_back(quintuplets.totOccupancyQuintuplets()[lowerIdx]); + tripletOccupancy.push_back(triplets.totOccupancyTriplets()[lowerIdx]); + } + } + + ana.tx->setBranch>("module_layers", moduleLayer); + ana.tx->setBranch>("module_subdets", moduleSubdet); + ana.tx->setBranch>("module_rings", moduleRing); + ana.tx->setBranch>("module_rods", moduleRod); + ana.tx->setBranch>("module_modules", moduleModule); + ana.tx->setBranch>("module_isTilted", moduleIsTilted); + ana.tx->setBranch>("module_eta", moduleEta); + ana.tx->setBranch>("module_r", moduleR); + ana.tx->setBranch>("md_occupancies", mdOccupancy); + ana.tx->setBranch>("sg_occupancies", segmentOccupancy); + ana.tx->setBranch>("t3_occupancies", tripletOccupancy); + ana.tx->setBranch("tc_occupancies", trackCandidates.nTrackCandidates()); + ana.tx->setBranch("pT3_occupancies", pixelTriplets.totOccupancyPixelTriplets()); + ana.tx->setBranch>("t5_occupancies", quintupletOccupancy); + ana.tx->setBranch("pT5_occupancies", pixelQuintuplets.totOccupancyPixelQuintuplets()); +} + //________________________________________________________________________________________________________________________________ void setPixelQuintupletOutputBranches(LSTEvent* event) { // ============ pT5 ============= diff --git a/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.h b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.h index 314096f72679e..d51c53c95b043 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.h +++ b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.h @@ -22,6 +22,7 @@ void createGnnNtupleBranches(); void fillOutputBranches(LSTEvent* event); void setOutputBranches(LSTEvent* event); void setOptionalOutputBranches(LSTEvent* event); +void setOccupancyBranches(LSTEvent* event); void setPixelQuintupletOutputBranches(LSTEvent* event); void setQuintupletOutputBranches(LSTEvent* event); void setPixelTripletOutputBranches(LSTEvent* event); From 46da9654be647ed3277fcda21b4afcbb204ebfd5 Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Wed, 20 Nov 2024 08:58:43 -0800 Subject: [PATCH 144/418] Changes to make standalone run also from within a CMSSW area Co-authored-by: Manos Vourliotis --- RecoTracker/LSTCore/src/LSTESData.cc | 28 ++++++++++++------------- RecoTracker/LSTCore/standalone/setup.sh | 22 ++++++++++--------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/RecoTracker/LSTCore/src/LSTESData.cc b/RecoTracker/LSTCore/src/LSTESData.cc index 8c2197ac76fa8..dad8522bbe2cd 100644 --- a/RecoTracker/LSTCore/src/LSTESData.cc +++ b/RecoTracker/LSTCore/src/LSTESData.cc @@ -10,25 +10,25 @@ namespace { std::string geometryDataDir() { - const char* path_lst_base = std::getenv("LST_BASE"); + std::string path_str, path; const char* path_tracklooperdir = std::getenv("TRACKLOOPERDIR"); - std::string path_str; - if (path_lst_base != nullptr) { - path_str = path_lst_base; - } else if (path_tracklooperdir != nullptr) { + std::stringstream search_path; + search_path << std::getenv("CMSSW_SEARCH_PATH"); + + while (std::getline(search_path, path, ':')) { + if (std::filesystem::exists(path + "/RecoTracker/LSTCore/data")) { + path_str = path; + break; + } + } + + if (path_str.empty()) { path_str = path_tracklooperdir; - path_str += "/../"; + path_str += "/.."; } else { - std::stringstream search_path(std::getenv("CMSSW_SEARCH_PATH")); - std::string path; - while (std::getline(search_path, path, ':')) { - if (std::filesystem::exists(path + "/RecoTracker/LSTCore/data")) { - path_str = path; - break; - } - } path_str += "/RecoTracker/LSTCore"; } + return path_str; } diff --git a/RecoTracker/LSTCore/standalone/setup.sh b/RecoTracker/LSTCore/standalone/setup.sh index 1a35fa8e69bdf..570a7ae9fee81 100644 --- a/RecoTracker/LSTCore/standalone/setup.sh +++ b/RecoTracker/LSTCore/standalone/setup.sh @@ -7,18 +7,20 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" source $DIR/code/rooutil/thisrooutil.sh ARCH=$(uname -m) -if [[ $(hostname) == *lnx4555* ]]; then - export SCRAM_ARCH=el9_amd64_gcc12 -elif [[ $ARCH == "aarch64" || $ARCH == "arm64" ]]; then - export SCRAM_ARCH=el9_aarch64_gcc12 +if [ -z ${CMSSW_SEARCH_PATH+x} ]; then + if [ -z ${FORCED_CMSSW_VERSION+x} ]; then + export CMSSW_VERSION=CMSSW_14_2_0_pre4 + else + export CMSSW_VERSION=$FORCED_CMSSW_VERSION + fi + + source /cvmfs/cms.cern.ch/cmsset_default.sh + CMSSW_PATH=$(scram list -c CMSSW | grep -w $CMSSW_VERSION | awk '{print $3}') + cd $CMSSW_PATH + eval `scramv1 runtime -sh` else - export SCRAM_ARCH=el8_amd64_gcc12 + cd $CMSSW_BASE/src fi -export CMSSW_VERSION=CMSSW_14_2_0_pre3 - -source /cvmfs/cms.cern.ch/cmsset_default.sh -cd /cvmfs/cms.cern.ch/$SCRAM_ARCH/cms/cmssw/$CMSSW_VERSION/src -eval `scramv1 runtime -sh` # Export paths to libraries we need export BOOST_ROOT=$(scram tool info boost | grep BOOST_BASE | cut -d'=' -f2) From ccdd1cb3d9effe0527f55be5f6d8ea115e625bdf Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Fri, 22 Nov 2024 08:25:03 -0800 Subject: [PATCH 145/418] Improvements to the README Co-authored-by: Manos Vourliotis --- RecoTracker/LSTCore/standalone/README.md | 276 +++++++---------------- 1 file changed, 85 insertions(+), 191 deletions(-) diff --git a/RecoTracker/LSTCore/standalone/README.md b/RecoTracker/LSTCore/standalone/README.md index 02fbef943f697..ed68ea6797f8e 100644 --- a/RecoTracker/LSTCore/standalone/README.md +++ b/RecoTracker/LSTCore/standalone/README.md @@ -1,53 +1,93 @@ -# TrackLooper +# How to set up standalone LST - -## Quick Start - - -### Setting up LSTPerformanceWeb (only for lnx7188 and lnx4555) +## Setting up LSTPerformanceWeb (only for lnx7188 and lnx4555) For lnx7188 and lnx4555 this needs to be done once cd /cdat/tem/${USER}/ git clone git@github.com:SegmentLinking/LSTPerformanceWeb.git -### Setting up container (only for lnx7188) +## Setting up container (only for lnx7188) For lnx7188 this needs to be done before compiling or running the code: singularity shell --nv --bind /mnt/data1:/data --bind /data2/segmentlinking/ --bind /opt --bind /nfs --bind /mnt --bind /usr/local/cuda/bin/ --bind /cvmfs /cvmfs/unpacked.cern.ch/registry.hub.docker.com/cmssw/el8:x86_64 -### Setting up the code +## Setting up LST + +There are two way to set up LST as a standalone, either by setting up a full CMSSW area, which provides a unified setup for standalone and CMSSW tests, or by `sparse-checkout` only the relevant package and using them independent of CMSSW. A CVMFS-less setup is also provided for the second option. + +### Setting up LST within CMSSW (preferred option) + +```bash +CMSSW_VERSION=CMSSW_14_2_0_pre4 # Change with latest/preferred CMSSW version +cmsrel ${CMSSW_VERSION} +cd ${CMSSW_VERSION}/src/ +cmsenv +git cms-init +# If necessary, add the remote git@github.com:SegmentLinking/cmssw.git +# and checkout a development/feature branch +git cms-addpkg RecoTracker/LST RecoTracker/LSTCore +# If modifying some dependencies, run `git cms-checkdeps -a -A` +scram b -j 12 +cd RecoTracker/LSTCore/standalone +``` + +The data files for LST will be fetched from CVMFS. However, if new data files are needed, the need to be manually placed (under `$CMSSW_BASE/external/$SCRAM_ARCH/data/RecoTracker/LSTCore/data/`). This is done by running: - git clone git@github.com:SegmentLinking/TrackLooper.git - cd TrackLooper/ - # Source one of the commands below, depending on the site - source setup.sh # if on UCSD or Cornell - source setup_hpg.sh # if on Florida +```bash +mkdir -p $CMSSW_BASE/external/$SCRAM_ARCH/data/RecoTracker/LSTCore/ +cd $CMSSW_BASE/external/$SCRAM_ARCH/data/RecoTracker/LSTCore/ +git clone git@github.com:cms-data/RecoTracker-LSTCore.git data + +cd - +``` -### Running the code +### Setting up LST outside of CMSSW - sdl_make_tracklooper -mc - sdl_ -i PU200 -o LSTNtuple.root +For this setup, dependencies are still provided from CMSSW through CVMFS but no CMSSW area is setup. This is done by running the following commands. + +``` bash +LST_BRANCH=master # Change to the development branch +git clone --filter=blob:none --no-checkout --depth 1 --sparse --branch ${LST_BRANCH} https://github.com/SegmentLinking/cmssw.git TrackLooper +cd TrackLooper +git sparse-checkout add RecoTracker/LSTCore +git checkout +cd RecoTracker/LSTCore/standalone/ +``` + +As in the sectino above, the data files are fetched from CVMFS, but they can also be copied manually under `RecoTracker/LSTCore/data/`. + + +## Running the code + +Each time the standalone version of LST is to be used, the following command should be run from the `RecoTracker/LSTCore/standalone` directory: +```bash +source setup.sh +``` + +For running the code: + + lst_make_tracklooper -m + lst_ -i PU200 -o LSTNtuple.root createPerfNumDenHists -i LSTNtuple.root -o LSTNumDen.root - lst_plot_performance.py LSTNumDen.root -t "myTag" - # python3 efficiency/python/lst_plot_performance.py LSTNumDen.root -t "myTag" # if you are on cgpu-1 or Cornell + lst_plot_performance.py LSTNumDen.root -t "myTag" # or + python3 efficiency/python/lst_plot_performance.py LSTNumDen.root -t "myTag" # if you are on cgpu-1 or Cornell The above can be even simplified - sdl_run -f -mc -s PU200 -n -1 -t myTag + lst_run -f -m -s PU200 -n -1 -t myTag The `-f` flag can be omitted when the code has already been compiled. If multiple backends were compiled, then the `-b` flag can be used to specify a backend. For example - sdl_run -b cpu -s PU200 -n -1 -t myTag + lst_run -b cpu -s PU200 -n -1 -t myTag -## Command explanations +### Command explanations Compile the code with option flags. If none of `C,G,R,A` are used, then it defaults to compiling for CUDA and CPU. - sdl_make_tracklooper -mc + lst_make_tracklooper -m -m: make clean binaries - -c: run with the cmssw caching allocator -C: compile CPU backend -G: compile CUDA backend -R: compile ROCm backend @@ -56,7 +96,7 @@ Compile the code with option flags. If none of `C,G,R,A` are used, then it defau Run the code - sdl_ -n -v -w -s -i -o + lst_ -n -v -w -s -i -o -i: PU200; muonGun, etc -n: number of events; default: all @@ -106,186 +146,40 @@ Comparing two different runs -t "mywork" \ --compare -## CMSSW Integration -This is the a complete set of instruction on how the TrackLooper code -can be linked as an external tool in CMSSW: - -### Build TrackLooper -```bash -git clone git@github.com:SegmentLinking/TrackLooper.git -cd TrackLooper/ -# Source one of the commands below, depending on the site -source setup.sh # if on UCSD or Cornell -source setup_hpg.sh # if on Florida -sdl_make_tracklooper -mc -cd .. -``` - -### Set up `TrackLooper` as an external -```bash -mkdir workingFolder # Create the folder you will be working in -cd workingFolder -cmsrel CMSSW_14_1_0_pre3 -cd CMSSW_14_1_0_pre3/src -cmsenv -git cms-init -git remote add SegLink git@github.com:SegmentLinking/cmssw.git -git fetch SegLink CMSSW_14_1_0_pre3_LST_X -git cms-addpkg RecoTracker Configuration -git checkout CMSSW_14_1_0_pre3_LST_X -#To include both the CPU library and GPU library into CMSSW, create 3 xml files (headers file has no library). -#Before writing the following xml file, check that libsdl_cpu.so and libsdl_gpu.so can be found under the ../../../TrackLooper/SDL/ folder. -cat <lst_headers.xml - - - - - - - -EOF -cat <lst_cpu.xml - - - - - - - - - -EOF -cat <lst_cuda.xml - - - - - - - - - -EOF -scram setup lst_headers.xml -scram setup lst_cpu.xml -scram setup lst_cuda.xml -cmsenv -git cms-checkdeps -a -A -scram b -j 12 -``` - -### Run the LST reconstruction in CMSSW -A simple test configuration of the LST reconstruction can be run with the command: -```bash -cmsRun RecoTracker/LST/test/LSTAlpakaTester.py -``` +# How to set up CMSSW with LST -For a more complete workflow, one can run a modified version of the 21034.1 workflow. -To get the commands of this workflow, one can run: -```bash -runTheMatrix.py -w upgrade -n -e -l 21034.1 -``` +## Setting up the area -For convenience, the workflow has been run for 100 events and the output is stored here: -```bash -/data2/segmentlinking/CMSSW_14_1_0_pre0/step2_21034.1_100Events.root -``` +Follow the instructions in the ["Setting up LST within CMSSW" section](#setting-up-lst-within-cmssw-preferred-option). -For enabling the LST reconstruction in the CMSSW tracking workflow, a modified step3 needs to be run. -This is based on the step3 command of the 21034.1 workflow with the following changes: - - Remove the `--pileup_input` and `--pileup` flags. - - The number of threads and streams for the job can be optionally controlled by the `--nThreads` and `--nStreams` command line options respectively (`1` ends up being the actual default value for both, and more info can be found by running `cmsDriver.py --help`). - - Add at the end of the command: `--procModifiers gpu,trackingLST,trackingIters01 --no_exec` - -Run the command and modify the output configuration file with the following: - - If want to run a cpu version, remove the ```gpu``` in the line defining the `process` object: - ```python - process = cms.Process('RECO',...,gpu,...) - ``` - - Add the following lines below the part where the import of the standard configurations happens: - ```python - process.load('Configuration.StandardSequences.Accelerators_cff') - process.load("HeterogeneousCore.AlpakaCore.ProcessAcceleratorAlpaka_cfi") - ``` - - Modify the input and output file names accordingly, as well as the number of events. - -Then, run the configuration file with `cmsRun`. - -To get the DQM files, one would have to run step4 of the 21034.1 workflow with the following modifications: - - Add `--no_exec` to the end of command and then run it. - - Modify the output configuration file by changing the input file (the one containing `inDQM` from the previous step) and number of events accordingly. +## Run the LST reconstruction in CMSSW (read to the end, before running) -Running the configuration file with `cmsRun`, the output file will have a name starting with `DQM`. The name is the same every time this step runs, -so it is good practice to rename the file, e.g. to `tracking_Iters01LST.root`. -The MTV plots can be produced with the command: -```bash -makeTrackValidationPlots.py --extended tracking_Iters01LST.root -``` -Comparison plots can be made by including multiple ROOT files as arguments. +Two complete workflows have been implemented within CMSSW to run a two-iteration, tracking-only reconstruction with LST: + - 24834.703 (CPU) + - 24834.704 (GPU) -**Note:** In case one wants to run step2 as well, similar modifications as in step4 (`--no_exec` flag and input file/number of events) need to be applied. Moreover, the PU files have better be modified to point to local ones. This can be done by inserting a dummy file when running the command (set the argument of the `--pileup_input` flag to `file:file.root`), and then change the PU input files in the configuration to the following line (by means of replacing the corresponding line in the configuration): -```python -process.mix.input.fileNames = cms.untracked.vstring(['file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/066fc95d-1cef-4469-9e08-3913973cd4ce.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/07928a25-231b-450d-9d17-e20e751323a1.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/26bd8fb0-575e-4201-b657-94cdcb633045.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/4206a9c5-44c2-45a5-aab2-1a8a6043a08a.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/55a372bf-a234-4111-8ce0-ead6157a1810.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/59ad346c-f405-4288-96d7-795f81c43fe8.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/7280f5ec-b71d-4579-a730-7ce2de0ff906.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/b93adc85-715f-477a-afc9-65f3241933ee.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/c7a0aa46-f55c-4b01-977f-34a397b71fba.root', 'file:/data2/segmentlinking/PUSamplesForCMSSW1263/CMSSW_12_3_0_pre5/RelValMinBias_14TeV/GEN-SIM/123X_mcRun4_realistic_v4_2026D88noPU-v1/e77fa467-97cb-4943-884f-6965b4eb0390.root']) -``` +We will use the second one in the example below. To get the commands of this workflow, one can run: -### Inclusion of LST in other CMSSW packages -Including the line -``` - -``` -in the relevant package `BuildFile.xml` allows for -including our headers in the code of that package. + runTheMatrix.py -w upgrade -n -e -l 24834.704 -## Running LST in a CVMFS-less setup +For convenience, the workflow has been run for 100 events and the output is stored here: -The setup scripts included in this repository assume that the [CernVM File System (CVMFS)](https://cernvm.cern.ch/fs/) is installed. This provides a convenient way to fetch the required dependencies, but it is not necessary to run LST in standalone mode. Here, we briefly describe how to build and run it when CVMFS is not available. + /data2/segmentlinking/step2_29834.1_100Events.root -The necessary dependencies are CUDA, ROOT, the Boost libraries, Alpaka, and some CMSSW headers. CUDA, ROOT, and Boost, are fairly standard libraries and are available from multiple package managers. For the remaining necessary headers you will need to clone the [Alpaka](https://github.com/alpaka-group/alpaka) and [CMSSW](https://github.com/cms-sw/cmssw) repositories. The Alpaka repository is reasonably sized, but the CMSSW one extremely large, especially considering that we only need a tiny fraction of its files to build LST. We can get only the Alpaka interface headers from CMSSW by running the following commands. +The input files in each step may need to be properly adjusted to match the ones produced by the previous step/provided externally, hence it is better to run the commands with the `--no_exec` option included. -``` bash -git clone --filter=blob:none --no-checkout --depth 1 --sparse --branch CMSSW_14_1_X https://github.com/cms-sw/cmssw.git -cd cmssw -git sparse-checkout add HeterogeneousCore/AlpakaInterface -git checkout -``` +Running the configuration file with `cmsRun`, the output file will have a name starting with `DQM`. The name is the same every time this step runs, +so it is good practice to rename the file, e.g. to `step4_24834.704.root`. +The MTV plots can be produced with the command: -Then all that is left to do is set some environment variables. We give an example of how to do this in lnx7188/cgpu-1. + makeTrackValidationPlots.py --extended step4_24834.704.root -```bash -# These two lines are only needed to set the right version of gcc and nvcc. They are not needed for standard installations. -export PATH=/cvmfs/cms.cern.ch/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/bin:/cvmfs/cms.cern.ch/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre3/external/el8_amd64_gcc12/bin:$PATH -export LD_LIBRARY_PATH=/cvmfs/cms.cern.ch/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre3/biglib/el8_amd64_gcc12:/cvmfs/cms.cern.ch/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre3/lib/el8_amd64_gcc12:/cvmfs/cms.cern.ch/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre3/external/el8_amd64_gcc12/lib:/cvmfs/cms.cern.ch/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/lib64:/cvmfs/cms.cern.ch/el8_amd64_gcc12/external/gcc/12.3.1-40d504be6370b5a30e3947a6e575ca28/lib:$LD_LIBRARY_PATH - -# These are the lines that you need to manually change for a CVMFS-less setup. -# In this example we use cvmfs paths since that is where the dependencies are in lnx7188/cgpu1, but they can point to local directories. -export BOOST_ROOT=/cvmfs/cms.cern.ch/el8_amd64_gcc12/external/boost/1.80.0-60a217837b5db1cff00c7d88ec42f53a -export ALPAKA_ROOT=/cvmfs/cms.cern.ch/el8_amd64_gcc12/external/alpaka/1.1.0-7d0324257db47fde2d27987e7ff98fb4 -export CUDA_HOME=/cvmfs/cms.cern.ch/el8_amd64_gcc12/external/cuda/12.4.1-06cde0cd9f95a73a1ea05c8535f60bde -export ROOT_ROOT=/cvmfs/cms.cern.ch/el8_amd64_gcc12/lcg/root/6.30.07-21947a33e64ceb827a089697ad72e468 -export CMSSW_BASE=/cvmfs/cms.cern.ch/el8_amd64_gcc12/cms/cmssw/CMSSW_14_1_0_pre3 - -# These lines are needed to account for some extra environment variables that are exported in the setup script. -export LD_LIBRARY_PATH=$PWD/SDL/cuda:$PWD/SDL/cpu:$PWD:$LD_LIBRARY_PATH -export PATH=$PWD/bin:$PATH -export PATH=$PWD/efficiency/bin:$PATH -export PATH=$PWD/efficiency/python:$PATH -export TRACKLOOPERDIR=$PWD -export TRACKINGNTUPLEDIR=/data2/segmentlinking/CMSSW_12_2_0_pre2/ -export LSTOUTPUTDIR=. -source $PWD/code/rooutil/thisrooutil.sh - -# After this, you can compile and run LST as usual. -sdl_run -f -mc -s PU200 -n -1 -t myTag -``` +Comparison plots can be made by including multiple ROOT files as arguments. ## Code formatting and checking -The makefile in the `SDL` directory includes phony targets to run `clang-format` and `clang-tidy` on the code using the formatting and checks used in CMSSW. The following are the available commands. +Using the first setup option above, it is prefered to run the checks provided by CMSSW using the following commands. -- `make format` - Formats the code in the `SDL` directory using `clang-format` following the rules specified in `.clang-format`. -- `make check` - Runs `clang-tidy` on the code in the `SDL` directory to performs the checks specified in `.clang-tidy`. -- `make check-fix` - Same as `make check`, but fixes the issues that it knows how to fix. - \ No newline at end of file +``` +scram b -j 12 code-checks >& c.log && scram b -j 12 code-format >& f.log +``` \ No newline at end of file From 2e0a3c1ffbee17609e224bfec78d3d1976692ddb Mon Sep 17 00:00:00 2001 From: Andres Rios Tascon Date: Tue, 26 Nov 2024 15:13:20 -0500 Subject: [PATCH 146/418] LST object build upgrade: change pT5 rz chi2 cut definition into helix approximation (#128) Co-authored-by: YonsiG --- .../LSTCore/src/alpaka/PixelQuintuplet.h | 193 ++++++++++++------ .../standalone/code/core/write_lst_ntuple.cc | 1 + 2 files changed, 129 insertions(+), 65 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h index 6c3b58bb9a221..5ec314ef7bb1e 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h @@ -107,63 +107,61 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { modules.layers()[lowerModuleIndex5] + 6 * (modules.subdets()[lowerModuleIndex5] == Endcap) + 5 * (modules.subdets()[lowerModuleIndex5] == Endcap and modules.moduleType()[lowerModuleIndex5] == TwoS); + // These slides show the cut threshold definition. The comments below in the code, e.g, "cat 10", is consistent with the region separation in the slides + // https://indico.cern.ch/event/1410985/contributions/5931017/attachments/2875400/5035406/helix%20approxi%20for%20pT5%20rzchi2%20new%20results%20versions.pdf if (layer1 == 1 and layer2 == 2 and layer3 == 3) { - if (layer4 == 12 and layer5 == 13) { - return rzChiSquared < 451.141f; - } else if (layer4 == 4 and layer5 == 12) { - return rzChiSquared < 392.654f; - } else if (layer4 == 4 and layer5 == 5) { - return rzChiSquared < 225.322f; - } else if (layer4 == 7 and layer5 == 13) { - return rzChiSquared < 595.546f; - } else if (layer4 == 7 and layer5 == 8) { - return rzChiSquared < 196.111f; + if (layer4 == 12 and layer5 == 13) { // cat 10 + return rzChiSquared < 14.031f; + } else if (layer4 == 4 and layer5 == 12) { // cat 12 + return rzChiSquared < 8.760f; + } else if (layer4 == 4 and layer5 == 5) { // cat 11 + return rzChiSquared < 3.607f; + } else if (layer4 == 7 and layer5 == 13) { // cat 9 + return rzChiSquared < 16.620; + } else if (layer4 == 7 and layer5 == 8) { // cat 8 + return rzChiSquared < 17.910f; } } else if (layer1 == 1 and layer2 == 2 and layer3 == 7) { - if (layer4 == 13 and layer5 == 14) { - return rzChiSquared < 297.446f; - } else if (layer4 == 8 and layer5 == 14) { - return rzChiSquared < 451.141f; - } else if (layer4 == 8 and layer5 == 9) { - return rzChiSquared < 518.339f; + if (layer4 == 13 and layer5 == 14) { // cat 7 + return rzChiSquared < 8.950f; + } else if (layer4 == 8 and layer5 == 14) { // cat 6 + return rzChiSquared < 14.837f; + } else if (layer4 == 8 and layer5 == 9) { // cat 5 + return rzChiSquared < 18.519f; } } else if (layer1 == 1 and layer2 == 7 and layer3 == 8) { - if (layer4 == 9 and layer5 == 10) { - return rzChiSquared < 341.75f; - } else if (layer4 == 9 and layer5 == 15) { - return rzChiSquared < 341.75f; + if (layer4 == 9 and layer5 == 10) { // cat 3 + return rzChiSquared < 15.093f; + } else if (layer4 == 9 and layer5 == 15) { // cat 4 + return rzChiSquared < 11.200f; } } else if (layer1 == 2 and layer2 == 3 and layer3 == 4) { - if (layer4 == 12 and layer5 == 13) { - return rzChiSquared < 392.655f; - } else if (layer4 == 5 and layer5 == 12) { - return rzChiSquared < 341.75f; - } else if (layer4 == 5 and layer5 == 6) { - return rzChiSquared < 112.537f; + if (layer4 == 12 and layer5 == 13) { // cat 20 + return rzChiSquared < 12.868f; + } else if (layer4 == 5 and layer5 == 12) { // cat 19 + return rzChiSquared < 6.128f; + } else if (layer4 == 5 and layer5 == 6) { // cat 18 + return rzChiSquared < 2.987f; } } else if (layer1 == 2 and layer2 == 3 and layer4 == 7) { - if (layer4 == 13 and layer5 == 14) { - return rzChiSquared < 595.545f; - } else if (layer4 == 8 and layer5 == 14) { - return rzChiSquared < 74.198f; + if (layer4 == 13 and layer5 == 14) { // cat 17 + return rzChiSquared < 19.446f; + } else if (layer4 == 8 and layer5 == 14) { // cat 16 + return rzChiSquared < 17.520f; } } else if (layer1 == 2 and layer2 == 7 and layer3 == 8) { - if (layer4 == 14 and layer5 == 15) { - return rzChiSquared < 518.339f; - } else if (layer4 == 9 and layer5 == 10) { - return rzChiSquared < 8.046f; - } else if (layer4 == 9 and layer5 == 15) { - return rzChiSquared < 451.141f; + if (layer4 == 14 and layer5 == 15) { // cat 15 + return rzChiSquared < 14.71f; + } else if (layer4 == 9 and layer5 == 15) { // cat 14 + return rzChiSquared < 18.213f; } - } else if (layer1 == 3 and layer2 == 7 and layer3 == 8 and layer4 == 14 and layer5 == 15) { - return rzChiSquared < 56.207f; } else if (layer1 == 7 and layer2 == 8 and layer3 == 9) { - if (layer4 == 10 and layer5 == 11) { - return rzChiSquared < 64.578f; - } else if (layer4 == 10 and layer5 == 16) { - return rzChiSquared < 85.250f; - } else if (layer4 == 15 and layer5 == 16) { - return rzChiSquared < 85.250f; + if (layer4 == 10 and layer5 == 11) { // cat 0 + return rzChiSquared < 10.016f; + } else if (layer4 == 10 and layer5 == 16) { // cat 1 + return rzChiSquared < 87.671f; + } else if (layer4 == 15 and layer5 == 16) { // cat 2 + return rzChiSquared < 5.844f; } } return true; @@ -380,28 +378,70 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { template ALPAKA_FN_ACC ALPAKA_FN_INLINE float computePT5RZChiSquared(TAcc const& acc, ModulesConst modules, - uint16_t* lowerModuleIndices, - float* rtPix, - float* zPix, - float* rts, - float* zs) { - //use the two anchor hits of the pixel segment to compute the slope - //then compute the pseudo chi squared of the five outer hits - - float slope = (zPix[1] - zPix[0]) / (rtPix[1] - rtPix[0]); + const uint16_t* lowerModuleIndices, + const float* rtPix, + const float* xPix, + const float* yPix, + const float* zPix, + const float* rts, + const float* zs, + float pixelSegmentPt, + float pixelSegmentPx, + float pixelSegmentPy, + float pixelSegmentPz, + int pixelSegmentCharge) { float residual = 0; float error2 = 0; - //hardcoded array indices!!! float RMSE = 0; + + // the pixel positions are in unit of cm, and need to be divided by 100 to be in consistent with unit mm. + float Px = pixelSegmentPx, Py = pixelSegmentPy, Pz = pixelSegmentPz; + int charge = pixelSegmentCharge; + float x1 = xPix[1] / 100; + float y1 = yPix[1] / 100; + float z1 = zPix[1] / 100; + float r1 = rtPix[1] / 100; + + float a = -100 / kR1GeVf * charge; + for (size_t i = 0; i < Params_T5::kLayers; i++) { - uint16_t& lowerModuleIndex = lowerModuleIndices[i]; + float zsi = zs[i] / 100; + float rtsi = rts[i] / 100; + uint16_t lowerModuleIndex = lowerModuleIndices[i]; const int moduleType = modules.moduleType()[lowerModuleIndex]; const int moduleSide = modules.sides()[lowerModuleIndex]; const int moduleSubdet = modules.subdets()[lowerModuleIndex]; - residual = (moduleSubdet == Barrel) ? (zs[i] - zPix[0]) - slope * (rts[i] - rtPix[0]) - : (rts[i] - rtPix[0]) - (zs[i] - zPix[0]) / slope; - const float& drdz = modules.drdzs()[lowerModuleIndex]; + // calculation is detailed documented here https://indico.cern.ch/event/1185895/contributions/4982756/attachments/2526561/4345805/helix%20pT3%20summarize.pdf + float diffr, diffz; + float p = alpaka::math::sqrt(acc, Px * Px + Py * Py + Pz * Pz); + + float rou = a / p; + if (moduleSubdet == Endcap) { + float s = (zsi - z1) * p / Pz; + float x = x1 + Px / a * alpaka::math::sin(acc, rou * s) - Py / a * (1 - alpaka::math::cos(acc, rou * s)); + float y = y1 + Py / a * alpaka::math::sin(acc, rou * s) + Px / a * (1 - alpaka::math::cos(acc, rou * s)); + diffr = alpaka::math::abs(acc, rtsi - alpaka::math::sqrt(acc, x * x + y * y)) * 100; + residual = diffr; + } + + if (moduleSubdet == Barrel) { + float paraA = r1 * r1 + 2 * (Px * Px + Py * Py) / (a * a) + 2 * (y1 * Px - x1 * Py) / a - rtsi * rtsi; + float paraB = 2 * (x1 * Px + y1 * Py) / a; + float paraC = 2 * (y1 * Px - x1 * Py) / a + 2 * (Px * Px + Py * Py) / (a * a); + float A = paraB * paraB + paraC * paraC; + float B = 2 * paraA * paraB; + float C = paraA * paraA - paraC * paraC; + float sol1 = (-B + alpaka::math::sqrt(acc, B * B - 4 * A * C)) / (2 * A); + float sol2 = (-B - alpaka::math::sqrt(acc, B * B - 4 * A * C)) / (2 * A); + float solz1 = alpaka::math::asin(acc, sol1) / rou * Pz / p + z1; + float solz2 = alpaka::math::asin(acc, sol2) / rou * Pz / p + z1; + float diffz1 = alpaka::math::abs(acc, solz1 - zsi) * 100; + float diffz2 = alpaka::math::abs(acc, solz2 - zsi) * 100; + diffz = alpaka::math::min(acc, diffz1, diffz2); + residual = diffz; + } + //PS Modules if (moduleType == 0) { error2 = kPixelPSZpitch * kPixelPSZpitch; @@ -412,6 +452,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { //special dispensation to tilted PS modules! if (moduleType == 0 and moduleSubdet == Barrel and moduleSide != Center) { + float drdz = modules.drdzs()[lowerModuleIndex]; error2 /= (1.f + drdz * drdz); } RMSE += (residual * residual) / error2; @@ -489,8 +530,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { uint16_t lowerModuleIndices[Params_T5::kLayers] = { lowerModuleIndex1, lowerModuleIndex2, lowerModuleIndex3, lowerModuleIndex4, lowerModuleIndex5}; - float zPix[Params_pLS::kLayers] = {mds.anchorZ()[pixelInnerMDIndex], mds.anchorZ()[pixelOuterMDIndex]}; float rtPix[Params_pLS::kLayers] = {mds.anchorRt()[pixelInnerMDIndex], mds.anchorRt()[pixelOuterMDIndex]}; + float xPix[Params_pLS::kLayers] = {mds.anchorX()[pixelInnerMDIndex], mds.anchorX()[pixelOuterMDIndex]}; + float yPix[Params_pLS::kLayers] = {mds.anchorY()[pixelInnerMDIndex], mds.anchorY()[pixelOuterMDIndex]}; + float zPix[Params_pLS::kLayers] = {mds.anchorZ()[pixelInnerMDIndex], mds.anchorZ()[pixelOuterMDIndex]}; float zs[Params_T5::kLayers] = {mds.anchorZ()[firstMDIndex], mds.anchorZ()[secondMDIndex], mds.anchorZ()[thirdMDIndex], @@ -502,9 +545,32 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { mds.anchorRt()[fourthMDIndex], mds.anchorRt()[fifthMDIndex]}; - rzChiSquared = computePT5RZChiSquared(acc, modules, lowerModuleIndices, rtPix, zPix, rts, zs); + float pixelSegmentPt = segmentsPixel.ptIn()[pixelSegmentArrayIndex]; + float pixelSegmentPx = segmentsPixel.px()[pixelSegmentArrayIndex]; + float pixelSegmentPy = segmentsPixel.py()[pixelSegmentArrayIndex]; + float pixelSegmentPz = segmentsPixel.pz()[pixelSegmentArrayIndex]; + int pixelSegmentCharge = segmentsPixel.charge()[pixelSegmentArrayIndex]; - if (/*pixelRadius*/ 0 < 5.0f * kR1GeVf) { // FIXME: pixelRadius is not defined yet + rzChiSquared = 0; + + //get the appropriate centers + pixelRadius = segmentsPixel.circleRadius()[pixelSegmentArrayIndex]; + + if (pixelRadius < 5.0f * kR1GeVf) { //only apply r-z chi2 cuts for <5GeV tracks + rzChiSquared = computePT5RZChiSquared(acc, + modules, + lowerModuleIndices, + rtPix, + xPix, + yPix, + zPix, + rts, + zs, + pixelSegmentPt, + pixelSegmentPx, + pixelSegmentPy, + pixelSegmentPz, + pixelSegmentCharge); if (not passPT5RZChiSquaredCuts(modules, lowerModuleIndex1, lowerModuleIndex2, @@ -527,10 +593,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { mds.anchorY()[fourthMDIndex], mds.anchorY()[fifthMDIndex]}; - //get the appropriate radii and centers + //get the appropriate centers centerX = segmentsPixel.circleCenterX()[pixelSegmentArrayIndex]; centerY = segmentsPixel.circleCenterY()[pixelSegmentArrayIndex]; - pixelRadius = segmentsPixel.circleRadius()[pixelSegmentArrayIndex]; float T5CenterX = quintuplets.regressionG()[quintupletIndex]; float T5CenterY = quintuplets.regressionF()[quintupletIndex]; @@ -549,8 +614,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { return false; } - float xPix[] = {mds.anchorX()[pixelInnerMDIndex], mds.anchorX()[pixelOuterMDIndex]}; - float yPix[] = {mds.anchorY()[pixelInnerMDIndex], mds.anchorY()[pixelOuterMDIndex]}; rPhiChiSquaredInwards = computePT5RPhiChiSquaredInwards(T5CenterX, T5CenterY, quintupletRadius, xPix, yPix); if (quintuplets.regressionRadius()[quintupletIndex] < 5.0f * kR1GeVf) { diff --git a/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc index ffa193e7e13d0..abee42df4181b 100644 --- a/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc +++ b/RecoTracker/LSTCore/standalone/code/core/write_lst_ntuple.cc @@ -405,6 +405,7 @@ void setPixelQuintupletOutputBranches(LSTEvent* event) { ana.tx->pushbackToBranch("pT5_phi", phi); ana.tx->pushbackToBranch("pT5_layer_binary", layer_binary); ana.tx->pushbackToBranch("pT5_moduleType_binary", moduleType_binary); + ana.tx->pushbackToBranch("pT5_rzChiSquared", pixelQuintuplets.rzChiSquared()[pT5]); pT5_matched_simIdx.push_back(simidx); From db1d41b560c69cf64257ea72d9d44e09a3fce726 Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 26 Nov 2024 21:48:14 +0100 Subject: [PATCH 147/418] update phase1_2024_realistic_hi autoCond key to have the latest 2024 L1T HIon menu: L1Menu_CollisionsHeavyIons2024_v1_0_6_xml --- Configuration/AlCa/python/autoCond.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configuration/AlCa/python/autoCond.py b/Configuration/AlCa/python/autoCond.py index 857dea178e4d9..67a87e759ca91 100644 --- a/Configuration/AlCa/python/autoCond.py +++ b/Configuration/AlCa/python/autoCond.py @@ -98,7 +98,7 @@ # GlobalTag for MC production (cosmics) with perfectly aligned and calibrated detector for Phase1 2024, Strip tracker in DECO mode 'phase1_2024_cosmics_design' : '140X_mcRun3_2024cosmics_design_deco_v11', # GlobalTag for MC production with realistic conditions for Phase1 2024 detector for Heavy Ion - 'phase1_2024_realistic_hi' : '141X_mcRun3_2024_realistic_HI_v8', + 'phase1_2024_realistic_hi' : '141X_mcRun3_2024_realistic_HI_v10', # GlobalTag for MC production with realistic conditions for Phase1 2024 detector for ppRef5TeV 'phase1_2024_realistic_ppRef5TeV' : '141X_mcRun3_2024_realistic_ppRef5TeV_v5', # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2025 From e13469f4df311bd87b92393095ed00e696511406 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 22:06:48 +0100 Subject: [PATCH 148/418] Add possibility to read HepMC3Product --- .../interface/RunManagerMTWorker.h | 4 ++ .../Application/src/RunManagerMTWorker.cc | 62 ++++++++++++++----- 2 files changed, 51 insertions(+), 15 deletions(-) diff --git a/SimG4Core/Application/interface/RunManagerMTWorker.h b/SimG4Core/Application/interface/RunManagerMTWorker.h index 1cb4862a95dde..0458a281880f0 100644 --- a/SimG4Core/Application/interface/RunManagerMTWorker.h +++ b/SimG4Core/Application/interface/RunManagerMTWorker.h @@ -7,6 +7,7 @@ #include "SimDataFormats/Forward/interface/LHCTransportLinkContainer.h" #include "SimG4Core/Generators/interface/Generator.h" +#include "SimG4Core/Generators/interface/Generator3.h" #include "SimG4Core/Notification/interface/TmpSimEvent.h" #include "MagneticField/Engine/interface/MagneticField.h" @@ -22,6 +23,7 @@ namespace edm { class EventSetup; class ConsumesCollector; class HepMCProduct; + class HepMC3Product; } // namespace edm class Generator; @@ -89,7 +91,9 @@ class RunManagerMTWorker { void DumpMagneticField(const G4Field*, const std::string&) const; Generator m_generator; + Generator3 m_generator3; edm::EDGetTokenT m_InToken; + edm::EDGetTokenT m_InToken3; edm::EDGetTokenT m_LHCToken; edm::EDGetTokenT m_theLHCTlinkToken; edm::ESGetToken m_MagField; diff --git a/SimG4Core/Application/src/RunManagerMTWorker.cc b/SimG4Core/Application/src/RunManagerMTWorker.cc index db2bbf24ec047..b3ec4b9ccfe2c 100644 --- a/SimG4Core/Application/src/RunManagerMTWorker.cc +++ b/SimG4Core/Application/src/RunManagerMTWorker.cc @@ -35,7 +35,9 @@ #include "SimG4Core/MagneticField/interface/CMSFieldManager.h" #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" +#include "SimDataFormats/GeneratorProducts/interface/HepMC3Product.h" #include "DataFormats/GeometryVector/interface/GlobalPoint.h" +#include "HepMC3/Print.h" #include "SimG4Core/Physics/interface/PhysicsList.h" @@ -152,8 +154,11 @@ struct RunManagerMTWorker::TLSData { RunManagerMTWorker::RunManagerMTWorker(const edm::ParameterSet& p, edm::ConsumesCollector&& iC) : m_generator(p.getParameter("Generator")), + m_generator3(p.getParameter("Generator")), m_InToken(iC.consumes( p.getParameter("Generator").getParameter("HepMCProductLabel"))), + m_InToken3(iC.consumes( + p.getParameter("Generator").getParameter("HepMCProductLabel"))), m_theLHCTlinkToken(iC.consumes(p.getParameter("theLHCTlinkTag"))), m_nonBeam(p.getParameter("NonBeamEvent")), m_UseG4EventManager(p.getParameter("UseG4EventManager")), @@ -572,6 +577,7 @@ TmpSimEvent* RunManagerMTWorker::produce(const edm::Event& inpevt, } // event and primary + m_tls->currentEvent.reset(generateEvent(inpevt)); m_simEvent.clear(); m_simEvent.setHepEvent(m_generator.genEvent()); @@ -645,27 +651,53 @@ G4Event* RunManagerMTWorker::generateEvent(const edm::Event& inpevt) { G4int evtid = (G4int)inpevt.id().event(); G4Event* evt = new G4Event(evtid); - edm::Handle HepMCEvt; - inpevt.getByToken(m_InToken, HepMCEvt); - - m_generator.setGenEvent(HepMCEvt->GetEvent()); - // required to reset the GenParticle Id for particles transported // along the beam pipe to their original value for SimTrack creation resetGenParticleId(inpevt); - if (!m_nonBeam) { - m_generator.HepMC2G4(HepMCEvt->GetEvent(), evt); - if (m_LHCTransport) { - edm::Handle LHCMCEvt; - inpevt.getByToken(m_LHCToken, LHCMCEvt); - m_generator.nonCentralEvent2G4(LHCMCEvt->GetEvent(), evt); + + edm::Handle HepMCEvt; + bool found = inpevt.getByToken(m_InToken, HepMCEvt); + + // extract the HepMC::GenEvent +// HepMC::GenEvent* genevt = new HepMC::GenEvent(*HepMCEvt->GetEvent()); + + if (found) { // HepMC event exists + + m_generator.setGenEvent(HepMCEvt->GetEvent()); + + if (!m_nonBeam) { + m_generator.HepMC2G4(HepMCEvt->GetEvent(), evt); + if (m_LHCTransport) { + edm::Handle LHCMCEvt; + inpevt.getByToken(m_LHCToken, LHCMCEvt); + m_generator.nonCentralEvent2G4(LHCMCEvt->GetEvent(), evt); + } + } else { + m_generator.nonCentralEvent2G4(HepMCEvt->GetEvent(), evt); } - } else { - m_generator.nonCentralEvent2G4(HepMCEvt->GetEvent(), evt); - } - return evt; + } else { // no HepMC event, try to get HepMC3 event + + edm::Handle HepMCEvt3; + inpevt.getByToken(m_InToken3, HepMCEvt3); + + HepMC3::GenEvent* genevt3 = new HepMC3::GenEvent(); + genevt3->read_data(*HepMCEvt3->GetEvent()); + m_generator3.setGenEvent(genevt3); + + if (!m_nonBeam) { + m_generator3.HepMC2G4(genevt3, evt); + if (m_LHCTransport) { + edm::Handle LHCMCEvt; + inpevt.getByToken(m_LHCToken, LHCMCEvt); + //m_generator3.nonCentralEvent2G4(LHCMCEvt->GetEvent(), evt); + } + } else { + //m_generator3.nonCentralEvent2G4(HepMCEvt->GetEvent(), evt); + } + } + return evt; } void RunManagerMTWorker::resetGenParticleId(const edm::Event& inpevt) { From 784b27f94ea5c3640f7e843814c521354a770cf5 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 22:15:55 +0100 Subject: [PATCH 149/418] Add interface to HepMC3 event record --- SimG4Core/Generators/BuildFile.xml | 1 + SimG4Core/Generators/interface/Generator3.h | 70 +++ .../Generators/interface/LumiMonitorFilter.h | 2 + SimG4Core/Generators/src/Generator3.cc | 594 ++++++++++++++++++ SimG4Core/Generators/src/LumiMonitorFilter.cc | 3 + 5 files changed, 670 insertions(+) create mode 100644 SimG4Core/Generators/interface/Generator3.h create mode 100644 SimG4Core/Generators/src/Generator3.cc diff --git a/SimG4Core/Generators/BuildFile.xml b/SimG4Core/Generators/BuildFile.xml index b6f6a444cf0c0..a6eb74e7e3674 100644 --- a/SimG4Core/Generators/BuildFile.xml +++ b/SimG4Core/Generators/BuildFile.xml @@ -5,6 +5,7 @@ + diff --git a/SimG4Core/Generators/interface/Generator3.h b/SimG4Core/Generators/interface/Generator3.h new file mode 100644 index 0000000000000..c2bae7b9600eb --- /dev/null +++ b/SimG4Core/Generators/interface/Generator3.h @@ -0,0 +1,70 @@ +#ifndef SimG4Core_Generator3_H +#define SimG4Core_Generator3_H + +#include "DataFormats/Math/interface/LorentzVector.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "SimG4Core/Generators/interface/HepMCParticle.h" +#include "SimG4Core/Notification/interface/GenParticleInfo.h" + +#include "HepMC3/GenEvent.h" +#include "HepMC3/GenParticle.h" + +#include + +class G4Event; +class G4PrimaryParticle; +class LumiMonitorFilter; + +class Generator3 { +public: + Generator3(const edm::ParameterSet &p); + virtual ~Generator3(); + + void setGenEvent(const HepMC3::GenEvent *inpevt) { + evt_ = (HepMC3::GenEvent *)inpevt; + return; + } + void HepMC2G4(const HepMC3::GenEvent *g, G4Event *e); + void nonCentralEvent2G4(const HepMC3::GenEvent *g, G4Event *e); + virtual const HepMC3::GenEvent *genEvent() const { return evt_; } + virtual const math::XYZTLorentzVector *genVertex() const { return vtx_; } + virtual const double eventWeight() const { return weight_; } + +private: + bool particlePassesPrimaryCuts(const G4ThreeVector &p) const; + bool isExotic(int pdgcode) const; + bool isExoticNonDetectable(int pdgcode) const; + bool IsInTheFilterList(int pdgcode) const; + void particleAssignDaughters(G4PrimaryParticle *p, HepMC3::GenParticle *hp, double length); + void setGenId(G4PrimaryParticle *p, int id) const { p->SetUserInformation(new GenParticleInfo(id)); } + +private: + bool fPCuts; + bool fPtransCut; + bool fEtaCuts; + bool fPhiCuts; + bool fFiductialCuts; + double theMinPhiCut; + double theMaxPhiCut; + double theMinEtaCut; + double theMaxEtaCut; + double theMinPCut; + double theMinPtCut2; + double theMaxPCut; + double theDecRCut2; + double theEtaCutForHector; + double theDecLenCut; + double maxZCentralCMS; + int verbose; + LumiMonitorFilter *fLumiFilter; + HepMC3::GenEvent *evt_; + math::XYZTLorentzVector *vtx_; + double weight_; + double Z_lmin, Z_lmax, Z_hector; + std::vector pdgFilter; + bool pdgFilterSel; + bool fPDGFilter; +}; + +#endif diff --git a/SimG4Core/Generators/interface/LumiMonitorFilter.h b/SimG4Core/Generators/interface/LumiMonitorFilter.h index 04def01a6a9f5..f756ad18da2d0 100644 --- a/SimG4Core/Generators/interface/LumiMonitorFilter.h +++ b/SimG4Core/Generators/interface/LumiMonitorFilter.h @@ -2,6 +2,7 @@ #define SimG4Core_LumiMonitorFilter_H #include "HepMC/GenParticle.h" +#include "HepMC3/GenParticle.h" class LumiMonitorFilter { public: @@ -10,6 +11,7 @@ class LumiMonitorFilter { void Describe() const; bool isGoodForLumiMonitor(const HepMC::GenParticle *) const; + bool isGoodForLumiMonitor(const HepMC3::GenParticle *) const; private: }; diff --git a/SimG4Core/Generators/src/Generator3.cc b/SimG4Core/Generators/src/Generator3.cc new file mode 100644 index 0000000000000..816bbbe75c157 --- /dev/null +++ b/SimG4Core/Generators/src/Generator3.cc @@ -0,0 +1,594 @@ +#include "SimG4Core/Generators/interface/Generator3.h" +#include "SimG4Core/Generators/interface/HepMCParticle.h" +#include "SimG4Core/Generators/interface/LumiMonitorFilter.h" + +#include "SimG4Core/Notification/interface/SimG4Exception.h" + +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include "HepPDT/ParticleID.hh" + +#include "G4Event.hh" +#include "G4HEPEvtParticle.hh" +#include "G4Log.hh" +#include "G4ParticleDefinition.hh" +#include "G4PhysicalConstants.hh" +#include +#include "G4UnitsTable.hh" + +#include "HepMC3/Print.h" + +#include + +using namespace edm; + +Generator3::Generator3(const ParameterSet &p) + : fPCuts(p.getParameter("ApplyPCuts")), + fPtransCut(p.getParameter("ApplyPtransCut")), + fEtaCuts(p.getParameter("ApplyEtaCuts")), + fPhiCuts(p.getParameter("ApplyPhiCuts")), + theMinPhiCut(p.getParameter("MinPhiCut")), // in radians (CMS standard) + theMaxPhiCut(p.getParameter("MaxPhiCut")), + theMinEtaCut(p.getParameter("MinEtaCut")), + theMaxEtaCut(p.getParameter("MaxEtaCut")), + theMinPCut(p.getParameter("MinPCut")), // in GeV (CMS standard) + theMaxPCut(p.getParameter("MaxPCut")), + theEtaCutForHector(p.getParameter("EtaCutForHector")), + verbose(p.getUntrackedParameter("Verbosity", 0)), + fLumiFilter(nullptr), + evt_(nullptr), + vtx_(nullptr), + weight_(0), + Z_lmin(0), + Z_lmax(0), + Z_hector(0), + pdgFilterSel(false), + fPDGFilter(false) { + bool lumi = p.getParameter("ApplyLumiMonitorCuts"); + if (lumi) { + fLumiFilter = new LumiMonitorFilter(); + } + + double theRDecLenCut = p.getParameter("RDecLenCut") * CLHEP::cm; + theDecRCut2 = theRDecLenCut * theRDecLenCut; + + theMinPtCut2 = theMinPCut * theMinPCut; + + double theDecLenCut = p.getParameter("LDecLenCut") * CLHEP::cm; + + maxZCentralCMS = p.getParameter("MaxZCentralCMS") * CLHEP::m; + + fFiductialCuts = (fPCuts || fPtransCut || fEtaCuts || fPhiCuts); + + pdgFilter.resize(0); + if (p.exists("PDGselection")) { + pdgFilterSel = (p.getParameter("PDGselection")).getParameter("PDGfilterSel"); + pdgFilter = (p.getParameter("PDGselection")).getParameter>("PDGfilter"); + if (!pdgFilter.empty()) { + fPDGFilter = true; + std::stringstream ss; + ss << "SimG4Core/Generator3: "; + if (pdgFilterSel) { + ss << " Selecting only PDG ID = "; + } else { + ss << " Filtering out PDG ID = "; + } + for (unsigned int ii = 0; ii < pdgFilter.size(); ++ii) { + ss << pdgFilter[ii] << " "; + } + edm::LogVerbatim("SimG4CoreGenerator3") << ss.str(); + } + } + + if (fEtaCuts) { + Z_lmax = theRDecLenCut * ((1 - exp(-2 * theMaxEtaCut)) / (2 * exp(-theMaxEtaCut))); + Z_lmin = theRDecLenCut * ((1 - exp(-2 * theMinEtaCut)) / (2 * exp(-theMinEtaCut))); + } + + Z_hector = theRDecLenCut * ((1 - exp(-2 * theEtaCutForHector)) / (2 * exp(-theEtaCutForHector))); + + edm::LogVerbatim("SimG4CoreGenerator3") << "SimG4Core/Generator3: Rdecaycut= " << theRDecLenCut / CLHEP::cm + << " cm; Zdecaycut= " << theDecLenCut / CLHEP::cm + << "Z_min= " << Z_lmin / CLHEP::cm << " cm; Z_max= " << Z_lmax / CLHEP::cm + << " cm;\n" + << " MaxZCentralCMS = " << maxZCentralCMS / CLHEP::m + << " m;" + << " Z_hector = " << Z_hector / CLHEP::cm << " cm\n" + << " ApplyCuts: " << fFiductialCuts + << " PCuts: " << fPCuts << " PtransCut: " << fPtransCut + << " EtaCut: " << fEtaCuts << " PhiCut: " << fPhiCuts + << " LumiMonitorCut: " << lumi; + if (fFiductialCuts) { + edm::LogVerbatim("SimG4CoreGenerator3") + << "SimG4Core/Generator3: Pmin(GeV)= " << theMinPCut << "; Pmax(GeV)= " << theMaxPCut + << "; EtaMin= " << theMinEtaCut << "; EtaMax= " << theMaxEtaCut << "; PhiMin(rad)= " << theMinPhiCut + << "; PhiMax(rad)= " << theMaxPhiCut; + } + if (lumi) { + fLumiFilter->Describe(); + } +} + +Generator3::~Generator3() { delete fLumiFilter; } + +void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { + HepMC3::GenEvent* evt = new HepMC3::GenEvent(*evt_orig); + //HepMC3::Print::listing(*evt); + + if ( (evt->vertices()).empty() ) { + std::stringstream ss; + ss << "SimG4Core/Generator3: in event " << g4evt->GetEventID() << " Corrupted Event - GenEvent with no vertex \n"; + throw SimG4Exception(ss.str()); + } + + if (!evt->weights().empty()) { + weight_ = evt->weights()[0]; + for (unsigned int iw = 1; iw < evt->weights().size(); ++iw) { + // terminate if the vector of weights contains a zero-weight + if (evt->weights()[iw] <= 0) + break; + weight_ *= evt->weights()[iw]; + } + } + + if (vtx_ != nullptr) { + delete vtx_; + } + + for (HepMC3::GenVertexPtr v : evt->vertices() ) { + vtx_ = new math::XYZTLorentzVector( (v->position()).x(), + (v->position()).y(), + (v->position()).z(), + (v->position()).t() ); + //std::cout << "primary vertex z, t = " << (v->position()).x() << " " << (v->position()).t() << std::endl; + break; + } + + edm::LogVerbatim("SimG4CoreGenerator3") << "Generator3: primary Vertex = (" << vtx_->x() << ", " << vtx_->y() << ", " + << vtx_->z() << ")"; + + unsigned int ng4vtx = 0; + unsigned int ng4par = 0; + + for (HepMC3::GenVertexPtr vitr : evt->vertices() ) { + // loop for vertex, is it a real vertex? + // Set qvtx to true for any particles that should be propagated by GEANT, + // i.e., status 1 particles or status 2 particles that decay outside the + // beampipe. + G4bool qvtx = false; + for (HepMC3::GenParticlePtr pitr : vitr->particles_out() ) { + // For purposes of this function, the status is defined as follows: + // 1: particles are not decayed by generator + // 2: particles are decayed by generator but need to be propagated by GEANT + // 3: particles are decayed by generator and do not need to be propagated by GEANT + int status = pitr->status(); + int pdg = pitr->pid(); + if (status > 3 && isExotic(pdg) && (!(isExoticNonDetectable(pdg)))) { + // In Pythia 8, there are many status codes besides 1, 2, 3. + // By setting the status to 2 for exotic particles, they will be + // checked: if its decay vertex is outside the beampipe, it will be + // propagated by GEANT. Some Standard Model particles, e.g., K0, cannot + // be propagated by GEANT, so do not change their status code. + status = 2; + } + if (status == 2 && abs(pdg) == 9900015) { // Additional photon? + status = 3; + } + + // Particles which are not decayed by generator + if (status == 1) { + // filter out unwanted particles and vertices + if (fPDGFilter && !pdgFilterSel && IsInTheFilterList(pdg)) { + continue; + } + + qvtx = true; + if (verbose > 2) + LogDebug("SimG4CoreGenerator3") << "GenVertex barcode = " << vitr->id() << " " << qvtx + << " selected for GenParticle barcode = " << pitr->id(); // barcode is substituted by id + break; + } + // The selection is made considering if the partcile with status = 2 + // have the end_vertex with a radius greater than the radius of beampipe + // cylinder (no requirement on the Z of the vertex is applyed). + else if (status == 2) { + if (pitr->end_vertex() != nullptr) { + double xx = (pitr->end_vertex())->position().x(); + double yy = (pitr->end_vertex())->position().y(); + double r_dd = xx * xx + yy * yy; + if (r_dd > theDecRCut2) { + qvtx = true; + if (verbose > 2) + LogDebug("SimG4CoreGenerator3") + << "GenVertex barcode = " << vitr->id() + << " selected for GenParticle barcode = " << pitr->id() << " radius = " << std::sqrt(r_dd); // barcode is substituted by id + break; + } + } else { + // particles with status 2 without end_vertex are + // equivalent to stable + qvtx = true; + break; + } + } + } + + // if this vertex is inside fiductial volume inside the beam pipe + // and has no long-lived secondary the vertex is not saved + if (!qvtx) { + continue; + } + + double x1 = vitr->position().x() * CLHEP::mm; + double y1 = vitr->position().y() * CLHEP::mm; + double z1 = vitr->position().z() * CLHEP::mm; + double t1 = vitr->position().t() * CLHEP::mm / CLHEP::c_light; + + G4PrimaryVertex *g4vtx = new G4PrimaryVertex(x1, y1, z1, t1); + + for (HepMC3::GenParticlePtr pitr : vitr->particles_out() ) { + int status = pitr->status(); + int pdg = pitr->pid(); + bool hasDecayVertex = (nullptr != pitr->end_vertex()); + + // Filter on allowed particle species if required + if (fPDGFilter) { + bool isInTheList = IsInTheFilterList(pdg); + if ((!pdgFilterSel && isInTheList) || (pdgFilterSel && !isInTheList)) { + if (0 < verbose) + edm::LogVerbatim("SimG4CoreGenerator3") + << " Skiped GenParticle barcode= " << pitr->id() << " PDGid= " << pdg << " status= " << status + << " isExotic: " << isExotic(pdg) << " isExoticNotDet: " << isExoticNonDetectable(pdg) + << " isInTheList: " << isInTheList << " hasDecayVertex: " << hasDecayVertex; + continue; + } + } + + if (0 < verbose) { + edm::LogVerbatim("SimG4CoreGenerator3") + << "Generator3: pdg= " << pdg << " status= " << status << " hasPreDefinedDecay: " << hasDecayVertex + << "\n isExotic: " << isExotic(pdg) << " isExoticNotDet: " << isExoticNonDetectable(pdg) + << " isInTheList: " << IsInTheFilterList(pdg) << "\n" + << " MaxZCentralCMS = " << maxZCentralCMS / CLHEP::m << " m; (x,y,z,t): (" << x1 << "," << y1 << "," << z1 + << "," << t1 << ")"; + } + if (status > 3 && isExotic(pdg) && (!(isExoticNonDetectable(pdg)))) { + status = hasDecayVertex ? 2 : 1; + } + if (status == 2 && abs(pdg) == 9900015) { // Additional photon? + status = 3; + } + + // this particle has predefined decay but has no vertex + if (2 == status && !hasDecayVertex) { + edm::LogWarning("SimG4CoreGenerator3: in event ") + << g4evt->GetEventID() << " a particle " + << " pdgid= " << pdg << " has status=2 but has no decay vertex, so will be fully tracked by Geant4"; + status = 1; + } + + double x2 = x1; + double y2 = y1; + double z2 = z1; + double decay_length = 0.0; + if (2 == status) { + x2 = pitr->end_vertex()->position().x(); + y2 = pitr->end_vertex()->position().y(); + z2 = pitr->end_vertex()->position().z(); + decay_length = std::sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1) + (z2 - z1) * (z2 - z1)); + } + + bool toBeAdded = !fFiductialCuts; + + double px = pitr->momentum().px(); + double py = pitr->momentum().py(); + double pz = pitr->momentum().pz(); + double ptot = std::sqrt(px * px + py * py + pz * pz); + math::XYZTLorentzVector p(px, py, pz, pitr->momentum().e()); + + double ximpact = x1; + double yimpact = y1; + double zimpact = z1; + + // protection against numerical problems for extremely low momenta + // compute impact point at transition to Hector + const double minTan = 1.e-20; + if (std::abs(z1) < Z_hector && std::abs(pz) >= minTan * ptot) { + zimpact = (pz > 0.0) ? Z_hector : -Z_hector; + double del = (zimpact - z1) / pz; + ximpact += del * px; + yimpact += del * py; + } + double rimpact2 = ximpact * ximpact + yimpact * yimpact; + + if (verbose > 2) + LogDebug("SimG4CoreGenerator3") << "Processing GenParticle barcode= " << pitr->id() << " pdg= " << pdg + << " status= " << pitr->status() << " st= " << status + << " rimpact(cm)= " << std::sqrt(rimpact2) / CLHEP::cm + << " zimpact(cm)= " << zimpact / CLHEP::cm << " ptot(GeV)= " << ptot + << " pz(GeV)= " << pz; + + // Particles of status 1 trasnported along the beam pipe + // HECTOR transport of protons are done in corresponding PPS producer + if (1 == status && std::abs(zimpact) >= Z_hector && rimpact2 <= theDecRCut2) { + // very forward n, nbar, gamma are allowed + toBeAdded = (2112 == std::abs(pdg) || 22 == pdg); + if (verbose > 1) { + edm::LogVerbatim("SimG4CoreGenerator3") + << "GenParticle barcode = " << pitr->id() << " very forward; to be added: " << toBeAdded; + } + } else { + // Standard case: particles not decayed by the generator and not forward + if (1 == status && (std::abs(zimpact) < Z_hector || rimpact2 > theDecRCut2)) { + // Ptot cut for all particles + if (fPCuts && (ptot < theMinPCut || ptot > theMaxPCut)) { + continue; + } + // phi cut is applied mainly for particle gun + if (fPhiCuts) { + double phi = p.phi(); + if (phi < theMinPhiCut || phi > theMaxPhiCut) { + continue; + } + } + // eta cut is applied if position of the decay + // is within vacuum chamber and limited in Z + if (fEtaCuts) { + // eta cut + double xi = x1; + double yi = y1; + double zi = z1; + + // can be propagated along Z + if (std::abs(pz) >= minTan * ptot) { + if ((zi >= Z_lmax) & (pz < 0.0)) { + zi = Z_lmax; + } else if ((zi <= Z_lmin) & (pz > 0.0)) { + zi = Z_lmin; + } else { + if (pz > 0) { + zi = Z_lmax; + } else { + zi = Z_lmin; + } + } + double del = (zi - z1) / pz; + xi += del * px; + yi += del * py; + } + // check eta cut + if ((zi >= Z_lmin) & (zi <= Z_lmax) & (xi * xi + yi * yi < theDecRCut2)) { + continue; + } + } + const HepMC3::GenParticle* ppointer = pitr.get(); + if (fLumiFilter && !fLumiFilter->isGoodForLumiMonitor(ppointer)) { // MK: this function is always true + continue; + } + toBeAdded = true; + if (verbose > 1) + edm::LogVerbatim("SimG4CoreGenerator3") + << "GenParticle barcode = " << pitr->id() << " passed case 1"; + + // Decay chain outside the fiducial cylinder defined by theRDecLenCut + // are used for Geant4 tracking with predefined decay channel + // In the case of decay in vacuum particle is not tracked by Geant4 + } else if (2 == status && x2 * x2 + y2 * y2 >= theDecRCut2 && std::abs(z2) < Z_hector) { + toBeAdded = true; + if (verbose > 1) + edm::LogVerbatim("SimG4CoreGenerator3") << "GenParticle barcode = " << pitr->id() << " passed case 2" + << " decay_length(cm)= " << decay_length / CLHEP::cm; + } + } + if (toBeAdded) { + G4PrimaryParticle *g4prim = new G4PrimaryParticle(pdg, px * CLHEP::GeV, py * CLHEP::GeV, pz * CLHEP::GeV); + + if (g4prim->GetG4code() != nullptr) { + g4prim->SetMass(g4prim->GetG4code()->GetPDGMass()); + double charge = g4prim->GetG4code()->GetPDGCharge(); + + // apply Pt cut + if (fPtransCut && 1 == status && 0.0 != charge && px * px + py * py < theMinPtCut2) { + delete g4prim; + continue; + } + g4prim->SetCharge(charge); + } + + // V.I. do not use SetWeight but the same code + // value of the code compute inside TrackWithHistory + // g4prim->SetWeight( 10000*(*vpitr)->barcode() ) ; + setGenId(g4prim, pitr->id()); + + if (2 == status) { + particleAssignDaughters(g4prim, pitr.get(), decay_length); + } + if (verbose > 1) + g4prim->Print(); + + ++ng4par; + g4vtx->SetPrimary(g4prim); + edm::LogVerbatim("SimG4CoreGenerator3") << " " << ng4par << ". new Geant4 particle pdg= " << pdg + << " Ptot(GeV/c)= " << ptot << " Pt= " << std::sqrt(px * px + py * py) + << " status= " << status << "; dir= " << g4prim->GetMomentumDirection(); + } + } + + if (verbose > 1) + g4vtx->Print(); + g4evt->AddPrimaryVertex(g4vtx); + ++ng4vtx; + } + + // Add a protection for completely empty events (produced by LHCTransport): + // add a dummy vertex with no particle attached to it + if (ng4vtx == 0) { + G4PrimaryVertex *g4vtx = new G4PrimaryVertex(0.0, 0.0, 0.0, 0.0); + if (verbose > 1) + g4vtx->Print(); + + g4evt->AddPrimaryVertex(g4vtx); + } + + edm::LogVerbatim("SimG4CoreGenerator3") << "The list of Geant4 primaries includes " << ng4par << " particles in " + << ng4vtx << " vertex"; + + delete evt; +} + +void Generator3::particleAssignDaughters(G4PrimaryParticle *g4p, HepMC3::GenParticle* vp, double decaylength) { + if (verbose > 1) { + LogDebug("SimG4CoreGenerator3") << "Special case of long decay length \n" + << "Assign daughters with to mother with decaylength=" << decaylength / CLHEP::cm + << " cm"; + } + math::XYZTLorentzVector p(vp->momentum().px(), vp->momentum().py(), vp->momentum().pz(), vp->momentum().e()); + + // defined preassigned decay time + double proper_time = decaylength / (p.Beta() * p.Gamma() * c_light); + g4p->SetProperTime(proper_time); + + if (verbose > 2) { + LogDebug("SimG4CoreGenerator3") << " px= " << p.px() << " py= " << p.py() << " pz= " << p.pz() << " e= " << p.e() + << " beta= " << p.Beta() << " gamma= " << p.Gamma() + << " Proper time= " << proper_time / CLHEP::ns << " ns"; + } + + // the particle will decay after the same length if it + // has not interacted before + double x1 = vp->end_vertex()->position().x(); + double y1 = vp->end_vertex()->position().y(); + double z1 = vp->end_vertex()->position().z(); + + for (HepMC3::GenParticlePtr vpdec : vp->end_vertex()->particles_out() ) { + + // transform decay products such that in the rest frame of mother + math::XYZTLorentzVector pdec( + vpdec->momentum().px(), vpdec->momentum().py(), vpdec->momentum().pz(), vpdec->momentum().e()); + + // children should only be taken into account once + G4PrimaryParticle* g4daught = + new G4PrimaryParticle(vpdec->pid(), pdec.x() * CLHEP::GeV, pdec.y() * CLHEP::GeV, pdec.z() * CLHEP::GeV); + + if (g4daught->GetG4code() != nullptr) { + g4daught->SetMass(g4daught->GetG4code()->GetPDGMass()); + g4daught->SetCharge(g4daught->GetG4code()->GetPDGCharge()); + } + + // V.I. do not use SetWeight but the same code + // value of the code compute inside TrackWithHistory + setGenId(g4daught, vpdec->id()); + + int status = vpdec->status(); + if (verbose > 1) + LogDebug("SimG4CoreGenerator3::::particleAssignDaughters") + << "Assigning a " << vpdec->pid() << " as daughter of a " << vp->pid() << " status=" << status; + + if ((status == 2 || (status == 23 && std::abs(vp->pid()) == 1000015) || (status > 50 && status < 100)) && + vpdec->end_vertex() != nullptr) { + double x2 = vpdec->end_vertex()->position().x(); + double y2 = vpdec->end_vertex()->position().y(); + double z2 = vpdec->end_vertex()->position().z(); + double dd = std::sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2)); + particleAssignDaughters(g4daught, vpdec.get(), dd); + } + vpdec->set_status(1000 + status); + g4p->SetDaughter(g4daught); + + if (verbose > 1) + g4daught->Print(); + } +} + +// Used for non-beam particles +bool Generator3::particlePassesPrimaryCuts(const G4ThreeVector &p) const { + bool flag = true; + double ptot = p.mag(); + if (fPCuts && (ptot < theMinPCut * CLHEP::GeV || ptot > theMaxPCut * CLHEP::GeV)) { + flag = false; + } + if (fEtaCuts && flag) { + double pz = p.z(); + if (ptot < pz + 1.e-10) { + flag = false; + + } else { + double eta = 0.5 * G4Log((ptot + pz) / (ptot - pz)); + if (eta < theMinEtaCut || eta > theMaxEtaCut) { + flag = false; + } + } + } + if (fPhiCuts && flag) { + double phi = p.phi(); + if (phi < theMinPhiCut || phi > theMaxPhiCut) { + flag = false; + } + } + + if (verbose > 2) + LogDebug("SimG4CoreGenerator3") << "Generator ptot(GeV)= " << ptot / CLHEP::GeV << " eta= " << p.eta() + << " phi= " << p.phi() << " Flag= " << flag; + + return flag; +} + +bool Generator3::isExotic(int pdgcode) const { + int pdgid = std::abs(pdgcode); + return ((pdgid >= 1000000 && pdgid < 4000000 && pdgid != 3000022) || // SUSY, R-hadron, and technicolor particles + pdgid == 17 || // 4th generation lepton + pdgid == 34 || // W-prime + pdgid == 37); // charged Higgs +} + +bool Generator3::isExoticNonDetectable(int pdgcode) const { + int pdgid = std::abs(pdgcode); + HepPDT::ParticleID pid(pdgcode); + int charge = pid.threeCharge(); + return ((charge == 0) && (pdgid >= 1000000 && pdgid < 1000040)); // SUSY +} + +bool Generator3::IsInTheFilterList(int pdgcode) const { + int pdgid = std::abs(pdgcode); + for (auto &pdg : pdgFilter) { + if (std::abs(pdg) == pdgid) { + return true; + } + } + return false; +} + +void Generator3::nonCentralEvent2G4(const HepMC3::GenEvent *evt, G4Event *g4evt) { + +#if 0 + + int i = g4evt->GetNumberOfPrimaryVertex(); + for (HepMC3::GenEvent::particle_const_iterator it = evt->particles_begin(); it != evt->particles_end(); ++it) { + ++i; + HepMC3::GenParticle *gp = (*it); + + // storing only particle with status == 1 + if (gp->status() != 1) + continue; + + int pdg = gp->pdg_id(); + G4PrimaryParticle *g4p = new G4PrimaryParticle( + pdg, gp->momentum().px() * CLHEP::GeV, gp->momentum().py() * CLHEP::GeV, gp->momentum().pz() * CLHEP::GeV); + if (g4p->GetG4code() != nullptr) { + g4p->SetMass(g4p->GetG4code()->GetPDGMass()); + g4p->SetCharge(g4p->GetG4code()->GetPDGCharge()); + } + setGenId(g4p, i); + G4PrimaryVertex *v = new G4PrimaryVertex(gp->production_vertex()->position().x() * CLHEP::mm, + gp->production_vertex()->position().y() * CLHEP::mm, + gp->production_vertex()->position().z() * CLHEP::mm, + gp->production_vertex()->position().t() * CLHEP::mm / CLHEP::c_light); + v->SetPrimary(g4p); + g4evt->AddPrimaryVertex(v); + if (verbose > 0) + v->Print(); + } // end loop on HepMC particles + +#endif + +} diff --git a/SimG4Core/Generators/src/LumiMonitorFilter.cc b/SimG4Core/Generators/src/LumiMonitorFilter.cc index 978abbcf19c9d..41ed62932eb84 100644 --- a/SimG4Core/Generators/src/LumiMonitorFilter.cc +++ b/SimG4Core/Generators/src/LumiMonitorFilter.cc @@ -13,3 +13,6 @@ LumiMonitorFilter::~LumiMonitorFilter() {} void LumiMonitorFilter::Describe() const { edm::LogInfo("LumiMonitorFilter") << " is active "; } bool LumiMonitorFilter::isGoodForLumiMonitor(const HepMC::GenParticle *) const { return true; } + +bool LumiMonitorFilter::isGoodForLumiMonitor(const HepMC3::GenParticle *) const { return true; } + From 3be7055ba36762cb7eb983cc0abbe7e7f58b5b65 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 22:44:21 +0100 Subject: [PATCH 150/418] Fix code-checks --- SimG4Core/Generators/src/Generator3.cc | 45 ++++++++++++-------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/SimG4Core/Generators/src/Generator3.cc b/SimG4Core/Generators/src/Generator3.cc index 816bbbe75c157..ca850c7f6f2ab 100644 --- a/SimG4Core/Generators/src/Generator3.cc +++ b/SimG4Core/Generators/src/Generator3.cc @@ -87,17 +87,15 @@ Generator3::Generator3(const ParameterSet &p) Z_hector = theRDecLenCut * ((1 - exp(-2 * theEtaCutForHector)) / (2 * exp(-theEtaCutForHector))); - edm::LogVerbatim("SimG4CoreGenerator3") << "SimG4Core/Generator3: Rdecaycut= " << theRDecLenCut / CLHEP::cm - << " cm; Zdecaycut= " << theDecLenCut / CLHEP::cm - << "Z_min= " << Z_lmin / CLHEP::cm << " cm; Z_max= " << Z_lmax / CLHEP::cm - << " cm;\n" - << " MaxZCentralCMS = " << maxZCentralCMS / CLHEP::m - << " m;" - << " Z_hector = " << Z_hector / CLHEP::cm << " cm\n" - << " ApplyCuts: " << fFiductialCuts - << " PCuts: " << fPCuts << " PtransCut: " << fPtransCut - << " EtaCut: " << fEtaCuts << " PhiCut: " << fPhiCuts - << " LumiMonitorCut: " << lumi; + edm::LogVerbatim("SimG4CoreGenerator3") + << "SimG4Core/Generator3: Rdecaycut= " << theRDecLenCut / CLHEP::cm + << " cm; Zdecaycut= " << theDecLenCut / CLHEP::cm + << "Z_min= " << Z_lmin / CLHEP::cm << " cm; Z_max= " << Z_lmax / CLHEP::cm << " cm;\n" + << " MaxZCentralCMS = " << maxZCentralCMS / CLHEP::m << " m;" + << " Z_hector = " << Z_hector / CLHEP::cm << " cm\n" + << " ApplyCuts: " << fFiductialCuts + << " PCuts: " << fPCuts << " PtransCut: " << fPtransCut + << " EtaCut: " << fEtaCuts << " PhiCut: " << fPhiCuts << " LumiMonitorCut: " << lumi; if (fFiductialCuts) { edm::LogVerbatim("SimG4CoreGenerator3") << "SimG4Core/Generator3: Pmin(GeV)= " << theMinPCut << "; Pmax(GeV)= " << theMaxPCut @@ -112,10 +110,10 @@ Generator3::Generator3(const ParameterSet &p) Generator3::~Generator3() { delete fLumiFilter; } void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { - HepMC3::GenEvent* evt = new HepMC3::GenEvent(*evt_orig); + HepMC3::GenEvent *evt = new HepMC3::GenEvent(*evt_orig); //HepMC3::Print::listing(*evt); - if ( (evt->vertices()).empty() ) { + if ((evt->vertices()).empty()) { std::stringstream ss; ss << "SimG4Core/Generator3: in event " << g4evt->GetEventID() << " Corrupted Event - GenEvent with no vertex \n"; throw SimG4Exception(ss.str()); @@ -135,28 +133,25 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { delete vtx_; } - for (HepMC3::GenVertexPtr v : evt->vertices() ) { - vtx_ = new math::XYZTLorentzVector( (v->position()).x(), - (v->position()).y(), - (v->position()).z(), - (v->position()).t() ); - //std::cout << "primary vertex z, t = " << (v->position()).x() << " " << (v->position()).t() << std::endl; + for (HepMC3::GenVertexPtr v : evt->vertices()) { + vtx_ = + new math::XYZTLorentzVector( (v->position()).x(), (v->position()).y(), (v->position()).z(), (v->position()).t()); break; } - edm::LogVerbatim("SimG4CoreGenerator3") << "Generator3: primary Vertex = (" << vtx_->x() << ", " << vtx_->y() << ", " - << vtx_->z() << ")"; + edm::LogVerbatim("SimG4CoreGenerator3") + << "Generator3: primary Vertex = (" << vtx_->x() << ", " << vtx_->y() << ", " << vtx_->z() << ")"; unsigned int ng4vtx = 0; unsigned int ng4par = 0; - for (HepMC3::GenVertexPtr vitr : evt->vertices() ) { + for (HepMC3::GenVertexPtr vitr : evt->vertices()) { // loop for vertex, is it a real vertex? // Set qvtx to true for any particles that should be propagated by GEANT, // i.e., status 1 particles or status 2 particles that decay outside the // beampipe. G4bool qvtx = false; - for (HepMC3::GenParticlePtr pitr : vitr->particles_out() ) { + for (HepMC3::GenParticlePtr pitr : vitr->particles_out()) { // For purposes of this function, the status is defined as follows: // 1: particles are not decayed by generator // 2: particles are decayed by generator but need to be propagated by GEANT @@ -171,7 +166,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { // be propagated by GEANT, so do not change their status code. status = 2; } - if (status == 2 && abs(pdg) == 9900015) { // Additional photon? + if (status == 2 && abs(pdg) == 9900015) { // Additional photon? status = 3; } @@ -182,7 +177,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { continue; } - qvtx = true; + qvtx = true; if (verbose > 2) LogDebug("SimG4CoreGenerator3") << "GenVertex barcode = " << vitr->id() << " " << qvtx << " selected for GenParticle barcode = " << pitr->id(); // barcode is substituted by id From 76d39f09c6ac509a40e7081fc11514971b0a60e8 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Tue, 26 Nov 2024 22:45:45 +0100 Subject: [PATCH 151/418] Fix code-checks --- SimG4Core/Application/src/RunManagerMTWorker.cc | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/SimG4Core/Application/src/RunManagerMTWorker.cc b/SimG4Core/Application/src/RunManagerMTWorker.cc index b3ec4b9ccfe2c..83dbcf07c1410 100644 --- a/SimG4Core/Application/src/RunManagerMTWorker.cc +++ b/SimG4Core/Application/src/RunManagerMTWorker.cc @@ -655,14 +655,10 @@ G4Event* RunManagerMTWorker::generateEvent(const edm::Event& inpevt) { // along the beam pipe to their original value for SimTrack creation resetGenParticleId(inpevt); - edm::Handle HepMCEvt; bool found = inpevt.getByToken(m_InToken, HepMCEvt); - // extract the HepMC::GenEvent -// HepMC::GenEvent* genevt = new HepMC::GenEvent(*HepMCEvt->GetEvent()); - - if (found) { // HepMC event exists + if (found) { // HepMC event exists m_generator.setGenEvent(HepMCEvt->GetEvent()); @@ -677,7 +673,7 @@ G4Event* RunManagerMTWorker::generateEvent(const edm::Event& inpevt) { m_generator.nonCentralEvent2G4(HepMCEvt->GetEvent(), evt); } - } else { // no HepMC event, try to get HepMC3 event + } else { // no HepMC event, try to get HepMC3 event edm::Handle HepMCEvt3; inpevt.getByToken(m_InToken3, HepMCEvt3); @@ -697,7 +693,7 @@ G4Event* RunManagerMTWorker::generateEvent(const edm::Event& inpevt) { //m_generator3.nonCentralEvent2G4(HepMCEvt->GetEvent(), evt); } } - return evt; + return evt; } void RunManagerMTWorker::resetGenParticleId(const edm::Event& inpevt) { From b96ebaa5f4b3291df1ff414054a4b80aca88d198 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Wed, 27 Nov 2024 10:27:03 +0100 Subject: [PATCH 152/418] Fix2 code-checks --- SimG4Core/Generators/src/Generator3.cc | 64 +++++++++---------- SimG4Core/Generators/src/LumiMonitorFilter.cc | 1 - 2 files changed, 30 insertions(+), 35 deletions(-) diff --git a/SimG4Core/Generators/src/Generator3.cc b/SimG4Core/Generators/src/Generator3.cc index ca850c7f6f2ab..f73e01fc3cf30 100644 --- a/SimG4Core/Generators/src/Generator3.cc +++ b/SimG4Core/Generators/src/Generator3.cc @@ -89,12 +89,11 @@ Generator3::Generator3(const ParameterSet &p) edm::LogVerbatim("SimG4CoreGenerator3") << "SimG4Core/Generator3: Rdecaycut= " << theRDecLenCut / CLHEP::cm - << " cm; Zdecaycut= " << theDecLenCut / CLHEP::cm - << "Z_min= " << Z_lmin / CLHEP::cm << " cm; Z_max= " << Z_lmax / CLHEP::cm << " cm;\n" + << " cm; Zdecaycut= " << theDecLenCut / CLHEP::cm << "Z_min= " << Z_lmin / CLHEP::cm + << " cm; Z_max= " << Z_lmax / CLHEP::cm << " cm;\n" << " MaxZCentralCMS = " << maxZCentralCMS / CLHEP::m << " m;" << " Z_hector = " << Z_hector / CLHEP::cm << " cm\n" - << " ApplyCuts: " << fFiductialCuts - << " PCuts: " << fPCuts << " PtransCut: " << fPtransCut + << " ApplyCuts: " << fFiductialCuts << " PCuts: " << fPCuts << " PtransCut: " << fPtransCut << " EtaCut: " << fEtaCuts << " PhiCut: " << fPhiCuts << " LumiMonitorCut: " << lumi; if (fFiductialCuts) { edm::LogVerbatim("SimG4CoreGenerator3") @@ -135,7 +134,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { for (HepMC3::GenVertexPtr v : evt->vertices()) { vtx_ = - new math::XYZTLorentzVector( (v->position()).x(), (v->position()).y(), (v->position()).z(), (v->position()).t()); + new math::XYZTLorentzVector((v->position()).x(), (v->position()).y(), (v->position()).z(), (v->position()).t()); break; } @@ -179,8 +178,9 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { qvtx = true; if (verbose > 2) - LogDebug("SimG4CoreGenerator3") << "GenVertex barcode = " << vitr->id() << " " << qvtx - << " selected for GenParticle barcode = " << pitr->id(); // barcode is substituted by id + LogDebug("SimG4CoreGenerator3") + << "GenVertex barcode = " << vitr->id() << " " << qvtx + << " selected for GenParticle barcode = " << pitr->id(); // barcode is substituted by id break; } // The selection is made considering if the partcile with status = 2 @@ -195,8 +195,8 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { qvtx = true; if (verbose > 2) LogDebug("SimG4CoreGenerator3") - << "GenVertex barcode = " << vitr->id() - << " selected for GenParticle barcode = " << pitr->id() << " radius = " << std::sqrt(r_dd); // barcode is substituted by id + << "GenVertex barcode = " << vitr->id() << " selected for GenParticle barcode = " << pitr->id() + << " radius = " << std::sqrt(r_dd); // barcode is substituted by id break; } } else { @@ -221,7 +221,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { G4PrimaryVertex *g4vtx = new G4PrimaryVertex(x1, y1, z1, t1); - for (HepMC3::GenParticlePtr pitr : vitr->particles_out() ) { + for (HepMC3::GenParticlePtr pitr : vitr->particles_out()) { int status = pitr->status(); int pdg = pitr->pid(); bool hasDecayVertex = (nullptr != pitr->end_vertex()); @@ -250,7 +250,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { if (status > 3 && isExotic(pdg) && (!(isExoticNonDetectable(pdg)))) { status = hasDecayVertex ? 2 : 1; } - if (status == 2 && abs(pdg) == 9900015) { // Additional photon? + if (status == 2 && abs(pdg) == 9900015) { // Additional photon? status = 3; } @@ -298,10 +298,10 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { if (verbose > 2) LogDebug("SimG4CoreGenerator3") << "Processing GenParticle barcode= " << pitr->id() << " pdg= " << pdg - << " status= " << pitr->status() << " st= " << status - << " rimpact(cm)= " << std::sqrt(rimpact2) / CLHEP::cm - << " zimpact(cm)= " << zimpact / CLHEP::cm << " ptot(GeV)= " << ptot - << " pz(GeV)= " << pz; + << " status= " << pitr->status() << " st= " << status + << " rimpact(cm)= " << std::sqrt(rimpact2) / CLHEP::cm + << " zimpact(cm)= " << zimpact / CLHEP::cm << " ptot(GeV)= " << ptot + << " pz(GeV)= " << pz; // Particles of status 1 trasnported along the beam pipe // HECTOR transport of protons are done in corresponding PPS producer @@ -313,7 +313,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { << "GenParticle barcode = " << pitr->id() << " very forward; to be added: " << toBeAdded; } } else { - // Standard case: particles not decayed by the generator and not forward + // Standard case: particles not decayed by the generator and not forward if (1 == status && (std::abs(zimpact) < Z_hector || rimpact2 > theDecRCut2)) { // Ptot cut for all particles if (fPCuts && (ptot < theMinPCut || ptot > theMaxPCut)) { @@ -357,13 +357,12 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { } } const HepMC3::GenParticle* ppointer = pitr.get(); - if (fLumiFilter && !fLumiFilter->isGoodForLumiMonitor(ppointer)) { // MK: this function is always true + if (fLumiFilter && !fLumiFilter->isGoodForLumiMonitor(ppointer)) { // MK: this function is always true continue; } toBeAdded = true; if (verbose > 1) - edm::LogVerbatim("SimG4CoreGenerator3") - << "GenParticle barcode = " << pitr->id() << " passed case 1"; + edm::LogVerbatim("SimG4CoreGenerator3") << "GenParticle barcode = " << pitr->id() << " passed case 1"; // Decay chain outside the fiducial cylinder defined by theRDecLenCut // are used for Geant4 tracking with predefined decay channel @@ -372,7 +371,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { toBeAdded = true; if (verbose > 1) edm::LogVerbatim("SimG4CoreGenerator3") << "GenParticle barcode = " << pitr->id() << " passed case 2" - << " decay_length(cm)= " << decay_length / CLHEP::cm; + << " decay_length(cm)= " << decay_length / CLHEP::cm; } } if (toBeAdded) { @@ -390,7 +389,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { g4prim->SetCharge(charge); } - // V.I. do not use SetWeight but the same code + // V.I. do not use SetWeight but the same code // value of the code compute inside TrackWithHistory // g4prim->SetWeight( 10000*(*vpitr)->barcode() ) ; setGenId(g4prim, pitr->id()); @@ -404,8 +403,8 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { ++ng4par; g4vtx->SetPrimary(g4prim); edm::LogVerbatim("SimG4CoreGenerator3") << " " << ng4par << ". new Geant4 particle pdg= " << pdg - << " Ptot(GeV/c)= " << ptot << " Pt= " << std::sqrt(px * px + py * py) - << " status= " << status << "; dir= " << g4prim->GetMomentumDirection(); + << " Ptot(GeV/c)= " << ptot << " Pt= " << std::sqrt(px * px + py * py) + << " status= " << status << "; dir= " << g4prim->GetMomentumDirection(); } } @@ -425,13 +424,13 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { g4evt->AddPrimaryVertex(g4vtx); } - edm::LogVerbatim("SimG4CoreGenerator3") << "The list of Geant4 primaries includes " << ng4par << " particles in " - << ng4vtx << " vertex"; + edm::LogVerbatim("SimG4CoreGenerator3") + << "The list of Geant4 primaries includes " << ng4par << " particles in " << ng4vtx << " vertex"; delete evt; } -void Generator3::particleAssignDaughters(G4PrimaryParticle *g4p, HepMC3::GenParticle* vp, double decaylength) { +void Generator3::particleAssignDaughters(G4PrimaryParticle *g4p, HepMC3::GenParticle *vp, double decaylength) { if (verbose > 1) { LogDebug("SimG4CoreGenerator3") << "Special case of long decay length \n" << "Assign daughters with to mother with decaylength=" << decaylength / CLHEP::cm @@ -445,8 +444,8 @@ void Generator3::particleAssignDaughters(G4PrimaryParticle *g4p, HepMC3::GenPart if (verbose > 2) { LogDebug("SimG4CoreGenerator3") << " px= " << p.px() << " py= " << p.py() << " pz= " << p.pz() << " e= " << p.e() - << " beta= " << p.Beta() << " gamma= " << p.Gamma() - << " Proper time= " << proper_time / CLHEP::ns << " ns"; + << " beta= " << p.Beta() << " gamma= " << p.Gamma() + << " Proper time= " << proper_time / CLHEP::ns << " ns"; } // the particle will decay after the same length if it @@ -455,14 +454,13 @@ void Generator3::particleAssignDaughters(G4PrimaryParticle *g4p, HepMC3::GenPart double y1 = vp->end_vertex()->position().y(); double z1 = vp->end_vertex()->position().z(); - for (HepMC3::GenParticlePtr vpdec : vp->end_vertex()->particles_out() ) { - + for (HepMC3::GenParticlePtr vpdec : vp->end_vertex()->particles_out()) { // transform decay products such that in the rest frame of mother math::XYZTLorentzVector pdec( vpdec->momentum().px(), vpdec->momentum().py(), vpdec->momentum().pz(), vpdec->momentum().e()); // children should only be taken into account once - G4PrimaryParticle* g4daught = + G4PrimaryParticle *g4daught = new G4PrimaryParticle(vpdec->pid(), pdec.x() * CLHEP::GeV, pdec.y() * CLHEP::GeV, pdec.z() * CLHEP::GeV); if (g4daught->GetG4code() != nullptr) { @@ -523,7 +521,7 @@ bool Generator3::particlePassesPrimaryCuts(const G4ThreeVector &p) const { if (verbose > 2) LogDebug("SimG4CoreGenerator3") << "Generator ptot(GeV)= " << ptot / CLHEP::GeV << " eta= " << p.eta() - << " phi= " << p.phi() << " Flag= " << flag; + << " phi= " << p.phi() << " Flag= " << flag; return flag; } @@ -554,7 +552,6 @@ bool Generator3::IsInTheFilterList(int pdgcode) const { } void Generator3::nonCentralEvent2G4(const HepMC3::GenEvent *evt, G4Event *g4evt) { - #if 0 int i = g4evt->GetNumberOfPrimaryVertex(); @@ -585,5 +582,4 @@ void Generator3::nonCentralEvent2G4(const HepMC3::GenEvent *evt, G4Event *g4evt) } // end loop on HepMC particles #endif - } diff --git a/SimG4Core/Generators/src/LumiMonitorFilter.cc b/SimG4Core/Generators/src/LumiMonitorFilter.cc index 41ed62932eb84..065efdb2eb8ee 100644 --- a/SimG4Core/Generators/src/LumiMonitorFilter.cc +++ b/SimG4Core/Generators/src/LumiMonitorFilter.cc @@ -15,4 +15,3 @@ void LumiMonitorFilter::Describe() const { edm::LogInfo("LumiMonitorFilter") << bool LumiMonitorFilter::isGoodForLumiMonitor(const HepMC::GenParticle *) const { return true; } bool LumiMonitorFilter::isGoodForLumiMonitor(const HepMC3::GenParticle *) const { return true; } - From 0ede38704c2ce05d4bcceac8ca7a94846e513b3f Mon Sep 17 00:00:00 2001 From: Kyungmin Park Date: Wed, 27 Nov 2024 11:42:35 +0100 Subject: [PATCH 153/418] Add Et distributions for BC & SC energy ECAL DQM plots --- .../python/ClusterTask_cfi.py | 75 +++++++++++++++++++ DQM/EcalMonitorTasks/src/ClusterTask.cc | 20 ++++- 2 files changed, 92 insertions(+), 3 deletions(-) diff --git a/DQM/EcalMonitorTasks/python/ClusterTask_cfi.py b/DQM/EcalMonitorTasks/python/ClusterTask_cfi.py index 5fb9b05d8bbb9..dbce9b3ea9329 100644 --- a/DQM/EcalMonitorTasks/python/ClusterTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/ClusterTask_cfi.py @@ -103,6 +103,19 @@ btype = cms.untracked.string('User'), description = cms.untracked.string('Basic cluster energy distribution.') ), + BCEt = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT BC transverse energy'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + xaxis = cms.untracked.PSet( + high = cms.untracked.double(150.0), + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0.0), + title = cms.untracked.string('energy (GeV)') + ), + btype = cms.untracked.string('User'), + description = cms.untracked.string('Basic cluster transverse energy distribution.') + ), BCSizeMap = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT BC size map%(suffix)s'), kind = cms.untracked.string('TProfile2D'), @@ -152,6 +165,16 @@ btype = cms.untracked.string('SuperCrystal'), description = cms.untracked.string('2D distribution of the mean energy of the basic clusters.') ), + BCEtMap = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT BC transverse energy map%(suffix)s'), + kind = cms.untracked.string('TProfile2D'), + zaxis = cms.untracked.PSet( + title = cms.untracked.string('energy (GeV)') + ), + otype = cms.untracked.string('Ecal3P'), + btype = cms.untracked.string('SuperCrystal'), + description = cms.untracked.string('2D distribution of the mean transverse energy of the basic clusters.') + ), BCEtMapProjEta = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT BC ET projection eta%(suffix)s'), kind = cms.untracked.string('TProfile'), @@ -272,6 +295,19 @@ btype = cms.untracked.string('User'), description = cms.untracked.string('Super cluster energy distribution.') ), + SCEt = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT SC transverse energy'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + xaxis = cms.untracked.PSet( + high = cms.untracked.double(150.0), + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0.0), + title = cms.untracked.string('energy (GeV)') + ), + btype = cms.untracked.string('User'), + description = cms.untracked.string('Super cluster transverse energy distribution.') + ), SCRawE = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT SC raw energy'), kind = cms.untracked.string('TH1F'), @@ -285,6 +321,19 @@ btype = cms.untracked.string('User'), description = cms.untracked.string('Super cluster raw energy distribution.') ), + SCRawEt = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT SC raw transverse energy'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + xaxis = cms.untracked.PSet( + high = cms.untracked.double(150.0), + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0.0), + title = cms.untracked.string('energy (GeV)') + ), + btype = cms.untracked.string('User'), + description = cms.untracked.string('Super cluster raw transverse energy distribution.') + ), SCNcrystals = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT SC size (crystal)'), kind = cms.untracked.string('TH1F'), @@ -336,6 +385,19 @@ btype = cms.untracked.string('User'), description = cms.untracked.string('Energy distribution (raw energy) of the super clusters (low scale).') ), + SCEtLow = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT SC transverse energy (low scale)'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + xaxis = cms.untracked.PSet( + high = cms.untracked.double(10.0), + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0.0), + title = cms.untracked.string('energy (GeV)') + ), + btype = cms.untracked.string('User'), + description = cms.untracked.string('Transverse energy distribution (raw energy) of the super clusters (low scale).') + ), SCRawELow = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT SC raw energy (low scale)'), kind = cms.untracked.string('TH1F'), @@ -349,6 +411,19 @@ btype = cms.untracked.string('User'), description = cms.untracked.string('Energy distribution of the super clusters (low scale).') ), + SCRawEtLow = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT SC raw transverse energy (low scale)'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + xaxis = cms.untracked.PSet( + high = cms.untracked.double(10.0), + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0.0), + title = cms.untracked.string('energy (GeV)') + ), + btype = cms.untracked.string('User'), + description = cms.untracked.string('Transverse energy distribution of the super clusters (low scale).') + ), SCRawEHigh = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sClusterTask/%(prefix)sCLT SC raw energy (high scale)'), kind = cms.untracked.string('TH1F'), diff --git a/DQM/EcalMonitorTasks/src/ClusterTask.cc b/DQM/EcalMonitorTasks/src/ClusterTask.cc index f951df373c479..e8c8f5a1ce105 100644 --- a/DQM/EcalMonitorTasks/src/ClusterTask.cc +++ b/DQM/EcalMonitorTasks/src/ClusterTask.cc @@ -216,7 +216,9 @@ namespace ecaldqm { void ClusterTask::runOnBasicClusters(edm::View const& _bcs, Collections _collection) { MESet& meBCE(MEs_.at("BCE")); + MESet& meBCEt(MEs_.at("BCEt")); MESet& meBCEMap(MEs_.at("BCEMap")); + MESet& meBCEtMap(MEs_.at("BCEtMap")); MESet& meBCEMapProjEta(MEs_.at("BCEMapProjEta")); MESet& meBCEMapProjPhi(MEs_.at("BCEMapProjPhi")); MESet& meBCEtMapProjEta(MEs_.at("BCEtMapProjEta")); @@ -268,8 +270,10 @@ namespace ecaldqm { subdet = -EcalEndcap; meBCE.fill(getEcalDQMSetupObjects(), id, energy); + meBCEt.fill(getEcalDQMSetupObjects(), id, et); meBCEMap.fill(getEcalDQMSetupObjects(), id, energy); + meBCEtMap.fill(getEcalDQMSetupObjects(), id, et); meBCEMapProjEta.fill(getEcalDQMSetupObjects(), posEta, energy); meBCEMapProjPhi.fill(getEcalDQMSetupObjects(), subdet, posPhi, energy); meBCEtMapProjEta.fill(getEcalDQMSetupObjects(), posEta, et); @@ -368,9 +372,13 @@ namespace ecaldqm { EcalSubdetector subdet(isBarrel ? EcalBarrel : EcalEndcap); MESet& meSCE(MEs_.at("SCE")); + MESet& meSCEt(MEs_.at("SCEt")); MESet& meSCELow(MEs_.at("SCELow")); + MESet& meSCEtLow(MEs_.at("SCEtLow")); MESet& meSCRawE(MEs_.at("SCRawE")); + MESet& meSCRawEt(MEs_.at("SCRawEt")); MESet& meSCRawELow(MEs_.at("SCRawELow")); + MESet& meSCRawEtLow(MEs_.at("SCRawEtLow")); MESet& meSCRawEHigh(MEs_.at("SCRawEHigh")); MESet& meSCNBCs(MEs_.at("SCNBCs")); MESet& meSCNcrystals(MEs_.at("SCNcrystals")); @@ -402,9 +410,8 @@ namespace ecaldqm { for (reco::SuperClusterCollection::const_iterator scItr(_scs.begin()); scItr != _scs.end(); ++scItr) { DetId seedId(scItr->seed()->seed()); + math::XYZPoint const& position(scItr->position()); if (seedId.null()) { - math::XYZPoint const& position(scItr->position()); - GlobalPoint gp(position.x(), position.y(), position.z()); CaloSubdetectorGeometry const* subgeom( @@ -424,13 +431,20 @@ namespace ecaldqm { float energy(scItr->energy()); float rawEnergy(scItr->rawEnergy()); + float posEta(position.eta()); + float et(energy / std::cosh(posEta)); + float rawEt(rawEnergy / std::cosh(posEta)); float size(scItr->size()); meSCE.fill(getEcalDQMSetupObjects(), seedId, energy); + meSCEt.fill(getEcalDQMSetupObjects(), seedId, et); meSCELow.fill(getEcalDQMSetupObjects(), seedId, energy); - + meSCEtLow.fill(getEcalDQMSetupObjects(), seedId, et); + meSCRawE.fill(getEcalDQMSetupObjects(), seedId, rawEnergy); + meSCRawEt.fill(getEcalDQMSetupObjects(), seedId, rawEt); meSCRawELow.fill(getEcalDQMSetupObjects(), seedId, rawEnergy); + meSCRawEtLow.fill(getEcalDQMSetupObjects(), seedId, rawEt); meSCRawEHigh.fill(getEcalDQMSetupObjects(), seedId, rawEnergy); meSCNBCs.fill(getEcalDQMSetupObjects(), seedId, scItr->clustersSize()); From 8217fa00a22b1ec241f7f29851d42e9150bba4fc Mon Sep 17 00:00:00 2001 From: Kyungmin Park Date: Wed, 27 Nov 2024 12:08:33 +0100 Subject: [PATCH 154/418] code format for cluster task --- DQM/EcalMonitorTasks/src/ClusterTask.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DQM/EcalMonitorTasks/src/ClusterTask.cc b/DQM/EcalMonitorTasks/src/ClusterTask.cc index e8c8f5a1ce105..70cb488da4c4f 100644 --- a/DQM/EcalMonitorTasks/src/ClusterTask.cc +++ b/DQM/EcalMonitorTasks/src/ClusterTask.cc @@ -440,7 +440,7 @@ namespace ecaldqm { meSCEt.fill(getEcalDQMSetupObjects(), seedId, et); meSCELow.fill(getEcalDQMSetupObjects(), seedId, energy); meSCEtLow.fill(getEcalDQMSetupObjects(), seedId, et); - + meSCRawE.fill(getEcalDQMSetupObjects(), seedId, rawEnergy); meSCRawEt.fill(getEcalDQMSetupObjects(), seedId, rawEt); meSCRawELow.fill(getEcalDQMSetupObjects(), seedId, rawEnergy); From b4c67bd45cc1b56dd7a82779c022086bfb253949 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Wed, 27 Nov 2024 17:06:14 +0100 Subject: [PATCH 155/418] Fix4 code-checks --- SimG4Core/Generators/src/Generator3.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/SimG4Core/Generators/src/Generator3.cc b/SimG4Core/Generators/src/Generator3.cc index f73e01fc3cf30..22a4a6461c18b 100644 --- a/SimG4Core/Generators/src/Generator3.cc +++ b/SimG4Core/Generators/src/Generator3.cc @@ -196,7 +196,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { if (verbose > 2) LogDebug("SimG4CoreGenerator3") << "GenVertex barcode = " << vitr->id() << " selected for GenParticle barcode = " << pitr->id() - << " radius = " << std::sqrt(r_dd); // barcode is substituted by id + << " radius = " << std::sqrt(r_dd); // barcode is substituted by id break; } } else { @@ -356,7 +356,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { continue; } } - const HepMC3::GenParticle* ppointer = pitr.get(); + const HepMC3::GenParticle *ppointer = pitr.get(); if (fLumiFilter && !fLumiFilter->isGoodForLumiMonitor(ppointer)) { // MK: this function is always true continue; } @@ -431,10 +431,10 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { } void Generator3::particleAssignDaughters(G4PrimaryParticle *g4p, HepMC3::GenParticle *vp, double decaylength) { - if (verbose > 1) { + if (verbose > 1) { // MK: Check message below LogDebug("SimG4CoreGenerator3") << "Special case of long decay length \n" - << "Assign daughters with to mother with decaylength=" << decaylength / CLHEP::cm - << " cm"; + << "Assign daughters to mother with decaylength=" << decaylength / CLHEP::cm + << " cm"; } math::XYZTLorentzVector p(vp->momentum().px(), vp->momentum().py(), vp->momentum().pz(), vp->momentum().e()); From 8aa5ace24f968928cdd0c758e23e1300531acf35 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Wed, 27 Nov 2024 17:08:30 +0100 Subject: [PATCH 156/418] Modify the HCAL calibration macros in view of current and 2025 IsoTrack calibratins --- Calibration/HcalCalibAlgos/macros/CalibCorr.C | 25 +++++++++---------- .../HcalCalibAlgos/macros/CalibMonitor.C | 12 ++++----- .../macros/CalibPlotProperties.C | 12 ++++----- Calibration/HcalCalibAlgos/macros/CalibTree.C | 12 ++++----- 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/Calibration/HcalCalibAlgos/macros/CalibCorr.C b/Calibration/HcalCalibAlgos/macros/CalibCorr.C index 3c68dd7539701..0de7b6e27b128 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibCorr.C +++ b/Calibration/HcalCalibAlgos/macros/CalibCorr.C @@ -178,16 +178,9 @@ unsigned int truncateId(unsigned int detId, int truncateFlag, bool debug = false depth = 1; } } else if (truncate0 == 8) { - //Ignore depth index for HE; depth 1, 2 considered as 1; deepth > 2 as 2 - //Ignore depth index for depth > 2 in HB; all depths considered as 1 - if (subdet == 2) { - if (depth <= 2) - depth = 1; - else - depth = 2; - } else { - depth = 1; - } + //Assign all depths > 4 as depth = 5 + if (depth >= 5) + depth = 5; } else if (truncate0 == 9) { //Depths 1 and 2 considered as depth = 2; rest of the depths are kept as it is if (depth <= 2) @@ -246,12 +239,18 @@ int truncateDepth(int ieta, int depth, int truncateFlag) { } double threshold(int subdet, int depth, int form) { - double cutHE[7] = {0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}; - double cutHB[3][4] = {{0.1, 0.2, 0.3, 0.3}, {0.25, 0.25, 0.3, 0.3}, {0.4, 0.3, 0.3, 0.3}}; + double cutHE[4][7] = {{0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}, + {0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}, + {0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}, + {0.2, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3}}; + double cutHB[4][4] = {{0.1, 0.2, 0.3, 0.3}, + {0.25, 0.25, 0.3, 0.3}, + {0.4, 0.3, 0.3, 0.3}, + {0.6, 0.4, 0.4, 0.5}}; double thr(0); if (form > 0) { if (subdet == 2) - thr = cutHE[depth - 1]; + thr = cutHE[form - 1][depth - 1]; else thr = cutHB[form - 1][depth - 1]; } diff --git a/Calibration/HcalCalibAlgos/macros/CalibMonitor.C b/Calibration/HcalCalibAlgos/macros/CalibMonitor.C index 1f344725c60d1..436b08edb8802 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibMonitor.C +++ b/Calibration/HcalCalibAlgos/macros/CalibMonitor.C @@ -87,11 +87,10 @@ // as depth 2; (6) for depth = 1 and 2, depth = // 1, else depth = 2; (7) in case of HB, depths // 1 and 2 are set to 1, else depth = 2; for HE -// ignore depth index; (8) in case of HE, depths -// 1 and 2 are set to 1, else depth = 2; for HB -// ignore depth index; (9) Assign all depth = 1 -// as depth = 2. The digit *d* is used if zside -// is to be ignored (1) or not (0) +// ignore depth index; (8) Assign all depths > 4 +// as depth = 5; (9) Assign all depth = 1 as +// depth = 2. The digit *d* is used if zside is +// to be ignored (1) or not (0) // (Default 0) // useGen (bool) = true/false to use generator level momentum // or reconstruction level momentum @@ -104,7 +103,8 @@ // barrel => |ieta| < 16; endcap => |ieta| > 15; // d: as the format for threshold application, // 0: no threshold; 1: 2022 prompt data; 2: -// 2022 reco data; 3: 2023 prompt data +// 2022 reco data; 3: 2023 prompt data; 4: 2025 +// Begin of Year. // (default = 0) // etalo/etahi (int,int) = |eta| ranges (default = 0:30) // runlo (int) = lower value of run number to be included (+ve) diff --git a/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C b/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C index 775b1ddbd673c..2bf14a8d52e2e 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C +++ b/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C @@ -87,11 +87,10 @@ // as depth 2; (6) for depth = 1 and 2, depth = // 1, else depth = 2; (7) in case of HB, depths // 1 and 2 are set to 1, else depth = 2; for HE -// ignore depth index; (8) in case of HE, depths -// 1 and 2 are set to 1, else depth = 2; for HB -// ignore depth index; (9) Assign all depth = 1 -// as depth = 2. The digit *d* is used if zside -// is to be ignored (1) or not (0) +// ignore depth index; (8) Assign all depths > 4 +// as depth = 5; (9) Assign all depth = 1 as +// depth = 2. The digit *d* is used if zside is +// to be ignored (1) or not (0). // (Default 0) // useGen (bool) = true/false to use generator level momentum // or reconstruction level momentum (def false) @@ -103,7 +102,8 @@ // barrel => |ieta| < 16; endcap => |ieta| > 15; // d: as the format for threshold application, // 0: no threshold; 1: 2022 prompt data; 2: -// 2022 reco data; 3: 2023 prompt data +// 2022 reco data; 3: 2023 prompt data; 4: 2025 +// Begin of Year. // (default = 0) // etalo/etahi (int,int) = |eta| ranges (0:30) // runlo (int) = lower value of run number to be included (+ve) diff --git a/Calibration/HcalCalibAlgos/macros/CalibTree.C b/Calibration/HcalCalibAlgos/macros/CalibTree.C index 35160daa86faf..a98d9f4979849 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibTree.C +++ b/Calibration/HcalCalibAlgos/macros/CalibTree.C @@ -61,11 +61,10 @@ // as depth 2; (6) for depth = 1 and 2, depth = // 1, else depth = 2; (7) in case of HB, depths // 1 and 2 are set to 1, else depth = 2; for HE -// ignore depth index; (8) in case of HE, depths -// 1 and 2 are set to 1, else depth = 2; for HB -// ignore depth index; (9) Assign all depth = 1 -// as depth = 2. The digit *d* is used if zside -// is to be ignored (1) or not (0) +// ignore depth index; (8) Assign all depths > 4 +// as depth = 5; (9) Assign all depth = 1 as +// depth = 2. The digit *d* is used if zside is +// to be ignored (1) or not (0) // (Default 0) // maxIter (int) = number of iterations (30) // drForm (int) = type of threshold/dupFileName/rcorFileName (hdr) @@ -82,7 +81,8 @@ // range, ieta, depth where gain has changed. // For threshold h: the format for threshold // application, 0: no threshold; 1: 2022 prompt -// data; 2: 2022 reco data; 3: 2023 prompt data. +// data; 2: 2022 reco data; 3: 2023 prompt data; +// 4: 2025 Begin of Year. // (Default 0) // useGen (bool) = use generator level momentum information (false) // runlo (int) = lower value of run number to be included (+ve) From d514b1f433089b7ffde3c2bf67a5f45061119c42 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Wed, 27 Nov 2024 17:18:14 +0100 Subject: [PATCH 157/418] Code check --- Calibration/HcalCalibAlgos/macros/CalibCorr.C | 11 ++++------- Calibration/HcalCalibAlgos/macros/CalibMonitor.C | 2 +- Calibration/HcalCalibAlgos/macros/CalibTree.C | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/Calibration/HcalCalibAlgos/macros/CalibCorr.C b/Calibration/HcalCalibAlgos/macros/CalibCorr.C index 0de7b6e27b128..a578a830603f9 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibCorr.C +++ b/Calibration/HcalCalibAlgos/macros/CalibCorr.C @@ -240,13 +240,10 @@ int truncateDepth(int ieta, int depth, int truncateFlag) { double threshold(int subdet, int depth, int form) { double cutHE[4][7] = {{0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}, - {0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}, - {0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}, - {0.2, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3}}; - double cutHB[4][4] = {{0.1, 0.2, 0.3, 0.3}, - {0.25, 0.25, 0.3, 0.3}, - {0.4, 0.3, 0.3, 0.3}, - {0.6, 0.4, 0.4, 0.5}}; + {0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}, + {0.1, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2}, + {0.2, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3}}; + double cutHB[4][4] = {{0.1, 0.2, 0.3, 0.3}, {0.25, 0.25, 0.3, 0.3}, {0.4, 0.3, 0.3, 0.3}, {0.6, 0.4, 0.4, 0.5}}; double thr(0); if (form > 0) { if (subdet == 2) diff --git a/Calibration/HcalCalibAlgos/macros/CalibMonitor.C b/Calibration/HcalCalibAlgos/macros/CalibMonitor.C index 436b08edb8802..3b0c08c62a8c0 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibMonitor.C +++ b/Calibration/HcalCalibAlgos/macros/CalibMonitor.C @@ -103,7 +103,7 @@ // barrel => |ieta| < 16; endcap => |ieta| > 15; // d: as the format for threshold application, // 0: no threshold; 1: 2022 prompt data; 2: -// 2022 reco data; 3: 2023 prompt data; 4: 2025 +// 2022 reco data; 3: 2023 prompt data; 4: 2025 // Begin of Year. // (default = 0) // etalo/etahi (int,int) = |eta| ranges (default = 0:30) diff --git a/Calibration/HcalCalibAlgos/macros/CalibTree.C b/Calibration/HcalCalibAlgos/macros/CalibTree.C index a98d9f4979849..90423f7711fb9 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibTree.C +++ b/Calibration/HcalCalibAlgos/macros/CalibTree.C @@ -62,7 +62,7 @@ // 1, else depth = 2; (7) in case of HB, depths // 1 and 2 are set to 1, else depth = 2; for HE // ignore depth index; (8) Assign all depths > 4 -// as depth = 5; (9) Assign all depth = 1 as +// as depth = 5; (9) Assign all depth = 1 as // depth = 2. The digit *d* is used if zside is // to be ignored (1) or not (0) // (Default 0) From ad180685f96f41ee0efd1e1f33657d032bb8eacf Mon Sep 17 00:00:00 2001 From: Dinko Ferencek Date: Fri, 12 Apr 2024 11:26:34 +0200 Subject: [PATCH 158/418] allow using fake pixels as seeds but drop them from final clusters --- .../SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc index f5c80d6be258b..30273146b16e9 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc @@ -390,7 +390,9 @@ SiPixelCluster PixelThresholdClusterizer::make_cluster(const SiPixelCluster::Pix AccretionCluster acluster, cldata; acluster.add(pix, seed_adc); - cldata.add(pix, seed_adc); + if (!theFakePixels[pix.row() * theNumOfCols + pix.col()]) { + cldata.add(pix, seed_adc); + } //Here we search all pixels adjacent to all pixels in the cluster. bool dead_flag = false; From 261a73d1792eaa2ed03ed166d6306e5a629a50fc Mon Sep 17 00:00:00 2001 From: Sunanda Date: Thu, 28 Nov 2024 08:29:13 +0100 Subject: [PATCH 159/418] Define the additional scenarios for 2025: required to prepare the payloads for 2025 --- Configuration/Geometry/README.md | 7 + ...pExtended2025FlatMinus05PercentReco_cff.py | 51 + ...D4hepExtended2025FlatMinus05Percent_cff.py | 15 + ...pExtended2025FlatMinus10PercentReco_cff.py | 51 + ...D4hepExtended2025FlatMinus10Percent_cff.py | 15 + ...epExtended2025FlatPlus05PercentReco_cff.py | 51 + ...DD4hepExtended2025FlatPlus05Percent_cff.py | 15 + ...epExtended2025FlatPlus10PercentReco_cff.py | 51 + ...DD4hepExtended2025FlatPlus10Percent_cff.py | 15 + ...yDD4hepExtended2025ZeroMaterialReco_cff.py | 51 + ...metryDD4hepExtended2025ZeroMaterial_cff.py | 15 + ...yExtended2025FlatMinus05PercentReco_cff.py | 51 + ...metryExtended2025FlatMinus05Percent_cff.py | 13 + ...yExtended2025FlatMinus10PercentReco_cff.py | 51 + ...metryExtended2025FlatMinus10Percent_cff.py | 13 + ...ryExtended2025FlatPlus05PercentReco_cff.py | 51 + ...ometryExtended2025FlatPlus05Percent_cff.py | 13 + ...ryExtended2025FlatPlus10PercentReco_cff.py | 51 + ...ometryExtended2025FlatPlus10Percent_cff.py | 13 + ...eometryExtended2025ZeroMaterialReco_cff.py | 51 + .../GeometryExtended2025ZeroMaterial_cff.py | 13 + .../Geometry/python/dict2021Geometry.py | 60 + .../StandardSequences/python/GeometryConf.py | 10 + ...ExtendedGeometry2025FlatMinus05Percent.xml | 382 ++ ...ExtendedGeometry2025FlatMinus10Percent.xml | 382 ++ ...sExtendedGeometry2025FlatPlus05Percent.xml | 382 ++ ...sExtendedGeometry2025FlatPlus10Percent.xml | 382 ++ .../cmsExtendedGeometry2025ZeroMaterial.xml | 382 ++ .../data/materials/2021/v5/materials.xml | 4470 +++++++++++++++++ ...edGeometry2025FlatMinus05PercentXML_cfi.py | 386 ++ ...edGeometry2025FlatMinus10PercentXML_cfi.py | 386 ++ ...dedGeometry2025FlatPlus05PercentXML_cfi.py | 386 ++ ...dedGeometry2025FlatPlus10PercentXML_cfi.py | 386 ++ ...ExtendedGeometry2025ZeroMaterialXML_cfi.py | 386 ++ 34 files changed, 9037 insertions(+) create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus05PercentReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus05Percent_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus10PercentReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus10Percent_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus05PercentReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus05Percent_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus10PercentReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus10Percent_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025ZeroMaterialReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryDD4hepExtended2025ZeroMaterial_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025FlatMinus05PercentReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025FlatMinus05Percent_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025FlatMinus10PercentReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025FlatMinus10Percent_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025FlatPlus05PercentReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025FlatPlus05Percent_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025FlatPlus10PercentReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025FlatPlus10Percent_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025ZeroMaterialReco_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2025ZeroMaterial_cff.py create mode 100644 Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus05Percent.xml create mode 100644 Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus10Percent.xml create mode 100644 Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus05Percent.xml create mode 100644 Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus10Percent.xml create mode 100644 Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025ZeroMaterial.xml create mode 100644 Geometry/CMSCommonData/data/materials/2021/v5/materials.xml create mode 100644 Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatMinus05PercentXML_cfi.py create mode 100644 Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatMinus10PercentXML_cfi.py create mode 100644 Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatPlus05PercentXML_cfi.py create mode 100644 Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatPlus10PercentXML_cfi.py create mode 100644 Geometry/CMSCommonData/python/cmsExtendedGeometry2025ZeroMaterialXML_cfi.py diff --git a/Configuration/Geometry/README.md b/Configuration/Geometry/README.md index afd225727c7db..3d01738bcb186 100644 --- a/Configuration/Geometry/README.md +++ b/Configuration/Geometry/README.md @@ -44,6 +44,8 @@ The script also handles the common and forward elements of the geometry: * O5: as O6, but with trackermaterial removed (they are in T5, T6, T7, T8) * O6: 2021 baseline * O7: 2021 with added material for muon shield +* O8: as O4 with added material for muon shield +* O9: as O5 with added material for muon shield * F1: 2021 baseline * F2: same as F1 with modified file zdc.xmlfrom ZDC group * F3: same as F2 with added simulti geometry for RPD @@ -68,6 +70,11 @@ Several detector combinations have been generated: * 2024FlatPlus05Percent = T7+C2+M3+P7+O5+F2 * 2024FlatPlus10Percent = T8+C2+M3+P7+O5+F2 * 2025 = T3+C2+M4+P7+O7+F3 +* 2025ZeroMaterial = T4+C2+M4+P7+O8+F3 +* 2025FlatMinus05Percent = T5+C2+M4+P7+O9+F3 +* 2025FlatMinus10Percent = T6+C2+M4+P7+O9+F3 +* 2025FlatPlus05Percent = T7+C2+M4+P7+O9+F3 +* 2025FlatPlus10Percent = T8+C2+M4+P7+O9+F3 # Phase 2 Geometries diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus05PercentReco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus05PercentReco_cff.py new file mode 100644 index 0000000000000..4c9df4c5c719d --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus05PercentReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hepExtended2025FlatMinus05Percent_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus05Percent_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus05Percent_cff.py new file mode 100644 index 0000000000000..381ec0e41dab8 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus05Percent_cff.py @@ -0,0 +1,15 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hep_cff import * +DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus05Percent.xml") + +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus10PercentReco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus10PercentReco_cff.py new file mode 100644 index 0000000000000..0040bb4b6d703 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus10PercentReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hepExtended2025FlatMinus10Percent_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus10Percent_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus10Percent_cff.py new file mode 100644 index 0000000000000..f50b57b0f6800 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatMinus10Percent_cff.py @@ -0,0 +1,15 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hep_cff import * +DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus10Percent.xml") + +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus05PercentReco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus05PercentReco_cff.py new file mode 100644 index 0000000000000..37e172981bedd --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus05PercentReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hepExtended2025FlatPlus05Percent_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus05Percent_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus05Percent_cff.py new file mode 100644 index 0000000000000..eca920315519f --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus05Percent_cff.py @@ -0,0 +1,15 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hep_cff import * +DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus05Percent.xml") + +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus10PercentReco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus10PercentReco_cff.py new file mode 100644 index 0000000000000..82cf508475512 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus10PercentReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hepExtended2025FlatPlus10Percent_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus10Percent_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus10Percent_cff.py new file mode 100644 index 0000000000000..6c50891d68585 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025FlatPlus10Percent_cff.py @@ -0,0 +1,15 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hep_cff import * +DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus10Percent.xml") + +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025ZeroMaterialReco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025ZeroMaterialReco_cff.py new file mode 100644 index 0000000000000..ce4149f1cb67a --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025ZeroMaterialReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hepExtended2025ZeroMaterial_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2025ZeroMaterial_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2025ZeroMaterial_cff.py new file mode 100644 index 0000000000000..2096a8817b3a4 --- /dev/null +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2025ZeroMaterial_cff.py @@ -0,0 +1,15 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryDD4hep_cff import * +DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025ZeroMaterial.xml") + +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryExtended2025FlatMinus05PercentReco_cff.py b/Configuration/Geometry/python/GeometryExtended2025FlatMinus05PercentReco_cff.py new file mode 100644 index 0000000000000..2e824d8c518bd --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025FlatMinus05PercentReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryExtended2025FlatMinus05Percent_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryExtended2025FlatMinus05Percent_cff.py b/Configuration/Geometry/python/GeometryExtended2025FlatMinus05Percent_cff.py new file mode 100644 index 0000000000000..e8d273dbbec31 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025FlatMinus05Percent_cff.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Geometry.CMSCommonData.cmsExtendedGeometry2025FlatMinus05PercentXML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryExtended2025FlatMinus10PercentReco_cff.py b/Configuration/Geometry/python/GeometryExtended2025FlatMinus10PercentReco_cff.py new file mode 100644 index 0000000000000..8f9c170d62104 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025FlatMinus10PercentReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryExtended2025FlatMinus10Percent_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryExtended2025FlatMinus10Percent_cff.py b/Configuration/Geometry/python/GeometryExtended2025FlatMinus10Percent_cff.py new file mode 100644 index 0000000000000..13031c902ec02 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025FlatMinus10Percent_cff.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Geometry.CMSCommonData.cmsExtendedGeometry2025FlatMinus10PercentXML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryExtended2025FlatPlus05PercentReco_cff.py b/Configuration/Geometry/python/GeometryExtended2025FlatPlus05PercentReco_cff.py new file mode 100644 index 0000000000000..047fb7a82fbc5 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025FlatPlus05PercentReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryExtended2025FlatPlus05Percent_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryExtended2025FlatPlus05Percent_cff.py b/Configuration/Geometry/python/GeometryExtended2025FlatPlus05Percent_cff.py new file mode 100644 index 0000000000000..418b008cbd967 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025FlatPlus05Percent_cff.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Geometry.CMSCommonData.cmsExtendedGeometry2025FlatPlus05PercentXML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryExtended2025FlatPlus10PercentReco_cff.py b/Configuration/Geometry/python/GeometryExtended2025FlatPlus10PercentReco_cff.py new file mode 100644 index 0000000000000..0766fd81041bd --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025FlatPlus10PercentReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryExtended2025FlatPlus10Percent_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryExtended2025FlatPlus10Percent_cff.py b/Configuration/Geometry/python/GeometryExtended2025FlatPlus10Percent_cff.py new file mode 100644 index 0000000000000..4e861f737f7e9 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025FlatPlus10Percent_cff.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Geometry.CMSCommonData.cmsExtendedGeometry2025FlatPlus10PercentXML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/GeometryExtended2025ZeroMaterialReco_cff.py b/Configuration/Geometry/python/GeometryExtended2025ZeroMaterialReco_cff.py new file mode 100644 index 0000000000000..cbbcb8d8de7af --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025ZeroMaterialReco_cff.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryExtended2025ZeroMaterial_cff import * + +# tracker +from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * + +# calo +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring("HCAL", + "ZDC", + "EcalBarrel", + "EcalEndcap", + "EcalPreshower", + "TOWER", + ) +) +from Geometry.EcalAlgo.EcalGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +# pps + + diff --git a/Configuration/Geometry/python/GeometryExtended2025ZeroMaterial_cff.py b/Configuration/Geometry/python/GeometryExtended2025ZeroMaterial_cff.py new file mode 100644 index 0000000000000..63e0dd7df1b2f --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2025ZeroMaterial_cff.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Geometry.CMSCommonData.cmsExtendedGeometry2025ZeroMaterialXML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import * +from Geometry.EcalCommonData.ecalSimulationParameters_cff import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * +from Geometry.ForwardGeometry.zdcTopologyEP_cfi import * +from Geometry.MuonNumbering.muonGeometryConstants_cff import * +from Geometry.MuonNumbering.muonOffsetESProducer_cff import * + diff --git a/Configuration/Geometry/python/dict2021Geometry.py b/Configuration/Geometry/python/dict2021Geometry.py index 0d8bf28a26ce4..7ae42b78fb6fd 100644 --- a/Configuration/Geometry/python/dict2021Geometry.py +++ b/Configuration/Geometry/python/dict2021Geometry.py @@ -115,6 +115,61 @@ ], "era" : "run3_common, stage2L1Trigger_2021", }, + "O8" : { + 1 : [ + 'Geometry/CMSCommonData/data/materials/2021/v5/materials.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v2/trackermaterial.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + ], + 5 : [ + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ], + "era" : "run3_common, stage2L1Trigger_2021", + }, + "O9" : { + 1 : [ + 'Geometry/CMSCommonData/data/materials/2021/v5/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + ], + 5 : [ + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ], + "era" : "run3_common, stage2L1Trigger_2021", + }, } trackerDict = { @@ -1975,6 +2030,11 @@ ("O5","T7","C2","M3","F2","P7") : "2024FlatPlus05Percent", ("O5","T8","C2","M3","F2","P7") : "2024FlatPlus10Percent", ("O7","T3","C2","M4","F3","P7") : "2025", + ("O8","T4","C2","M4","F3","P7") : "2025ZeroMaterial", + ("O9","T5","C2","M4","F3","P7") : "2025FlatMinus05Percent", + ("O9","T6","C2","M4","F3","P7") : "2025FlatMinus10Percent", + ("O9","T7","C2","M4","F3","P7") : "2025FlatPlus05Percent", + ("O9","T8","C2","M4","F3","P7") : "2025FlatPlus10Percent", } deprecatedSubdets = set([ "T1", "T2", "O1", "O2", "O3", "P1", "P2", "P3", diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py index 4e5046933e053..afa1ec873fd15 100644 --- a/Configuration/StandardSequences/python/GeometryConf.py +++ b/Configuration/StandardSequences/python/GeometryConf.py @@ -74,6 +74,16 @@ 'DD4hepExtended2024FlatPlus10Percent' : 'DD4hepExtended2024FlatPlus10Percent,DD4hepExtended2024FlatPlus10PercentReco', 'Extended2025' : 'Extended2025,Extended2025Reco', 'DD4hepExtended2025' : 'DD4hepExtended2025,DD4hepExtended2025Reco', + 'Extended2025ZeroMaterial' : 'Extended2025ZeroMaterial,Extended2025ZeroMaterialReco', + 'DD4hepExtended2025ZeroMaterial' : 'DD4hepExtended2025ZeroMaterial,DD4hepExtended2025ZeroMaterialReco', + 'Extended2025FlatMinus05Percent' : 'Extended2025FlatMinus05Percent,Extended2025FlatMinus05PercentReco', + 'DD4hepExtended2025FlatMinus05Percent' : 'DD4hepExtended2025FlatMinus05Percent,DD4hepExtended2025FlatMinus05PercentReco', + 'Extended2025FlatMinus10Percent' : 'Extended2025FlatMinus10Percent,Extended2025FlatMinus10PercentReco', + 'DD4hepExtended2025FlatMinus10Percent' : 'DD4hepExtended2025FlatMinus10Percent,DD4hepExtended2025FlatMinus10PercentReco', + 'Extended2025FlatPlus05Percent' : 'Extended2025FlatPlus05Percent,Extended2025FlatPls05PercentReco', + 'DD4hepExtended2025FlatPlus05Percent' : 'DD4hepExtended2025FlatPlus05Percent,DD4hepExtended2025FlatPls05PercentReco', + 'Extended2025FlatPlus10Percent' : 'Extended2025FlatPlus10Percent,Extended2025FlatPlus10PercentReco', + 'DD4hepExtended2025FlatPlus10Percent' : 'DD4hepExtended2025FlatPlus10Percent,DD4hepExtended2025FlatPlus10PercentReco', 'All' : 'Configuration.Geometry.GeometrySimAll_cff,Reco', 'ECALHCAL' : 'Configuration.Geometry.GeometrySimECALHCAL_cff,Configuration.Geometry.GeometryRecoECALHCAL_cff', 'TrackerOnly' : 'Configuration.Geometry.GeometrySimTracker_cff,Configuration.Geometry.GeometryRecoTracker_cff', diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus05Percent.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus05Percent.xml new file mode 100644 index 0000000000000..a03e1f0b4bab6 --- /dev/null +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus05Percent.xml @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus10Percent.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus10Percent.xml new file mode 100644 index 0000000000000..3c2625648fc05 --- /dev/null +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatMinus10Percent.xml @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus05Percent.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus05Percent.xml new file mode 100644 index 0000000000000..03bcdd961ee92 --- /dev/null +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus05Percent.xml @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus10Percent.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus10Percent.xml new file mode 100644 index 0000000000000..59ac097893f2b --- /dev/null +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025FlatPlus10Percent.xml @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025ZeroMaterial.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025ZeroMaterial.xml new file mode 100644 index 0000000000000..8b785af27d24d --- /dev/null +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2025ZeroMaterial.xml @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/materials/2021/v5/materials.xml b/Geometry/CMSCommonData/data/materials/2021/v5/materials.xml new file mode 100644 index 0000000000000..25855ebde5845 --- /dev/null +++ b/Geometry/CMSCommonData/data/materials/2021/v5/materials.xml @@ -0,0 +1,4470 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatMinus05PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatMinus05PercentXML_cfi.py new file mode 100644 index 0000000000000..311411dc8501f --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatMinus05PercentXML_cfi.py @@ -0,0 +1,386 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v5/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/FlatMinus05Percent/2021/v2/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus05Percent/2021/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/FlatMinus05Percent/2021/v1/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus05Percent/2021/v2/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus05Percent/2021/v2/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus05Percent/2021/v2/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus05Percent/2021/v2/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus05Percent/2021/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v3/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdSupportRingParameters.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbar.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpatchpannel.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpixelnose.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob/v3/tob.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel/2021/v1/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/Run2/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/v2/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseI/v1/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eefixed/2021/v1/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/PhaseI/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcap/PhaseI/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/2021/v1/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/2021/v2/hcalRecNumbering.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2025/v1/gem21.xml', + 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', + 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/2024/v1/muonNumbering.xml', + 'Geometry/ForwardCommonData/data/forward/2021/v1/forward.xml', + 'Geometry/ForwardCommonData/data/totemt2/2021/v1/totemt2.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2021/v1/forwardshield.xml', + 'Geometry/ForwardCommonData/data/bhm.xml', + 'Geometry/ForwardCommonData/data/pltbcm/2021/v1/pltbcm.xml', + 'Geometry/ForwardCommonData/data/bcm1f/2021/v1/bcm1f.xml', + 'Geometry/ForwardCommonData/data/plt/2021/v1/plt.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2021/v3/zdc.xml', + 'Geometry/ForwardCommonData/data/rpd/2021/v2/rpd.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/VeryForwardData/data/RP_Box.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_000.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_001.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_002.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_003.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_004.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_005.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_020.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_021.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_022.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_023.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_024.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_025.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_100.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_101.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_102.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_103.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_104.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_105.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_120.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_121.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_122.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_123.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_124.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_125.xml', + 'Geometry/VeryForwardData/data/RP_Hybrid/v2/RP_Hybrid.xml', + 'Geometry/VeryForwardData/data/RP_Materials/v5/RP_Materials.xml', + 'Geometry/VeryForwardData/data/RP_Transformations.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_000.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_001.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_002.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_004.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_005.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_020.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_021.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_024.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_025.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_100.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_101.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_102.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_104.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_105.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_120.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_121.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', + 'Geometry/VeryForwardData/data/RP_Device/v1/RP_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/Simu/v2/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/Simu/v2/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_Stations_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Cuts_Per_Region/Simu/v1/CTPPS_Cuts_Per_Region.xml', + 'Geometry/VeryForwardData/data/RP_Sensitive_Dets.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Transformations.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Station_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Horizontal_Pot/v2/CTPPS_Timing_Horizontal_Pot.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern1_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment5.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Detector_Assembly/v1/CTPPS_Diamond_Detector_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_022.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_122.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Sensitive_Dets_TimingHits.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v3/PPS_Pixel_Module_2x2_Run3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v2/PPS_Pixel_Sens.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_003.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_023.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_103.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_123.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/RP_Dist_Beam_Cent/Simu/v1/RP_Dist_Beam_Cent.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/2021/v2/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2021/v1/CaloUtil.xml', + 'Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter/2021/v2/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecs/2021/v2/GEMSpecs.xml', + 'Geometry/ForwardSimData/data/totemsensT2/2021/totemsensT2.xml', + 'Geometry/ForwardCommonData/data/bhmsens.xml', + 'Geometry/ForwardSimData/data/pltsens.xml', + 'Geometry/ForwardSimData/data/bcm1fsens.xml', + 'Geometry/ForwardSimData/data/zdcsens/2021/v1/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2021/v2/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/ForwardSimData/data/bhmProdCuts/2021/v1/bhmProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v3/zdcProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatMinus10PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatMinus10PercentXML_cfi.py new file mode 100644 index 0000000000000..3b5451b2a136c --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatMinus10PercentXML_cfi.py @@ -0,0 +1,386 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v5/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/FlatMinus10Percent/2021/v2/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus10Percent/2021/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/FlatMinus10Percent/2021/v1/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus10Percent/2021/v2/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus10Percent/2021/v2/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus10Percent/2021/v2/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus10Percent/2021/v2/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatMinus10Percent/2021/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v3/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdSupportRingParameters.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbar.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpatchpannel.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpixelnose.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob/v3/tob.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel/2021/v1/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/Run2/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/v2/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseI/v1/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eefixed/2021/v1/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/PhaseI/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcap/PhaseI/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/2021/v1/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/2021/v2/hcalRecNumbering.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2025/v1/gem21.xml', + 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', + 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/2024/v1/muonNumbering.xml', + 'Geometry/ForwardCommonData/data/forward/2021/v1/forward.xml', + 'Geometry/ForwardCommonData/data/totemt2/2021/v1/totemt2.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2021/v1/forwardshield.xml', + 'Geometry/ForwardCommonData/data/bhm.xml', + 'Geometry/ForwardCommonData/data/pltbcm/2021/v1/pltbcm.xml', + 'Geometry/ForwardCommonData/data/bcm1f/2021/v1/bcm1f.xml', + 'Geometry/ForwardCommonData/data/plt/2021/v1/plt.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2021/v3/zdc.xml', + 'Geometry/ForwardCommonData/data/rpd/2021/v2/rpd.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/VeryForwardData/data/RP_Box.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_000.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_001.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_002.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_003.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_004.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_005.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_020.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_021.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_022.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_023.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_024.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_025.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_100.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_101.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_102.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_103.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_104.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_105.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_120.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_121.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_122.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_123.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_124.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_125.xml', + 'Geometry/VeryForwardData/data/RP_Hybrid/v2/RP_Hybrid.xml', + 'Geometry/VeryForwardData/data/RP_Materials/v5/RP_Materials.xml', + 'Geometry/VeryForwardData/data/RP_Transformations.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_000.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_001.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_002.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_004.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_005.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_020.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_021.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_024.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_025.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_100.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_101.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_102.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_104.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_105.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_120.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_121.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', + 'Geometry/VeryForwardData/data/RP_Device/v1/RP_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/Simu/v2/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/Simu/v2/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_Stations_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Cuts_Per_Region/Simu/v1/CTPPS_Cuts_Per_Region.xml', + 'Geometry/VeryForwardData/data/RP_Sensitive_Dets.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Transformations.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Station_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Horizontal_Pot/v2/CTPPS_Timing_Horizontal_Pot.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern1_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment5.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Detector_Assembly/v1/CTPPS_Diamond_Detector_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_022.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_122.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Sensitive_Dets_TimingHits.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v3/PPS_Pixel_Module_2x2_Run3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v2/PPS_Pixel_Sens.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_003.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_023.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_103.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_123.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/RP_Dist_Beam_Cent/Simu/v1/RP_Dist_Beam_Cent.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/2021/v2/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2021/v1/CaloUtil.xml', + 'Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter/2021/v2/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecs/2021/v2/GEMSpecs.xml', + 'Geometry/ForwardSimData/data/totemsensT2/2021/totemsensT2.xml', + 'Geometry/ForwardCommonData/data/bhmsens.xml', + 'Geometry/ForwardSimData/data/pltsens.xml', + 'Geometry/ForwardSimData/data/bcm1fsens.xml', + 'Geometry/ForwardSimData/data/zdcsens/2021/v1/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2021/v2/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/ForwardSimData/data/bhmProdCuts/2021/v1/bhmProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v3/zdcProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatPlus05PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatPlus05PercentXML_cfi.py new file mode 100644 index 0000000000000..27c12aeaa27ea --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatPlus05PercentXML_cfi.py @@ -0,0 +1,386 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v5/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/FlatPlus05Percent/2021/v2/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus05Percent/2021/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/FlatPlus05Percent/2021/v1/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus05Percent/2021/v2/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus05Percent/2021/v2/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus05Percent/2021/v2/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus05Percent/2021/v2/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus05Percent/2021/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v3/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdSupportRingParameters.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbar.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpatchpannel.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpixelnose.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob/v3/tob.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel/2021/v1/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/Run2/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/v2/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseI/v1/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eefixed/2021/v1/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/PhaseI/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcap/PhaseI/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/2021/v1/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/2021/v2/hcalRecNumbering.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2025/v1/gem21.xml', + 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', + 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/2024/v1/muonNumbering.xml', + 'Geometry/ForwardCommonData/data/forward/2021/v1/forward.xml', + 'Geometry/ForwardCommonData/data/totemt2/2021/v1/totemt2.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2021/v1/forwardshield.xml', + 'Geometry/ForwardCommonData/data/bhm.xml', + 'Geometry/ForwardCommonData/data/pltbcm/2021/v1/pltbcm.xml', + 'Geometry/ForwardCommonData/data/bcm1f/2021/v1/bcm1f.xml', + 'Geometry/ForwardCommonData/data/plt/2021/v1/plt.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2021/v3/zdc.xml', + 'Geometry/ForwardCommonData/data/rpd/2021/v2/rpd.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/VeryForwardData/data/RP_Box.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_000.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_001.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_002.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_003.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_004.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_005.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_020.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_021.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_022.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_023.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_024.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_025.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_100.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_101.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_102.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_103.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_104.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_105.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_120.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_121.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_122.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_123.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_124.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_125.xml', + 'Geometry/VeryForwardData/data/RP_Hybrid/v2/RP_Hybrid.xml', + 'Geometry/VeryForwardData/data/RP_Materials/v5/RP_Materials.xml', + 'Geometry/VeryForwardData/data/RP_Transformations.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_000.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_001.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_002.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_004.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_005.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_020.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_021.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_024.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_025.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_100.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_101.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_102.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_104.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_105.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_120.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_121.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', + 'Geometry/VeryForwardData/data/RP_Device/v1/RP_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/Simu/v2/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/Simu/v2/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_Stations_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Cuts_Per_Region/Simu/v1/CTPPS_Cuts_Per_Region.xml', + 'Geometry/VeryForwardData/data/RP_Sensitive_Dets.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Transformations.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Station_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Horizontal_Pot/v2/CTPPS_Timing_Horizontal_Pot.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern1_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment5.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Detector_Assembly/v1/CTPPS_Diamond_Detector_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_022.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_122.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Sensitive_Dets_TimingHits.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v3/PPS_Pixel_Module_2x2_Run3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v2/PPS_Pixel_Sens.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_003.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_023.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_103.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_123.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/RP_Dist_Beam_Cent/Simu/v1/RP_Dist_Beam_Cent.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/2021/v2/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2021/v1/CaloUtil.xml', + 'Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter/2021/v2/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecs/2021/v2/GEMSpecs.xml', + 'Geometry/ForwardSimData/data/totemsensT2/2021/totemsensT2.xml', + 'Geometry/ForwardCommonData/data/bhmsens.xml', + 'Geometry/ForwardSimData/data/pltsens.xml', + 'Geometry/ForwardSimData/data/bcm1fsens.xml', + 'Geometry/ForwardSimData/data/zdcsens/2021/v1/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2021/v2/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/ForwardSimData/data/bhmProdCuts/2021/v1/bhmProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v3/zdcProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatPlus10PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatPlus10PercentXML_cfi.py new file mode 100644 index 0000000000000..6659492bb2d79 --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025FlatPlus10PercentXML_cfi.py @@ -0,0 +1,386 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v5/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/FlatPlus10Percent/2021/v2/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus10Percent/2021/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/FlatPlus10Percent/2021/v1/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus10Percent/2021/v2/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus10Percent/2021/v2/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus10Percent/2021/v2/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus10Percent/2021/v2/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/FlatPlus10Percent/2021/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v3/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdSupportRingParameters.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbar.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpatchpannel.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpixelnose.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob/v3/tob.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel/2021/v1/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/Run2/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/v2/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseI/v1/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eefixed/2021/v1/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/PhaseI/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcap/PhaseI/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/2021/v1/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/2021/v2/hcalRecNumbering.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2025/v1/gem21.xml', + 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', + 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/2024/v1/muonNumbering.xml', + 'Geometry/ForwardCommonData/data/forward/2021/v1/forward.xml', + 'Geometry/ForwardCommonData/data/totemt2/2021/v1/totemt2.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2021/v1/forwardshield.xml', + 'Geometry/ForwardCommonData/data/bhm.xml', + 'Geometry/ForwardCommonData/data/pltbcm/2021/v1/pltbcm.xml', + 'Geometry/ForwardCommonData/data/bcm1f/2021/v1/bcm1f.xml', + 'Geometry/ForwardCommonData/data/plt/2021/v1/plt.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2021/v3/zdc.xml', + 'Geometry/ForwardCommonData/data/rpd/2021/v2/rpd.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/VeryForwardData/data/RP_Box.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_000.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_001.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_002.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_003.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_004.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_005.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_020.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_021.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_022.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_023.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_024.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_025.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_100.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_101.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_102.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_103.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_104.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_105.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_120.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_121.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_122.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_123.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_124.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_125.xml', + 'Geometry/VeryForwardData/data/RP_Hybrid/v2/RP_Hybrid.xml', + 'Geometry/VeryForwardData/data/RP_Materials/v5/RP_Materials.xml', + 'Geometry/VeryForwardData/data/RP_Transformations.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_000.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_001.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_002.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_004.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_005.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_020.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_021.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_024.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_025.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_100.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_101.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_102.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_104.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_105.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_120.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_121.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', + 'Geometry/VeryForwardData/data/RP_Device/v1/RP_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/Simu/v2/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/Simu/v2/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_Stations_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Cuts_Per_Region/Simu/v1/CTPPS_Cuts_Per_Region.xml', + 'Geometry/VeryForwardData/data/RP_Sensitive_Dets.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Transformations.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Station_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Horizontal_Pot/v2/CTPPS_Timing_Horizontal_Pot.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern1_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment5.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Detector_Assembly/v1/CTPPS_Diamond_Detector_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_022.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_122.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Sensitive_Dets_TimingHits.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v3/PPS_Pixel_Module_2x2_Run3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v2/PPS_Pixel_Sens.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_003.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_023.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_103.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_123.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/RP_Dist_Beam_Cent/Simu/v1/RP_Dist_Beam_Cent.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/2021/v2/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2021/v1/CaloUtil.xml', + 'Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter/2021/v2/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecs/2021/v2/GEMSpecs.xml', + 'Geometry/ForwardSimData/data/totemsensT2/2021/totemsensT2.xml', + 'Geometry/ForwardCommonData/data/bhmsens.xml', + 'Geometry/ForwardSimData/data/pltsens.xml', + 'Geometry/ForwardSimData/data/bcm1fsens.xml', + 'Geometry/ForwardSimData/data/zdcsens/2021/v1/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2021/v2/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/ForwardSimData/data/bhmProdCuts/2021/v1/bhmProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v3/zdcProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2025ZeroMaterialXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025ZeroMaterialXML_cfi.py new file mode 100644 index 0000000000000..62d1744ad606d --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2025ZeroMaterialXML_cfi.py @@ -0,0 +1,386 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2021Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v5/materials.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v2/trackermaterial.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v3/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2017/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2021/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2021/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v1/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v3/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdSupportRingParameters.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdInnerDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdOuterDiskZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeInnerZminus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZplus.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdbladeOuterZminus.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v2/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/v2/pixbar.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpatchpannel.xml', + 'Geometry/TrackerCommonData/data/Run2/trackerpixelnose.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v2/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v2/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v2/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v2/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob/v3/tob.xml', + 'Geometry/TrackerCommonData/data/zeroMaterial/2021/v1/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel/2021/v1/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/Run2/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/v2/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseI/v1/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', + 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eefixed/2021/v1/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/PhaseI/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcap/PhaseI/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/2021/v1/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/2021/v2/hcalRecNumbering.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v2/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2025/v1/gem21.xml', + 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', + 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/2024/v1/muonNumbering.xml', + 'Geometry/ForwardCommonData/data/forward/2021/v1/forward.xml', + 'Geometry/ForwardCommonData/data/totemt2/2021/v1/totemt2.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2021/v1/forwardshield.xml', + 'Geometry/ForwardCommonData/data/bhm.xml', + 'Geometry/ForwardCommonData/data/pltbcm/2021/v1/pltbcm.xml', + 'Geometry/ForwardCommonData/data/bcm1f/2021/v1/bcm1f.xml', + 'Geometry/ForwardCommonData/data/plt/2021/v1/plt.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2021/v3/zdc.xml', + 'Geometry/ForwardCommonData/data/rpd/2021/v2/rpd.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/VeryForwardData/data/RP_Box.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_000.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_001.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_002.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_003.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_004.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_005.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_020.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_021.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_022.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_023.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_024.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_025.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_100.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_101.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_102.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_103.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_104.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_105.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_120.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_121.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_122.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_123.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_124.xml', + 'Geometry/VeryForwardData/data/RP_Box/v3/RP_Box_125.xml', + 'Geometry/VeryForwardData/data/RP_Hybrid/v2/RP_Hybrid.xml', + 'Geometry/VeryForwardData/data/RP_Materials/v5/RP_Materials.xml', + 'Geometry/VeryForwardData/data/RP_Transformations.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_000.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_001.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_002.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_004.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_005.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_020.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_021.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_024.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_025.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_100.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_101.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_102.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_104.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_105.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_120.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_121.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', + 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', + 'Geometry/VeryForwardData/data/RP_Device/v1/RP_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/Simu/v2/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/Simu/v2/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_220_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Right_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_210_Left_Station.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Stations/Simu/v3/CTPPS_Stations_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/Cuts_Per_Region/Simu/v1/CTPPS_Cuts_Per_Region.xml', + 'Geometry/VeryForwardData/data/RP_Sensitive_Dets.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Transformations.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Station_Parameters.xml', + 'Geometry/VeryForwardData/data/CTPPS_Timing_Horizontal_Pot/v2/CTPPS_Timing_Horizontal_Pot.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern1_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern2_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern3_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Segments/CTPPS_Diamond_Pattern4_Segment5.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane1.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane2.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Planes/CTPPS_Diamond_Plane4.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/CTPPS_Diamond_Detector_Assembly/v1/CTPPS_Diamond_Detector_Assembly.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_022.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_2021/Simu/v1/CTPPS_Detectors_Assembly_122.xml', + 'Geometry/VeryForwardData/data/CTPPS_Diamond_Sensitive_Dets_TimingHits.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v3/PPS_Pixel_Module_2x2_Run3.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Modules/v2/PPS_Pixel_Sens.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_003.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_023.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_103.xml', + 'Geometry/VeryForwardData/data/CTPPS_Pixel_2021/Assembly/v2/CTPPS_Pixel_Assembly_Box_Real_123.xml', + 'Geometry/VeryForwardData/data/CTPPS_2021/RP_Dist_Beam_Cent/Simu/v1/RP_Dist_Beam_Cent.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/2021/v2/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2021/v1/CaloUtil.xml', + 'Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter/2021/v2/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecs/2021/v2/GEMSpecs.xml', + 'Geometry/ForwardSimData/data/totemsensT2/2021/totemsensT2.xml', + 'Geometry/ForwardCommonData/data/bhmsens.xml', + 'Geometry/ForwardSimData/data/pltsens.xml', + 'Geometry/ForwardSimData/data/bcm1fsens.xml', + 'Geometry/ForwardSimData/data/zdcsens/2021/v1/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2021/v2/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/ForwardSimData/data/bhmProdCuts/2021/v1/bhmProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v3/zdcProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) From b5d92fec5b396e214fea83beddba49470a7bc3b6 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Thu, 28 Nov 2024 08:55:57 +0100 Subject: [PATCH 160/418] Update some of the parameters for V19 version of HGCal geometry --- .../src/EcalSimParametersFromDD.cc | 24 ++++++++++++++++ .../data/hgcalConsData/v19/hgcalConsData.xml | 6 ++-- .../data/hgcalHEmix/v19/hgcalHEmix.xml | 8 +++--- .../data/hgcalwafer/v19/hgcalwafer.xml | 28 +++++++++---------- .../test/python/g4OverlapCheck_cfg.py | 1 + 5 files changed, 46 insertions(+), 21 deletions(-) diff --git a/Geometry/EcalCommonData/src/EcalSimParametersFromDD.cc b/Geometry/EcalCommonData/src/EcalSimParametersFromDD.cc index bbac9925f6e81..4f66d1e919172 100644 --- a/Geometry/EcalCommonData/src/EcalSimParametersFromDD.cc +++ b/Geometry/EcalCommonData/src/EcalSimParametersFromDD.cc @@ -35,43 +35,67 @@ bool EcalSimParametersFromDD::build(const DDCompactView* cpv, const std::string& //First the specpars php.useWeight_ = true; std::vector tempD = getDDDArray("EnergyWeight", sv); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("EcalGeom") << "EcalSimParametersFromDD:" << name << " EnergyWeight " << tempD.empty(); +#endif if (!tempD.empty()) { if (tempD[0] < 0.1) php.useWeight_ = false; } tempD = getDDDArray("nxtalEta", sv); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("EcalGeom") << "EcalSimParametersFromDD:" << name << " nxtalEta " << tempD.empty(); +#endif if (tempD.empty()) php.nxtalEta_ = 0; else php.nxtalEta_ = static_cast(tempD[0]); tempD = getDDDArray("nxtalPhi", sv); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("EcalGeom") << "EcalSimParametersFromDD:" << name << " nxtalPhi " << tempD.empty(); +#endif if (tempD.empty()) php.nxtalPhi_ = 0; else php.nxtalPhi_ = static_cast(tempD[0]); tempD = getDDDArray("PhiBaskets", sv); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("EcalGeom") << "EcalSimParametersFromDD:" << name << " PhiBaskets " << tempD.empty(); +#endif if (tempD.empty()) php.phiBaskets_ = 0; else php.phiBaskets_ = static_cast(tempD[0]); php.etaBaskets_ = dbl_to_int(getDDDArray("EtaBaskets", sv)); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("EcalGeom") << "EcalSimParametersFromDD:" << name << " EtaBaskets " << tempD.empty(); +#endif tempD = getDDDArray("ncrys", sv); if (tempD.empty()) php.ncrys_ = 0; else php.ncrys_ = static_cast(tempD[0]); tempD = getDDDArray("nmods", sv); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("EcalGeom") << "EcalSimParametersFromDD:" << name << " ncrys " << tempD.empty(); +#endif if (tempD.empty()) php.nmods_ = 0; else php.nmods_ = static_cast(tempD[0]); std::vector tempS = getStringArray("Depth1Name", sv); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("EcalGeom") << "EcalSimParametersFromDD:" << name << " Depth1Name " << tempS.empty(); +#endif if (!tempS.empty()) php.depth1Name_ = tempS[0]; else php.depth1Name_ = " "; tempS = getStringArray("Depth2Name", sv); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("EcalGeom") << "EcalSimParametersFromDD:" << name << " Depth2Name " << tempS.empty(); +#endif if (!tempS.empty()) php.depth2Name_ = tempS[0]; else diff --git a/Geometry/HGCalCommonData/data/hgcalConsData/v19/hgcalConsData.xml b/Geometry/HGCalCommonData/data/hgcalConsData/v19/hgcalConsData.xml index 5851f98acd07a..8ab167592d189 100644 --- a/Geometry/HGCalCommonData/data/hgcalConsData/v19/hgcalConsData.xml +++ b/Geometry/HGCalCommonData/data/hgcalConsData/v19/hgcalConsData.xml @@ -3666,9 +3666,9 @@ 288, 288, 288, 288 - 4*mm, 4*mm, 4*mm, 4*mm, 4*mm, 4*mm, - 4*mm, 4*mm, 4*mm, 4*mm, 4*mm, 4*mm, - 4*mm, 4*mm + 4*mm, 4*mm, 4*mm, 4*mm, 8*mm, 8*mm, + 8*mm, 8*mm, 8*mm, 8*mm, 8*mm, 8*mm, + 8*mm, 8*mm 1537.06*mm, 1559.91*mm, 1582.76*mm, 1605.61*mm, 1629.48*mm, 1653.35*mm, diff --git a/Geometry/HGCalCommonData/data/hgcalHEmix/v19/hgcalHEmix.xml b/Geometry/HGCalCommonData/data/hgcalHEmix/v19/hgcalHEmix.xml index 8073bd461d125..98a7fb5c3db73 100644 --- a/Geometry/HGCalCommonData/data/hgcalHEmix/v19/hgcalHEmix.xml +++ b/Geometry/HGCalCommonData/data/hgcalHEmix/v19/hgcalHEmix.xml @@ -39,7 +39,7 @@ [hgcal:rMaxHGCal1], [hgcal:rMaxHGCal5], [hgcal:rMaxHGCal10], [hgcal:rMaxHGCal11] -, + hgcalwafer:HGCalHEWafer06HD120, hgcalwafer:HGCalHEWafer07HD120, hgcalwafer:HGCalHEWafer08HD120, hgcalwafer:HGCalHEWafer09HD120, hgcalwafer:HGCalHEWafer10HD120, hgcalwafer:HGCalHEWafer11HD120, @@ -1209,9 +1209,9 @@ 288, 288, 288, 288 - 4*mm, 4*mm, 4*mm, 4*mm, 4*mm, 4*mm, - 4*mm, 4*mm, 4*mm, 4*mm, 4*mm, 4*mm, - 4*mm, 4*mm + 4*mm, 4*mm, 4*mm, 4*mm, 8*mm, 8*mm, + 8*mm, 8*mm, 8*mm, 8*mm, 8*mm, 8*mm, + 8*mm, 8*mm 1537.06*mm, 1559.91*mm, 1582.76*mm, 1605.61*mm, 1629.48*mm, 1653.35*mm, diff --git a/Geometry/HGCalCommonData/data/hgcalwafer/v19/hgcalwafer.xml b/Geometry/HGCalCommonData/data/hgcalwafer/v19/hgcalwafer.xml index 998bc60f6e119..530af71f1ed40 100644 --- a/Geometry/HGCalCommonData/data/hgcalwafer/v19/hgcalwafer.xml +++ b/Geometry/HGCalCommonData/data/hgcalwafer/v19/hgcalwafer.xml @@ -434,7 +434,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4 + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness120], 1.050*mm @@ -482,7 +482,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4 + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness120], 1.050*mm @@ -530,7 +530,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate, HGCalHEAirGap0 hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4, + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium, materials:Air 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness200], 1.050*mm, @@ -580,7 +580,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate, HGCalHEAirGap0 hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4, + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium, materials:Air 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness200], 1.050*mm, @@ -630,7 +630,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate, HGCalHEAirGap0 hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4, + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium, materials:Air 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness200], 1.050*mm, @@ -680,7 +680,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate, HGCalHEAirGap0 hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4, + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium, materials:Air 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness200], 1.050*mm, @@ -730,7 +730,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4 + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness300], 1.050*mm @@ -778,7 +778,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4 + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness300], 1.050*mm @@ -1125,7 +1125,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4 + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness120], 1.05*mm @@ -1161,7 +1161,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4 + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness120], 1.05*mm @@ -1273,7 +1273,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate, HGCalHEAirGap0 hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4, + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium, materials:Air 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness200], 1.05*mm, @@ -1311,7 +1311,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate, HGCalHEAirGap0 hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4, + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium, materials:Air 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness200], 1.05*mm, @@ -1349,7 +1349,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4 + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness300], 1.05*mm @@ -1385,7 +1385,7 @@ HGCalHESiliconSensitive, HGCalHEBasePlate hgcalMaterial:HGC_HEServices, hgcalMaterial:HGC_Hexaboard, materials:Epoxy, - hgcalMaterial:HGC_Kapton, materials:Silicon, hgcalMaterial:HGC_G10-FR4 + hgcalMaterial:HGC_Kapton, materials:Silicon, materials:Titanium 5.060*mm, 1.300*mm, 0.125*mm, 0.300*mm, [WaferThickness300], 1.05*mm diff --git a/Geometry/HGCalCommonData/test/python/g4OverlapCheck_cfg.py b/Geometry/HGCalCommonData/test/python/g4OverlapCheck_cfg.py index a7226d43506db..ae67cec0848a0 100644 --- a/Geometry/HGCalCommonData/test/python/g4OverlapCheck_cfg.py +++ b/Geometry/HGCalCommonData/test/python/g4OverlapCheck_cfg.py @@ -60,6 +60,7 @@ if hasattr(process,'MessageLogger'): # process.MessageLogger.SimG4CoreGeometry=dict() process.MessageLogger.HGCalGeom=dict() + process.MessageLogger.EcalGeom=dict() from SimG4Core.PrintGeomInfo.g4TestGeometry_cfi import * process = checkOverlap(process) From dab7cb3a31c012bd20276083c060e9e48f22b037 Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 10 Oct 2024 14:45:00 +0200 Subject: [PATCH 161/418] add DQM / Validation monitoring for hltInitialStep and hltHighPtTripletTracks in the Phase2 HLT menu --- .../EventContent/python/EventContent_cff.py | 2 ++ .../Trigger/python/TrackingMonitoring_cff.py | 16 +++++++++++++++- .../python/HLTmultiTrackValidator_cff.py | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Configuration/EventContent/python/EventContent_cff.py b/Configuration/EventContent/python/EventContent_cff.py index 396b424cd3da2..5ddda481ca064 100644 --- a/Configuration/EventContent/python/EventContent_cff.py +++ b/Configuration/EventContent/python/EventContent_cff.py @@ -682,6 +682,8 @@ def SwapKeepAndDrop(l): 'keep *_hltPhase2PixelTracks_*_*', 'keep *_hltPhase2PixelVertices_*_*', 'keep *_hltGeneralTracks_*_*', + 'keep *_hltInitialStepTrackSelectionHighPurity_*_*', + 'keep *_hltHighPtTripletStepTrackSelectionHighPurity_*_*', 'keep *_hltOfflinePrimaryVertices_*_*', 'keep *_hltHGCalRecHit_*_*' ]) diff --git a/DQMOffline/Trigger/python/TrackingMonitoring_cff.py b/DQMOffline/Trigger/python/TrackingMonitoring_cff.py index eb779d8bc27dc..e3f67eb16a6fd 100644 --- a/DQMOffline/Trigger/python/TrackingMonitoring_cff.py +++ b/DQMOffline/Trigger/python/TrackingMonitoring_cff.py @@ -118,6 +118,20 @@ TrackProducer = 'hltGeneralTracks', allTrackProducer = 'hltGeneralTracks') +iterInitialStepMonitoringHLT = iterHLTTracksMonitoringHLT.clone( + primaryVertex = 'hltPhase2PixelVertices', + FolderName = 'HLT/Tracking/hltInitialStepTrackSelectionHighPurity', + TrackProducer = 'hltInitialStepTrackSelectionHighPurity', + allTrackProducer = 'hltInitialStepTrackSelectionHighPurity', +) + +iterHighPtTripletsMonitoringHLT = iterHLTTracksMonitoringHLT.clone( + primaryVertex = 'hltPhase2PixelVertices', + FolderName = 'HLT/Tracking/hltHighPtTripletStepTrackSelectionHighPurity', + TrackProducer = 'hltHighPtTripletStepTrackSelectionHighPurity', + allTrackProducer = 'hltHighPtTripletStepTrackSelectionHighPurity', +) + iter3TracksMonitoringHLT = trackingMonHLT.clone( FolderName = 'HLT/Tracking/iter3Merged', TrackProducer = 'hltIter3Merged', @@ -249,7 +263,7 @@ from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toReplaceWith(trackingMonitorHLT, cms.Sequence(pixelTracksMonitoringHLT + iterHLTTracksMonitoringHLT + doubletRecoveryHPTracksMonitoringHLT )) # + iter0HPTracksMonitoringHLT )) -phase2_tracker.toReplaceWith(trackingMonitorHLT, cms.Sequence(pixelTracksMonitoringHLT + iterHLTTracksMonitoringHLT)) +phase2_tracker.toReplaceWith(trackingMonitorHLT, cms.Sequence(pixelTracksMonitoringHLT + iterHLTTracksMonitoringHLT + iterInitialStepMonitoringHLT + iterHighPtTripletsMonitoringHLT)) run3_common.toReplaceWith(trackingMonitorHLTall, cms.Sequence(pixelTracksMonitoringHLT + iter0TracksMonitoringHLT + iterHLTTracksMonitoringHLT)) run3_common.toReplaceWith(egmTrackingMonitorHLT, cms.Sequence(gsfTracksMonitoringHLT)) diff --git a/Validation/RecoTrack/python/HLTmultiTrackValidator_cff.py b/Validation/RecoTrack/python/HLTmultiTrackValidator_cff.py index f594a6d0b475f..1ab544683fd53 100644 --- a/Validation/RecoTrack/python/HLTmultiTrackValidator_cff.py +++ b/Validation/RecoTrack/python/HLTmultiTrackValidator_cff.py @@ -32,7 +32,7 @@ def _modifyForRun3(trackvalidator): run3_common.toModify(hltTrackValidator, _modifyForRun3) def _modifyForPhase2(trackvalidator): - trackvalidator.label = ["hltGeneralTracks","hltPhase2PixelTracks"] + trackvalidator.label = ["hltGeneralTracks", "hltPhase2PixelTracks", "hltInitialStepTrackSelectionHighPurity", "hltHighPtTripletStepTrackSelectionHighPurity"] from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify(hltTrackValidator, _modifyForPhase2) From cb78705a75c8114b9bfde21b980372b7422bc9b8 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Thu, 28 Nov 2024 14:54:21 +0100 Subject: [PATCH 162/418] remove obsolete comment --- IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index a46cb8d051cb6..f9e96a05aa662 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -61,7 +61,6 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { // HepMCEvt->applyVtxGen(newVertex(engine)); - //HepMCEvt->LorentzBoost( 0., 142.e-6 ); HepMCEvt->boostToLab(GetInvLorentzBoost(), "vertex"); HepMCEvt->boostToLab(GetInvLorentzBoost(), "momentum"); From 42cf2dadd05a9c44fc1c4996bbd34fcc1c0ed6d9 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Thu, 28 Nov 2024 15:19:12 +0100 Subject: [PATCH 163/418] small fix of message --- IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index f9e96a05aa662..ebe64f25c9eb2 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -73,7 +73,7 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { if (!found) throw cms::Exception("ProductAbsent") - << "No HepMCProduct, tried to get HepMC3Product, but it is also absent " << std::endl; + << "No HepMCProduct, tried to get HepMC3Product, but it is also absent."; HepMC3::GenEvent* genevt3 = new HepMC3::GenEvent(); genevt3->read_data(*HepUnsmearedMCEvt3->GetEvent()); From 93d1cf12ffafdc02fadcc8abae613f59379deb0d Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Thu, 28 Nov 2024 15:25:35 +0100 Subject: [PATCH 164/418] small fix of message --- IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index ebe64f25c9eb2..f9e3d9a784150 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -72,8 +72,7 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { found = evt.getByToken(sourceToken3, HepUnsmearedMCEvt3); if (!found) - throw cms::Exception("ProductAbsent") - << "No HepMCProduct, tried to get HepMC3Product, but it is also absent."; + throw cms::Exception("ProductAbsent") << "No HepMCProduct, tried to get HepMC3Product, but it is also absent."; HepMC3::GenEvent* genevt3 = new HepMC3::GenEvent(); genevt3->read_data(*HepUnsmearedMCEvt3->GetEvent()); From 61981542668b080cac6feb6e4e8c2eb4d48c4d3d Mon Sep 17 00:00:00 2001 From: Andrea Date: Thu, 28 Nov 2024 15:27:49 +0100 Subject: [PATCH 165/418] Update 141X data GTs in autoCond --- Configuration/AlCa/python/autoCond.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Configuration/AlCa/python/autoCond.py b/Configuration/AlCa/python/autoCond.py index 67a87e759ca91..02abfd62758dc 100644 --- a/Configuration/AlCa/python/autoCond.py +++ b/Configuration/AlCa/python/autoCond.py @@ -31,14 +31,14 @@ 'run2_data_promptlike_hi' : '140X_dataRun2_PromptLike_HI_v1', # GlobalTag with fixed snapshot time for Run2 HLT RelVals: customizations to run with fixed L1 Menu 'run2_hlt_relval' : '140X_dataRun2_HLT_relval_v1', - # GlobalTag for Run3 HLT: identical the online GT 140X_dataRun3_HLT_v3 with snapshot at 2024-06-13 14:22:43 (UTC) - 'run3_hlt' : '141X_dataRun3_HLT_frozen_v1', - # GlobalTag for Run3 data relvals (express GT): same as 141X_dataRun3_Express_v2 but with snapshot at 2024-09-12 10:35:04 (UTC) - 'run3_data_express' : '141X_dataRun3_Express_frozen_v3', - # GlobalTag for Run3 data relvals (prompt GT): same as 141X_dataRun3_Prompt_v3 but with snapshot at 2024-09-12 11:03:32 (UTC) - 'run3_data_prompt' : '141X_dataRun3_Prompt_frozen_v3', + # GlobalTag for Run3 HLT: identical the online GT 140X_dataRun3_HLT_v4 with snapshot at 2024-11-28 13:17:51 (UTC) + 'run3_hlt' : '141X_dataRun3_HLT_frozen_v2', + # GlobalTag for Run3 data relvals (express GT): same as 141X_dataRun3_Express_v4 but with snapshot at 2024-11-28 13:23:29 (UTC) + 'run3_data_express' : '141X_dataRun3_Express_frozen_v4', + # GlobalTag for Run3 data relvals (prompt GT): same as 141X_dataRun3_Prompt_v4 but with snapshot at 2024-11-28 13:26:44 (UTC) + 'run3_data_prompt' : '141X_dataRun3_Prompt_frozen_v4', # GlobalTag for Run3 offline data reprocessing - snapshot at 2024-11-12 07:39:42 (UTC) - 'run3_data' : '141X_dataRun3_v4', + 'run3_data' : '141X_dataRun3_v5', # GlobalTag for Run3 offline data reprocessing with Prompt GT, currently for 2022FG - snapshot at 2024-02-12 12:00:00 (UTC) 'run3_data_PromptAnalysis' : '140X_dataRun3_PromptAnalysis_v2', # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2017 (and 0,0,~0-centred beamspot) From 11965fc4df2a3c713e69ded6d5dfd34261ce392e Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Thu, 28 Nov 2024 15:39:52 +0100 Subject: [PATCH 166/418] Fix EmptySourceFromEventIDs test configuration --- FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py b/FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py index 889418641a3a3..dae29c8443fd2 100644 --- a/FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py +++ b/FWCore/Modules/test/testEmptySourceFromEventIDs_cfg.py @@ -39,10 +39,8 @@ input = cms.untracked.int32(42) ) -# EventIDChecker requires synchronizing on LuminosityBlock boundaries -process.options.numberOfThreads = 4 -process.options.numberOfStreams = 4 -process.options.numberOfConcurrentLuminosityBlocks = 1 +# EventIDChecker requires processing the events serially +process.options.numberOfStreams = 1 process.check = cms.EDAnalyzer("EventIDChecker", eventSequence = cms.untracked(events)) From ab567f134cae9190e1eb9c41286f3c2cc66d035d Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Fri, 29 Nov 2024 04:07:14 -0800 Subject: [PATCH 167/418] Fix uninitialization of shiftedRt2 --- RecoTracker/LSTCore/src/alpaka/MiniDoublet.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h index 0a0abff8b6986..c2af864f84d12 100644 --- a/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h +++ b/RecoTracker/LSTCore/src/alpaka/MiniDoublet.h @@ -420,8 +420,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { // Cut #2: dphi difference // Ref to original code: https://github.com/slava77/cms-tkph2-ntuple/blob/184d2325147e6930030d3d1f780136bc2dd29ce6/doubletAnalysis.C#L3085 - float xn = 0.f, yn = 0.f; // , zn = 0; - float shiftedRt2; + float xn = 0.f, yn = 0.f; + float shiftedRt2 = 0.f; if (modules.sides()[lowerModuleIndex] != Center) // If barrel and not center it is tilted { // Shift the hits and calculate new xn, yn position @@ -462,9 +462,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { noShiftedDphi = deltaPhi(acc, xLower, yLower, xUpper, yUpper); } } else { - shiftedX = 0; - shiftedY = 0; - shiftedZ = 0; + shiftedX = 0.f; + shiftedY = 0.f; + shiftedZ = 0.f; + shiftedRt2 = 0.f; dPhi = deltaPhi(acc, xLower, yLower, xUpper, yUpper); noShiftedDphi = dPhi; } @@ -476,7 +477,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { // Ref to original code: https://github.com/slava77/cms-tkph2-ntuple/blob/184d2325147e6930030d3d1f780136bc2dd29ce6/doubletAnalysis.C#L3076 if (modules.sides()[lowerModuleIndex] != Center) { // When it is tilted, use the new shifted positions - // TODO: This is somewhat of an mystery.... somewhat confused why this is the case if (modules.moduleLayerType()[lowerModuleIndex] != Pixel) { // dPhi Change should be calculated so that the upper hit has higher rt. // In principle, this kind of check rt_lower < rt_upper should not be necessary because the hit shifting should have taken care of this. From 08ed70de57f56c15cac283c142a6d7643d6eff73 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Sun, 8 Sep 2024 15:04:19 -0700 Subject: [PATCH 168/418] Addition of single iteration Patatrack and LST HLT configurations and workflows --- .../ProcessModifiers/python/seedingLST_cff.py | 5 ++ .../python/singleIterPatatrack_cff.py | 6 ++ Configuration/PyReleaseValidation/README.md | 4 +- .../python/upgradeWorkflowComponents.py | 24 ++++++++ .../eventsetup/hltESPModulesDevLST_cfi.py | 12 ++++ .../hltESPTTRHBuilderWithoutRefit_cfi.py | 14 +++++ .../HLT_75e33/modules/hltGeneralTracks_cfi.py | 55 +++++++++++++++++++ .../hltHighPtTripletStepClusters_cfi.py | 8 +++ .../hltHighPtTripletStepSeedTracksLST_cfi.py | 9 +++ ...tTripletStepTrackCandidatespLSTCLST_cfi.py | 5 ++ ...ipletStepTrackCutClassifierpLSTCLST_cfi.py | 5 ++ ...tepTrackSelectionHighPuritypLSTCLST_cfi.py | 9 +++ .../hltHighPtTripletStepTrackspLSTCLST_cfi.py | 5 ++ .../hltInitialStepSeedTracksLST_cfi.py | 9 +++ .../modules/hltInitialStepSeeds_cfi.py | 6 +- .../hltInitialStepTrackCandidates_cfi.py | 24 ++++++++ ...itialStepTrackCutClassifierpLSTCLST_cfi.py | 5 ++ ...nitialStepTrackCutClassifierpTTCLST_cfi.py | 5 ++ ...tepTrackSelectionHighPuritypLSTCLST_cfi.py | 9 +++ ...StepTrackSelectionHighPuritypTTCLST_cfi.py | 9 +++ .../hltInitialStepTracksT5TCLST_cfi.py | 5 ++ .../hltInitialStepTrackspLSTCLST_cfi.py | 5 ++ .../hltInitialStepTrackspTTCLST_cfi.py | 5 ++ .../python/HLT_75e33/modules/hltLST_cfi.py | 19 +++++++ .../modules/hltPhase2OTHitsInputLST_cfi.py | 7 +++ .../modules/hltPhase2PixelTracksSoA_cfi.py | 6 ++ .../modules/hltPixelSeedInputLST_cfi.py | 17 ++++++ .../modules/hltSiPhase2RecHits_cfi.py | 5 ++ .../HLTHighPtTripletStepSequence_cfi.py | 13 +++++ .../sequences/HLTInitialStepSequence_cfi.py | 43 +++++++++++++++ .../sequences/HLTTrackingV61Sequence_cfi.py | 4 ++ .../Configuration/python/HLT_75e33_cff.py | 3 + .../python/HLT_75e33_timing_cff.py | 3 + RecoTracker/LSTCore/interface/Common.h | 6 +- 34 files changed, 364 insertions(+), 5 deletions(-) create mode 100644 Configuration/ProcessModifiers/python/seedingLST_cff.py create mode 100644 Configuration/ProcessModifiers/python/singleIterPatatrack_cff.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPTTRHBuilderWithoutRefit_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepSeedTracksLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackCandidatespLSTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackCutClassifierpLSTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackspLSTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeedTracksLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCutClassifierpLSTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCutClassifierpTTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackSelectionHighPuritypLSTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackSelectionHighPuritypTTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTracksT5TCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackspLSTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackspTTCLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2OTHitsInputLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltPixelSeedInputLST_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltSiPhase2RecHits_cfi.py diff --git a/Configuration/ProcessModifiers/python/seedingLST_cff.py b/Configuration/ProcessModifiers/python/seedingLST_cff.py new file mode 100644 index 0000000000000..9f17df5d81d78 --- /dev/null +++ b/Configuration/ProcessModifiers/python/seedingLST_cff.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +# This modifier sets the LST (Phase-2 line segment tracking) used for track seeding +# Needs to be used on top of the trackingLST modifier +seedingLST = cms.Modifier() diff --git a/Configuration/ProcessModifiers/python/singleIterPatatrack_cff.py b/Configuration/ProcessModifiers/python/singleIterPatatrack_cff.py new file mode 100644 index 0000000000000..e30f808b98331 --- /dev/null +++ b/Configuration/ProcessModifiers/python/singleIterPatatrack_cff.py @@ -0,0 +1,6 @@ +import FWCore.ParameterSet.Config as cms + +# This modifier merges the initialStep and highPtTripletStep iterations +# to a single iteration using Patatrack pixel tracks with >3 hits as seeds +singleIterPatatrack = cms.Modifier() + diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index a114e81d7146c..a8690b3454cb6 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -70,6 +70,9 @@ The offsets currently in use are: * 0.75: HLT phase-2 timing menu * 0.751: HLT phase-2 timing menu Alpaka variant * 0.752: HLT phase-2 timing menu ticl_v5 variant +* 0.753: HLT phase-2 timing menu Alpaka, single tracking iteration variant +* 0.754: HLT phase-2 timing menu Alpaka, single tracking iteration, LST building variant +* 0.755: HLT phase-2 timing menu Alpaka, LST building variant * 0.78: Complete L1 workflow * 0.8: BPH Parking (Run-2) * 0.81: Running also HeavyFlavor DQM @@ -91,7 +94,6 @@ The offsets currently in use are: * 0.633: ECAL phase2 Trigger Primitive * 0.634: ECAL phase2 Trigger Primitive + component-method based digis * 0.635: ECAL phase2 Trigger Primitive + component-method based finely-sampled waveforms -* 0.75: Phase-2 HLT Timing menu * 0.91: Track DNN modifier * 0.97: Premixing stage1 * 0.98: Premixing stage2 diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 31543ebd3b380..fc9a9f7c924d3 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -2128,6 +2128,30 @@ def condition(self, fragment, stepList, key, hasHarvest): '--procModifiers': 'ticl_v5' } +upgradeWFs['HLTTiming75e33AlpakaSingleIter'] = deepcopy(upgradeWFs['HLTTiming75e33']) +upgradeWFs['HLTTiming75e33AlpakaSingleIter'].suffix = '_HLT75e33TimingAlpakaSingleIter' +upgradeWFs['HLTTiming75e33AlpakaSingleIter'].offset = 0.753 +upgradeWFs['HLTTiming75e33AlpakaSingleIter'].step2 = { + '-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing', + '--procModifiers': 'alpaka,singleIterPatatrack' +} + +upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'] = deepcopy(upgradeWFs['HLTTiming75e33']) +upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].suffix = '_HLT75e33TimingAlpakaSingleIterLST' +upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].offset = 0.754 +upgradeWFs['HLTTiming75e33AlpakaSingleIterLST'].step2 = { + '-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing', + '--procModifiers': 'alpaka,singleIterPatatrack,trackingLST' +} + +upgradeWFs['HLTTiming75e33AlpakaLST'] = deepcopy(upgradeWFs['HLTTiming75e33']) +upgradeWFs['HLTTiming75e33AlpakaLST'].suffix = '_HLT75e33TimingAlpakaLST' +upgradeWFs['HLTTiming75e33AlpakaLST'].offset = 0.755 +upgradeWFs['HLTTiming75e33AlpakaLST'].step2 = { + '-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing', + '--procModifiers': 'alpaka,trackingLST' +} + class UpgradeWorkflow_HLTwDIGI75e33(UpgradeWorkflow): def setup_(self, step, stepName, stepDict, k, properties): diff --git a/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi.py new file mode 100644 index 0000000000000..849b694bfa7f8 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi.py @@ -0,0 +1,12 @@ +import FWCore.ParameterSet.Config as cms + +def _addProcessModulesDevLST(process): + process.hltESPModulesDevLST = cms.ESProducer('LSTModulesDevESProducer@alpaka', + appendToDataLabel = cms.string(''), + alpaka = cms.untracked.PSet( + backend = cms.untracked.string('') + ) + ) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +modifyConfigurationForTrackingLSTModulesDevLST_ = trackingLST.makeProcessModifier(_addProcessModulesDevLST) diff --git a/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPTTRHBuilderWithoutRefit_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPTTRHBuilderWithoutRefit_cfi.py new file mode 100644 index 0000000000000..b91f24eea5a3a --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPTTRHBuilderWithoutRefit_cfi.py @@ -0,0 +1,14 @@ +import FWCore.ParameterSet.Config as cms + +def _addProcessTTRHBuilderWithoutRefit(process): + process.hltESPTTRHBuilderWithoutRefit = cms.ESProducer("TkTransientTrackingRecHitBuilderESProducer", + ComponentName = cms.string('WithoutRefit'), + ComputeCoarseLocalPositionFromDisk = cms.bool(False), + Matcher = cms.string('Fake'), + Phase2StripCPE = cms.string(''), + PixelCPE = cms.string('Fake'), + StripCPE = cms.string('Fake') + ) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +modifyConfigurationForTrackingLSTTTRHBuilderWithoutRefit_ = trackingLST.makeProcessModifier(_addProcessTTRHBuilderWithoutRefit) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltGeneralTracks_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltGeneralTracks_cfi.py index 2b746508d72e6..54e466f0614c8 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltGeneralTracks_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltGeneralTracks_cfi.py @@ -24,3 +24,58 @@ trackAlgoPriorityOrder = cms.string('trackAlgoPriorityOrder'), writeOnlyTrkQuals = cms.bool(False) ) + +_hltGeneralTracksSingleIterPatatrack = hltGeneralTracks.clone( + TrackProducers = ["hltInitialStepTrackSelectionHighPurity"], + hasSelector = [0], + indivShareFrac = [1.0], + selectedTrackQuals = ["hltInitialStepTrackSelectionHighPurity"], + setsToMerge = [cms.PSet( + pQual = cms.bool(True), + tLists = cms.vint32(0) + )] +) + +from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack +singleIterPatatrack.toReplaceWith(hltGeneralTracks, _hltGeneralTracksSingleIterPatatrack) + +_hltGeneralTracksLST = hltGeneralTracks.clone( + TrackProducers = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTrackSelectionHighPuritypLSTCLST", "hltInitialStepTracksT5TCLST", "hltHighPtTripletStepTrackSelectionHighPurity"], + hasSelector = [0,0,0,0], + indivShareFrac = [0.1,0.1,0.1,0.1], + selectedTrackQuals = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTrackSelectionHighPuritypLSTCLST", "hltInitialStepTracksT5TCLST", "hltHighPtTripletStepTrackSelectionHighPurity"], + setsToMerge = [cms.PSet( + pQual = cms.bool(True), + tLists = cms.vint32(0,1,2,3) + )] +) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +trackingLST.toReplaceWith(hltGeneralTracks, _hltGeneralTracksLST) + +_hltGeneralTracksLSTSingleIterPatatrack = hltGeneralTracks.clone( + TrackProducers = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTrackSelectionHighPuritypLSTCLST", "hltInitialStepTracksT5TCLST"], + hasSelector = [0,0,0], + indivShareFrac = [0.1,0.1,0.1], + selectedTrackQuals = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTrackSelectionHighPuritypLSTCLST", "hltInitialStepTracksT5TCLST"], + setsToMerge = [cms.PSet( + pQual = cms.bool(True), + tLists = cms.vint32(0,1,2) + )] +) + +(singleIterPatatrack & trackingLST).toReplaceWith(hltGeneralTracks, _hltGeneralTracksLSTSingleIterPatatrack) + +_hltGeneralTracksLSTSeeding = hltGeneralTracks.clone( + TrackProducers = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTracksT5TCLST", "hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST"], + hasSelector = [0,0,0], + indivShareFrac = [0.1,0.1,0.1], + selectedTrackQuals = ["hltInitialStepTrackSelectionHighPuritypTTCLST", "hltInitialStepTracksT5TCLST", "hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST"], + setsToMerge = [cms.PSet( + pQual = cms.bool(True), + tLists = cms.vint32(0,1,2) + )] + ) + +from Configuration.ProcessModifiers.seedingLST_cff import seedingLST +(seedingLST & trackingLST).toReplaceWith(hltGeneralTracks, _hltGeneralTracksLSTSeeding) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepClusters_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepClusters_cfi.py index ed02f3aac573f..5d6e83831ce8d 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepClusters_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepClusters_cfi.py @@ -12,3 +12,11 @@ trackClassifier = cms.InputTag("","QualityMasks"), trajectories = cms.InputTag("hltInitialStepTrackSelectionHighPurity") ) + +_hltHighPtTripletStepClustersLST = hltHighPtTripletStepClusters.clone( + trajectories = "hltInitialStepSeedTracksLST" +) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +trackingLST.toReplaceWith(hltHighPtTripletStepClusters, _hltHighPtTripletStepClustersLST) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepSeedTracksLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepSeedTracksLST_cfi.py new file mode 100644 index 0000000000000..8b924a8dc0871 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepSeedTracksLST_cfi.py @@ -0,0 +1,9 @@ +import FWCore.ParameterSet.Config as cms + +hltHighPtTripletStepSeedTracksLST = cms.EDProducer( + "TrackFromSeedProducer", + src = cms.InputTag("hltHighPtTripletStepSeeds"), + beamSpot = cms.InputTag("offlineBeamSpot"), + TTRHBuilder = cms.string("WithoutRefit") +) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackCandidatespLSTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackCandidatespLSTCLST_cfi.py new file mode 100644 index 0000000000000..73bf0a75018c3 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackCandidatespLSTCLST_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltHighPtTripletStepTrackCandidates_cfi import hltHighPtTripletStepTrackCandidates as _hltHighPtTripletStepTrackCandidates +hltHighPtTripletStepTrackCandidatespLSTCLST = _hltHighPtTripletStepTrackCandidates.clone( src = "hltInitialStepTrackCandidates:pLSTSsLST" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackCutClassifierpLSTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackCutClassifierpLSTCLST_cfi.py new file mode 100644 index 0000000000000..0b991348fda04 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackCutClassifierpLSTCLST_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltHighPtTripletStepTrackCutClassifier_cfi import hltHighPtTripletStepTrackCutClassifier as _hltHighPtTripletStepTrackCutClassifier +hltHighPtTripletStepTrackCutClassifierpLSTCLST = _hltHighPtTripletStepTrackCutClassifier.clone( src = "hltHighPtTripletStepTrackspLSTCLST" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST_cfi.py new file mode 100644 index 0000000000000..fb640503be506 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST_cfi.py @@ -0,0 +1,9 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltHighPtTripletStepTrackSelectionHighPurity_cfi import hltHighPtTripletStepTrackSelectionHighPurity as _hltHighPtTripletStepTrackSelectionHighPurity +hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST = _hltHighPtTripletStepTrackSelectionHighPurity.clone( + originalMVAVals = "hltHighPtTripletStepTrackCutClassifierpLSTCLST:MVAValues", + originalQualVals = "hltHighPtTripletStepTrackCutClassifierpLSTCLST:QualityMasks", + originalSource = "hltHighPtTripletStepTrackspLSTCLST" +) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackspLSTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackspLSTCLST_cfi.py new file mode 100644 index 0000000000000..fdec21b7737d9 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepTrackspLSTCLST_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltHighPtTripletStepTracks_cfi import hltHighPtTripletStepTracks as _hltHighPtTripletStepTracks +hltHighPtTripletStepTrackspLSTCLST = _hltHighPtTripletStepTracks.clone( src = "hltHighPtTripletStepTrackCandidatespLSTCLST" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeedTracksLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeedTracksLST_cfi.py new file mode 100644 index 0000000000000..6c76cea59b426 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeedTracksLST_cfi.py @@ -0,0 +1,9 @@ +import FWCore.ParameterSet.Config as cms + +hltInitialStepSeedTracksLST = cms.EDProducer( + "TrackFromSeedProducer", + src = cms.InputTag("hltInitialStepSeeds"), + beamSpot = cms.InputTag("offlineBeamSpot"), + TTRHBuilder = cms.string("WithoutRefit") +) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeeds_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeeds_cfi.py index 6eca9fb8de4d9..d43490415d5c3 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeeds_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeeds_cfi.py @@ -11,5 +11,9 @@ originRadius = cms.double(0.1), useEventsWithNoVertex = cms.bool(True), usePV = cms.bool(False), - useProtoTrackKinematics = cms.bool(False) + useProtoTrackKinematics = cms.bool(False), + includeFourthHit = cms.bool(False) ) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +trackingLST.toModify(hltInitialStepSeeds, includeFourthHit = True) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py index d504fc7fe972e..64dd95b6055a7 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCandidates_cfi.py @@ -23,3 +23,27 @@ src = cms.InputTag("hltInitialStepSeeds"), useHitsSplitting = cms.bool(False) ) + +_hltInitialStepTrackCandidatesLST = cms.EDProducer('LSTOutputConverter', + lstOutput = cms.InputTag('hltLST'), + phase2OTHits = cms.InputTag('hltPhase2OTHitsInputLST'), + lstPixelSeeds = cms.InputTag('hltPixelSeedInputLST'), + includeT5s = cms.bool(True), + includeNonpLSTSs = cms.bool(False), + propagatorAlong = cms.ESInputTag('', 'PropagatorWithMaterial'), + propagatorOpposite = cms.ESInputTag('', 'PropagatorWithMaterialOpposite'), + SeedCreatorPSet = cms.PSet( + ComponentName = cms.string('SeedFromConsecutiveHitsCreator'), + propagator = cms.string('PropagatorWithMaterial'), + SeedMomentumForBOFF = cms.double(5), + OriginTransverseErrorMultiplier = cms.double(1), + MinOneOverPtError = cms.double(1), + magneticField = cms.string(''), + TTRHBuilder = cms.string('WithTrackAngle'), + forceKinematicWithRegionDirection = cms.bool(False) + ) +) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +trackingLST.toReplaceWith(hltInitialStepTrackCandidates, _hltInitialStepTrackCandidatesLST) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCutClassifierpLSTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCutClassifierpLSTCLST_cfi.py new file mode 100644 index 0000000000000..0299124062832 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCutClassifierpLSTCLST_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltInitialStepTrackCutClassifier_cfi import hltInitialStepTrackCutClassifier as _hltInitialStepTrackCutClassifier +hltInitialStepTrackCutClassifierpLSTCLST = _hltInitialStepTrackCutClassifier.clone( src = "hltInitialStepTrackspLSTCLST" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCutClassifierpTTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCutClassifierpTTCLST_cfi.py new file mode 100644 index 0000000000000..618a4b95bae99 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackCutClassifierpTTCLST_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltInitialStepTrackCutClassifier_cfi import hltInitialStepTrackCutClassifier as _hltInitialStepTrackCutClassifier +hltInitialStepTrackCutClassifierpTTCLST = _hltInitialStepTrackCutClassifier.clone( src = "hltInitialStepTrackspTTCLST" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackSelectionHighPuritypLSTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackSelectionHighPuritypLSTCLST_cfi.py new file mode 100644 index 0000000000000..3388c6d94c71c --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackSelectionHighPuritypLSTCLST_cfi.py @@ -0,0 +1,9 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltInitialStepTrackSelectionHighPurity_cfi import hltInitialStepTrackSelectionHighPurity as _hltInitialStepTrackSelectionHighPurity +hltInitialStepTrackSelectionHighPuritypLSTCLST = _hltInitialStepTrackSelectionHighPurity.clone( + originalMVAVals = "hltInitialStepTrackCutClassifierpLSTCLST:MVAValues", + originalQualVals = "hltInitialStepTrackCutClassifierpLSTCLST:QualityMasks", + originalSource = "hltInitialStepTrackspLSTCLST" +) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackSelectionHighPuritypTTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackSelectionHighPuritypTTCLST_cfi.py new file mode 100644 index 0000000000000..86e93f0bd1e04 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackSelectionHighPuritypTTCLST_cfi.py @@ -0,0 +1,9 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltInitialStepTrackSelectionHighPurity_cfi import hltInitialStepTrackSelectionHighPurity as _hltInitialStepTrackSelectionHighPurity +hltInitialStepTrackSelectionHighPuritypTTCLST = _hltInitialStepTrackSelectionHighPurity.clone( + originalMVAVals = "hltInitialStepTrackCutClassifierpTTCLST:MVAValues", + originalQualVals = "hltInitialStepTrackCutClassifierpTTCLST:QualityMasks", + originalSource = "hltInitialStepTrackspTTCLST" +) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTracksT5TCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTracksT5TCLST_cfi.py new file mode 100644 index 0000000000000..c857c9d62d246 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTracksT5TCLST_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltInitialStepTracks_cfi import hltInitialStepTracks as _hltInitialStepTracks +hltInitialStepTracksT5TCLST = _hltInitialStepTracks.clone( src = "hltInitialStepTrackCandidates:t5TCsLST" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackspLSTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackspLSTCLST_cfi.py new file mode 100644 index 0000000000000..f7d1d72c96f3e --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackspLSTCLST_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltInitialStepTracks_cfi import hltInitialStepTracks as _hltInitialStepTracks +hltInitialStepTrackspLSTCLST = _hltInitialStepTracks.clone( src = "hltInitialStepTrackCandidates:pLSTCsLST" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackspTTCLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackspTTCLST_cfi.py new file mode 100644 index 0000000000000..2759f9edfbfe7 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepTrackspTTCLST_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from ..modules.hltInitialStepTracks_cfi import hltInitialStepTracks as _hltInitialStepTracks +hltInitialStepTrackspTTCLST = _hltInitialStepTracks.clone( src = "hltInitialStepTrackCandidates:pTTCsLST" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py new file mode 100644 index 0000000000000..ca729bb2facb4 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltLST_cfi.py @@ -0,0 +1,19 @@ +import FWCore.ParameterSet.Config as cms + +hltLST = cms.EDProducer('LSTProducer@alpaka', + pixelSeedInput = cms.InputTag('hltPixelSeedInputLST'), + phase2OTHitsInput = cms.InputTag('hltPhase2OTHitsInputLST'), + verbose = cms.bool(False), + nopLSDupClean = cms.bool(False), + tcpLSTriplets = cms.bool(False), + mightGet = cms.optional.untracked.vstring, + alpaka = cms.untracked.PSet( + backend = cms.untracked.string('') + ) +) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +from Configuration.ProcessModifiers.seedingLST_cff import seedingLST +(seedingLST & trackingLST).toModify(hltLST, nopLSDupClean = True, + tcpLSTriplets = True ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2OTHitsInputLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2OTHitsInputLST_cfi.py new file mode 100644 index 0000000000000..1b0ad7e9791e4 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2OTHitsInputLST_cfi.py @@ -0,0 +1,7 @@ +import FWCore.ParameterSet.Config as cms + +hltPhase2OTHitsInputLST = cms.EDProducer('LSTPhase2OTHitsInputProducer', + phase2OTRecHits = cms.InputTag('hltSiPhase2RecHits'), + mightGet = cms.optional.untracked.vstring +) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2PixelTracksSoA_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2PixelTracksSoA_cfi.py index d52dbb5f12d09..2d717a405b0da 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2PixelTracksSoA_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2PixelTracksSoA_cfi.py @@ -41,3 +41,9 @@ # autoselect the alpaka backend alpaka = cms.untracked.PSet(backend = cms.untracked.string('')) ) + +_hltPhase2PixelTracksSoASingleIterPatatrack = hltPhase2PixelTracksSoA.clone( minHitsPerNtuplet = 3 ) + +from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack +singleIterPatatrack.toReplaceWith(hltPhase2PixelTracksSoA, _hltPhase2PixelTracksSoASingleIterPatatrack) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPixelSeedInputLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPixelSeedInputLST_cfi.py new file mode 100644 index 0000000000000..5440e5b7f5d22 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPixelSeedInputLST_cfi.py @@ -0,0 +1,17 @@ +import FWCore.ParameterSet.Config as cms + +hltPixelSeedInputLST = cms.EDProducer('LSTPixelSeedInputProducer', + beamSpot = cms.InputTag('offlineBeamSpot'), + seedTracks = cms.VInputTag( + 'hltInitialStepSeedTracksLST', + 'hltHighPtTripletStepSeedTracksLST' + ) +) + +_hltPixelSeedInputLSTSingleIterPatatrack = hltPixelSeedInputLST.clone( + seedTracks = ['hltInitialStepSeedTracksLST'] +) + +from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack +singleIterPatatrack.toReplaceWith(hltPixelSeedInputLST, _hltPixelSeedInputLSTSingleIterPatatrack) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltSiPhase2RecHits_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltSiPhase2RecHits_cfi.py new file mode 100644 index 0000000000000..d92b49c263e35 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltSiPhase2RecHits_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from RecoLocalTracker.Phase2TrackerRecHits.Phase2TrackerRecHits_cfi import siPhase2RecHits as _siPhase2RecHits +hltSiPhase2RecHits = _siPhase2RecHits.clone( src = "hltSiPhase2Clusters" ) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHighPtTripletStepSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHighPtTripletStepSequence_cfi.py index 6f168f3abbc63..d2237cee27762 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHighPtTripletStepSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHighPtTripletStepSequence_cfi.py @@ -7,3 +7,16 @@ from ..sequences.HLTHighPtTripletStepSeedingSequence_cfi import * HLTHighPtTripletStepSequence = cms.Sequence(HLTHighPtTripletStepSeedingSequence+hltHighPtTripletStepTrackCandidates+hltHighPtTripletStepTracks+hltHighPtTripletStepTrackCutClassifier+hltHighPtTripletStepTrackSelectionHighPurity) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +trackingLST.toReplaceWith(HLTHighPtTripletStepSequence, HLTHighPtTripletStepSequence.copyAndExclude([HLTHighPtTripletStepSeedingSequence])) + +from ..modules.hltHighPtTripletStepTrackCandidatespLSTCLST_cfi import * +from ..modules.hltHighPtTripletStepTrackspLSTCLST_cfi import * +from ..modules.hltHighPtTripletStepTrackCutClassifierpLSTCLST_cfi import * +from ..modules.hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST_cfi import * +_HLTHighPtTripletStepSequenceLSTSeeding = cms.Sequence(hltHighPtTripletStepTrackCandidatespLSTCLST+hltHighPtTripletStepTrackspLSTCLST+hltHighPtTripletStepTrackCutClassifierpLSTCLST+hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST) + +from Configuration.ProcessModifiers.seedingLST_cff import seedingLST +(seedingLST & trackingLST).toReplaceWith(HLTHighPtTripletStepSequence, _HLTHighPtTripletStepSequenceLSTSeeding) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTInitialStepSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTInitialStepSequence_cfi.py index f674cf77fe168..1ad1443df74b8 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTInitialStepSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTInitialStepSequence_cfi.py @@ -7,3 +7,46 @@ from ..modules.hltInitialStepTrackSelectionHighPurity_cfi import * HLTInitialStepSequence = cms.Sequence(hltInitialStepSeeds+hltInitialStepTrackCandidates+hltInitialStepTracks+hltInitialStepTrackCutClassifier+hltInitialStepTrackSelectionHighPurity) + +from ..modules.hltInitialStepSeedTracksLST_cfi import * +from ..sequences.HLTHighPtTripletStepSeedingSequence_cfi import * +from ..modules.hltHighPtTripletStepSeedTracksLST_cfi import * +from ..modules.hltPixelSeedInputLST_cfi import * +from ..modules.hltSiPhase2RecHits_cfi import * +from ..modules.hltPhase2OTHitsInputLST_cfi import * +from ..modules.hltLST_cfi import * +from ..modules.hltInitialStepTrackspTTCLST_cfi import * +from ..modules.hltInitialStepTrackspLSTCLST_cfi import * +from ..modules.hltInitialStepTracksT5TCLST_cfi import * +from ..modules.hltInitialStepTrackCutClassifierpTTCLST_cfi import * +from ..modules.hltInitialStepTrackCutClassifierpLSTCLST_cfi import * +from ..modules.hltInitialStepTrackSelectionHighPuritypTTCLST_cfi import * +from ..modules.hltInitialStepTrackSelectionHighPuritypLSTCLST_cfi import * +_HLTInitialStepSequenceLST = cms.Sequence( + hltInitialStepSeeds + +hltInitialStepSeedTracksLST + +HLTHighPtTripletStepSeedingSequence + +hltHighPtTripletStepSeedTracksLST + +hltPixelSeedInputLST + +hltSiPhase2RecHits # Probably need to move elsewhere in the final setup + +hltPhase2OTHitsInputLST # Probably need to move elsewhere in the final setup + +hltLST + +hltInitialStepTrackCandidates + +hltInitialStepTrackspTTCLST + +hltInitialStepTrackspLSTCLST + +hltInitialStepTracksT5TCLST + +hltInitialStepTrackCutClassifierpTTCLST + +hltInitialStepTrackCutClassifierpLSTCLST + +hltInitialStepTrackSelectionHighPuritypTTCLST + +hltInitialStepTrackSelectionHighPuritypLSTCLST +) + +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +trackingLST.toReplaceWith(HLTInitialStepSequence, _HLTInitialStepSequenceLST) + +from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack +(singleIterPatatrack & trackingLST).toReplaceWith(HLTInitialStepSequence, HLTInitialStepSequence.copyAndExclude([HLTHighPtTripletStepSeedingSequence,hltHighPtTripletStepSeedTracksLST])) + +from Configuration.ProcessModifiers.seedingLST_cff import seedingLST +(seedingLST & trackingLST).toReplaceWith(HLTInitialStepSequence, _HLTInitialStepSequenceLST.copyAndExclude([hltInitialStepTrackspLSTCLST,hltInitialStepTrackCutClassifierpLSTCLST,hltInitialStepTrackSelectionHighPuritypLSTCLST])) + diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTTrackingV61Sequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTTrackingV61Sequence_cfi.py index e10294c40bb74..9d0a9a0aa92e1 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTTrackingV61Sequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTTrackingV61Sequence_cfi.py @@ -10,3 +10,7 @@ from ..sequences.HLTOtLocalRecoSequence_cfi import * HLTTrackingV61Sequence = cms.Sequence((HLTItLocalRecoSequence+HLTOtLocalRecoSequence+hltTrackerClusterCheck+HLTPhase2PixelTracksSequence+hltPhase2PixelVertices+HLTInitialStepSequence+HLTHighPtTripletStepSequence+hltGeneralTracks)) + +from Configuration.ProcessModifiers.singleIterPatatrack_cff import singleIterPatatrack +singleIterPatatrack.toReplaceWith(HLTTrackingV61Sequence, HLTTrackingV61Sequence.copyAndExclude([HLTHighPtTripletStepSequence])) + diff --git a/HLTrigger/Configuration/python/HLT_75e33_cff.py b/HLTrigger/Configuration/python/HLT_75e33_cff.py index b5f5d2d9e100f..968f97192369a 100644 --- a/HLTrigger/Configuration/python/HLT_75e33_cff.py +++ b/HLTrigger/Configuration/python/HLT_75e33_cff.py @@ -96,6 +96,9 @@ fragment.load("HLTrigger/Configuration/HLT_75e33/eventsetup/hltESPSiPixelCablingSoA_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/eventsetup/hltESPSiPixelGainCalibrationForHLTSoA_cfi") +fragment.load("HLTrigger/Configuration/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi") +fragment.load("HLTrigger/Configuration/HLT_75e33/eventsetup/hltESPTTRHBuilderWithoutRefit_cfi") + fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_AK4PFPuppiJet520_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_L1Seeded_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_Unseeded_cfi") diff --git a/HLTrigger/Configuration/python/HLT_75e33_timing_cff.py b/HLTrigger/Configuration/python/HLT_75e33_timing_cff.py index e68e419d2152a..801f242e4d55c 100644 --- a/HLTrigger/Configuration/python/HLT_75e33_timing_cff.py +++ b/HLTrigger/Configuration/python/HLT_75e33_timing_cff.py @@ -101,6 +101,9 @@ fragment.load("HLTrigger/Configuration/HLT_75e33/eventsetup/hltESPSiPixelCablingSoA_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/eventsetup/hltESPSiPixelGainCalibrationForHLTSoA_cfi") +fragment.load("HLTrigger/Configuration/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi") +fragment.load("HLTrigger/Configuration/HLT_75e33/eventsetup/hltESPTTRHBuilderWithoutRefit_cfi") + fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_AK4PFPuppiJet520_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_L1Seeded_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_DoubleEle23_12_Iso_L1Seeded_cfi") diff --git a/RecoTracker/LSTCore/interface/Common.h b/RecoTracker/LSTCore/interface/Common.h index f65ca7a50d867..7e91501087c59 100644 --- a/RecoTracker/LSTCore/interface/Common.h +++ b/RecoTracker/LSTCore/interface/Common.h @@ -28,15 +28,15 @@ namespace lst { constexpr unsigned int max_blocks = 80; constexpr unsigned int max_connected_modules = 40; - constexpr unsigned int n_max_pixel_segments_per_module = 50000; + constexpr unsigned int n_max_pixel_segments_per_module = 500000; constexpr unsigned int n_max_pixel_md_per_modules = 2 * n_max_pixel_segments_per_module; constexpr unsigned int n_max_pixel_triplets = 5000; constexpr unsigned int n_max_pixel_quintuplets = 15000; - constexpr unsigned int n_max_pixel_track_candidates = 30000; - constexpr unsigned int n_max_nonpixel_track_candidates = 1000; + constexpr unsigned int n_max_pixel_track_candidates = 300000; + constexpr unsigned int n_max_nonpixel_track_candidates = 10000; constexpr unsigned int size_superbins = 45000; From 00e5516f1144943c22c0552441761e798dbfc65c Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Wed, 13 Nov 2024 14:10:01 +0100 Subject: [PATCH 169/418] Enhance TICLAssociationMap --- .../interface/TICLAssociationMap.h | 280 +++++++++++++----- SimDataFormats/Associations/src/classes.h | 2 + .../Associations/src/classes_def.xml | 70 ++++- 3 files changed, 262 insertions(+), 90 deletions(-) diff --git a/SimDataFormats/Associations/interface/TICLAssociationMap.h b/SimDataFormats/Associations/interface/TICLAssociationMap.h index 492ce7e4e803b..c1553767a3cbd 100644 --- a/SimDataFormats/Associations/interface/TICLAssociationMap.h +++ b/SimDataFormats/Associations/interface/TICLAssociationMap.h @@ -7,6 +7,7 @@ #include #include #include +#include // CMSSW specific includes #include "DataFormats/Common/interface/Ref.h" @@ -15,23 +16,142 @@ namespace ticl { - // Define the possible map types - using mapWithFraction = std::vector>>; - using mapWithFractionAndScore = std::vector>>>; - using oneToOneMapWithFraction = std::vector>; - using oneToOneMapWithFractionAndScore = std::vector>>; + // Define wrapper types to differentiate between fraction and shared energy + struct FractionType { + float value; + FractionType(float v = 0.0f) : value(v) {} + FractionType& operator+=(float v) { + value += v; + return *this; + } + }; + + struct SharedEnergyType { + float value; + SharedEnergyType(float v = 0.0f) : value(v) {} + SharedEnergyType& operator+=(float v) { + value += v; + return *this; + } + }; + + // AssociationElement class to store index and value, and provide methods directly + template + class AssociationElement { + public: + using value_type = V; + + AssociationElement(unsigned int idx = 0, V val = V()) : index_(idx), value_(val) {} + + unsigned int index() const { return index_; } + + // Enable fraction() if ValueType is FractionType + template , int> = 0> + float fraction() const { + return value_.value; + } + + // Enable sharedEnergy() if ValueType is SharedEnergyType + template , int> = 0> + float sharedEnergy() const { + return value_.value; + } + + // Enable fraction() and score() if ValueType is std::pair + template >, int> = 0> + float fraction() const { + return value_.first.value; + } + template >, int> = 0> + float score() const { + return value_.second; + } + + // Enable sharedEnergy() and score() if ValueType is std::pair + template >, int> = 0> + float sharedEnergy() const { + return value_.first.value; + } + template >, int> = 0> + float score() const { + return value_.second; + } + + // Method to accumulate values + void accumulate(const V& other_value) { + if constexpr (std::is_same_v || std::is_same_v) { + value_.value += other_value.value; + } else if constexpr (std::is_same_v> || + std::is_same_v>) { + value_.first.value += other_value.first.value; + value_.second += other_value.second; + } + } + + private: + unsigned int index_; + V value_; + }; + + // Type traits to differentiate between one-to-one and one-to-many maps + template + struct MapTraits; + + template + struct MapTraits>> { + static constexpr bool is_one_to_one = true; + using AssociationElementType = AssociationElement; + using ValueType = V; + }; + + template + struct MapTraits>>> { + static constexpr bool is_one_to_one = false; + using AssociationElementType = AssociationElement; + using ValueType = V; + }; + + // Trait to check if V is a std::pair (i.e., has a score) + template + struct IsValueTypeWithScore : std::false_type {}; + + template + struct IsValueTypeWithScore> : std::true_type {}; + + // Define map types using AssociationElement and container types + using mapWithFraction = std::vector>>; + using mapWithFractionAndScore = std::vector>>>; + using oneToOneMapWithFraction = std::vector>; + using oneToOneMapWithFractionAndScore = std::vector>>; + + using mapWithSharedEnergy = std::vector>>; + using mapWithSharedEnergyAndScore = std::vector>>>; + using oneToOneMapWithSharedEnergy = std::vector>; + using oneToOneMapWithSharedEnergyAndScore = std::vector>>; + // AssociationMap class templated on MapType template class AssociationMap { private: + MapType map_; + // Type alias for conditionally including collectionRefProds using CollectionRefProdType = typename std::conditional_t || std::is_void_v, std::monostate, std::pair, edm::RefProd>>; + CollectionRefProdType collectionRefProds; + + // Traits to deduce AssociationElementType and ValueType + using Traits = MapTraits; + using AssociationElementType = typename Traits::AssociationElementType; + using V = typename Traits::ValueType; + static constexpr bool is_one_to_one = Traits::is_one_to_one; + public: AssociationMap() : collectionRefProds() {} + // Constructor for generic use template ::value) { - if (index1 >= map_.size()) { - map_.resize(index1 + 1); - } - auto& vec = map_[index1]; - auto it = std::find_if(vec.begin(), vec.end(), [&](const auto& pair) { return pair.first == index2; }); - if (it != vec.end()) { - it->second += fraction; - } else { - vec.emplace_back(index2, fraction); - } - } else if constexpr (std::is_same::value) { - if (index1 >= map_.size()) { - map_.resize(index1 + 1); - } + void insert(unsigned int index1, unsigned int index2, float fraction_or_energy, float score = 0.0f) { + assert(index1 < map_.size()); + V value; + if constexpr (IsValueTypeWithScore::value) { + using FirstType = typename V::first_type; + value = V(FirstType(fraction_or_energy), score); + } else { + value = V(fraction_or_energy); + } + AssociationElementType element(index2, value); + + if constexpr (is_one_to_one) { + map_[index1] = element; + } else { auto& vec = map_[index1]; - auto it = std::find_if(vec.begin(), vec.end(), [&](const auto& pair) { return pair.first == index2; }); + auto it = + std::find_if(vec.begin(), vec.end(), [&](const AssociationElementType& e) { return e.index() == index2; }); if (it != vec.end()) { - it->second.first += fraction; - it->second.second += score; - } else { - vec.emplace_back(index2, std::make_pair(fraction, score)); - } - } else if constexpr (std::is_same::value) { - auto it = std::find_if(map_.begin(), map_.end(), [&](const auto& pair) { return pair.first == index1; }); - if (it != map_.end()) { - it->second += fraction; - } else { - map_.emplace_back(index1, fraction); - } - } else if constexpr (std::is_same::value) { - auto it = std::find_if(map_.begin(), map_.end(), [&](const auto& pair) { return pair.first == index1; }); - if (it != map_.end()) { - it->second.first += fraction; - it->second.second += score; + // Accumulate value + it->accumulate(value); } else { - map_.emplace_back(index1, std::make_pair(fraction, score)); + vec.push_back(element); } } } @@ -131,49 +235,43 @@ namespace ticl { template && !std::is_void_v, int> = 0> - void insert(const edm::Ref& ref1, const edm::Ref& ref2, float fraction, float score = 0.0f) { - insert(ref1.key(), ref2.key(), fraction, score); + void insert(const edm::Ref& ref1, const edm::Ref& ref2, float fraction_or_energy, float score = 0.0f) { + insert(ref1.key(), ref2.key(), fraction_or_energy, score); } void sort(bool byScore = false) { - static_assert(!std::is_same_v && - !std::is_same_v, - "Sort is not applicable for one-to-one maps"); - - if constexpr (std::is_same_v) { - for (auto& vec : map_) { - std::sort(vec.begin(), vec.end(), [](const auto& a, const auto& b) { return a.second > b.second; }); - } - } else if constexpr (std::is_same_v) { + if constexpr (is_one_to_one) { + // Sorting not applicable for one-to-one maps + } else { for (auto& vec : map_) { if (byScore) { - std::sort( - vec.begin(), vec.end(), [](const auto& a, const auto& b) { return a.second.second > b.second.second; }); + std::sort(vec.begin(), vec.end(), [](const AssociationElementType& a, const AssociationElementType& b) { + return a.score() > b.score(); + }); } else { - std::sort( - vec.begin(), vec.end(), [](const auto& a, const auto& b) { return a.second.first > b.second.first; }); + if constexpr (std::is_same_v || std::is_same_v>) { + std::sort(vec.begin(), vec.end(), [](const AssociationElementType& a, const AssociationElementType& b) { + return a.fraction() > b.fraction(); + }); + } else { + std::sort(vec.begin(), vec.end(), [](const AssociationElementType& a, const AssociationElementType& b) { + return a.sharedEnergy() > b.sharedEnergy(); + }); + } } } } } + // Access methods + const auto& operator[](unsigned int index1) const { return map_[index1]; } + auto& operator[](unsigned int index1) { return map_[index1]; } - const auto& operator[](unsigned int index1) const { return map_[index1]; } + const auto& at(unsigned int index1) const { return map_.at(index1); } - const auto& at(unsigned int index1) const { - if (index1 >= map_.size()) { - throw std::out_of_range("Index out of range"); - } - return map_[index1]; - } + auto& at(unsigned int index1) { return map_.at(index1); } - auto& at(unsigned int index1) { - if (index1 >= map_.size()) { - throw std::out_of_range("Index out of range"); - } - return map_[index1]; - } // CMSSW-specific resize method template size()); } - // Constructor for generic use + + // Generic resize method template && std::is_void_v, int> = 0> @@ -193,23 +292,44 @@ namespace ticl { void print(std::ostream& os) const { for (size_t i = 0; i < map_.size(); ++i) { os << "Index " << i << ":\n"; - for (const auto& pair : map_[i]) { - os << " (" << pair.first << ", "; - if constexpr (std::is_same::value || - std::is_same::value) { - os << pair.second.first << ", " << pair.second.second; + if constexpr (is_one_to_one) { + const auto& elem = map_[i]; + os << " (" << elem.index() << ", "; + if constexpr (IsValueTypeWithScore::value) { + if constexpr (std::is_same_v) { + os << "Fraction: " << elem.fraction() << ", Score: " << elem.score(); + } else { + os << "SharedEnergy: " << elem.sharedEnergy() << ", Score: " << elem.score(); + } } else { - os << pair.second; + if constexpr (std::is_same_v) { + os << "Fraction: " << elem.fraction(); + } else if constexpr (std::is_same_v) { + os << "SharedEnergy: " << elem.sharedEnergy(); + } } os << ")\n"; + } else { + for (const auto& elem : map_[i]) { + os << " (" << elem.index() << ", "; + if constexpr (IsValueTypeWithScore::value) { + if constexpr (std::is_same_v) { + os << "Fraction: " << elem.fraction() << ", Score: " << elem.score(); + } else { + os << "SharedEnergy: " << elem.sharedEnergy() << ", Score: " << elem.score(); + } + } else { + if constexpr (std::is_same_v) { + os << "Fraction: " << elem.fraction(); + } else if constexpr (std::is_same_v) { + os << "SharedEnergy: " << elem.sharedEnergy(); + } + } + os << ")\n"; + } } } } - - private: - // For CMSSW-specific use - CollectionRefProdType collectionRefProds; - MapType map_; // Store the map directly }; } // namespace ticl diff --git a/SimDataFormats/Associations/src/classes.h b/SimDataFormats/Associations/src/classes.h index 792266ae1bdda..a240d5382b5a5 100644 --- a/SimDataFormats/Associations/src/classes.h +++ b/SimDataFormats/Associations/src/classes.h @@ -24,3 +24,5 @@ #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticleFwd.h" #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" #include "SimDataFormats/Associations/interface/TICLAssociationMap.h" +#include "DataFormats/Common/interface/RefProd.h" +#include "DataFormats/Common/interface/Ref.h" diff --git a/SimDataFormats/Associations/src/classes_def.xml b/SimDataFormats/Associations/src/classes_def.xml index ec07f75e23b37..9b48d619fae60 100644 --- a/SimDataFormats/Associations/src/classes_def.xml +++ b/SimDataFormats/Associations/src/classes_def.xml @@ -30,16 +30,66 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 27a8da4120658c0b67cbcd31186dd12a14c00aad Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Fri, 22 Nov 2024 09:19:04 +0100 Subject: [PATCH 170/418] Fix insertion, rewrite sort to become reproducible and use custom comparator --- .../interface/TICLAssociationMap.h | 96 ++++++++++++++++--- 1 file changed, 82 insertions(+), 14 deletions(-) diff --git a/SimDataFormats/Associations/interface/TICLAssociationMap.h b/SimDataFormats/Associations/interface/TICLAssociationMap.h index c1553767a3cbd..62c776744d522 100644 --- a/SimDataFormats/Associations/interface/TICLAssociationMap.h +++ b/SimDataFormats/Associations/interface/TICLAssociationMap.h @@ -9,6 +9,8 @@ #include #include +#include + // CMSSW specific includes #include "DataFormats/Common/interface/Ref.h" #include "DataFormats/Common/interface/RefProd.h" @@ -40,11 +42,27 @@ namespace ticl { class AssociationElement { public: using value_type = V; - - AssociationElement(unsigned int idx = 0, V val = V()) : index_(idx), value_(val) {} + AssociationElement() : index_(std::numeric_limits::max()) { + if constexpr (std::is_same_v || std::is_same_v) { + value_.value = -1.f; + } else if constexpr (std::is_same_v> || + std::is_same_v>) { + value_.first.value = -1.f; + } + } + AssociationElement(unsigned int index, const V& value) : index_(index), value_(value) {} unsigned int index() const { return index_; } + bool isValid() const { + if constexpr (std::is_same_v || std::is_same_v) { + return value_.value >= 0.f; + } else if constexpr (std::is_same_v> || + std::is_same_v>) { + return value_.first.value >= 0.f; + } + } + // Enable fraction() if ValueType is FractionType template , int> = 0> float fraction() const { @@ -87,6 +105,11 @@ namespace ticl { value_.second += other_value.second; } } + bool operator==(const AssociationElement& other) const { + return index_ == other.index_ && value_.value == other.value_.value; + } + + bool operator!=(const AssociationElement& other) const { return !(*this == other); } private: unsigned int index_; @@ -115,8 +138,8 @@ namespace ticl { template struct IsValueTypeWithScore : std::false_type {}; - template - struct IsValueTypeWithScore> : std::true_type {}; + template + struct IsValueTypeWithScore> : std::true_type {}; // Define map types using AssociationElement and container types using mapWithFraction = std::vector>>; @@ -182,6 +205,8 @@ namespace ticl { const MapType& getMap() const { return map_; } + const auto size() const { return map_.size(); } + // CMSSW-specific method to get references template b.score(); + if (byScore && IsValueTypeWithScore::value) { + std::sort(vec.begin(), vec.end(), [](const auto& a, const auto& b) { + if (a.score() != b.score()) { + return a.score() > b.score(); + } else { + return a.index() < b.index(); + } }); } else { if constexpr (std::is_same_v || std::is_same_v>) { - std::sort(vec.begin(), vec.end(), [](const AssociationElementType& a, const AssociationElementType& b) { - return a.fraction() > b.fraction(); + std::sort(vec.begin(), vec.end(), [](const auto& a, const auto& b) { + if (a.fraction() != b.fraction()) { + return a.fraction() > b.fraction(); + } else { + return a.index() < b.index(); + } }); } else { - std::sort(vec.begin(), vec.end(), [](const AssociationElementType& a, const AssociationElementType& b) { - return a.sharedEnergy() > b.sharedEnergy(); + std::sort(vec.begin(), vec.end(), [](const auto& a, const auto& b) { + if (a.sharedEnergy() != b.sharedEnergy()) { + return a.sharedEnergy() > b.sharedEnergy(); + } else { + return a.index() < b.index(); + } }); } } @@ -263,14 +300,40 @@ namespace ticl { } } + // Overload of sort() that accepts a custom comparator + template + void sort(Compare comp) { + if constexpr (is_one_to_one) { + // Sorting not applicable for one-to-one maps + } else { + for (auto& vec : map_) { + std::sort(vec.begin(), vec.end(), comp); + } + } + } + // Access methods const auto& operator[](unsigned int index1) const { return map_[index1]; } auto& operator[](unsigned int index1) { return map_[index1]; } - const auto& at(unsigned int index1) const { return map_.at(index1); } + const auto& at(unsigned int index1) const { + const auto& elem = map_.at(index1); + if (!elem.isValid()) { + throw std::out_of_range("Attempted to access an unset element in AssociationMap. Element index: " + + std::to_string(index1)); + } + return elem; + } - auto& at(unsigned int index1) { return map_.at(index1); } + auto& at(unsigned int index1) { + auto& elem = map_.at(index1); + if (!elem.isValid()) { + throw std::out_of_range("Attempted to access an unset element in AssociationMap. Element index: " + + std::to_string(index1)); + } + return elem; + } // CMSSW-specific resize method template ::value) { if constexpr (std::is_same_v) { @@ -310,6 +377,7 @@ namespace ticl { } os << ")\n"; } else { + os << "Index " << i << ":\n"; for (const auto& elem : map_[i]) { os << " (" << elem.index() << ", "; if constexpr (IsValueTypeWithScore::value) { From d9f7bf4d022dc3645f4d0c36c203b799de5f1334 Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Wed, 13 Nov 2024 15:18:18 +0100 Subject: [PATCH 171/418] update Associators with new ticl::AssociationMap --- ...erClusterToTracksterAssociatorsProducer.cc | 5 +- ...ToSimTracksterAssociatorsByHitsProducer.cc | 69 +++++++++++-------- ...rToSimTracksterAssociatorsByLCsProducer.cc | 58 +++++++++------- .../plugins/LCToTSAssociatorProducer.cc | 5 +- 4 files changed, 81 insertions(+), 56 deletions(-) diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllLayerClusterToTracksterAssociatorsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllLayerClusterToTracksterAssociatorsProducer.cc index a0d5cae0a429e..4abf2bd1b46f4 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllLayerClusterToTracksterAssociatorsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllLayerClusterToTracksterAssociatorsProducer.cc @@ -40,7 +40,8 @@ AllLayerClusterToTracksterAssociatorsProducer::AllLayerClusterToTracksterAssocia // Produce separate association maps for each trackster collection using the trackster label for (const auto& tracksterToken : tracksterCollectionTokens_) { - produces, std::vector>>( + produces< + ticl::AssociationMap, std::vector>>( tracksterToken.first); } } @@ -59,7 +60,7 @@ void AllLayerClusterToTracksterAssociatorsProducer::produce(edm::StreamID, // Create association map auto lcToTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( + ticl::AssociationMap, std::vector>>( layer_clusters, tracksters, iEvent); // Loop over tracksters diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc index 62cdbea6dedc6..64b50469941e6 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc @@ -91,11 +91,11 @@ AllTracksterToSimTracksterAssociatorsByHitsProducer::AllTracksterToSimTracksterA for (const auto& tracksterToken : tracksterCollectionTokens_) { for (const auto& simTracksterToken : simTracksterCollectionTokens_) { std::string instanceLabel = tracksterToken.first + "To" + simTracksterToken.first; - produces, std::vector>>(instanceLabel); std::string reverseInstanceLabel = simTracksterToken.first + "To" + tracksterToken.first; - produces, std::vector>>(reverseInstanceLabel); } @@ -180,11 +180,13 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, const auto& simTracksterToHitMap = *simTracksterToHitMapHandle; // Create the association maps - auto tracksterToSimTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( + auto tracksterToSimTracksterMap = std::make_unique, + std::vector>>( recoTrackstersHandle, simTrackstersHandle, iEvent); - auto simTracksterToTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( + auto simTracksterToTracksterMap = std::make_unique, + std::vector>>( simTrackstersHandle, recoTrackstersHandle, iEvent); for (unsigned int tracksterIndex = 0; tracksterIndex < recoTracksters.size(); ++tracksterIndex) { @@ -195,7 +197,9 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, recoTracksterHitsAndFractions.size()); std::vector associatedSimTracksterIndices; for (unsigned int i = 0; i < recoTracksterHitsAndFractions.size(); ++i) { - const auto& [hitIndex, recoFraction] = recoTracksterHitsAndFractions[i]; + const auto& hitElement = recoTracksterHitsAndFractions[i]; + unsigned int hitIndex = hitElement.index(); + float recoFraction = hitElement.fraction(); const auto& recHit = rechitManager[hitIndex]; float squaredRecoFraction = recoFraction * recoFraction; float rechitEnergy = recHit.energy(); @@ -203,25 +207,27 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, recoToSimScoresDenominator += squaredRecoFraction * squaredRecHitEnergy; const auto& hitToSimTracksterVec = hitToSimTracksterMap[hitIndex]; - for (const auto& [simTracksterIndex, fraction] : hitToSimTracksterVec) { + for (const auto& simTracksterElement : hitToSimTracksterVec) { + auto simTracksterIndex = simTracksterElement.index(); const auto& simTrackster = simTracksters[simTracksterIndex]; auto& seed = simTrackster.seedID(); float simFraction = 0; if (seed == caloParticlesHandle.id()) { unsigned int caloParticleIndex = simTrackster.seedIndex(); - auto it = std::find_if(hitToCaloParticleMap[hitIndex].begin(), - hitToCaloParticleMap[hitIndex].end(), - [caloParticleIndex](const auto& pair) { return pair.first == caloParticleIndex; }); + auto it = + std::find_if(hitToCaloParticleMap[hitIndex].begin(), + hitToCaloParticleMap[hitIndex].end(), + [caloParticleIndex](const auto& pair) { return pair.index() == caloParticleIndex; }); if (it != hitToCaloParticleMap[hitIndex].end()) { - simFraction = it->second; + simFraction = it->fraction(); } } else { unsigned int simClusterIndex = simTracksters[simTracksterIndex].seedIndex(); auto it = std::find_if(hitToSimClusterMap[hitIndex].begin(), hitToSimClusterMap[hitIndex].end(), - [simClusterIndex](const auto& pair) { return pair.first == simClusterIndex; }); + [simClusterIndex](const auto& pair) { return pair.index() == simClusterIndex; }); if (it != hitToSimClusterMap[hitIndex].end()) { - simFraction = it->second; + simFraction = it->fraction(); } } hitToAssociatedSimTracksterMap.insert(i, simTracksterIndex, simFraction); @@ -235,11 +241,11 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, // Add missing sim tracksters with 0 shared energy to hitToAssociatedSimTracksterMap for (unsigned int i = 0; i < recoTracksterHitsAndFractions.size(); ++i) { - unsigned int hitId = recoTracksterHitsAndFractions[i].first; + unsigned int hitId = recoTracksterHitsAndFractions[i].index(); const auto& simTracksterVec = hitToSimTracksterMap[hitId]; for (unsigned int simTracksterIndex : associatedSimTracksterIndices) { if (std::find_if(simTracksterVec.begin(), simTracksterVec.end(), [simTracksterIndex](const auto& pair) { - return pair.first == simTracksterIndex; + return pair.index() == simTracksterIndex; }) == simTracksterVec.end()) { hitToAssociatedSimTracksterMap.insert(i, simTracksterIndex, 0); } @@ -249,14 +255,16 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, const float invDenominator = 1.f / recoToSimScoresDenominator; for (unsigned int i = 0; i < recoTracksterHitsAndFractions.size(); ++i) { - unsigned int hitIndex = recoTracksterHitsAndFractions[i].first; + unsigned int hitIndex = recoTracksterHitsAndFractions[i].index(); const auto& recHit = rechitManager[hitIndex]; - float recoFraction = recoTracksterHitsAndFractions[i].second; + float recoFraction = recoTracksterHitsAndFractions[i].fraction(); float squaredRecoFraction = recoFraction * recoFraction; float squaredRecHitEnergy = recHit.energy() * recHit.energy(); float recoSharedEnergy = recHit.energy() * recoFraction; const auto& simTracksterVec = hitToAssociatedSimTracksterMap[i]; - for (const auto& [simTracksterIndex, simFraction] : simTracksterVec) { + for (const auto& simTracksterElement : simTracksterVec) { + auto simTracksterIndex = simTracksterElement.index(); + auto simFraction = simTracksterElement.fraction(); edm::Ref> simTracksterRef(simTrackstersHandle, simTracksterIndex); float sharedEnergy = std::min(simFraction * recHit.energy(), recoSharedEnergy); float squaredFraction = @@ -281,17 +289,16 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, bool isSimTracksterFromCP = (seed == caloParticlesHandle.id()); std::vector simFractions(simTracksterHitsAndFractions.size(), 0.f); for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - const auto& [hitIndex, simTracksterFraction] = simTracksterHitsAndFractions[i]; - + auto hitIndex = simTracksterHitsAndFractions[i].index(); auto it = isSimTracksterFromCP ? (std::find_if(hitToCaloParticleMap[hitIndex].begin(), hitToCaloParticleMap[hitIndex].end(), - [simObjectIndex](const auto& pair) { return pair.first == simObjectIndex; })) + [simObjectIndex](const auto& pair) { return pair.index() == simObjectIndex; })) : std::find_if(hitToSimClusterMap[hitIndex].begin(), hitToSimClusterMap[hitIndex].end(), - [simObjectIndex](const auto& pair) { return pair.first == simObjectIndex; }); + [simObjectIndex](const auto& pair) { return pair.index() == simObjectIndex; }); if (it != hitToCaloParticleMap[hitIndex].end() and it != hitToSimClusterMap[hitIndex].end()) { - simFractions[i] = it->second; + simFractions[i] = it->fraction(); } float simFraction = simFractions[i]; const auto& recHit = rechitManager[hitIndex]; @@ -300,7 +307,9 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, simToRecoScoresDenominator += squaredSimFraction * squaredRecHitEnergy; const auto& hitToRecoTracksterVec = hitToTracksterMap[hitIndex]; - for (const auto& [recoTracksterIndex, recoFraction] : hitToRecoTracksterVec) { + for (const auto& recoTracksterElement : hitToRecoTracksterVec) { + unsigned int recoTracksterIndex = recoTracksterElement.index(); + float recoFraction = recoTracksterElement.fraction(); hitToAssociatedRecoTracksterMap.insert(i, recoTracksterIndex, recoFraction); associatedRecoTracksterIndices.push_back(recoTracksterIndex); } @@ -312,12 +321,12 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, associatedRecoTracksterIndices.end()); for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - unsigned int hitIndex = simTracksterHitsAndFractions[i].first; + unsigned int hitIndex = simTracksterHitsAndFractions[i].index(); const auto& hitToRecoTracksterVec = hitToTracksterMap[hitIndex]; for (unsigned int recoTracksterIndex : associatedRecoTracksterIndices) { if (std::find_if( hitToRecoTracksterVec.begin(), hitToRecoTracksterVec.end(), [recoTracksterIndex](const auto& pair) { - return pair.first == recoTracksterIndex; + return pair.index() == recoTracksterIndex; }) == hitToRecoTracksterVec.end()) { hitToAssociatedRecoTracksterMap.insert(i, recoTracksterIndex, 0); } @@ -327,7 +336,7 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, const float invDenominator = 1.f / simToRecoScoresDenominator; for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - const auto& [hitIndex, simTracksterFraction] = simTracksterHitsAndFractions[i]; + const auto& hitIndex = simTracksterHitsAndFractions[i].index(); float simFraction = simFractions[i]; const auto& recHit = rechitManager[hitIndex]; float squaredSimFraction = simFraction * simFraction; @@ -335,7 +344,9 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, float simSharedEnergy = recHit.energy() * simFraction; const auto& hitToRecoTracksterVec = hitToAssociatedRecoTracksterMap[i]; - for (const auto& [recoTracksterIndex, recoFraction] : hitToRecoTracksterVec) { + for (const auto& recoTracksterElement : hitToRecoTracksterVec) { + auto recoTracksterIndex = recoTracksterElement.index(); + float recoFraction = recoTracksterElement.fraction(); edm::Ref> recoTracksterRef(recoTrackstersHandle, recoTracksterIndex); float sharedEnergy = std::min(recoFraction * recHit.energy(), simSharedEnergy); float squaredFraction = diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc index 237b4635e4194..553b70481b034 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc @@ -28,12 +28,12 @@ class AllTracksterToSimTracksterAssociatorsByLCsProducer : public edm::global::E std::vector, std::vector>>>> + ticl::AssociationMap, std::vector>>>> layerClusterToTracksterMapTokens_; std::vector, std::vector>>>> + ticl::AssociationMap, std::vector>>>> layerClusterToSimTracksterMapTokens_; }; @@ -50,7 +50,7 @@ AllTracksterToSimTracksterAssociatorsByLCsProducer::AllTracksterToSimTracksterAs layerClusterToTracksterMapTokens_.emplace_back( label, consumes< - ticl::AssociationMap, std::vector>>( + ticl::AssociationMap, std::vector>>( edm::InputTag("allLayerClusterToTracksterAssociations", label))); } @@ -64,7 +64,7 @@ AllTracksterToSimTracksterAssociatorsByLCsProducer::AllTracksterToSimTracksterAs layerClusterToSimTracksterMapTokens_.emplace_back( label, consumes< - ticl::AssociationMap, std::vector>>( + ticl::AssociationMap, std::vector>>( edm::InputTag("allLayerClusterToTracksterAssociations", label))); } @@ -72,11 +72,11 @@ AllTracksterToSimTracksterAssociatorsByLCsProducer::AllTracksterToSimTracksterAs for (const auto& tracksterToken : tracksterCollectionTokens_) { for (const auto& simTracksterToken : simTracksterCollectionTokens_) { std::string instanceLabel = tracksterToken.first + "To" + simTracksterToken.first; - produces, std::vector>>(instanceLabel); std::string reverseInstanceLabel = simTracksterToken.first + "To" + tracksterToken.first; - produces, std::vector>>(reverseInstanceLabel); } @@ -98,7 +98,7 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, const auto& recoTracksters = *recoTrackstersHandle; // Retrieve the correct LayerClusterToTracksterMap for the current trackster collection - Handle, std::vector>> + Handle, std::vector>> layerClusterToTracksterMapHandle; auto tracksterMapTokenIter = std::find_if(layerClusterToTracksterMapTokens_.begin(), @@ -115,7 +115,8 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, const auto& simTracksters = *simTrackstersHandle; // Retrieve the correct LayerClusterToSimTracksterMap for the current simTrackster collection - Handle, std::vector>> + Handle< + ticl::AssociationMap, std::vector>> layerClusterToSimTracksterMapHandle; auto simTracksterMapTokenIter = std::find_if(layerClusterToSimTracksterMapTokens_.begin(), @@ -127,11 +128,13 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, const auto& layerClusterToSimTracksterMap = *layerClusterToSimTracksterMapHandle; // Create the association maps - auto tracksterToSimTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( + auto tracksterToSimTracksterMap = std::make_unique, + std::vector>>( recoTrackstersHandle, simTrackstersHandle, iEvent); - auto simTracksterToTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( + auto simTracksterToTracksterMap = std::make_unique, + std::vector>>( simTrackstersHandle, recoTrackstersHandle, iEvent); for (unsigned int tracksterIndex = 0; tracksterIndex < recoTracksters.size(); ++tracksterIndex) { @@ -139,7 +142,8 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, edm::Ref> recoTracksterRef(recoTrackstersHandle, tracksterIndex); const auto& layerClustersIds = recoTrackster.vertices(); float recoToSimScoresDenominator = 0.f; - ticl::mapWithFraction layerClusterToAssociatedSimTracksterMap(layerClustersIds.size()); + ticl::AssociationMap layerClusterToAssociatedSimTracksterMap( + layerClustersIds.size()); std::vector associatedSimTracksterIndices; for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { unsigned int layerClusterId = layerClustersIds[i]; @@ -149,8 +153,10 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, float squaredLayerClusterEnergy = layerCluster.energy() * layerCluster.energy(); recoToSimScoresDenominator += squaredLayerClusterEnergy * squaredRecoFraction; const auto& simTracksterVec = layerClusterToSimTracksterMap[layerClusterId]; - for (const auto& [simTracksterIndex, simSharedEnergy] : simTracksterVec) { - layerClusterToAssociatedSimTracksterMap[i].push_back({simTracksterIndex, simSharedEnergy}); + for (const auto& simTracksterElement : simTracksterVec) { + auto simTracksterIndex = simTracksterElement.index(); + auto simSharedEnergy = simTracksterElement.sharedEnergy(); + layerClusterToAssociatedSimTracksterMap[i].emplace_back(simTracksterIndex, simSharedEnergy); associatedSimTracksterIndices.push_back(simTracksterIndex); } } @@ -167,7 +173,7 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, const auto& simTracksterVec = layerClusterToSimTracksterMap[layerClusterId]; for (unsigned int simTracksterIndex : associatedSimTracksterIndices) { if (std::find_if(simTracksterVec.begin(), simTracksterVec.end(), [simTracksterIndex](const auto& pair) { - return pair.first == simTracksterIndex; + return pair.index() == simTracksterIndex; }) == simTracksterVec.end()) { layerClusterToAssociatedSimTracksterMap[i].push_back({simTracksterIndex, 0.f}); } @@ -185,7 +191,9 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, float recoSharedEnergy = layerCluster.energy() * recoFraction; float invLayerClusterEnergy = 1.f / layerCluster.energy(); const auto& simTracksterVec = layerClusterToAssociatedSimTracksterMap[i]; - for (const auto& [simTracksterIndex, simSharedEnergy] : simTracksterVec) { + for (const auto& simTracksterElement : simTracksterVec) { + auto simTracksterIndex = simTracksterElement.index(); + float simSharedEnergy = simTracksterElement.sharedEnergy(); edm::Ref> simTracksterRef(simTrackstersHandle, simTracksterIndex); float sharedEnergy = std::min(simSharedEnergy, recoSharedEnergy); float simFraction = simSharedEnergy * invLayerClusterEnergy; @@ -202,7 +210,7 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, edm::Ref> simTracksterRef(simTrackstersHandle, tracksterIndex); const auto& layerClustersIds = simTrackster.vertices(); float simToRecoScoresDenominator = 0.f; - ticl::mapWithFraction layerClusterToAssociatedTracksterMap(layerClustersIds.size()); + ticl::AssociationMap layerClusterToAssociatedTracksterMap(layerClustersIds.size()); std::vector associatedRecoTracksterIndices; for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { unsigned int layerClusterId = layerClustersIds[i]; @@ -212,8 +220,10 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, float squaredLayerClusterEnergy = layerCluster.energy() * layerCluster.energy(); simToRecoScoresDenominator += squaredLayerClusterEnergy * squaredSimFraction; const auto& recoTracksterVec = layerClusterToTracksterMap[layerClusterId]; - for (const auto& [recoTracksterIndex, recoSharedEnergy] : recoTracksterVec) { - layerClusterToAssociatedTracksterMap[i].push_back({recoTracksterIndex, recoSharedEnergy}); + for (const auto& recoTracksterElement : recoTracksterVec) { + auto recoTracksterIndex = recoTracksterElement.index(); + auto recoSharedEnergy = recoTracksterElement.sharedEnergy(); + layerClusterToAssociatedTracksterMap[i].emplace_back(recoTracksterIndex, recoSharedEnergy); associatedRecoTracksterIndices.push_back(recoTracksterIndex); } } @@ -228,9 +238,9 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, const auto& recoTracksterVec = layerClusterToTracksterMap[layerClusterId]; for (unsigned int recoTracksterIndex : associatedRecoTracksterIndices) { if (std::find_if(recoTracksterVec.begin(), recoTracksterVec.end(), [recoTracksterIndex](const auto& pair) { - return pair.first == recoTracksterIndex; + return pair.index() == recoTracksterIndex; }) == recoTracksterVec.end()) { - layerClusterToAssociatedTracksterMap[i].push_back({recoTracksterIndex, 0.f}); + layerClusterToAssociatedTracksterMap[i].emplace_back(recoTracksterIndex, 0.f); } } } @@ -246,7 +256,9 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, float simSharedEnergy = layerCluster.energy() * simFraction; float invLayerClusterEnergy = 1.f / layerCluster.energy(); const auto& recoTracksterVec = layerClusterToAssociatedTracksterMap[i]; - for (const auto& [recoTracksterIndex, recoSharedEnergy] : recoTracksterVec) { + for (const auto& recoTracksterElement : recoTracksterVec) { + auto recoTracksterIndex = recoTracksterElement.index(); + float recoSharedEnergy = recoTracksterElement.sharedEnergy(); edm::Ref> recoTracksterRef(recoTrackstersHandle, recoTracksterIndex); float sharedEnergy = std::min(recoSharedEnergy, simSharedEnergy); float recoFraction = recoSharedEnergy * invLayerClusterEnergy; diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToTSAssociatorProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToTSAssociatorProducer.cc index 6d44f84463e37..f4968e960d64c 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToTSAssociatorProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToTSAssociatorProducer.cc @@ -18,7 +18,8 @@ LCToTSAssociatorProducer::LCToTSAssociatorProducer(const edm::ParameterSet &pset : LCCollectionToken_(consumes>(pset.getParameter("layer_clusters"))), tracksterCollectionToken_( consumes>(pset.getParameter("tracksters"))) { - produces, std::vector>>(); + produces< + ticl::AssociationMap, std::vector>>(); } LCToTSAssociatorProducer::~LCToTSAssociatorProducer() {} @@ -39,7 +40,7 @@ void LCToTSAssociatorProducer::produce(edm::StreamID, edm::Event &iEvent, const // Create association map auto lcToTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( + ticl::AssociationMap, std::vector>>( layer_clusters, tracksters, iEvent); // Loop over tracksters From 4d73fdc4c5af3d6ccf72432cefa100e224a39ceb Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Fri, 22 Nov 2024 09:19:52 +0100 Subject: [PATCH 172/418] Sort in ascending order by score --- .../AllTracksterToSimTracksterAssociatorsByHitsProducer.cc | 5 +++-- .../AllTracksterToSimTracksterAssociatorsByLCsProducer.cc | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc index 64b50469941e6..20d81fa1e19aa 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc @@ -357,8 +357,9 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, } } - tracksterToSimTracksterMap->sort(true); - simTracksterToTracksterMap->sort(true); + // Sort the maps by score in ascending order + tracksterToSimTracksterMap->sort([](const auto& a, const auto& b) { return a.score() < b.score(); }); + simTracksterToTracksterMap->sort([](const auto& a, const auto& b) { return a.score() < b.score(); }); // After populating the maps, store them in the event iEvent.put(std::move(tracksterToSimTracksterMap), tracksterToken.first + "To" + simTracksterToken.first); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc index 553b70481b034..02992b166ed43 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc @@ -269,8 +269,9 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, } } } - tracksterToSimTracksterMap->sort(true); - simTracksterToTracksterMap->sort(true); + // Sort the maps by score in ascending order + tracksterToSimTracksterMap->sort([](const auto& a, const auto& b) { return a.score() < b.score(); }); + simTracksterToTracksterMap->sort([](const auto& a, const auto& b) { return a.score() < b.score(); }); // After populating the maps, store them in the event iEvent.put(std::move(tracksterToSimTracksterMap), tracksterToken.first + "To" + simTracksterToken.first); From d2592d1da333fbb782b5d86487e328d46f1ff766 Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Thu, 14 Nov 2024 10:48:41 +0100 Subject: [PATCH 173/418] update TICLDumper with new ticl::AssociationMap --- RecoHGCal/TICL/plugins/TICLDumper.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/RecoHGCal/TICL/plugins/TICLDumper.cc b/RecoHGCal/TICL/plugins/TICLDumper.cc index 5a76532f36afe..208e3515ae4bc 100644 --- a/RecoHGCal/TICL/plugins/TICLDumper.cc +++ b/RecoHGCal/TICL/plugins/TICLDumper.cc @@ -62,7 +62,7 @@ #include "CommonTools/UtilAlgos/interface/TFileService.h" using TracksterToTracksterMap = - ticl::AssociationMap, std::vector>; + ticl::AssociationMap, std::vector>; // Helper class for geometry, magnetic field, etc class DetectorTools { public: @@ -514,10 +514,10 @@ class TracksterToSimTracksterAssociationHelper { recoToSim_sharedE.resize(numberOfTracksters); for (size_t i = 0; i < numberOfTracksters; ++i) { - for (const auto& [simTracksterIndex, sharedEnergyAndScorePair] : recoToSimMap[i]) { - recoToSim[i].push_back(simTracksterIndex); - recoToSim_sharedE[i].push_back(sharedEnergyAndScorePair.first); - recoToSim_score[i].push_back(sharedEnergyAndScorePair.second); + for (const auto& simTracksterElement : recoToSimMap[i]) { + recoToSim[i].push_back(simTracksterElement.index()); + recoToSim_sharedE[i].push_back(simTracksterElement.sharedEnergy()); + recoToSim_score[i].push_back(simTracksterElement.score()); } } @@ -528,10 +528,10 @@ class TracksterToSimTracksterAssociationHelper { simToReco_sharedE.resize(numberOfSimTracksters); for (size_t i = 0; i < numberOfSimTracksters; ++i) { - for (const auto& [recoTracksterIndex, sharedEnergyAndScorePair] : simToRecoMap[i]) { - simToReco[i].push_back(recoTracksterIndex); - simToReco_sharedE[i].push_back(sharedEnergyAndScorePair.first); - simToReco_score[i].push_back(sharedEnergyAndScorePair.second); + for (const auto& recoTracksterElement : simToRecoMap[i]) { + simToReco[i].push_back(recoTracksterElement.index()); + simToReco_sharedE[i].push_back(recoTracksterElement.sharedEnergy()); + simToReco_score[i].push_back(recoTracksterElement.score()); } } } From f7f4f007f368dd4fd2b216162472f8fca29ce7d8 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Fri, 29 Nov 2024 09:39:21 -0800 Subject: [PATCH 174/418] Switch to hltOnlineBeamSpot and update indentation --- .../eventsetup/hltESPModulesDevLST_cfi.py | 2 +- .../hltHighPtTripletStepSeedTracksLST_cfi.py | 2 +- .../modules/hltInitialStepSeedTracksLST_cfi.py | 2 +- .../HLT_75e33/modules/hltPixelSeedInputLST_cfi.py | 2 +- .../sequences/HLTHighPtTripletStepSequence_cfi.py | 15 +++++++++++++-- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi.py index 849b694bfa7f8..3bf5fc90e4079 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/eventsetup/hltESPModulesDevLST_cfi.py @@ -4,7 +4,7 @@ def _addProcessModulesDevLST(process): process.hltESPModulesDevLST = cms.ESProducer('LSTModulesDevESProducer@alpaka', appendToDataLabel = cms.string(''), alpaka = cms.untracked.PSet( - backend = cms.untracked.string('') + backend = cms.untracked.string('') ) ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepSeedTracksLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepSeedTracksLST_cfi.py index 8b924a8dc0871..42cad7c5c27b0 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepSeedTracksLST_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHighPtTripletStepSeedTracksLST_cfi.py @@ -3,7 +3,7 @@ hltHighPtTripletStepSeedTracksLST = cms.EDProducer( "TrackFromSeedProducer", src = cms.InputTag("hltHighPtTripletStepSeeds"), - beamSpot = cms.InputTag("offlineBeamSpot"), + beamSpot = cms.InputTag("hltOnlineBeamSpot"), TTRHBuilder = cms.string("WithoutRefit") ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeedTracksLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeedTracksLST_cfi.py index 6c76cea59b426..1f3b96c1dd32c 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeedTracksLST_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltInitialStepSeedTracksLST_cfi.py @@ -3,7 +3,7 @@ hltInitialStepSeedTracksLST = cms.EDProducer( "TrackFromSeedProducer", src = cms.InputTag("hltInitialStepSeeds"), - beamSpot = cms.InputTag("offlineBeamSpot"), + beamSpot = cms.InputTag("hltOnlineBeamSpot"), TTRHBuilder = cms.string("WithoutRefit") ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPixelSeedInputLST_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPixelSeedInputLST_cfi.py index 5440e5b7f5d22..014bd2c67497d 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPixelSeedInputLST_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPixelSeedInputLST_cfi.py @@ -1,7 +1,7 @@ import FWCore.ParameterSet.Config as cms hltPixelSeedInputLST = cms.EDProducer('LSTPixelSeedInputProducer', - beamSpot = cms.InputTag('offlineBeamSpot'), + beamSpot = cms.InputTag('hltOnlineBeamSpot'), seedTracks = cms.VInputTag( 'hltInitialStepSeedTracksLST', 'hltHighPtTripletStepSeedTracksLST' diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHighPtTripletStepSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHighPtTripletStepSequence_cfi.py index d2237cee27762..0482a04c22072 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHighPtTripletStepSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTHighPtTripletStepSequence_cfi.py @@ -6,7 +6,13 @@ from ..modules.hltHighPtTripletStepTrackSelectionHighPurity_cfi import * from ..sequences.HLTHighPtTripletStepSeedingSequence_cfi import * -HLTHighPtTripletStepSequence = cms.Sequence(HLTHighPtTripletStepSeedingSequence+hltHighPtTripletStepTrackCandidates+hltHighPtTripletStepTracks+hltHighPtTripletStepTrackCutClassifier+hltHighPtTripletStepTrackSelectionHighPurity) +HLTHighPtTripletStepSequence = cms.Sequence( + HLTHighPtTripletStepSeedingSequence + +hltHighPtTripletStepTrackCandidates + +hltHighPtTripletStepTracks + +hltHighPtTripletStepTrackCutClassifier + +hltHighPtTripletStepTrackSelectionHighPurity +) from Configuration.ProcessModifiers.trackingLST_cff import trackingLST trackingLST.toReplaceWith(HLTHighPtTripletStepSequence, HLTHighPtTripletStepSequence.copyAndExclude([HLTHighPtTripletStepSeedingSequence])) @@ -15,7 +21,12 @@ from ..modules.hltHighPtTripletStepTrackspLSTCLST_cfi import * from ..modules.hltHighPtTripletStepTrackCutClassifierpLSTCLST_cfi import * from ..modules.hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST_cfi import * -_HLTHighPtTripletStepSequenceLSTSeeding = cms.Sequence(hltHighPtTripletStepTrackCandidatespLSTCLST+hltHighPtTripletStepTrackspLSTCLST+hltHighPtTripletStepTrackCutClassifierpLSTCLST+hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST) +_HLTHighPtTripletStepSequenceLSTSeeding = cms.Sequence( + hltHighPtTripletStepTrackCandidatespLSTCLST + +hltHighPtTripletStepTrackspLSTCLST + +hltHighPtTripletStepTrackCutClassifierpLSTCLST + +hltHighPtTripletStepTrackSelectionHighPuritypLSTCLST +) from Configuration.ProcessModifiers.seedingLST_cff import seedingLST (seedingLST & trackingLST).toReplaceWith(HLTHighPtTripletStepSequence, _HLTHighPtTripletStepSequenceLSTSeeding) From e571782ad6e10551d7323583b5c16670dd864ce8 Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Thu, 14 Nov 2024 10:49:24 +0100 Subject: [PATCH 175/418] update Validation with new ticl::AssociationMap --- .../interface/HGCalValidator.h | 2 +- .../interface/HGVHistoProducerAlgo.h | 2 +- .../interface/TICLCandidateValidator.h | 2 +- .../src/HGVHistoProducerAlgo.cc | 18 ++++++-------- .../src/TICLCandidateValidator.cc | 24 +++++++++---------- 5 files changed, 22 insertions(+), 26 deletions(-) diff --git a/Validation/HGCalValidation/interface/HGCalValidator.h b/Validation/HGCalValidation/interface/HGCalValidator.h index 175ac5ef096fe..56d83bd0916c0 100644 --- a/Validation/HGCalValidation/interface/HGCalValidator.h +++ b/Validation/HGCalValidation/interface/HGCalValidator.h @@ -44,7 +44,7 @@ class HGCalValidator : public DQMGlobalEDAnalyzer { public: using Histograms = HGCalValidatorHistograms; using TracksterToTracksterMap = - ticl::AssociationMap, std::vector>; + ticl::AssociationMap, std::vector>; using SimClusterToCaloParticleMap = ticl::AssociationMap, std::vector>; diff --git a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h index 216c1f89b9780..fbcc6934ef686 100644 --- a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h +++ b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h @@ -229,7 +229,7 @@ class HGVHistoProducerAlgo { typedef dqm::legacy::DQMStore DQMStore; typedef dqm::legacy::MonitorElement MonitorElement; using TracksterToTracksterMap = - ticl::AssociationMap, std::vector>; + ticl::AssociationMap, std::vector>; using SimClusterToCaloParticleMap = ticl::AssociationMap, std::vector>; enum validationType { byHits_CP = 0, byLCs, byLCs_CP, byHits }; diff --git a/Validation/HGCalValidation/interface/TICLCandidateValidator.h b/Validation/HGCalValidation/interface/TICLCandidateValidator.h index df96d3e1090c3..ae78a9c250e53 100644 --- a/Validation/HGCalValidation/interface/TICLCandidateValidator.h +++ b/Validation/HGCalValidation/interface/TICLCandidateValidator.h @@ -22,7 +22,7 @@ namespace ticl { using TracksterToTracksterMap = - ticl::AssociationMap, std::vector>; + ticl::AssociationMap, std::vector>; } struct TICLCandidateValidatorHistograms { diff --git a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc index f828332400e47..2917ae9b759f0 100644 --- a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc +++ b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc @@ -2524,8 +2524,8 @@ void HGVHistoProducerAlgo::tracksters_to_SimTracksters_fp(const Histograms& hist const auto productID = simTS.seedID(); if (productID == cPHandle_id) { return simTS.seedIndex(); - } else { // SimTrackster from SimCluster - return int(scToCpMap[simTS.seedIndex()].first); + } else { + return int(scToCpMap.at(simTS.seedIndex()).index()); } }; @@ -2539,7 +2539,6 @@ void HGVHistoProducerAlgo::tracksters_to_SimTracksters_fp(const Histograms& hist float iTS_phi = trackster.barycenter().phi(); float iTS_en = trackster.raw_energy(); float iTS_pt = trackster.raw_pt(); - histograms.h_denom_trackster_eta[valType][count]->Fill(iTS_eta); histograms.h_denom_trackster_phi[valType][count]->Fill(iTS_phi); histograms.h_denom_trackster_en[valType][count]->Fill(iTS_en); @@ -2547,8 +2546,8 @@ void HGVHistoProducerAlgo::tracksters_to_SimTracksters_fp(const Histograms& hist // loop over trackstersToSimTrackstersMap[tracksterIndex] by index for (unsigned int i = 0; i < trackstersToSimTrackstersMap[tracksterIndex].size(); ++i) { - const auto& [sts_id, sharedEnergyScorePair] = trackstersToSimTrackstersMap[tracksterIndex][i]; - const auto& [sharedEnergy, score] = sharedEnergyScorePair; + auto sharedEnergy = trackstersToSimTrackstersMap[tracksterIndex][i].sharedEnergy(); + auto score = trackstersToSimTrackstersMap[tracksterIndex][i].score(); float sharedEnergyFraction = sharedEnergy / trackster.raw_energy(); if (i == 0) { histograms.h_score_trackster2bestCaloparticle[valType][count]->Fill(score); @@ -2590,10 +2589,9 @@ void HGVHistoProducerAlgo::tracksters_to_SimTracksters_fp(const Histograms& hist // only to the selected caloParaticles. for (unsigned int simTracksterIndex = 0; simTracksterIndex < nSimTracksters; ++simTracksterIndex) { const auto& simTrackster = *(simTrackstersToTrackstersMap.getRefFirst(simTracksterIndex)); - const auto& cpId = getCPId(simTrackster, cPHandle_id, scToCpMap); + const auto cpId = getCPId(simTrackster, cPHandle_id, scToCpMap); if (std::find(cPSelectedIndices.begin(), cPSelectedIndices.end(), cpId) == cPSelectedIndices.end()) continue; - const auto sts_eta = simTrackster.barycenter().eta(); const auto sts_phi = simTrackster.barycenter().phi(); const auto sts_en = simTrackster.raw_energy(); @@ -2613,11 +2611,9 @@ void HGVHistoProducerAlgo::tracksters_to_SimTracksters_fp(const Histograms& hist bool sts_considered_pure = false; for (unsigned int i = 0; i < simTrackstersToTrackstersMap[simTracksterIndex].size(); ++i) { - const auto& [tracksterId, sharedEnergyScorePair] = simTrackstersToTrackstersMap[simTracksterIndex][i]; - const auto& [sharedEnergy, score] = sharedEnergyScorePair; - + const auto sharedEnergy = simTrackstersToTrackstersMap[simTracksterIndex][i].sharedEnergy(); + const auto score = simTrackstersToTrackstersMap[simTracksterIndex][i].score(); float sharedEnergyFraction = sharedEnergy * inv_simtrackster_energy; - if (i == 0) { histograms.h_scorePur_caloparticle2trackster[valType][count]->Fill(score); histograms.h_sharedenergy_caloparticle2trackster_assoc[valType][count]->Fill(sharedEnergyFraction); diff --git a/Validation/HGCalValidation/src/TICLCandidateValidator.cc b/Validation/HGCalValidation/src/TICLCandidateValidator.cc index 6120780b68381..e10ff0cc6bc2d 100644 --- a/Validation/HGCalValidation/src/TICLCandidateValidator.cc +++ b/Validation/HGCalValidation/src/TICLCandidateValidator.cc @@ -365,10 +365,10 @@ void TICLCandidateValidator::fillCandidateHistos(const edm::Event& event, if (!ts_vec.empty()) { auto min_elem = std::min_element(ts_vec.begin(), ts_vec.end(), [](auto const& ts1_id_pair, auto const& ts2_id_pair) { - return ts1_id_pair.second.second < ts2_id_pair.second.second; + return ts1_id_pair.score() < ts2_id_pair.score(); }); - shared_energy = min_elem->second.first; - cand_idx = min_elem->first; + shared_energy = min_elem->sharedEnergy(); + cand_idx = min_elem->index(); } // no reco associated to sim if (cand_idx == -1) @@ -442,10 +442,10 @@ void TICLCandidateValidator::fillCandidateHistos(const edm::Event& event, if (!ts_vec.empty()) { auto min_elem = std::min_element(ts_vec.begin(), ts_vec.end(), [](auto const& ts1_id_pair, auto const& ts2_id_pair) { - return ts1_id_pair.second.second < ts2_id_pair.second.second; + return ts1_id_pair.score() < ts2_id_pair.score(); }); - shared_energy = min_elem->second.first; - cand_idx = min_elem->first; + shared_energy = min_elem->sharedEnergy(); + cand_idx = min_elem->index(); } // no reco associated to sim @@ -555,10 +555,10 @@ void TICLCandidateValidator::fillCandidateHistos(const edm::Event& event, if (!sts_vec.empty()) { auto min_elem = std::min_element(sts_vec.begin(), sts_vec.end(), [](auto const& sts1_id_pair, auto const& sts2_id_pair) { - return sts1_id_pair.second.second < sts2_id_pair.second.second; + return sts1_id_pair.score() < sts2_id_pair.score(); }); - shared_energy = min_elem->second.first; - simCand_idx = min_elem->first; + shared_energy = min_elem->sharedEnergy(); + simCand_idx = min_elem->index(); } if (simCand_idx == -1) @@ -641,10 +641,10 @@ void TICLCandidateValidator::fillCandidateHistos(const edm::Event& event, if (!sts_vec.empty()) { auto min_elem = std::min_element(sts_vec.begin(), sts_vec.end(), [](auto const& sts1_id_pair, auto const& sts2_id_pair) { - return sts1_id_pair.second.second < sts2_id_pair.second.second; + return sts1_id_pair.score() < sts2_id_pair.score(); }); - shared_energy = min_elem->second.first; - simCand_idx = min_elem->first; + shared_energy = min_elem->sharedEnergy(); + simCand_idx = min_elem->index(); } if (simCand_idx == -1) From 85dfcdecc4b1a90a7b093db0b6ddbda847630d5d Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Thu, 14 Nov 2024 10:47:10 +0100 Subject: [PATCH 176/418] remove old associators --- ...rToSimTracksterAssociatorByHitsProducer.cc | 446 ------------------ ...erToSimTracksterAssociatorByHitsProducer.h | 48 -- ...acksterToSimTracksterAssociatorProducer.cc | 202 -------- ...racksterToSimTracksterAssociatorProducer.h | 44 -- .../python/TSToSimTSAssociationByHits_cfi.py | 37 -- .../python/TSToSimTSAssociation_cfi.py | 1 - 6 files changed, 778 deletions(-) delete mode 100644 SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorByHitsProducer.cc delete mode 100644 SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorByHitsProducer.h delete mode 100644 SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorProducer.cc delete mode 100644 SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorProducer.h diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorByHitsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorByHitsProducer.cc deleted file mode 100644 index 69d0a0a07b1d4..0000000000000 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorByHitsProducer.cc +++ /dev/null @@ -1,446 +0,0 @@ -// Author: Felice Pantaleo, felice.pantaleo@cern.ch 06/2024 -#include "TracksterToSimTracksterAssociatorByHitsProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/EDGetToken.h" -#include "DataFormats/HGCalReco/interface/Trackster.h" -#include "SimDataFormats/Associations/interface/TICLAssociationMap.h" -#include "DataFormats/Provenance/interface/ProductID.h" -#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" -#include "CommonTools/RecoAlgos/interface/MultiVectorManager.h" -#include "SimDataFormats/CaloAnalysis/interface/CaloParticle.h" -#include "SimDataFormats/CaloAnalysis/interface/SimCluster.h" - -TracksterToSimTracksterAssociatorByHitsProducer::TracksterToSimTracksterAssociatorByHitsProducer( - const edm::ParameterSet& pset) - : recoTracksterCollectionToken_( - consumes>(pset.getParameter("tracksters"))), - simTracksterCollectionToken_( - consumes>(pset.getParameter("simTracksters"))), - simTracksterFromCPCollectionToken_( - consumes>(pset.getParameter("simTrackstersFromCP"))), - hitToTracksterMapToken_( - consumes>(pset.getParameter("hitToTracksterMap"))), - hitToSimTracksterMapToken_(consumes>( - pset.getParameter("hitToSimTracksterMap"))), - hitToSimTracksterFromCPMapToken_(consumes>( - pset.getParameter("hitToSimTracksterFromCPMap"))), - hitToSimClusterMapToken_(consumes>( - pset.getParameter("hitToSimClusterMap"))), - hitToCaloParticleMapToken_(consumes>( - pset.getParameter("hitToCaloParticleMap"))), - tracksterToHitMapToken_( - consumes>(pset.getParameter("tracksterToHitMap"))), - simTracksterToHitMapToken_(consumes>( - pset.getParameter("simTracksterToHitMap"))), - simTracksterFromCPToHitMapToken_(consumes>( - pset.getParameter("simTracksterFromCPToHitMap"))), - caloParticleToken_(consumes>(pset.getParameter("caloParticles"))) { - auto hitsTags = pset.getParameter>("hits"); - for (const auto& tag : hitsTags) { - hitsTokens_.push_back(consumes(tag)); - } - produces< - ticl::AssociationMap, std::vector>>( - "tracksterToSimTracksterMap"); - produces< - ticl::AssociationMap, std::vector>>( - "simTracksterToTracksterMap"); - produces< - ticl::AssociationMap, std::vector>>( - "tracksterToSimTracksterFromCPMap"); - produces< - ticl::AssociationMap, std::vector>>( - "simTracksterFromCPToTracksterMap"); -} - -TracksterToSimTracksterAssociatorByHitsProducer::~TracksterToSimTracksterAssociatorByHitsProducer() {} - -void TracksterToSimTracksterAssociatorByHitsProducer::produce(edm::StreamID, - edm::Event& iEvent, - const edm::EventSetup& iSetup) const { - using namespace edm; - - Handle> recoTrackstersHandle; - iEvent.getByToken(recoTracksterCollectionToken_, recoTrackstersHandle); - const auto& recoTracksters = *recoTrackstersHandle; - - Handle> simTrackstersHandle; - iEvent.getByToken(simTracksterCollectionToken_, simTrackstersHandle); - const auto& simTracksters = *simTrackstersHandle; - - Handle> simTrackstersFromCPHandle; - iEvent.getByToken(simTracksterFromCPCollectionToken_, simTrackstersFromCPHandle); - const auto& simTrackstersFromCP = *simTrackstersFromCPHandle; - - Handle> hitToTracksterMapHandle; - iEvent.getByToken(hitToTracksterMapToken_, hitToTracksterMapHandle); - const auto& hitToTracksterMap = *hitToTracksterMapHandle; - - Handle> hitToSimTracksterMapHandle; - iEvent.getByToken(hitToSimTracksterMapToken_, hitToSimTracksterMapHandle); - const auto& hitToSimTracksterMap = *hitToSimTracksterMapHandle; - - Handle> hitToSimTracksterFromCPMapHandle; - iEvent.getByToken(hitToSimTracksterFromCPMapToken_, hitToSimTracksterFromCPMapHandle); - const auto& hitToSimTracksterFromCPMap = *hitToSimTracksterFromCPMapHandle; - - Handle> hitToSimClusterMapHandle; - iEvent.getByToken(hitToSimClusterMapToken_, hitToSimClusterMapHandle); - const auto& hitToSimClusterMap = *hitToSimClusterMapHandle; - - Handle> hitToCaloParticleMapHandle; - iEvent.getByToken(hitToCaloParticleMapToken_, hitToCaloParticleMapHandle); - const auto& hitToCaloParticleMap = *hitToCaloParticleMapHandle; - - Handle> tracksterToHitMapHandle; - iEvent.getByToken(tracksterToHitMapToken_, tracksterToHitMapHandle); - const auto& tracksterToHitMap = *tracksterToHitMapHandle; - - Handle> simTracksterToHitMapHandle; - iEvent.getByToken(simTracksterToHitMapToken_, simTracksterToHitMapHandle); - const auto& simTracksterToHitMap = *simTracksterToHitMapHandle; - - Handle> simTracksterFromCPToHitMapHandle; - iEvent.getByToken(simTracksterFromCPToHitMapToken_, simTracksterFromCPToHitMapHandle); - const auto& simTracksterFromCPToHitMap = *simTracksterFromCPToHitMapHandle; - - Handle> caloParticlesHandle; - iEvent.getByToken(caloParticleToken_, caloParticlesHandle); - - MultiVectorManager rechitManager; - for (const auto& token : hitsTokens_) { - Handle hitsHandle; - iEvent.getByToken(token, hitsHandle); - rechitManager.addVector(*hitsHandle); - } - - auto tracksterToSimTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( - recoTrackstersHandle, simTrackstersHandle, iEvent); - auto tracksterToSimTracksterFromCPMap = std::make_unique< - ticl::AssociationMap, std::vector>>( - recoTrackstersHandle, simTrackstersFromCPHandle, iEvent); - - auto simTracksterToTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( - simTrackstersHandle, recoTrackstersHandle, iEvent); - auto simTracksterFromCPToTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( - simTrackstersFromCPHandle, recoTrackstersHandle, iEvent); - for (unsigned int tracksterIndex = 0; tracksterIndex < recoTracksters.size(); ++tracksterIndex) { - edm::Ref> recoTracksterRef(recoTrackstersHandle, tracksterIndex); - float recoToSimScoresDenominator = 0.f; - const auto& recoTracksterHitsAndFractions = tracksterToHitMap[tracksterIndex]; - ticl::AssociationMap hitToAssociatedSimTracksterMap(recoTracksterHitsAndFractions.size()); - std::vector associatedSimTracksterIndices; - ticl::AssociationMap hitToAssociatedSimTracksterFromCPMap( - recoTracksterHitsAndFractions.size()); - std::vector associatedSimTracksterFromCPIndices; - for (unsigned int i = 0; i < recoTracksterHitsAndFractions.size(); ++i) { - const auto& [hitIndex, recoFraction] = recoTracksterHitsAndFractions[i]; - const auto& recHit = rechitManager[hitIndex]; - float squaredRecoFraction = recoFraction * recoFraction; - float rechitEnergy = recHit.energy(); - float squaredRecHitEnergy = rechitEnergy * rechitEnergy; - recoToSimScoresDenominator += squaredRecoFraction * squaredRecHitEnergy; - - const auto& hitToSimTracksterVec = hitToSimTracksterMap[hitIndex]; - for (const auto& [simTracksterIndex, fraction] : hitToSimTracksterVec) { - const auto& simTrackster = simTracksters[simTracksterIndex]; - auto& seed = simTrackster.seedID(); - float simFraction = 0; - if (seed == caloParticlesHandle.id()) { - unsigned int caloParticleIndex = simTrackster.seedIndex(); - auto it = std::find_if(hitToCaloParticleMap[hitIndex].begin(), - hitToCaloParticleMap[hitIndex].end(), - [caloParticleIndex](const auto& pair) { return pair.first == caloParticleIndex; }); - if (it != hitToCaloParticleMap[hitIndex].end()) { - simFraction = it->second; - } - } else { - unsigned int simClusterIndex = simTracksters[simTracksterIndex].seedIndex(); - auto it = std::find_if(hitToSimClusterMap[hitIndex].begin(), - hitToSimClusterMap[hitIndex].end(), - [simClusterIndex](const auto& pair) { return pair.first == simClusterIndex; }); - if (it != hitToSimClusterMap[hitIndex].end()) { - simFraction = it->second; - } - } - hitToAssociatedSimTracksterMap.insert(i, simTracksterIndex, simFraction); - associatedSimTracksterIndices.push_back(simTracksterIndex); - } - - // do the same for caloparticles and simTracksterFromCP - const auto& hitToSimTracksterFromCPVec = hitToSimTracksterFromCPMap[hitIndex]; - for (const auto& [simTracksterIndex, simFraction] : hitToSimTracksterFromCPVec) { - unsigned int caloParticleIndex = simTracksters[simTracksterIndex].seedIndex(); - float caloParticleFraction = 0; - auto it = std::find_if(hitToCaloParticleMap[hitIndex].begin(), - hitToCaloParticleMap[hitIndex].end(), - [caloParticleIndex](const auto& pair) { return pair.first == caloParticleIndex; }); - if (it != hitToCaloParticleMap[hitIndex].end()) { - caloParticleFraction = it->second; - } - hitToAssociatedSimTracksterFromCPMap.insert(i, simTracksterIndex, caloParticleFraction); - associatedSimTracksterFromCPIndices.push_back(simTracksterIndex); - } - } - std::sort(associatedSimTracksterIndices.begin(), associatedSimTracksterIndices.end()); - associatedSimTracksterIndices.erase( - std::unique(associatedSimTracksterIndices.begin(), associatedSimTracksterIndices.end()), - associatedSimTracksterIndices.end()); - - std::sort(associatedSimTracksterFromCPIndices.begin(), associatedSimTracksterFromCPIndices.end()); - associatedSimTracksterFromCPIndices.erase( - std::unique(associatedSimTracksterFromCPIndices.begin(), associatedSimTracksterFromCPIndices.end()), - associatedSimTracksterFromCPIndices.end()); - - // Add missing sim tracksters with 0 shared energy to hitToAssociatedSimTracksterMap and hitToAssociatedSimTracksterFromCPMap - for (unsigned int i = 0; i < recoTracksterHitsAndFractions.size(); ++i) { - unsigned int hitId = recoTracksterHitsAndFractions[i].first; - const auto& simTracksterVec = hitToSimTracksterMap[hitId]; - for (unsigned int simTracksterIndex : associatedSimTracksterIndices) { - if (std::find_if(simTracksterVec.begin(), simTracksterVec.end(), [simTracksterIndex](const auto& pair) { - return pair.first == simTracksterIndex; - }) == simTracksterVec.end()) { - hitToAssociatedSimTracksterMap.insert(i, simTracksterIndex, 0); - } - } - - const auto& simTracksterFromCPVec = hitToSimTracksterFromCPMap[hitId]; - for (unsigned int simTracksterIndex : associatedSimTracksterFromCPIndices) { - if (std::find_if( - simTracksterFromCPVec.begin(), simTracksterFromCPVec.end(), [simTracksterIndex](const auto& pair) { - return pair.first == simTracksterIndex; - }) == simTracksterFromCPVec.end()) { - hitToAssociatedSimTracksterFromCPMap.insert(i, simTracksterIndex, 0); - } - } - } - - const float invDenominator = 1.f / recoToSimScoresDenominator; - - for (unsigned int i = 0; i < recoTracksterHitsAndFractions.size(); ++i) { - unsigned int hitIndex = recoTracksterHitsAndFractions[i].first; - const auto& recHit = rechitManager[hitIndex]; - float recoFraction = recoTracksterHitsAndFractions[i].second; - float squaredRecoFraction = recoFraction * recoFraction; - float squaredRecHitEnergy = recHit.energy() * recHit.energy(); - float recoSharedEnergy = recHit.energy() * recoFraction; - const auto& simTracksterVec = hitToAssociatedSimTracksterMap[i]; - for (const auto& [simTracksterIndex, simFraction] : simTracksterVec) { - edm::Ref> simTracksterRef(simTrackstersHandle, simTracksterIndex); - float sharedEnergy = std::min(simFraction * recHit.energy(), recoSharedEnergy); - float squaredFraction = - std::min(squaredRecoFraction, (recoFraction - simFraction) * (recoFraction - simFraction)); - float score = invDenominator * squaredFraction * squaredRecHitEnergy; - tracksterToSimTracksterMap->insert(recoTracksterRef, simTracksterRef, sharedEnergy, score); - } - - const auto& simTracksterFromCPVec = hitToAssociatedSimTracksterFromCPMap[i]; - for (const auto& [simTracksterIndex, simFraction] : simTracksterFromCPVec) { - edm::Ref> simTracksterRef(simTrackstersFromCPHandle, simTracksterIndex); - float sharedEnergy = std::min(simFraction * recHit.energy(), recoSharedEnergy); - float squaredFraction = - std::min(squaredRecoFraction, (recoFraction - simFraction) * (recoFraction - simFraction)); - float score = invDenominator * squaredFraction * squaredRecHitEnergy; - tracksterToSimTracksterFromCPMap->insert(recoTracksterRef, simTracksterRef, sharedEnergy, score); - } - } - } - - // Reverse mapping: SimTrackster -> RecoTrackster - for (unsigned int tracksterIndex = 0; tracksterIndex < simTracksters.size(); ++tracksterIndex) { - edm::Ref> simTracksterRef(simTrackstersHandle, tracksterIndex); - float simToRecoScoresDenominator = 0.f; - const auto& simTracksterHitsAndFractions = simTracksterToHitMap[tracksterIndex]; - ticl::AssociationMap hitToAssociatedRecoTracksterMap(simTracksterHitsAndFractions.size()); - std::vector associatedRecoTracksterIndices; - const auto& simTrackster = simTracksters[tracksterIndex]; - auto& seed = simTrackster.seedID(); - unsigned int simObjectIndex = simTrackster.seedIndex(); - bool isSimTracksterFromCP = (seed == caloParticlesHandle.id()); - std::vector simFractions(simTracksterHitsAndFractions.size(), 0.f); - for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - const auto& [hitIndex, simTracksterFraction] = simTracksterHitsAndFractions[i]; - - auto it = isSimTracksterFromCP - ? (std::find_if(hitToCaloParticleMap[hitIndex].begin(), - hitToCaloParticleMap[hitIndex].end(), - [simObjectIndex](const auto& pair) { return pair.first == simObjectIndex; })) - : std::find_if(hitToSimClusterMap[hitIndex].begin(), - hitToSimClusterMap[hitIndex].end(), - [simObjectIndex](const auto& pair) { return pair.first == simObjectIndex; }); - if (it != hitToCaloParticleMap[hitIndex].end() and it != hitToSimClusterMap[hitIndex].end()) { - simFractions[i] = it->second; - } - float simFraction = simFractions[i]; - const auto& recHit = rechitManager[hitIndex]; - float squaredSimFraction = simFraction * simFraction; - float squaredRecHitEnergy = recHit.energy() * recHit.energy(); - simToRecoScoresDenominator += squaredSimFraction * squaredRecHitEnergy; - - const auto& hitToRecoTracksterVec = hitToTracksterMap[hitIndex]; - for (const auto& [recoTracksterIndex, recoFraction] : hitToRecoTracksterVec) { - hitToAssociatedRecoTracksterMap.insert(i, recoTracksterIndex, recoFraction); - associatedRecoTracksterIndices.push_back(recoTracksterIndex); - } - } - - std::sort(associatedRecoTracksterIndices.begin(), associatedRecoTracksterIndices.end()); - associatedRecoTracksterIndices.erase( - std::unique(associatedRecoTracksterIndices.begin(), associatedRecoTracksterIndices.end()), - associatedRecoTracksterIndices.end()); - - for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - unsigned int hitIndex = simTracksterHitsAndFractions[i].first; - const auto& hitToRecoTracksterVec = hitToTracksterMap[hitIndex]; - for (unsigned int recoTracksterIndex : associatedRecoTracksterIndices) { - if (std::find_if( - hitToRecoTracksterVec.begin(), hitToRecoTracksterVec.end(), [recoTracksterIndex](const auto& pair) { - return pair.first == recoTracksterIndex; - }) == hitToRecoTracksterVec.end()) { - hitToAssociatedRecoTracksterMap.insert(i, recoTracksterIndex, 0); - } - } - } - - const float invDenominator = 1.f / simToRecoScoresDenominator; - - for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - const auto& [hitIndex, simTracksterFraction] = simTracksterHitsAndFractions[i]; - float simFraction = simFractions[i]; - const auto& recHit = rechitManager[hitIndex]; - float squaredSimFraction = simFraction * simFraction; - float squaredRecHitEnergy = recHit.energy() * recHit.energy(); - float simSharedEnergy = recHit.energy() * simFraction; - - const auto& hitToRecoTracksterVec = hitToAssociatedRecoTracksterMap[i]; - for (const auto& [recoTracksterIndex, recoFraction] : hitToRecoTracksterVec) { - edm::Ref> recoTracksterRef(recoTrackstersHandle, recoTracksterIndex); - float sharedEnergy = std::min(recoFraction * recHit.energy(), simSharedEnergy); - float squaredFraction = - std::min(squaredSimFraction, (recoFraction - simFraction) * (recoFraction - simFraction)); - float score = invDenominator * squaredFraction * squaredRecHitEnergy; - simTracksterToTracksterMap->insert(simTracksterRef, recoTracksterRef, sharedEnergy, score); - } - } - } - - // Repeat the reverse mapping process for SimTracksterFromCP - for (unsigned int tracksterIndex = 0; tracksterIndex < simTrackstersFromCP.size(); ++tracksterIndex) { - edm::Ref> simTracksterRef(simTrackstersFromCPHandle, tracksterIndex); - float simToRecoScoresDenominator = 0.f; - const auto& simTracksterHitsAndFractions = simTracksterFromCPToHitMap[tracksterIndex]; - ticl::AssociationMap hitToAssociatedRecoTracksterMap(simTracksterHitsAndFractions.size()); - std::vector associatedRecoTracksterIndices; - std::vector simFractions(simTracksterHitsAndFractions.size(), 0.f); - const auto& simTrackster = simTrackstersFromCP[tracksterIndex]; - unsigned int simObjectIndex = simTrackster.seedIndex(); - for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - const auto& [hitIndex, simTracksterFraction] = simTracksterHitsAndFractions[i]; - auto it = std::find_if(hitToCaloParticleMap[hitIndex].begin(), - hitToCaloParticleMap[hitIndex].end(), - [simObjectIndex](const auto& pair) { return pair.first == simObjectIndex; }); - if (it != hitToCaloParticleMap[hitIndex].end()) { - simFractions[i] = it->second; - } - float simFraction = simFractions[i]; - - const auto& recHit = rechitManager[hitIndex]; - float squaredSimFraction = simFraction * simFraction; - float squaredRecHitEnergy = recHit.energy() * recHit.energy(); - simToRecoScoresDenominator += squaredSimFraction * squaredRecHitEnergy; - - const auto& hitToRecoTracksterVec = hitToTracksterMap[hitIndex]; - for (const auto& [recoTracksterIndex, recoFraction] : hitToRecoTracksterVec) { - hitToAssociatedRecoTracksterMap.insert(i, recoTracksterIndex, recoFraction); - associatedRecoTracksterIndices.push_back(recoTracksterIndex); - } - } - - std::sort(associatedRecoTracksterIndices.begin(), associatedRecoTracksterIndices.end()); - associatedRecoTracksterIndices.erase( - std::unique(associatedRecoTracksterIndices.begin(), associatedRecoTracksterIndices.end()), - associatedRecoTracksterIndices.end()); - - for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - unsigned int hitIndex = simTracksterHitsAndFractions[i].first; - const auto& hitToRecoTracksterVec = hitToTracksterMap[hitIndex]; - for (unsigned int recoTracksterIndex : associatedRecoTracksterIndices) { - if (std::find_if( - hitToRecoTracksterVec.begin(), hitToRecoTracksterVec.end(), [recoTracksterIndex](const auto& pair) { - return pair.first == recoTracksterIndex; - }) == hitToRecoTracksterVec.end()) { - hitToAssociatedRecoTracksterMap.insert(i, recoTracksterIndex, 0.f); - } - } - } - - const float invDenominator = 1.f / simToRecoScoresDenominator; - - for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { - const auto& [hitIndex, simTracksterFraction] = simTracksterHitsAndFractions[i]; - const auto& recHit = rechitManager[hitIndex]; - float simFraction = simFractions[i]; - float squaredSimFraction = simFraction * simFraction; - float squaredRecHitEnergy = recHit.energy() * recHit.energy(); - float simSharedEnergy = recHit.energy() * simFraction; - - const auto& hitToRecoTracksterVec = hitToAssociatedRecoTracksterMap[i]; - for (const auto& [recoTracksterIndex, recoFraction] : hitToRecoTracksterVec) { - edm::Ref> recoTracksterRef(recoTrackstersHandle, recoTracksterIndex); - float sharedEnergy = std::min(recoFraction * recHit.energy(), simSharedEnergy); - float squaredFraction = - std::min(squaredSimFraction, (recoFraction - simFraction) * (recoFraction - simFraction)); - float score = invDenominator * squaredFraction * squaredRecHitEnergy; - simTracksterFromCPToTracksterMap->insert(simTracksterRef, recoTracksterRef, sharedEnergy, score); - } - } - } - tracksterToSimTracksterMap->sort(true); - tracksterToSimTracksterFromCPMap->sort(true); - simTracksterToTracksterMap->sort(true); - simTracksterFromCPToTracksterMap->sort(true); - - iEvent.put(std::move(tracksterToSimTracksterMap), "tracksterToSimTracksterMap"); - iEvent.put(std::move(tracksterToSimTracksterFromCPMap), "tracksterToSimTracksterFromCPMap"); - iEvent.put(std::move(simTracksterToTracksterMap), "simTracksterToTracksterMap"); - iEvent.put(std::move(simTracksterFromCPToTracksterMap), "simTracksterFromCPToTracksterMap"); -} - -void TracksterToSimTracksterAssociatorByHitsProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - edm::ParameterSetDescription desc; - desc.add("tracksters", edm::InputTag("ticlTrackstersMerge")); - desc.add("simTracksters", edm::InputTag("ticlSimTracksters")); - desc.add("simTrackstersFromCP", edm::InputTag("ticlSimTracksters", "fromCPs")); - - desc.add("hitToTracksterMap", edm::InputTag("hitToTracksterAssociator", "hitToTracksterMap")); - desc.add("hitToSimTracksterMap", - edm::InputTag("allHitToTracksterAssociations", "hitToticlSimTracksters")); - desc.add("hitToSimTracksterFromCPMap", - edm::InputTag("allHitToTracksterAssociations", "hitToticlSimTrackstersfromCPs")); - desc.add("hitToSimClusterMap", - edm::InputTag("hitToSimClusterCaloParticleAssociator", "hitToSimClusterMap")); - desc.add("hitToCaloParticleMap", - edm::InputTag("hitToSimClusterCaloParticleAssociator", "hitToCaloParticleMap")); - desc.add("tracksterToHitMap", edm::InputTag("hitToTrackstersAssociationPR", "tracksterToHitMap")); - desc.add("simTracksterToHitMap", - edm::InputTag("allHitToTracksterAssociations", "ticlSimTrackstersToHit")); - desc.add("simTracksterFromCPToHitMap", - edm::InputTag("allHitToTracksterAssociations", "ticlSimTrackstersfromCPsToHit")); - desc.add("caloParticles", edm::InputTag("mix", "MergedCaloTruth")); - - desc.add>("hits", - {edm::InputTag("HGCalRecHit", "HGCEERecHits"), - edm::InputTag("HGCalRecHit", "HGCHEFRecHits"), - edm::InputTag("HGCalRecHit", "HGCHEBRecHits")}); - descriptions.add("tracksterToSimTracksterAssociatorByHitsProducer", desc); -} - -// Define this as a plug-in -DEFINE_FWK_MODULE(TracksterToSimTracksterAssociatorByHitsProducer); \ No newline at end of file diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorByHitsProducer.h b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorByHitsProducer.h deleted file mode 100644 index ae38d6ceb797a..0000000000000 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorByHitsProducer.h +++ /dev/null @@ -1,48 +0,0 @@ -// Author: Felice Pantaleo, felice.pantaleo@cern.ch 06/2024 - -#ifndef TracksterToSimTracksterAssociatorByHitsProducer_h -#define TracksterToSimTracksterAssociatorByHitsProducer_h - -#include - -#include "FWCore/Framework/interface/global/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/EDGetToken.h" -#include "DataFormats/HGCalReco/interface/Trackster.h" -#include "SimDataFormats/Associations/interface/TICLAssociationMap.h" -#include "DataFormats/Provenance/interface/ProductID.h" -#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" -#include "CommonTools/RecoAlgos/interface/MultiVectorManager.h" -#include "SimDataFormats/CaloAnalysis/interface/CaloParticle.h" -#include "SimDataFormats/CaloAnalysis/interface/SimCluster.h" - -class TracksterToSimTracksterAssociatorByHitsProducer : public edm::global::EDProducer<> { -public: - explicit TracksterToSimTracksterAssociatorByHitsProducer(const edm::ParameterSet&); - ~TracksterToSimTracksterAssociatorByHitsProducer() override; - - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - -private: - void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; - - edm::EDGetTokenT> recoTracksterCollectionToken_; - edm::EDGetTokenT> simTracksterCollectionToken_; - edm::EDGetTokenT> simTracksterFromCPCollectionToken_; - edm::EDGetTokenT> hitToTracksterMapToken_; - edm::EDGetTokenT> hitToSimTracksterMapToken_; - edm::EDGetTokenT> hitToSimTracksterFromCPMapToken_; - edm::EDGetTokenT> hitToSimClusterMapToken_; - edm::EDGetTokenT> hitToCaloParticleMapToken_; - edm::EDGetTokenT> tracksterToHitMapToken_; - edm::EDGetTokenT> simTracksterToHitMapToken_; - edm::EDGetTokenT> simTracksterFromCPToHitMapToken_; - edm::EDGetTokenT> caloParticleToken_; - std::vector> hitsTokens_; -}; - -#endif diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorProducer.cc deleted file mode 100644 index addadd8e4b1e8..0000000000000 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorProducer.cc +++ /dev/null @@ -1,202 +0,0 @@ -// Author: Felice Pantaleo, felice.pantaleo@cern.ch 06/2024 - -#include "TracksterToSimTracksterAssociatorProducer.h" -#include "SimDataFormats/Associations/interface/TICLAssociationMap.h" - -TracksterToSimTracksterAssociatorProducer::TracksterToSimTracksterAssociatorProducer(const edm::ParameterSet& pset) - : recoTracksterCollectionToken_( - consumes>(pset.getParameter("tracksters"))), - simTracksterCollectionToken_( - consumes>(pset.getParameter("simTracksters"))), - layerClustersCollectionToken_( - consumes>(pset.getParameter("layerClusters"))), - LayerClusterToTracksterMapToken_( - consumes< - ticl::AssociationMap, std::vector>>( - pset.getParameter("tracksterMap"))), - LayerClusterToSimTracksterMapToken_( - consumes< - ticl::AssociationMap, std::vector>>( - pset.getParameter("simTracksterMap"))) { - produces< - ticl::AssociationMap, std::vector>>( - "tracksterToSimTracksterMap"); - produces< - ticl::AssociationMap, std::vector>>( - "simTracksterToTracksterMap"); -} - -TracksterToSimTracksterAssociatorProducer::~TracksterToSimTracksterAssociatorProducer() {} - -void TracksterToSimTracksterAssociatorProducer::produce(edm::StreamID, - edm::Event& iEvent, - const edm::EventSetup& iSetup) const { - edm::Handle> recoTrackstersHandle; - iEvent.getByToken(recoTracksterCollectionToken_, recoTrackstersHandle); - const auto& recoTracksters = *recoTrackstersHandle; - - edm::Handle> simTrackstersHandle; - iEvent.getByToken(simTracksterCollectionToken_, simTrackstersHandle); - const auto& simTracksters = *simTrackstersHandle; - - edm::Handle> layerClustersHandle; - iEvent.getByToken(layerClustersCollectionToken_, layerClustersHandle); - const auto& layerClusters = *layerClustersHandle; - - edm::Handle, std::vector>> - layerClusterToTracksterMapHandle; - iEvent.getByToken(LayerClusterToTracksterMapToken_, layerClusterToTracksterMapHandle); - const auto& layerClusterToTracksterMap = *layerClusterToTracksterMapHandle; - - edm::Handle, std::vector>> - layerClusterToSimTracksterMapHandle; - iEvent.getByToken(LayerClusterToSimTracksterMapToken_, layerClusterToSimTracksterMapHandle); - const auto& layerClusterToSimTracksterMap = *layerClusterToSimTracksterMapHandle; - - auto tracksterToSimTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( - recoTrackstersHandle, simTrackstersHandle, iEvent); - auto simTracksterToTracksterMap = std::make_unique< - ticl::AssociationMap, std::vector>>( - simTrackstersHandle, recoTrackstersHandle, iEvent); - - for (unsigned int tracksterIndex = 0; tracksterIndex < recoTracksters.size(); ++tracksterIndex) { - const auto& recoTrackster = recoTracksters[tracksterIndex]; - edm::Ref> recoTracksterRef(recoTrackstersHandle, tracksterIndex); - const auto& layerClustersIds = recoTrackster.vertices(); - float recoToSimScoresDenominator = 0.f; - ticl::mapWithFraction layerClusterToAssociatedSimTracksterMap(layerClustersIds.size()); - std::vector associatedSimTracksterIndices; - for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { - unsigned int layerClusterId = layerClustersIds[i]; - const auto& layerCluster = layerClusters[layerClusterId]; - float recoFraction = 1.f / recoTrackster.vertex_multiplicity(i); - float squaredRecoFraction = recoFraction * recoFraction; - float squaredLayerClusterEnergy = layerCluster.energy() * layerCluster.energy(); - recoToSimScoresDenominator += squaredLayerClusterEnergy * squaredRecoFraction; - const auto& simTracksterVec = layerClusterToSimTracksterMap[layerClusterId]; - for (const auto& [simTracksterIndex, simSharedEnergy] : simTracksterVec) { - layerClusterToAssociatedSimTracksterMap[i].push_back({simTracksterIndex, simSharedEnergy}); - associatedSimTracksterIndices.push_back(simTracksterIndex); - } - } - - // Keep only unique associatedSimTracksterIndices - std::sort(associatedSimTracksterIndices.begin(), associatedSimTracksterIndices.end()); - associatedSimTracksterIndices.erase( - std::unique(associatedSimTracksterIndices.begin(), associatedSimTracksterIndices.end()), - associatedSimTracksterIndices.end()); - - // Add missing sim tracksters with 0 shared energy to layerClusterToAssociatedSimTracksterMap - for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { - unsigned int layerClusterId = layerClustersIds[i]; - const auto& simTracksterVec = layerClusterToSimTracksterMap[layerClusterId]; - for (unsigned int simTracksterIndex : associatedSimTracksterIndices) { - if (std::find_if(simTracksterVec.begin(), simTracksterVec.end(), [simTracksterIndex](const auto& pair) { - return pair.first == simTracksterIndex; - }) == simTracksterVec.end()) { - layerClusterToAssociatedSimTracksterMap[i].push_back({simTracksterIndex, 0.f}); - } - } - } - - const float invDenominator = 1.f / recoToSimScoresDenominator; - - for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { - unsigned int layerClusterId = layerClustersIds[i]; - const auto& layerCluster = layerClusters[layerClusterId]; - float recoFraction = 1.f / recoTrackster.vertex_multiplicity(i); - float squaredRecoFraction = recoFraction * recoFraction; - float squaredLayerClusterEnergy = layerCluster.energy() * layerCluster.energy(); - float recoSharedEnergy = layerCluster.energy() * recoFraction; - float invLayerClusterEnergy = 1.f / layerCluster.energy(); - const auto& simTracksterVec = layerClusterToAssociatedSimTracksterMap[i]; - for (const auto& [simTracksterIndex, simSharedEnergy] : simTracksterVec) { - edm::Ref> simTracksterRef(simTrackstersHandle, simTracksterIndex); - float sharedEnergy = std::min(simSharedEnergy, recoSharedEnergy); - float simFraction = simSharedEnergy * invLayerClusterEnergy; - float score = invDenominator * - std::min(squaredRecoFraction, (recoFraction - simFraction) * (recoFraction - simFraction)) * - squaredLayerClusterEnergy; - tracksterToSimTracksterMap->insert(recoTracksterRef, simTracksterRef, sharedEnergy, score); - } - } - } - - for (unsigned int tracksterIndex = 0; tracksterIndex < simTracksters.size(); ++tracksterIndex) { - const auto& simTrackster = simTracksters[tracksterIndex]; - edm::Ref> simTracksterRef(simTrackstersHandle, tracksterIndex); - const auto& layerClustersIds = simTrackster.vertices(); - float simToRecoScoresDenominator = 0.f; - ticl::mapWithFraction layerClusterToAssociatedTracksterMap(layerClustersIds.size()); - std::vector associatedRecoTracksterIndices; - for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { - unsigned int layerClusterId = layerClustersIds[i]; - const auto& layerCluster = layerClusters[layerClusterId]; - float simFraction = 1.f / simTrackster.vertex_multiplicity(i); - float squaredSimFraction = simFraction * simFraction; - float squaredLayerClusterEnergy = layerCluster.energy() * layerCluster.energy(); - simToRecoScoresDenominator += squaredLayerClusterEnergy * squaredSimFraction; - const auto& recoTracksterVec = layerClusterToTracksterMap[layerClusterId]; - for (const auto& [recoTracksterIndex, recoSharedEnergy] : recoTracksterVec) { - layerClusterToAssociatedTracksterMap[i].push_back({recoTracksterIndex, recoSharedEnergy}); - associatedRecoTracksterIndices.push_back(recoTracksterIndex); - } - } - // keep only unique associatedRecoTracksterIndices - std::sort(associatedRecoTracksterIndices.begin(), associatedRecoTracksterIndices.end()); - associatedRecoTracksterIndices.erase( - std::unique(associatedRecoTracksterIndices.begin(), associatedRecoTracksterIndices.end()), - associatedRecoTracksterIndices.end()); - // for each layer cluster, loop over associatedRecoTracksterIndices and add the missing reco tracksters with 0 shared energy to layerClusterToAssociatedTracksterMap - for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { - unsigned int layerClusterId = layerClustersIds[i]; - const auto& recoTracksterVec = layerClusterToTracksterMap[layerClusterId]; - for (unsigned int recoTracksterIndex : associatedRecoTracksterIndices) { - if (std::find_if(recoTracksterVec.begin(), recoTracksterVec.end(), [recoTracksterIndex](const auto& pair) { - return pair.first == recoTracksterIndex; - }) == recoTracksterVec.end()) { - layerClusterToAssociatedTracksterMap[i].push_back({recoTracksterIndex, 0.f}); - } - } - } - - const float invDenominator = 1.f / simToRecoScoresDenominator; - - for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { - unsigned int layerClusterId = layerClustersIds[i]; - const auto& layerCluster = layerClusters[layerClusterId]; - float simFraction = 1.f / simTrackster.vertex_multiplicity(i); - float squaredSimFraction = simFraction * simFraction; - float squaredLayerClusterEnergy = layerCluster.energy() * layerCluster.energy(); - float simSharedEnergy = layerCluster.energy() * simFraction; - float invLayerClusterEnergy = 1.f / layerCluster.energy(); - const auto& recoTracksterVec = layerClusterToAssociatedTracksterMap[i]; - for (const auto& [recoTracksterIndex, recoSharedEnergy] : recoTracksterVec) { - edm::Ref> recoTracksterRef(recoTrackstersHandle, recoTracksterIndex); - float sharedEnergy = std::min(recoSharedEnergy, simSharedEnergy); - float recoFraction = recoSharedEnergy * invLayerClusterEnergy; - float score = invDenominator * - std::min(squaredSimFraction, (simFraction - recoFraction) * (simFraction - recoFraction)) * - squaredLayerClusterEnergy; - simTracksterToTracksterMap->insert(tracksterIndex, recoTracksterIndex, sharedEnergy, score); - } - } - } - tracksterToSimTracksterMap->sort(true); - simTracksterToTracksterMap->sort(true); - iEvent.put(std::move(tracksterToSimTracksterMap), "tracksterToSimTracksterMap"); - iEvent.put(std::move(simTracksterToTracksterMap), "simTracksterToTracksterMap"); -} - -void TracksterToSimTracksterAssociatorProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - edm::ParameterSetDescription desc; - desc.add("tracksters", edm::InputTag("trackstersProducer")); - desc.add("simTracksters", edm::InputTag("simTrackstersProducer")); - desc.add("layerClusters", edm::InputTag("hgcalMergeLayerClusters")); - desc.add("tracksterMap", edm::InputTag("tracksterAssociatorProducer")); - desc.add("simTracksterMap", edm::InputTag("simTracksterAssociatorProducer")); - descriptions.add("tracksterToSimTracksterAssociatorProducer", desc); -} - -DEFINE_FWK_MODULE(TracksterToSimTracksterAssociatorProducer); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorProducer.h b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorProducer.h deleted file mode 100644 index d7854d9549e10..0000000000000 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterToSimTracksterAssociatorProducer.h +++ /dev/null @@ -1,44 +0,0 @@ -// Author: Felice Pantaleo, felice.pantaleo@cern.ch 06/2024 - -#ifndef TracksterToSimTracksterAssociatorProducer_h -#define TracksterToSimTracksterAssociatorProducer_h - -#include -#include -#include -#include -#include - -#include "FWCore/Framework/interface/global/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/EDGetToken.h" -#include "DataFormats/HGCalReco/interface/Trackster.h" -#include "DataFormats/CaloRecHit/interface/CaloCluster.h" -#include "SimDataFormats/Associations/interface/TICLAssociationMap.h" - -class TracksterToSimTracksterAssociatorProducer : public edm::global::EDProducer<> { -public: - explicit TracksterToSimTracksterAssociatorProducer(const edm::ParameterSet&); - ~TracksterToSimTracksterAssociatorProducer() override; - - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - -private: - void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; - - edm::EDGetTokenT> recoTracksterCollectionToken_; - edm::EDGetTokenT> simTracksterCollectionToken_; - edm::EDGetTokenT> layerClustersCollectionToken_; - edm::EDGetTokenT< - ticl::AssociationMap, std::vector>> - LayerClusterToTracksterMapToken_; - edm::EDGetTokenT< - ticl::AssociationMap, std::vector>> - LayerClusterToSimTracksterMapToken_; -}; - -#endif diff --git a/SimCalorimetry/HGCalAssociatorProducers/python/TSToSimTSAssociationByHits_cfi.py b/SimCalorimetry/HGCalAssociatorProducers/python/TSToSimTSAssociationByHits_cfi.py index eefe81b702bff..43a05ba1b9743 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/python/TSToSimTSAssociationByHits_cfi.py +++ b/SimCalorimetry/HGCalAssociatorProducers/python/TSToSimTSAssociationByHits_cfi.py @@ -1,34 +1,5 @@ import FWCore.ParameterSet.Config as cms from SimCalorimetry.HGCalAssociatorProducers.HitToTracksterAssociation_cfi import * -from SimCalorimetry.HGCalAssociatorProducers.tracksterToSimTracksterAssociatorByHitsProducer_cfi import tracksterToSimTracksterAssociatorByHitsProducer - - - -tracksterSimTracksterAssociationByHitsLinking = tracksterToSimTracksterAssociatorByHitsProducer.clone( - tracksters = cms.InputTag("ticlTrackstersMerge"), - hitToTracksterMap = cms.InputTag("allHitToTracksterAssociations","hitTo"+"ticlTrackstersMerge"), - tracksterToHitMap = cms.InputTag("allHitToTracksterAssociations","ticlTrackstersMerge"+"ToHit"), - hitToSimTracksterMap = cms.InputTag("allHitToTracksterAssociations", "hitTo"+"ticlSimTracksters"), - hitToSimTracksterFromCPMap = cms.InputTag("allHitToTracksterAssociations", 'hitTo'+'ticlSimTracksters'+'fromCPs'), - simTracksterToHitMap = cms.InputTag('allHitToTracksterAssociations', 'ticlSimTracksters'+'ToHit'), - simTracksterFromCPToHitMap = cms.InputTag('allHitToTracksterAssociations', 'ticlSimTracksters'+'fromCPs'+'ToHit'), -) - - -tracksterSimTracksterAssociationByHitsPR = tracksterToSimTracksterAssociatorByHitsProducer.clone( - tracksters = cms.InputTag("ticlTrackstersCLUE3DHigh"), - hitToTracksterMap = cms.InputTag("allHitToTracksterAssociations","hitTo"+"ticlTrackstersCLUE3DHigh"), - tracksterToHitMap = cms.InputTag("allHitToTracksterAssociations","ticlTrackstersCLUE3DHigh"+"ToHit"), -) - - - -from Configuration.ProcessModifiers.ticl_v5_cff import ticl_v5 - -ticl_v5.toModify(tracksterSimTracksterAssociationByHitsLinking, tracksters = cms.InputTag("ticlCandidate"), hitToTracksterMap = cms.InputTag("allHitToTracksterAssociations","hitTo"+"ticlCandidate"), tracksterToHitMap = cms.InputTag("allHitToTracksterAssociations","ticlCandidate"+"ToHit")) - - - from SimCalorimetry.HGCalAssociatorProducers.AllTracksterToSimTracksterAssociatorsByHitsProducer_cfi import AllTracksterToSimTracksterAssociatorsByHitsProducer from RecoHGCal.TICL.iterativeTICL_cff import ticlIterLabels @@ -45,14 +16,6 @@ from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 -premix_stage2.toModify(tracksterSimTracksterAssociationByHitsLinking, - caloParticles = "mixData:MergedCaloTruth", -) - -premix_stage2.toModify(tracksterSimTracksterAssociationByHitsPR, - caloParticles = "mixData:MergedCaloTruth", -) - premix_stage2.toModify(allTrackstersToSimTrackstersAssociationsByHits, caloParticles = "mixData:MergedCaloTruth", ) diff --git a/SimCalorimetry/HGCalAssociatorProducers/python/TSToSimTSAssociation_cfi.py b/SimCalorimetry/HGCalAssociatorProducers/python/TSToSimTSAssociation_cfi.py index 92a527475a641..374a01fb24efe 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/python/TSToSimTSAssociation_cfi.py +++ b/SimCalorimetry/HGCalAssociatorProducers/python/TSToSimTSAssociation_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms from SimCalorimetry.HGCalAssociatorProducers.LCToTSAssociator_cfi import layerClusterToCLUE3DTracksterAssociation, layerClusterToTracksterMergeAssociation, layerClusterToSimTracksterAssociation, layerClusterToSimTracksterFromCPsAssociation -from SimCalorimetry.HGCalAssociatorProducers.tracksterToSimTracksterAssociatorProducer_cfi import tracksterToSimTracksterAssociatorProducer from Configuration.ProcessModifiers.ticl_v5_cff import ticl_v5 from Configuration.ProcessModifiers.ticl_superclustering_mustache_ticl_cff import ticl_superclustering_mustache_ticl From 101d5a0fae8a08ec7b915e74ecd817ff34cb400f Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Thu, 14 Nov 2024 11:19:28 +0100 Subject: [PATCH 177/418] cleanup event content. Add SimTauProducer. --- .../python/RecoHGCal_EventContent_cff.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/RecoHGCal/Configuration/python/RecoHGCal_EventContent_cff.py b/RecoHGCal/Configuration/python/RecoHGCal_EventContent_cff.py index d23503818ea8d..679ee3c68fd4a 100644 --- a/RecoHGCal/Configuration/python/RecoHGCal_EventContent_cff.py +++ b/RecoHGCal/Configuration/python/RecoHGCal_EventContent_cff.py @@ -23,7 +23,7 @@ ['keep *_pfTICL_*_*'] + ['keep CaloParticles_mix_*_*', 'keep SimClusters_mix_*_*', 'keep *_SimClusterToCaloParticleAssociation*_*_*'] + ['keep *_SimClusterToCaloParticleAssociation*_*_*', 'keep *_layerClusterSimClusterAssociationProducer_*_*','keep *_layerClusterCaloParticleAssociationProducer_*_*', 'keep *_layerClusterSimTracksterAssociationProducer_*_*'] + - ['keep *_tracksterSimTracksterAssociation*_*_*' , 'keep *_tracksterSimTracksterFromCPsAssociation*_*_*' ] + ['keep *_allTrackstersToSimTrackstersAssociations*_*_*'] ) ) @@ -50,7 +50,8 @@ 'keep *_ticlSimTracksters_*_*', 'keep *_ticlSimTICLCandidates_*_*', 'keep *_ticlSimTrackstersFromCP_*_*', - 'keep *_SimTau*_*_*' + 'keep *_SimTau*_*_*', + 'keep *_allTrackstersToSimTrackstersAssociations*_*_*' ) ) TICL_FEVT.outputCommands.extend(TICL_RECO.outputCommands) @@ -61,6 +62,7 @@ 'keep *_ticlSimTrackstersFromCP_*_*', 'keep CaloParticles_mix_*_*', 'keep SimClusters_mix_*_*', 'keep *_SimClusterToCaloParticleAssociation*_*_*', 'keep *_SimClusterToCaloParticleAssociation*_*_*', 'keep *_layerClusterSimClusterAssociationProducer_*_*','keep *_layerClusterCaloParticleAssociationProducer_*_*', 'keep *_layerClusterSimTracksterAssociationProducer_*_*', + 'keep *_SimTau*_*_*', 'keep *_allTrackstersToSimTrackstersAssociations*_*_*' ) @@ -110,10 +112,10 @@ def cleanOutputAndSet(outputModule, ticl_outputCommads): 'keep *_layerClusterCaloParticleAssociationProducer_*_*', 'keep *_randomEngineStateProducer_*_*', 'keep *_layerClusterSimTracksterAssociationProducer_*_*', - 'keep *_tracksterSimTracksterAssociation*_*_*', - 'keep *_tracksterSimTracksterFromCPsAssociation*_*_*', 'keep *_SimClusterToCaloParticleAssociation*_*_*', - 'keep *_simClusterToCaloParticleAssociator*_*_*' + 'keep *_simClusterToCaloParticleAssociator*_*_*', + 'keep *_SimTau*_*_*', + 'keep *_allTrackstersToSimTrackstersAssociations*_*_*' ]) if hasattr(process, 'FEVTDEBUGEventContent'): From 1d06568935a71cbac01548d9b81d154876c86a48 Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Thu, 14 Nov 2024 15:09:15 +0100 Subject: [PATCH 178/418] fix validation plots for ticl versions other than 5 --- Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py b/Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py index ebe15bcae0be6..2a5e3889215d5 100755 --- a/Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py +++ b/Validation/HGCalValidation/scripts/makeHGCalValidationPlots.py @@ -28,9 +28,10 @@ tracksters = [] def main(opts): - + drawArgs={} extendedFlag = False + ticlVersion = 4 if opts.no_ratio: drawArgs["ratio"] = False if opts.separate: From 63911b543300f51bb75a7974692e16561258e23e Mon Sep 17 00:00:00 2001 From: Patin Inkaew Date: Fri, 29 Nov 2024 23:58:52 +0100 Subject: [PATCH 179/418] add comment why the customise_commands is needed for ScoutingPFMonitor in 2024 (following Huilin's suggestion) --- Configuration/PyReleaseValidation/python/relval_nano.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Configuration/PyReleaseValidation/python/relval_nano.py b/Configuration/PyReleaseValidation/python/relval_nano.py index 4ee1f5e2242d9..b9e8e886e18fc 100644 --- a/Configuration/PyReleaseValidation/python/relval_nano.py +++ b/Configuration/PyReleaseValidation/python/relval_nano.py @@ -250,7 +250,10 @@ def subnext(self): steps['scoutingNANO_data14.0'] = merge([{'-s': 'NANO:@Scout'}, steps['NANO_data14.0']]) -steps['scoutingNANO_withPrompt_data14.0'] = merge([{'-s': 'NANO:@Prompt+@Scout', '--customise_commands': '"process.options.TryToContinue = cms.untracked.vstring(\'ProductNotFound\')"'}, +# Process.options.TryToContinue = cms.untracked.vstring(\'ProductNotFound\') is needed here because some events in ScoutingPFMonitor in 2024 do not contain scouting objects. +# This should be fixed in 2025 (https://its.cern.ch/jira/browse/CMSHLT-3331) so customise_commands won't be needed for 2025 workflow. +steps['scoutingNANO_withPrompt_data14.0'] = merge([{'-s': 'NANO:@Prompt+@Scout', + '--customise_commands': '"process.options.TryToContinue = cms.untracked.vstring(\'ProductNotFound\')"'}, steps['NANO_data14.0']]) # DPG custom NANO From 23b914855d3e8f50a5c95547a8cfc1bd8df5671c Mon Sep 17 00:00:00 2001 From: Andrea Date: Sat, 30 Nov 2024 09:04:49 +0100 Subject: [PATCH 180/418] Remove obsolete SCAL test --- .../python/clients/dt4ml_dqm_sourceclient-live_cfg.py | 2 +- DQM/Integration/test/BuildFile.xml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/DQM/Integration/python/clients/dt4ml_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/dt4ml_dqm_sourceclient-live_cfg.py index f22af9badb086..c5b3f8ef50b19 100644 --- a/DQM/Integration/python/clients/dt4ml_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/dt4ml_dqm_sourceclient-live_cfg.py @@ -117,7 +117,7 @@ process.twinMuxStage2Digis.DTTM7_FED_Source = "rawDataRepacker" process.dtunpacker.inputLabel = "rawDataRepacker" process.gtDigis.DaqGtInputTag = "rawDataRepacker" - process.gtStage2Digis.InputLabel = "rawDataCollector" + process.gtStage2Digis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" process.dtDigiMonitor.ResetCycle = 9999 diff --git a/DQM/Integration/test/BuildFile.xml b/DQM/Integration/test/BuildFile.xml index dbaf361425d62..fe039da69dc27 100644 --- a/DQM/Integration/test/BuildFile.xml +++ b/DQM/Integration/test/BuildFile.xml @@ -20,7 +20,8 @@ - + + From a158f819ed3caca36e87500db3ce68ad7c59d98b Mon Sep 17 00:00:00 2001 From: leonardo Date: Sat, 30 Nov 2024 00:53:33 -0800 Subject: [PATCH 181/418] add isFinite check + range --- RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc b/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc index 3505fd396fdb8..a81a2dacc3226 100644 --- a/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc +++ b/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc @@ -432,7 +432,7 @@ namespace { //float s[nmax - nmin]; //first iteration outside the loop #pragma omp simd - for (int n = 0; n < NN; ++n) { + for (int n = 0; n < N_proc; ++n) { s[n] = (std::abs(plNrm(n, 2, 0)) < 1.f ? getS(delta0[n], delta1[n], delta2[n], @@ -463,7 +463,7 @@ namespace { // Note, sinT/cosT not updated #pragma omp simd - for (int n = 0; n < NN; ++n) { + for (int n = 0; n < N_proc; ++n) { s[n] += (std::abs(plNrm(n, 2, 0)) < 1.f ? getS(delta0[n], delta1[n], @@ -483,14 +483,14 @@ namespace { } //end Niter-1 // use linear approximation if s did not converge (for very high pT tracks) - for (int n = 0; n < NN; ++n) { + for (int n = 0; n < N_proc; ++n) { #ifdef DEBUG if (debug) std::cout << "s[n]=" << s[n] << " sl[n]=" << sl[n] << " std::isnan(s[n])=" << std::isnan(s[n]) << " std::isfinite(s[n])=" << std::isfinite(s[n]) << " std::isnormal(s[n])=" << std::isnormal(s[n]) << std::endl; #endif - if (0) //(mkfit::isFinite(s[n])==false && mkfit::isFinite(sl[n])) // needs more checks because it looks worse + if (mkfit::isFinite(s[n]) == false && mkfit::isFinite(sl[n])) // replace with sl even if not fully correct s[n] = sl[n]; } From 958ec121d3214955f8e57ae306a49342b1973952 Mon Sep 17 00:00:00 2001 From: mmusich Date: Sat, 30 Nov 2024 14:57:36 +0100 Subject: [PATCH 182/418] TriggerResultsFilterFromDB: accept all triggers paths in presence of an empty list of expressions --- HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc b/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc index 0b79f8f269c78..dcc60f12e7ac8 100644 --- a/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc +++ b/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc @@ -67,7 +67,8 @@ void TriggerResultsFilterFromDB::fillDescriptions(edm::ConfigurationDescriptions void TriggerResultsFilterFromDB::parse(const std::vector& expressions) { // parse the logical expressions into functionals if (expressions.empty()) { - edm::LogWarning("Configuration") << "Empty trigger results expression"; + edm::LogWarning("Configuration") << "Empty trigger results expression. Will substitute with *"; + m_expression = triggerExpression::parse("*"); } else if (expressions.size() == 1) { parse(expressions[0]); } else { From cf3e809ac35a1ba8c034daf05675e55f59592e8c Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Fri, 29 Nov 2024 13:34:30 +0100 Subject: [PATCH 183/418] Optimise muon seed MVA classifier - Add early return in case either input collection is empty - Swap std::sort with std::partial_sort --- .../plugins/MuonHLTSeedMVAClassifierPhase2.cc | 53 ++++++++++++------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/RecoMuon/TrackerSeedGenerator/plugins/MuonHLTSeedMVAClassifierPhase2.cc b/RecoMuon/TrackerSeedGenerator/plugins/MuonHLTSeedMVAClassifierPhase2.cc index 3f6a6a75a2d5e..a5e5c63537482 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/MuonHLTSeedMVAClassifierPhase2.cc +++ b/RecoMuon/TrackerSeedGenerator/plugins/MuonHLTSeedMVAClassifierPhase2.cc @@ -142,23 +142,12 @@ MuonHLTSeedMVAClassifierPhase2::MuonHLTSeedMVAClassifierPhase2(const edm::Parame void MuonHLTSeedMVAClassifierPhase2::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { auto result = std::make_unique(); - edm::ESHandle trkGeom = iSetup.getHandle(trackerGeometryESToken_); - edm::ESHandle geomDet = iSetup.getHandle(geomDetESToken_); - edm::ESHandle trkTopo = iSetup.getHandle(trackerTopologyESToken_); - - GeometricSearchTrackerBuilder builder; - GeometricSearchTracker geomTracker = *(builder.build(&(*geomDet), &(*trkGeom), &(*trkTopo))); - edm::Handle h_L1TkMu; bool hasL1TkMu = iEvent.getByToken(t_L1TkMu_, h_L1TkMu); edm::Handle h_Seed; bool hasSeed = iEvent.getByToken(t_Seed_, h_Seed); - edm::ESHandle magfieldH = iSetup.getHandle(magFieldESToken_); - edm::ESHandle propagatorAlongH = iSetup.getHandle(propagatorESToken_); - std::unique_ptr propagatorAlong = SetPropagationDirection(*propagatorAlongH, alongMomentum); - if (!(hasL1TkMu && hasSeed)) { edm::LogError("SeedClassifierError") << "Error! Cannot find L1TkMuon or TrajectorySeed\n" << "hasL1TkMu : " << hasL1TkMu << "\n" @@ -166,6 +155,30 @@ void MuonHLTSeedMVAClassifierPhase2::produce(edm::Event& iEvent, const edm::Even return; } + if (h_L1TkMu->size() == 0 or h_Seed->size() == 0) { + if (h_Seed->size() != 0) { + edm::LogInfo("SeedClassifierError") << "Empty L1TkMu collection" << '\n'; + } + if (h_L1TkMu->size() != 0) { + edm::LogInfo("SeedClassifierError") << "Empty Muon Pixel seeds collection" << '\n'; + } else { + edm::LogInfo("SeedClassifierError") << "Empty L1TkMu and Muon Pixel seeds collections" << '\n'; + } + iEvent.put(std::move(result)); + return; + } + + edm::ESHandle trkGeom = iSetup.getHandle(trackerGeometryESToken_); + edm::ESHandle geomDet = iSetup.getHandle(geomDetESToken_); + edm::ESHandle trkTopo = iSetup.getHandle(trackerTopologyESToken_); + + GeometricSearchTrackerBuilder builder; + GeometricSearchTracker geomTracker = *(builder.build(&(*geomDet), &(*trkGeom), &(*trkTopo))); + + edm::ESHandle magfieldH = iSetup.getHandle(magFieldESToken_); + edm::ESHandle propagatorAlongH = iSetup.getHandle(propagatorESToken_); + std::unique_ptr propagatorAlong = SetPropagationDirection(*propagatorAlongH, alongMomentum); + // -- sort seeds by MVA score and chooes top nSeedsMax_B_ / nSeedsMax_E_ if (doSort_) { std::vector> pairSeedIdxMvaScore_B = {}; @@ -204,19 +217,21 @@ void MuonHLTSeedMVAClassifierPhase2::produce(edm::Event& iEvent, const edm::Even pairSeedIdxMvaScore_E.push_back(make_pair(i, logistic)); } - std::sort(pairSeedIdxMvaScore_B.begin(), pairSeedIdxMvaScore_B.end(), sortByMvaScorePhase2); - std::sort(pairSeedIdxMvaScore_E.begin(), pairSeedIdxMvaScore_E.end(), sortByMvaScorePhase2); + std::partial_sort(pairSeedIdxMvaScore_B.begin(), + std::min(pairSeedIdxMvaScore_B.begin() + nSeedsMax_B_, pairSeedIdxMvaScore_B.end()), + pairSeedIdxMvaScore_B.end(), + sortByMvaScorePhase2); + std::partial_sort(pairSeedIdxMvaScore_E.begin(), + std::min(pairSeedIdxMvaScore_E.begin() + nSeedsMax_E_, pairSeedIdxMvaScore_E.end()), + pairSeedIdxMvaScore_E.end(), + sortByMvaScorePhase2); - for (auto i = 0U; i < pairSeedIdxMvaScore_B.size(); ++i) { - if ((int)i == nSeedsMax_B_) - break; + for (size_t i = 0; i < std::min(pairSeedIdxMvaScore_B.size(), static_cast(nSeedsMax_B_)); ++i) { const auto& seed(h_Seed->at(pairSeedIdxMvaScore_B.at(i).first)); result->emplace_back(seed); } - for (auto i = 0U; i < pairSeedIdxMvaScore_E.size(); ++i) { - if ((int)i == nSeedsMax_E_) - break; + for (size_t i = 0; i < std::min(pairSeedIdxMvaScore_E.size(), static_cast(nSeedsMax_E_)); ++i) { const auto& seed(h_Seed->at(pairSeedIdxMvaScore_E.at(i).first)); result->emplace_back(seed); } From af83a931a2387c4f6ca2048cb05d8f726c77ef29 Mon Sep 17 00:00:00 2001 From: Adriano Di Florio Date: Mon, 2 Dec 2024 12:59:56 +0100 Subject: [PATCH 184/418] Use `Run4` for Phase2 PU inputs --- Configuration/PyReleaseValidation/python/relval_steps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 5458f87c75fdb..7b1c10ea46bbc 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -4433,7 +4433,7 @@ def gen2024HiMix(fragment,howMuch): PUDataSets[ds]={'-n':10,'--pileup':'Run3_Flat55To75_PoissonOOTPU','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM'%(name,)} else: PUDataSets[ds]={'-n':10,'--pileup':'Run3_Flat55To75_PoissonOOTPU','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM-RECO'%(name,)} - elif '2026' in ds: + elif 'Run4' in ds: PUDataSets[ds]={'-n':10,'--pileup':'AVE_200_BX_25ns','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM'%(name,)} else: PUDataSets[ds]={'-n':10,'--pileup':'AVE_35_BX_25ns','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM'%(name,)} From 4e58c4f3e95604a0c04af5bd8f94f4de6cc7bc88 Mon Sep 17 00:00:00 2001 From: AdrianoDee Date: Mon, 2 Dec 2024 13:54:11 +0100 Subject: [PATCH 185/418] Disable 2022/2023 MC tests --- .../PyReleaseValidation/test/BuildFile.xml | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Configuration/PyReleaseValidation/test/BuildFile.xml b/Configuration/PyReleaseValidation/test/BuildFile.xml index f5c9f797ca5c3..3951621ad943e 100644 --- a/Configuration/PyReleaseValidation/test/BuildFile.xml +++ b/Configuration/PyReleaseValidation/test/BuildFile.xml @@ -4,24 +4,27 @@ - - - - + - + +--> - diff --git a/RecoTracker/LSTCore/BuildFile.xml b/RecoTracker/LSTCore/BuildFile.xml index 8dd2b885bf1b4..2ae780f982c34 100644 --- a/RecoTracker/LSTCore/BuildFile.xml +++ b/RecoTracker/LSTCore/BuildFile.xml @@ -2,7 +2,6 @@ - From 762219f32eaa420cfa6efa137d1fba3b9fdd0515 Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Fri, 29 Nov 2024 12:43:35 +0100 Subject: [PATCH 199/418] Implement Phase 2 Muon HLT validation PR fixes - General style and comments - Add include guards to SeedToTrackProducer modules - Split SeedToTrackProducer implementation to differentiate Phase-2 seeds from current seeds - Replace phase2_common with phase2_muon procModifier --- .../EventContent/python/EventContent_cff.py | 11 +- .../Common/python/HLTValidationHarvest_cff.py | 4 +- .../plugins/Phase2SeedToTrackProducer.cc | 146 ++++++++++++++++++ .../plugins/Phase2SeedToTrackProducer.h | 65 ++++++++ SimMuon/MCTruth/plugins/SeedToTrackProducer.h | 4 + .../MCTruth/python/SeedToTrackProducer_cfi.py | 8 + .../RecoMuon/plugins/MuonTrackValidator.cc | 121 ++++++++++++++- .../RecoMuon/plugins/MuonTrackValidatorBase.h | 10 ++ .../RecoMuon/python/PostProcessorHLT_cff.py | 35 +++-- .../RecoMuon/python/PostProcessor_cff.py | 9 ++ Validation/RecoMuon/python/associators_cff.py | 89 +++++++++++ .../RecoMuon/python/muonValidationHLT_cff.py | 102 ++++++++++-- .../RecoMuon/python/track_selectors_cff.py | 29 ++++ 13 files changed, 603 insertions(+), 30 deletions(-) create mode 100644 SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.cc create mode 100644 SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h diff --git a/Configuration/EventContent/python/EventContent_cff.py b/Configuration/EventContent/python/EventContent_cff.py index 396b424cd3da2..927c439e01b94 100644 --- a/Configuration/EventContent/python/EventContent_cff.py +++ b/Configuration/EventContent/python/EventContent_cff.py @@ -692,7 +692,16 @@ def SwapKeepAndDrop(l): ]) phase2_muon.toModify(FEVTDEBUGHLTEventContent, - outputCommands = FEVTDEBUGHLTEventContent.outputCommands + ['keep recoMuons_muons1stStep_*_*']) + outputCommands = FEVTDEBUGHLTEventContent.outputCommands + [ + 'keep recoMuons_muons1stStep_*_*', + 'keep *_hltL2MuonSeedsFromL1TkMuon_*_*', + 'keep *_hltL2MuonsFromL1TkMuon_*_*', + 'keep *_hltIter2Phase2L3FromL1TkMuonMerged_*_*', + 'keep *_hltPhase2L3OIMuonTrackSelectionHighPurity_*_*', + 'keep *_hltPhase2L3MuonMerged_*_*', + 'keep *_hltPhase2L3GlbMuon_*_*', + 'keep *_hltPhase2L3MuonsNoID_*_*', + 'keep *_hltPhase2L3Muons_*_*']) phase2_hgcal.toModify(FEVTDEBUGHLTEventContent, outputCommands = FEVTDEBUGHLTEventContent.outputCommands + TICL_FEVTHLT.outputCommands) diff --git a/HLTriggerOffline/Common/python/HLTValidationHarvest_cff.py b/HLTriggerOffline/Common/python/HLTValidationHarvest_cff.py index a1af4fbd96783..27a9a40f89e26 100644 --- a/HLTriggerOffline/Common/python/HLTValidationHarvest_cff.py +++ b/HLTriggerOffline/Common/python/HLTValidationHarvest_cff.py @@ -42,11 +42,9 @@ # Temporary Phase-2 configuration # Exclude everything except JetMET for now from Configuration.Eras.Modifier_phase2_common_cff import phase2_common -phase2_common.toReplaceWith(hltpostvalidation, hltpostvalidation.copyAndExclude([HLTMuonPostVal, - HLTTauPostVal, +phase2_common.toReplaceWith(hltpostvalidation, hltpostvalidation.copyAndExclude([HLTTauPostVal, EgammaPostVal, postProcessorHLTgsfTrackingSequence, - postProcessorHLTmuonTrackingSequence, heavyFlavorValidationHarvestingSequence, #JetMETPostVal, #HLTAlCaPostVal, diff --git a/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.cc b/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.cc new file mode 100644 index 0000000000000..5b7541068bebd --- /dev/null +++ b/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.cc @@ -0,0 +1,146 @@ +/** \class Phase2SeedToTrackProducer + * See header file for a description of this class + * \author Luca Ferragina (INFN BO), Carlo Battilana (INFN BO), 2024 + */ + +#include "Phase2SeedToTrackProducer.h" + +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" + +// +// constructors and destructor +// +Phase2SeedToTrackProducer::Phase2SeedToTrackProducer(const edm::ParameterSet &iConfig) + : theMGFieldToken(esConsumes()), theTrackingGeometryToken(esConsumes()), theTopoToken(esConsumes()) { + L2seedsTagT_ = consumes(iConfig.getParameter("L2seedsCollection")); + L2seedsTagS_ = consumes>(iConfig.getParameter("L2seedsCollection")); + + produces(); + produces(); + produces(); +} + +// +// member functions +// + +// ------------ method called to produce the data ------------ +void Phase2SeedToTrackProducer::produce(edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const { + using namespace edm; + using namespace std; + + std::unique_ptr selectedTracks(new reco::TrackCollection); + std::unique_ptr selectedTrackExtras(new reco::TrackExtraCollection()); + std::unique_ptr selectedTrackHits(new TrackingRecHitCollection()); + + reco::TrackRefProd rTracks = iEvent.getRefBeforePut(); + reco::TrackExtraRefProd rTrackExtras = iEvent.getRefBeforePut(); + TrackingRecHitRefProd rHits = iEvent.getRefBeforePut(); + + edm::Ref::key_type hidx = 0; + edm::Ref::key_type idx = 0; + + // magnetic fied and detector geometry + auto const &mgField = iSetup.getData(theMGFieldToken); + auto const &trackingGeometry = iSetup.getData(theTrackingGeometryToken); + + const TrackerTopology &ttopo = iSetup.getData(theTopoToken); + + // now read the L2 seeds collection : + edm::Handle L2seedsCollection; + iEvent.getByToken(L2seedsTagT_, L2seedsCollection); + const std::vector *L2seeds = nullptr; + if (L2seedsCollection.isValid()) + L2seeds = L2seedsCollection.product(); + else + edm::LogError("Phase2SeedToTrackProducer") << "L2 seeds collection not found !! " << endl; + + edm::Handle> seedHandle; + iEvent.getByToken(L2seedsTagS_, seedHandle); + + // now loop on the seeds : + for (unsigned int i = 0; i < L2seeds->size(); i++) { + // get the kinematic extrapolation from the seed + TrajectoryStateOnSurface theTrajectory = seedTransientState(L2seeds->at(i), mgField, trackingGeometry); + float seedEta = theTrajectory.globalMomentum().eta(); + float seedPhi = theTrajectory.globalMomentum().phi(); + float seedPt = theTrajectory.globalMomentum().perp(); + CovarianceMatrix matrixSeedErr = theTrajectory.curvilinearError().matrix(); + edm::LogVerbatim("Phase2SeedToTrackProducer") + << "seedPt=" << seedPt << " seedEta=" << seedEta << " seedPhi=" << seedPhi << endl; + /*AlgebraicSymMatrix66 errors = theTrajectory.cartesianError().matrix(); + double partialPterror = + errors(3,3)*pow(theTrajectory.globalMomentum().x(),2) + + errors(4,4)*pow(theTrajectory.globalMomentum().y(),2); + edm::LogVerbatim("Phase2SeedToTrackProducer") << "seedPtError=" << + sqrt(partialPterror)/theTrajectory.globalMomentum().perp() << + "seedPhiError=" << theTrajectory.curvilinearError().matrix()(2,2) << endl;*/ + // fill the track in a way that its pt, phi and eta will be the same as the + // seed + math::XYZPoint initPoint(0, 0, 0); + math::XYZVector initMom(seedPt * cos(seedPhi), seedPt * sin(seedPhi), seedPt * sinh(seedEta)); + reco::Track theTrack(1, + 1, // dummy Chi2 and ndof + initPoint, + initMom, + 1, + matrixSeedErr, + reco::TrackBase::TrackAlgorithm::globalMuon, + reco::TrackBase::TrackQuality::tight); + + // fill the extra track with dummy information + math::XYZPoint dummyFinalPoint(1, 1, 1); + math::XYZVector dummyFinalMom(0, 0, 10); + edm::RefToBase seed(seedHandle, i); + CovarianceMatrix matrixExtra = ROOT::Math::SMatrixIdentity(); + reco::TrackExtra theTrackExtra(dummyFinalPoint, + dummyFinalMom, + true, + initPoint, + initMom, + true, + matrixSeedErr, + 1, + matrixExtra, + 2, + (L2seeds->at(i)).direction(), + seed); + theTrack.setExtra(reco::TrackExtraRef(rTrackExtras, idx++)); + edm::LogVerbatim("Phase2SeedToTrackProducer") + << "trackPt=" << theTrack.pt() << " trackEta=" << theTrack.eta() << " trackPhi=" << theTrack.phi() << endl; + edm::LogVerbatim("Phase2SeedToTrackProducer") + << "trackPtError=" << theTrack.ptError() << "trackPhiError=" << theTrack.phiError() << endl; + + // fill the seed segments in the track + unsigned int nHitsAdded = 0; + for (auto const &recHit : L2seeds->at(i).recHits()) { + TrackingRecHit *hit = recHit.clone(); + theTrack.appendHitPattern(*hit, ttopo); + selectedTrackHits->push_back(hit); + nHitsAdded++; + } + theTrackExtra.setHits(rHits, hidx, nHitsAdded); + hidx += nHitsAdded; + selectedTracks->push_back(theTrack); + selectedTrackExtras->push_back(theTrackExtra); + } + iEvent.put(std::move(selectedTracks)); + iEvent.put(std::move(selectedTrackExtras)); + iEvent.put(std::move(selectedTrackHits)); +} + +TrajectoryStateOnSurface Phase2SeedToTrackProducer::seedTransientState( + const L2MuonTrajectorySeed &tmpSeed, + const MagneticField &mgField, + const GlobalTrackingGeometry &trackingGeometry) const { + PTrajectoryStateOnDet tmpTSOD = tmpSeed.startingState(); + DetId tmpDetId(tmpTSOD.detId()); + const GeomDet *tmpGeomDet = trackingGeometry.idToDet(tmpDetId); + TrajectoryStateOnSurface tmpTSOS = + trajectoryStateTransform::transientState(tmpTSOD, &(tmpGeomDet->surface()), &mgField); + return tmpTSOS; +} + +// define this as a plug-in +DEFINE_FWK_MODULE(Phase2SeedToTrackProducer); diff --git a/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h b/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h new file mode 100644 index 0000000000000..bafdf02df2591 --- /dev/null +++ b/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h @@ -0,0 +1,65 @@ +#ifndef SimMuon_MCTruth_Phase2SeedToTrackProducer_h +#define SimMuon_MCTruth_Phase2SeedToTrackProducer_h + +/** \class Phase2SeedToTrackProducer + * + * Phase-2 implementation of the SeedToTrackProducerModule. + * Baseline behaviour is the same, with the difference that + * a collection of L2MuonTrajectorySeeds is expected as input + * + * \author Luca Ferragina (INFN BO), Carlo Battilana (INFN BO), 2024 + */ + +// system include files +#include + +// user include files +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" + +#include "Geometry/CommonDetUnit/interface/GeomDet.h" +#include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h" +#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" + +#include "TrackingTools/Records/interface/TransientRecHitRecord.h" +#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" +#include "TrackingTools/TransientTrack/interface/TransientTrack.h" +#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" + +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" +#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" + +// +// class declaration +// + +typedef math::Error<5>::type CovarianceMatrix; + +class Phase2SeedToTrackProducer : public edm::global::EDProducer<> { +public: + explicit Phase2SeedToTrackProducer(const edm::ParameterSet &); + +private: + void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const final; + TrajectoryStateOnSurface seedTransientState(const L2MuonTrajectorySeed &, + const MagneticField &, + const GlobalTrackingGeometry &) const; + // ----------member data --------------------------- + + edm::EDGetTokenT L2seedsTagT_; + edm::EDGetTokenT> L2seedsTagS_; + + const edm::ESGetToken theMGFieldToken; + const edm::ESGetToken theTrackingGeometryToken; + const edm::ESGetToken theTopoToken; +}; + +#endif diff --git a/SimMuon/MCTruth/plugins/SeedToTrackProducer.h b/SimMuon/MCTruth/plugins/SeedToTrackProducer.h index eda27d0128d8a..9c927c9ff2b5c 100644 --- a/SimMuon/MCTruth/plugins/SeedToTrackProducer.h +++ b/SimMuon/MCTruth/plugins/SeedToTrackProducer.h @@ -1,3 +1,5 @@ +#ifndef SimMuon_MCTruth_SeedToTrackProducer_h +#define SimMuon_MCTruth_SeedToTrackProducer_h // -*- C++ -*- // // Package: SeedToTrackProducer @@ -65,3 +67,5 @@ class SeedToTrackProducer : public edm::global::EDProducer<> { const edm::ESGetToken theTrackingGeometryToken; const edm::ESGetToken theTopoToken; }; + +#endif diff --git a/SimMuon/MCTruth/python/SeedToTrackProducer_cfi.py b/SimMuon/MCTruth/python/SeedToTrackProducer_cfi.py index bd5a1031689b5..6ec9834fcb6ba 100644 --- a/SimMuon/MCTruth/python/SeedToTrackProducer_cfi.py +++ b/SimMuon/MCTruth/python/SeedToTrackProducer_cfi.py @@ -3,3 +3,11 @@ SeedToTrackProducer = cms.EDProducer('SeedToTrackProducer', L2seedsCollection = cms.InputTag("ancientMuonSeed") ) + + +Phase2SeedToTrackProducer = cms.EDProducer('Phase2SeedToTrackProducer', + L2seedsCollection = cms.InputTag("hltL2MuonSeedsFromL1TkMuon") + ) + +from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon +phase2_muon.toReplaceWith(SeedToTrackProducer, Phase2SeedToTrackProducer) \ No newline at end of file diff --git a/Validation/RecoMuon/plugins/MuonTrackValidator.cc b/Validation/RecoMuon/plugins/MuonTrackValidator.cc index 693676ba943b8..d99ccf1013816 100644 --- a/Validation/RecoMuon/plugins/MuonTrackValidator.cc +++ b/Validation/RecoMuon/plugins/MuonTrackValidator.cc @@ -4,6 +4,7 @@ #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/Math/interface/deltaR.h" #include "SimDataFormats/Track/interface/SimTrackContainer.h" #include "SimDataFormats/Vertex/interface/SimVertexContainer.h" #include "SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h" @@ -13,7 +14,7 @@ #include "SimTracker/TrackAssociation/interface/TrackingParticleIP.h" #include "TMath.h" -#include +#include using namespace std; using namespace edm; @@ -83,6 +84,33 @@ void MuonTrackValidator::bookHistograms(DQMEDAnalyzer::DQMStore::IBooker& ibooke maxPt, setBinLogX)); + h_assocpTB.push_back(ibooker.book1D("num_assoSimToReco_pT_barrel", + "N of associated tracks (simToReco) vs pT - BARREL", + nintPt, + minPt, + maxPt, + setBinLogX)); + h_simulpTB.push_back(ibooker.book1D( + "num_simul_pT_barrel", "N of simulated tracks vs pT - BARREL", nintPt, minPt, maxPt, setBinLogX)); + + h_assocpTO.push_back(ibooker.book1D("num_assoSimToReco_pT_overlap", + "N of associated tracks (simToReco) vs pT - OVERLAP", + nintPt, + minPt, + maxPt, + setBinLogX)); + h_simulpTO.push_back(ibooker.book1D( + "num_simul_pT_overlap", "N of simulated tracks vs pT - OVERLAP", nintPt, minPt, maxPt, setBinLogX)); + + h_assocpTE.push_back(ibooker.book1D("num_assoSimToReco_pT_endcap", + "N of associated tracks (simToReco) vs pT - ENCAP", + nintPt, + minPt, + maxPt, + setBinLogX)); + h_simulpTE.push_back(ibooker.book1D( + "num_simul_pT_endcap", "N of simulated tracks vs pT - ENDCAP", nintPt, minPt, maxPt, setBinLogX)); + h_recophi.push_back(ibooker.book1D("num_reco_phi", "N of reco track vs phi", nintPhi, minPhi, maxPhi)); h_assocphi.push_back(ibooker.book1D( "num_assoSimToReco_phi", "N of associated tracks (simToReco) vs phi", nintPhi, minPhi, maxPhi)); @@ -95,6 +123,30 @@ void MuonTrackValidator::bookHistograms(DQMEDAnalyzer::DQMStore::IBooker& ibooke minPhi, maxPhi)); + h_assocphiB.push_back(ibooker.book1D("num_assoSimToReco_phi_barrel", + "N of associated tracks (simToReco) vs phi - BARREL", + nintPhi, + minPhi, + maxPhi)); + h_simulphiB.push_back( + ibooker.book1D("num_simul_phi_barrel", "N of simulated track vs phi - BARREL", nintPhi, minPhi, maxPhi)); + + h_assocphiO.push_back(ibooker.book1D("num_assoSimToReco_phi_overlap", + "N of associated tracks (simToReco) vs phi - OVERLAP", + nintPhi, + minPhi, + maxPhi)); + h_simulphiO.push_back( + ibooker.book1D("num_simul_phi_overlap", "N of simulated track vs phi - OVERLAP", nintPhi, minPhi, maxPhi)); + + h_assocphiE.push_back(ibooker.book1D("num_assoSimToReco_phi_endcap", + "N of associated tracks (simToReco) vs phi - ENDCAP", + nintPhi, + minPhi, + maxPhi)); + h_simulphiE.push_back( + ibooker.book1D("num_simul_phi_endcap", "N of simulated track vs phi - ENDCAP", nintPhi, minPhi, maxPhi)); + h_recohit.push_back(ibooker.book1D("num_reco_hit", "N of reco tracks vs N SimHits", nintNHit, minNHit, maxNHit)); h_assochit.push_back(ibooker.book1D( "num_assoSimToReco_hit", "N of associated tracks (simToReco) vs N SimHits", nintNHit, minNHit, maxNHit)); @@ -108,6 +160,19 @@ void MuonTrackValidator::bookHistograms(DQMEDAnalyzer::DQMStore::IBooker& ibooke minNHit, maxNHit)); + int bindR{200}; + double mindR{0.0}; + double maxdR{10.0}; + + h_recodR.push_back(ibooker.book1D("num_reco_dR", "N of reco track vs dR2", bindR, mindR, maxdR)); + h_assocdR.push_back( + ibooker.book1D("num_assoSimToReco_dR", "N of associated tracks (simToReco) vs dR2", bindR, mindR, maxdR)); + h_assoc2dR.push_back( + ibooker.book1D("num_assoRecoToSim_dR", "N of associated (recoToSim) tracks vs dR2", bindR, mindR, maxdR)); + h_simuldR.push_back(ibooker.book1D("num_simul_dR", "N of simulated tracks vs dR2", bindR, mindR, maxdR)); + h_misiddR.push_back(ibooker.book1D( + "num_chargemisid_dR", "N of associated (simToReco) tracks with charge misID vs dR2", bindR, mindR, maxdR)); + h_recodxy.push_back(ibooker.book1D("num_reco_dxy", "N of reco track vs dxy", nintDxy, minDxy, maxDxy)); h_assocdxy.push_back(ibooker.book1D( "num_assoSimToReco_dxy", "N of associated tracks (simToReco) vs dxy", nintDxy, minDxy, maxDxy)); @@ -475,6 +540,16 @@ void MuonTrackValidator::analyze(const edm::Event& event, const edm::EventSetup& int ats = 0; int st = 0; + std::optional dR2 = [&]() -> std::optional { + if (tPC.size() == 2) { + TrackingParticle::Vector p1 = lhcParametersDefinerTP_->momentum(event, setup, tPC[0]); + TrackingParticle::Vector p2 = lhcParametersDefinerTP_->momentum(event, setup, tPC[1]); + + return reco::deltaR2(p1, p2); + } + return {}; + }(); + for (size_t i = 0; i < tPC.size(); i++) { bool TP_is_matched = false; bool isChargeOK = true; @@ -569,16 +644,53 @@ void MuonTrackValidator::analyze(const edm::Event& event, const edm::EventSetup& // histos for efficiency vs phi fillPlotNoFlow(h_simulphi[w], TPphi); + if (xTPeta < 0.9) { + fillPlotNoFlow(h_simulphiB[w], TPphi); + } else if (xTPeta < 1.2) { + fillPlotNoFlow(h_simulphiO[w], TPphi); + } else { + fillPlotNoFlow(h_simulphiE[w], TPphi); + } if (TP_is_matched) { fillPlotNoFlow(h_assocphi[w], TPphi); + if (xTPeta < 0.9) { + fillPlotNoFlow(h_assocphiB[w], TPphi); + } else if (xTPeta < 1.2) { + fillPlotNoFlow(h_assocphiO[w], TPphi); + } else { + fillPlotNoFlow(h_assocphiE[w], TPphi); + } if (!isChargeOK) fillPlotNoFlow(h_misidphi[w], TPphi); } + if (dR2.has_value()) { + fillPlotNoFlow(h_simuldR[w], *dR2); + if (TP_is_matched) { + fillPlotNoFlow(h_assocdR[w], *dR2); + if (!isChargeOK) + fillPlotNoFlow(h_misiddR[w], *dR2); + } + } + // histos for efficiency vs pT fillPlotNoFlow(h_simulpT[w], xTPpt); + if (xTPeta < 0.9) { + fillPlotNoFlow(h_simulpTB[w], xTPpt); + } else if (xTPeta < 1.2) { + fillPlotNoFlow(h_simulpTO[w], xTPpt); + } else { + fillPlotNoFlow(h_simulpTE[w], xTPpt); + } if (TP_is_matched) { fillPlotNoFlow(h_assocpT[w], xTPpt); + if (xTPeta < 0.9) { + fillPlotNoFlow(h_assocpTB[w], xTPpt); + } else if (xTPeta < 1.2) { + fillPlotNoFlow(h_assocpTO[w], xTPpt); + } else { + fillPlotNoFlow(h_assocpTE[w], xTPpt); + } if (!isChargeOK) fillPlotNoFlow(h_misidpT[w], xTPpt); } @@ -740,6 +852,13 @@ void MuonTrackValidator::analyze(const edm::Event& event, const edm::EventSetup& fillPlotNoFlow(h_assoc2pT[w], xptRec); } + if (dR2.has_value()) { + fillPlotNoFlow(h_recodR[w], *dR2); + if (Track_is_matched) { + fillPlotNoFlow(h_assoc2pT[w], *dR2); + } + } + // histos for fake rate vs dxy fillPlotNoFlow(h_recodxy[w], dxyRec); if (Track_is_matched) { diff --git a/Validation/RecoMuon/plugins/MuonTrackValidatorBase.h b/Validation/RecoMuon/plugins/MuonTrackValidatorBase.h index d33ba31048fcf..d2614e2215a9c 100644 --- a/Validation/RecoMuon/plugins/MuonTrackValidatorBase.h +++ b/Validation/RecoMuon/plugins/MuonTrackValidatorBase.h @@ -282,6 +282,16 @@ class MuonTrackValidatorBase { std::vector h_recodxy, h_assocdxy, h_assoc2dxy, h_simuldxy, h_misiddxy; std::vector h_recodz, h_assocdz, h_assoc2dz, h_simuldz, h_misiddz; std::vector h_recopu, h_assocpu, h_assoc2pu, h_simulpu, h_misidpu; + std::vector h_recodR, h_assocdR, h_assoc2dR, h_simuldR, h_misiddR; + + std::vector h_assocpTB, h_simulpTB; + std::vector h_assocphiB, h_simulphiB; + + std::vector h_assocpTO, h_simulpTO; + std::vector h_assocphiO, h_simulphiO; + + std::vector h_assocpTE, h_simulpTE; + std::vector h_assocphiE, h_simulphiE; std::vector h_assocRpos, h_simulRpos, h_assocZpos, h_simulZpos; std::vector h_etaRes; diff --git a/Validation/RecoMuon/python/PostProcessorHLT_cff.py b/Validation/RecoMuon/python/PostProcessorHLT_cff.py index 0924a2e702789..4cd700f8cb3f3 100644 --- a/Validation/RecoMuon/python/PostProcessorHLT_cff.py +++ b/Validation/RecoMuon/python/PostProcessorHLT_cff.py @@ -4,25 +4,32 @@ from DQMServices.Core.DQMEDHarvester import DQMEDHarvester from Validation.RecoMuon.PostProcessor_cff import postProcessorMuonTrack + postProcessorMuonTrackHLT = postProcessorMuonTrack.clone( subDirs = ["HLT/Muon/MuonTrack/*"] ) postProcessorMuonTrackHLTComp = DQMEDHarvester( "DQMGenericClient", - subDirs = cms.untracked.vstring("HLT/Muon/MuonTrack/"), - efficiency = cms.vstring( - "Eff_L3Tk_Eta_mabh 'Eff_{L3,TK} vs #eta' hltL3Muons/effic_vs_eta hltL3TkFromL2/effic_vs_eta", - "Eff_L3Tk_Pt_mabh 'Eff_{L3,TK} vs p_{T}' hltL3Muons/effic_vs_pt hltL3TkFromL2/effic_vs_pt", - "Eff_L3Tk_Hit_mabh 'Eff_{L3,TK} vs n Hits' hltL3Muons/effic_vs_hit hltL3TkFromL2/effic_vs_hit", - "Eff_L3L2_Eta_mabh 'Eff_{L3,L2} vs #eta' hltL3Muons/effic_vs_eta hltL2Muons_UpdAtVtx/effic_vs_eta", - "Eff_L3L2_Pt_mabh 'Eff_{L3,L2} vs p_{T}' hltL3Muons/effic_vs_pt hltL2Muons_UpdAtVtx/effic_vs_pt", - "Eff_L3L2_Hit_mabh 'Eff_{L3,L2} vs n Hits' hltL3Muons/effic_vs_hit hltL2Muons_UpdAtVtx/effic_vs_hit", + subDirs=cms.untracked.vstring("HLT/Muon/MuonTrack/"), + efficiency=cms.vstring( + "Eff_L3Tk_Eta_mabh 'Eff_{L3,TK} vs #eta' hltL3Muons/effic_vs_eta hltL3TkFromL2/effic_vs_eta", + "Eff_L3Tk_Pt_mabh 'Eff_{L3,TK} vs p_{T}' hltL3Muons/effic_vs_pt hltL3TkFromL2/effic_vs_pt", + "Eff_L3Tk_Hit_mabh 'Eff_{L3,TK} vs n Hits' hltL3Muons/effic_vs_hit hltL3TkFromL2/effic_vs_hit", + "Eff_L3L2_Eta_mabh 'Eff_{L3,L2} vs #eta' hltL3Muons/effic_vs_eta hltL2Muons_UpdAtVtx/effic_vs_eta", + "Eff_L3L2_Pt_mabh 'Eff_{L3,L2} vs p_{T}' hltL3Muons/effic_vs_pt hltL2Muons_UpdAtVtx/effic_vs_pt", + "Eff_L3L2_Hit_mabh 'Eff_{L3,L2} vs n Hits' hltL3Muons/effic_vs_hit hltL2Muons_UpdAtVtx/effic_vs_hit", ), - resolution = cms.vstring(""), - outputFileName = cms.untracked.string("") - ) + resolution=cms.vstring(""), + outputFileName=cms.untracked.string(""), +) recoMuonPostProcessorsHLT = cms.Sequence( - postProcessorMuonTrackHLT - *postProcessorMuonTrackHLTComp - ) + postProcessorMuonTrackHLT + postProcessorMuonTrackHLTComp +) + +from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon + +phase2_muon.toReplaceWith( + recoMuonPostProcessorsHLT, + recoMuonPostProcessorsHLT.copyAndExclude(["postProcessorMuonTrackHLTComp"]), +) diff --git a/Validation/RecoMuon/python/PostProcessor_cff.py b/Validation/RecoMuon/python/PostProcessor_cff.py index 9d3ae5479f5df..995d18630db6d 100644 --- a/Validation/RecoMuon/python/PostProcessor_cff.py +++ b/Validation/RecoMuon/python/PostProcessor_cff.py @@ -15,9 +15,17 @@ "effic_vs_phi 'Efficiency vs #phi' num_assoSimToReco_phi num_simul_phi", "effic_vs_dxy 'Efficiency vs dxy' num_assoSimToReco_dxy num_simul_dxy", "effic_vs_dz 'Efficiency vs dz' num_assoSimToReco_dz num_simul_dz", + "effic_vs_dr 'Efficiency vs #Delta R' num_assoSimToReco_dR num_simul_dR", "effic_vs_pu 'Efficiency vs number of pile-up interactions' num_assoSimToReco_pu num_simul_pu", "effic_vs_Rpos 'Efficiency vs production Radius' num_assoSimToReco_Rpos num_simul_Rpos", "effic_vs_Zpos 'Efficiency vs production Z position' num_assoSimToReco_Zpos num_simul_Zpos", + + "effic_vs_pt_barrel 'Efficiency vs p_{T} BARREL' num_assoSimToReco_pT_barrel num_simul_pT_barrel", + "effic_vs_phi_barrel 'Efficiency vs #phi BARREL' num_assoSimToReco_phi_barrel num_simul_phi_barrel", + "effic_vs_pt_overlap 'Efficiency vs p_{T} OVERLAP' num_assoSimToReco_pT_overlap num_simul_pT_overlap", + "effic_vs_phi_overlap 'Efficiency vs #phi OVERLAP' num_assoSimToReco_phi_overlap num_simul_phi_overlap", + "effic_vs_pt_endcap 'Efficiency vs p_{T} ENDCAP' num_assoSimToReco_pT_endcap num_simul_pT_endcap", + "effic_vs_phi_endcap 'Efficiency vs #phi ENDCAP' num_assoSimToReco_phi_endcap num_simul_phi_endcap", "fakerate_vs_eta 'Fake rate vs #eta' num_assoRecoToSim_eta num_reco_eta fake", "fakerate_vs_pt 'Fake rate vs p_{T}' num_assoRecoToSim_pT num_reco_pT fake", @@ -25,6 +33,7 @@ "fakerate_vs_phi 'Fake rate vs #phi' num_assoRecoToSim_phi num_reco_phi fake", "fakerate_vs_dxy 'Fake rate vs dxy' num_assoRecoToSim_dxy num_reco_dxy fake", "fakerate_vs_dz 'Fake rate vs dz' num_assoRecoToSim_dz num_reco_dz fake", + "fakerate_vs_dr 'Fake rate vs #Delta R' num_assoRecoToSim_dR num_reco_dR fake", "fakerate_vs_pu 'Fake rate vs number of pile-up interactions' num_assoRecoToSim_pu num_reco_pu fake", "chargeMisId_vs_eta 'Charge MisID rate vs #eta' num_chargemisid_eta num_assoSimToReco_eta", diff --git a/Validation/RecoMuon/python/associators_cff.py b/Validation/RecoMuon/python/associators_cff.py index cb4722dc8769c..5c2b16a5ca16c 100644 --- a/Validation/RecoMuon/python/associators_cff.py +++ b/Validation/RecoMuon/python/associators_cff.py @@ -231,9 +231,71 @@ rejectBadGlobal = False ) +# +# The Phase-2 associators +# + +# L2 standalone muon seeds +Phase2tpToL2SeedAssociation = MABHhlt.clone( + tracksTag = "hltPhase2L2MuonSeedTracks", + UseTracker = False, + UseMuon = True +) +# L2 standalone muons +Phase2tpToL2MuonAssociation = MABHhlt.clone( + tracksTag = 'hltL2MuonsFromL1TkMuon', + UseTracker = False, + UseMuon = True +) +# L2 standalone muons updated at vertex +Phase2tpToL2MuonUpdAssociation = MABHhlt.clone( + tracksTag = 'hltL2MuonsFromL1TkMuon:UpdatedAtVtx', + UseTracker = False, + UseMuon = True +) +# L3 IO inner tracks +Phase2tpToL3IOTkAssociation = MABHhlt.clone( + tracksTag = 'hltIter2Phase2L3FromL1TkMuonMerged', + UseTracker = True, + UseMuon = False +) +# L3 OI inner tracks +Phase2tpToL3OITkAssociation = MABHhlt.clone( + tracksTag = 'hltPhase2L3OIMuonTrackSelectionHighPurity', + UseTracker = True, + UseMuon = False +) +# L3 inner tracks merged +Phase2tpToL3TkMergedAssociation = MABHhlt.clone( + tracksTag = 'hltPhase2L3MuonMerged', + UseTracker = True, + UseMuon = False +) +# L3 global muons +Phase2tpToL3GlbMuonMergedAssociation = MABHhlt.clone( + tracksTag = 'hltPhase2L3GlbMuon', + UseTracker = True, + UseMuon = True +) +# L3 Muons no ID (tracks) +Phase2tpToL3MuonNoIdAssociation = MABHhlt.clone( + tracksTag = 'hltPhase2L3MuonNoIdTracks', + UseTracker = True, + UseMuon = True, + rejectBadGlobal = False +) +# L3 Muons ID (tracks) +Phase2tpToL3MuonIdAssociation = MABHhlt.clone( + tracksTag = 'hltPhase2L3MuonIdTracks', + UseTracker = True, + UseMuon = True, + rejectBadGlobal = False +) # # COSMICS reco +# + MABHcosmic = SimMuon.MCTruth.MuonAssociatorByHits_cfi.muonAssociatorByHits.clone( # DEFAULTS ################################### # acceptOneStubMatchings = False, @@ -288,6 +350,7 @@ UseTracker = True, UseMuon = True ) + # # The full-sim association sequences # @@ -329,6 +392,21 @@ +hltIterL3MuonsTracks_seq+tpToL3MuonAssociation ) +# +# The Phase-2 sim association sequences +# + +Phase2MuonAssociationHLT_seq = cms.Sequence( + hltPhase2L2MuonSeedTracks+Phase2tpToL2SeedAssociation + +Phase2tpToL2MuonAssociation+Phase2tpToL2MuonUpdAssociation + +Phase2tpToL3IOTkAssociation+Phase2tpToL3OITkAssociation + +Phase2tpToL3TkMergedAssociation+Phase2tpToL3GlbMuonMergedAssociation + +hltPhase2L3MuonNoIdTracks+Phase2tpToL3MuonNoIdAssociation + +hltPhase2L3MuonIdTracks+Phase2tpToL3MuonIdAssociation + ) + +from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon +phase2_muon.toReplaceWith(muonAssociationHLT_seq, Phase2MuonAssociationHLT_seq) # fastsim has no hlt specific dt hit collection from Configuration.Eras.Modifier_fastSim_cff import fastSim @@ -342,3 +420,14 @@ fastSim.toModify(tpToL3GlbMuonAssociation, DTrechitTag = _DTrechitTag) fastSim.toModify(tpToL3NoIDMuonAssociation, DTrechitTag = _DTrechitTag) fastSim.toModify(tpToL3MuonAssociation, DTrechitTag = _DTrechitTag) + +# Phase-2 fastsim +fastSim.toModify(Phase2tpToL2SeedAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL2MuonAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL2MuonUpdAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL3IOTkAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL3OITkAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL3TkMergedAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL3GlbMuonMergedAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL3MuonNoIdAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL3MuonIdAssociation, DTrechitTag = _DTrechitTag) diff --git a/Validation/RecoMuon/python/muonValidationHLT_cff.py b/Validation/RecoMuon/python/muonValidationHLT_cff.py index 45102ad4c7c81..f677606f90065 100644 --- a/Validation/RecoMuon/python/muonValidationHLT_cff.py +++ b/Validation/RecoMuon/python/muonValidationHLT_cff.py @@ -66,20 +66,100 @@ label = ('hltIterL3MuonsTracks:',), muonHistoParameters = glbMuonHistoParameters ) + +# +# The Phase-2 validators +# + +# L2 standalone muons seeds +Phase2l2MuSeedV = MTVhlt.clone( + associatormap = 'Phase2tpToL2SeedAssociation', + label = ('hltPhase2L2MuonSeedTracks',), + muonHistoParameters = staSeedMuonHistoParameters +) +# L2 standalone muons +Phase2l2MuV = MTVhlt.clone( + associatormap = 'Phase2tpToL2MuonAssociation', + label = ('hltL2MuonsFromL1TkMuon',), + muonHistoParameters = staMuonHistoParameters +) +# L2 standalone muons updated at vertex +Phase2l2MuUpdV = MTVhlt.clone( + associatormap = 'Phase2tpToL2MuonUpdAssociation', + label = ('hltL2MuonsFromL1TkMuon:UpdatedAtVtx',), + muonHistoParameters = staMuonHistoParameters +) +# L3 IO inner tracks +Phase2l3IOTkV = MTVhlt.clone( + associatormap = 'Phase2tpToL3IOTkAssociation', + label = ('hltIter2Phase2L3FromL1TkMuonMerged',), + muonHistoParameters = trkMuonHistoParameters +) +# L3 OI inner tracks +Phase2l3OITkV = MTVhlt.clone( + associatormap = 'Phase2tpToL3OITkAssociation', + label = ('hltPhase2L3OIMuonTrackSelectionHighPurity',), + muonHistoParameters = trkMuonHistoParameters +) +# L3 inner tracks merged +Phase2l3TkMergedV = MTVhlt.clone( + associatormap = 'Phase2tpToL3TkMergedAssociation', + label = ('hltPhase2L3MuonMerged',), + muonHistoParameters = trkMuonHistoParameters +) +# L3 global muons +Phase2l3GlbMuonV = MTVhlt.clone( + associatormap = 'Phase2tpToL3GlbMuonMergedAssociation', + label = ('hltPhase2L3GlbMuon',), + muonHistoParameters = glbMuonHistoParameters +) +# L3 Muons no ID +Phase2l3MuNoIdTrackV = MTVhlt.clone( + associatormap = 'Phase2tpToL3MuonNoIdAssociation', + label = ('hltPhase2L3MuonNoIdTracks',), + muonHistoParameters = glbMuonHistoParameters +) +# L3 Muons ID +Phase2l3MuIdTrackV = MTVhlt.clone( + associatormap = 'Phase2tpToL3MuonIdAssociation', + label = ('hltPhase2L3MuonIdTracks',), + muonHistoParameters = glbMuonHistoParameters +) + # # The full Muon HLT validation sequence # -muonValidationHLT_seq = cms.Sequence( - tpToL2MuonAssociation + l2MuonMuTrackV - +tpToL2UpdMuonAssociation + l2UpdMuonMuTrackV - +tpToL3OITkMuonAssociation + l3OITkMuonMuTrackV - +tpToL3TkMuonAssociation + l3TkMuonMuTrackV - +tpToL3FromL1TkMuonAssociation + l3IOFromL1TkMuonMuTrackV - +tpToL0L3FromL1TkMuonAssociation + l0l3FromL1TkMuonMuTrackV - +tpToL3GlbMuonAssociation + l3GlbMuonMuTrackV - +hltIterL3MuonsNoIDTracks_seq + tpToL3NoIDMuonAssociation + l3NoIDMuonMuTrackV - +hltIterL3MuonsTracks_seq + tpToL3MuonAssociation + l3MuonMuTrackV - ) + +muonValidationHLT_seq = cms.Sequence(muonAssociationHLT_seq + +l2MuonMuTrackV + +l2UpdMuonMuTrackV + +l3OITkMuonMuTrackV + +l3TkMuonMuTrackV + +l3IOFromL1TkMuonMuTrackV + +l0l3FromL1TkMuonMuTrackV + +l3GlbMuonMuTrackV + +l3NoIDMuonMuTrackV + +l3MuonMuTrackV + ) + +# +# The Phase-2 sequences +# + +Phase2MuonValidationHLT_seq = cms.Sequence(muonAssociationHLT_seq + +Phase2l2MuSeedV + +Phase2l2MuV + +Phase2l2MuUpdV + +Phase2l3IOTkV + +Phase2l3OITkV + +Phase2l3TkMergedV + +Phase2l3GlbMuonV + +Phase2l3MuNoIdTrackV + +Phase2l3MuIdTrackV + ) + +from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon +phase2_muon.toReplaceWith(muonValidationHLT_seq, Phase2MuonValidationHLT_seq) recoMuonValidationHLT_seq = cms.Sequence( cms.SequencePlaceholder("TPmu") + diff --git a/Validation/RecoMuon/python/track_selectors_cff.py b/Validation/RecoMuon/python/track_selectors_cff.py index 7ca54dd218303..2c99989de77e5 100644 --- a/Validation/RecoMuon/python/track_selectors_cff.py +++ b/Validation/RecoMuon/python/track_selectors_cff.py @@ -65,6 +65,29 @@ ) hltIterL3MuonsTracks_seq = cms.Sequence( hltIterL3MuonsTracks ) +# +# Phase-2 tracks +# +# L3 Muon no ID tracks +hltPhase2L3MuonNoIdTracks = SimMuon.MCTruth.MuonTrackProducer_cfi.muonTrackProducer.clone( + muonsTag = "hltPhase2L3MuonsNoID", + inputDTRecSegment4DCollection = cms.InputTag("hltDt4DSegments"), + inputCSCSegmentCollection = cms.InputTag("hltCscSegments"), + selectionTags = ['All'], + trackType = "recomuonTrack", + ignoreMissingMuonCollection = True +) + +# L3 Muon ID tracks +hltPhase2L3MuonIdTracks = SimMuon.MCTruth.MuonTrackProducer_cfi.muonTrackProducer.clone( + muonsTag = "hltPhase2L3Muons", + inputDTRecSegment4DCollection = cms.InputTag("hltDt4DSegments"), + inputCSCSegmentCollection = cms.InputTag("hltCscSegments"), + selectionTags = ['All'], + trackType = "recomuonTrack", + ignoreMissingMuonCollection = True +) + # # Configuration for Seed track extractor # @@ -74,7 +97,13 @@ L2seedsCollection = "ancientMuonSeed" ) seedsOfSTAmuons_seq = cms.Sequence( seedsOfSTAmuons ) + seedsOfDisplacedSTAmuons = SimMuon.MCTruth.SeedToTrackProducer_cfi.SeedToTrackProducer.clone( L2seedsCollection = "displacedMuonSeeds" ) seedsOfDisplacedSTAmuons_seq = cms.Sequence( seedsOfDisplacedSTAmuons ) + +# Phase-2 L2 seeds from L1Tk Muons +hltPhase2L2MuonSeedTracks = SimMuon.MCTruth.SeedToTrackProducer_cfi.SeedToTrackProducer.clone( + L2seedsCollection = "hltL2MuonSeedsFromL1TkMuon" +) From 24e374e257622f5ac6e5bee74962808bbb1829e5 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Wed, 4 Dec 2024 18:37:04 +0100 Subject: [PATCH 200/418] Use #include <...> for external headers --- .../Candidate/interface/ParticleState.h | 3 +- DataFormats/Math/interface/LorentzVector.h | 65 ++++++++-------- DataFormats/Math/interface/Point3D.h | 43 ++++++----- DataFormats/Math/interface/Vector3D.h | 77 ++++++++++--------- FWCore/Utilities/interface/Exception.h | 2 +- 5 files changed, 97 insertions(+), 93 deletions(-) diff --git a/DataFormats/Candidate/interface/ParticleState.h b/DataFormats/Candidate/interface/ParticleState.h index 956b874bba4af..d8d2e280f9c98 100644 --- a/DataFormats/Candidate/interface/ParticleState.h +++ b/DataFormats/Candidate/interface/ParticleState.h @@ -10,12 +10,13 @@ * */ +#include + #include "DataFormats/Math/interface/Point3D.h" #include "DataFormats/Math/interface/Vector3D.h" #include "DataFormats/Math/interface/PtEtaPhiMass.h" #include "DataFormats/GeometryVector/interface/GlobalVector.h" #include "DataFormats/Math/interface/LorentzVector.h" -#include "Rtypes.h" namespace reco { diff --git a/DataFormats/Math/interface/LorentzVector.h b/DataFormats/Math/interface/LorentzVector.h index 6026247d96c6f..07927174632e9 100644 --- a/DataFormats/Math/interface/LorentzVector.h +++ b/DataFormats/Math/interface/LorentzVector.h @@ -1,32 +1,33 @@ -#ifndef Math_LorentzVector_h -#define Math_LorentzVector_h -#include "Math/PtEtaPhiE4D.h" -#include "Math/PtEtaPhiM4D.h" -#include "Math/LorentzVector.h" - -namespace math { - - /// Lorentz vector with cartesian internal representation - typedef ROOT::Math::LorentzVector > PtEtaPhiMLorentzVectorD; - /// Lorentz vector with cartesian internal representation - typedef ROOT::Math::LorentzVector > PtEtaPhiELorentzVectorD; - /// Lorentz vector with cylindrical internal representation using pseudorapidity - typedef ROOT::Math::LorentzVector > XYZTLorentzVectorD; - /// Lorentz vector with cylindrical internal representation using pseudorapidity - - /// Lorentz vector with cartesian internal representation - typedef ROOT::Math::LorentzVector > PtEtaPhiMLorentzVectorF; - /// Lorentz vector with cartesian internal representation - typedef ROOT::Math::LorentzVector > PtEtaPhiELorentzVectorF; - /// Lorentz vector with cylindrical internal representation using pseudorapidity - typedef ROOT::Math::LorentzVector > XYZTLorentzVectorF; - - /// Lorentz vector with cartesian internal representation - typedef PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector; - /// Lorentz vector with cartesian internal representation - typedef PtEtaPhiELorentzVectorD PtEtaPhiELorentzVector; - /// Lorentz vector with cylindrical internal representation using pseudorapidity - typedef XYZTLorentzVectorD XYZTLorentzVector; -} // namespace math - -#endif +#ifndef Math_LorentzVector_h +#define Math_LorentzVector_h + +#include +#include +#include + +namespace math { + + /// Lorentz vector with cartesian internal representation + typedef ROOT::Math::LorentzVector > PtEtaPhiMLorentzVectorD; + /// Lorentz vector with cartesian internal representation + typedef ROOT::Math::LorentzVector > PtEtaPhiELorentzVectorD; + /// Lorentz vector with cylindrical internal representation using pseudorapidity + typedef ROOT::Math::LorentzVector > XYZTLorentzVectorD; + /// Lorentz vector with cylindrical internal representation using pseudorapidity + + /// Lorentz vector with cartesian internal representation + typedef ROOT::Math::LorentzVector > PtEtaPhiMLorentzVectorF; + /// Lorentz vector with cartesian internal representation + typedef ROOT::Math::LorentzVector > PtEtaPhiELorentzVectorF; + /// Lorentz vector with cylindrical internal representation using pseudorapidity + typedef ROOT::Math::LorentzVector > XYZTLorentzVectorF; + + /// Lorentz vector with cartesian internal representation + typedef PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector; + /// Lorentz vector with cartesian internal representation + typedef PtEtaPhiELorentzVectorD PtEtaPhiELorentzVector; + /// Lorentz vector with cylindrical internal representation using pseudorapidity + typedef XYZTLorentzVectorD XYZTLorentzVector; +} // namespace math + +#endif diff --git a/DataFormats/Math/interface/Point3D.h b/DataFormats/Math/interface/Point3D.h index 015dc3ee3d64d..8bfeb8c1b615f 100644 --- a/DataFormats/Math/interface/Point3D.h +++ b/DataFormats/Math/interface/Point3D.h @@ -1,21 +1,22 @@ -#ifndef Math_Point3D_h -#define Math_Point3D_h -#include "Math/Point3D.h" -#include "Math/GenVector/CoordinateSystemTags.h" - -namespace math { - /// point in space with cartesian internal representation - typedef ROOT::Math::PositionVector3D > XYZPointD; - /// point in space with cartesian internal representation - typedef ROOT::Math::PositionVector3D > XYZPointF; - /// point in space with cartesian internal representation - typedef XYZPointD XYZPoint; - - /// point in local coordinate system - typedef ROOT::Math::PositionVector3D, ROOT::Math::LocalCoordinateSystemTag> LocalPoint; - /// point in global coordinate system - typedef ROOT::Math::PositionVector3D, ROOT::Math::GlobalCoordinateSystemTag> - GlobalPoint; -} // namespace math - -#endif +#ifndef Math_Point3D_h +#define Math_Point3D_h + +#include +#include + +namespace math { + /// point in space with cartesian internal representation + typedef ROOT::Math::PositionVector3D > XYZPointD; + /// point in space with cartesian internal representation + typedef ROOT::Math::PositionVector3D > XYZPointF; + /// point in space with cartesian internal representation + typedef XYZPointD XYZPoint; + + /// point in local coordinate system + typedef ROOT::Math::PositionVector3D, ROOT::Math::LocalCoordinateSystemTag> LocalPoint; + /// point in global coordinate system + typedef ROOT::Math::PositionVector3D, ROOT::Math::GlobalCoordinateSystemTag> + GlobalPoint; +} // namespace math + +#endif diff --git a/DataFormats/Math/interface/Vector3D.h b/DataFormats/Math/interface/Vector3D.h index 08a8f82de4b35..5901b7f9ac5d2 100644 --- a/DataFormats/Math/interface/Vector3D.h +++ b/DataFormats/Math/interface/Vector3D.h @@ -1,38 +1,39 @@ -#ifndef Math_Vector3D_h -#define Math_Vector3D_h -#include "Math/Vector3D.h" - -namespace math { - - /// spatial vector with cartesian internal representation - typedef ROOT::Math::DisplacementVector3D > XYZVectorD; - /// spatial vector with cylindrical internal representation using pseudorapidity - typedef ROOT::Math::DisplacementVector3D > RhoEtaPhiVectorD; - /// spatial vector with polar internal representation - /// WARNING: ROOT dictionary not provided for the type below - typedef ROOT::Math::DisplacementVector3D > RThetaPhiVectorD; - - /// spatial vector with cartesian internal representation - typedef ROOT::Math::DisplacementVector3D > XYZVectorF; - /// spatial vector with cylindrical internal representation using pseudorapidity - typedef ROOT::Math::DisplacementVector3D > RhoEtaPhiVectorF; - /// spatial vector with polar internal representation - /// WARNING: ROOT dictionary not provided for the type below - typedef ROOT::Math::DisplacementVector3D > RThetaPhiVectorF; - - /// vector in local coordinate system - typedef ROOT::Math::DisplacementVector3D, ROOT::Math::LocalCoordinateSystemTag> - LocalVector; - /// vector in glovbal coordinate system - typedef ROOT::Math::DisplacementVector3D, ROOT::Math::GlobalCoordinateSystemTag> - GlobalVector; - - /// spatial vector with cartesian internal representation - typedef XYZVectorD XYZVector; - /// spatial vector with cylindrical internal representation using pseudorapidity - typedef RhoEtaPhiVectorD RhoEtaPhiVector; - /// spatial vector with polar internal representation - typedef RThetaPhiVectorD RThetaPhiVector; -} // namespace math - -#endif +#ifndef Math_Vector3D_h +#define Math_Vector3D_h + +#include + +namespace math { + + /// spatial vector with cartesian internal representation + typedef ROOT::Math::DisplacementVector3D > XYZVectorD; + /// spatial vector with cylindrical internal representation using pseudorapidity + typedef ROOT::Math::DisplacementVector3D > RhoEtaPhiVectorD; + /// spatial vector with polar internal representation + /// WARNING: ROOT dictionary not provided for the type below + typedef ROOT::Math::DisplacementVector3D > RThetaPhiVectorD; + + /// spatial vector with cartesian internal representation + typedef ROOT::Math::DisplacementVector3D > XYZVectorF; + /// spatial vector with cylindrical internal representation using pseudorapidity + typedef ROOT::Math::DisplacementVector3D > RhoEtaPhiVectorF; + /// spatial vector with polar internal representation + /// WARNING: ROOT dictionary not provided for the type below + typedef ROOT::Math::DisplacementVector3D > RThetaPhiVectorF; + + /// vector in local coordinate system + typedef ROOT::Math::DisplacementVector3D, ROOT::Math::LocalCoordinateSystemTag> + LocalVector; + /// vector in glovbal coordinate system + typedef ROOT::Math::DisplacementVector3D, ROOT::Math::GlobalCoordinateSystemTag> + GlobalVector; + + /// spatial vector with cartesian internal representation + typedef XYZVectorD XYZVector; + /// spatial vector with cylindrical internal representation using pseudorapidity + typedef RhoEtaPhiVectorD RhoEtaPhiVector; + /// spatial vector with polar internal representation + typedef RThetaPhiVectorD RThetaPhiVector; +} // namespace math + +#endif diff --git a/FWCore/Utilities/interface/Exception.h b/FWCore/Utilities/interface/Exception.h index 957e5fb180107..f9c3e9888675d 100644 --- a/FWCore/Utilities/interface/Exception.h +++ b/FWCore/Utilities/interface/Exception.h @@ -41,7 +41,7 @@ #include #include -#include "fmt/format.h" +#include #include "FWCore/Utilities/interface/thread_safety_macros.h" #include "FWCore/Utilities/interface/Likely.h" From f61656e7d48b4d6761088a345436fb3af4c7af56 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 4 Dec 2024 19:35:49 +0100 Subject: [PATCH 201/418] Class version update unit test fix --- FWCore/Reflection/test/run_classVersionUpdate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FWCore/Reflection/test/run_classVersionUpdate.sh b/FWCore/Reflection/test/run_classVersionUpdate.sh index 261d573294ae5..0f6496a60b042 100755 --- a/FWCore/Reflection/test/run_classVersionUpdate.sh +++ b/FWCore/Reflection/test/run_classVersionUpdate.sh @@ -36,7 +36,7 @@ mv TestObjects.h.tmp FWCore/Reflection/test/stubs/TestObjects.h #Set env and build in sub-shel -(eval $(scram run -sh) ; scram build -j $(nproc)) +(eval $(scram run -sh) ; SCRAM_NOEDM_CHECKS=yes scram build -j $(nproc)) popd From 9c90b8bedee241480ef50d7464f59f695772e0a6 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Thu, 5 Dec 2024 07:52:04 +0100 Subject: [PATCH 202/418] Constrain the TriggerObject template constructors --- DataFormats/HLTReco/interface/TriggerObject.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/DataFormats/HLTReco/interface/TriggerObject.h b/DataFormats/HLTReco/interface/TriggerObject.h index d7785dfc8be4e..ba4cc5dd0c4cb 100644 --- a/DataFormats/HLTReco/interface/TriggerObject.h +++ b/DataFormats/HLTReco/interface/TriggerObject.h @@ -17,6 +17,21 @@ namespace trigger { + namespace impl { + + template + concept FourMomentum = requires(T o) { + o.pt(); + o.eta(); + o.phi(); + o.mass(); + }; + + template + concept FourMomentumWithPdgId = FourMomentum and requires(T o) { o.pdgId(); }; + + } // namespace impl + /// Single trigger physics object (e.g., an isolated muon) class TriggerObject { /// data members - similar to DataFormats/Candidate/interface/Particle.h @@ -34,10 +49,10 @@ namespace trigger { : id_(id), pt_(pt), eta_(eta), phi_(phi), mass_(mass) {} /// any type T object implementing the methods pt(), eta(), phi(), mass() - template + template TriggerObject(int id, const T& o) : id_(id), pt_(o.pt()), eta_(o.eta()), phi_(o.phi()), mass_(o.mass()) {} /// ... and pdgId() - template + template TriggerObject(const T& o) : id_(o.pdgId()), pt_(o.pt()), eta_(o.eta()), phi_(o.phi()), mass_(o.mass()) {} /// setters From 6f693409717caf25a6fa8ca330286f4bfb229720 Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Thu, 5 Dec 2024 09:48:52 +0100 Subject: [PATCH 203/418] Use a single templated class for Phase 1 and Phase 2 SeedToTrackProducer --- .../plugins/Phase2SeedToTrackProducer.h | 62 +------ SimMuon/MCTruth/plugins/SealModule.cc | 4 + .../MCTruth/plugins/SeedToTrackProducer.cc | 160 ------------------ SimMuon/MCTruth/plugins/SeedToTrackProducer.h | 72 +------- ...Producer.cc => SeedToTrackProducerBase.cc} | 50 +++--- .../MCTruth/plugins/SeedToTrackProducerBase.h | 70 ++++++++ 6 files changed, 119 insertions(+), 299 deletions(-) delete mode 100644 SimMuon/MCTruth/plugins/SeedToTrackProducer.cc rename SimMuon/MCTruth/plugins/{Phase2SeedToTrackProducer.cc => SeedToTrackProducerBase.cc} (77%) create mode 100644 SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h diff --git a/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h b/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h index bafdf02df2591..12fe7141af582 100644 --- a/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h +++ b/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h @@ -1,65 +1,17 @@ #ifndef SimMuon_MCTruth_Phase2SeedToTrackProducer_h #define SimMuon_MCTruth_Phase2SeedToTrackProducer_h -/** \class Phase2SeedToTrackProducer +/** \class SeedToTrackProducer + * + * SeedToTrackProducerBase class specialized for Phase 2 + * Muon seeds * - * Phase-2 implementation of the SeedToTrackProducerModule. - * Baseline behaviour is the same, with the difference that - * a collection of L2MuonTrajectorySeeds is expected as input - * - * \author Luca Ferragina (INFN BO), Carlo Battilana (INFN BO), 2024 + * \author Luca Ferragina (INFN BO), 2024 */ -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/global/EDProducer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" - -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h" -#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" - -#include "TrackingTools/Records/interface/TransientRecHitRecord.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" -#include "TrackingTools/TransientTrack/interface/TransientTrack.h" -#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" +#include "SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h" #include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" -// -// class declaration -// - -typedef math::Error<5>::type CovarianceMatrix; - -class Phase2SeedToTrackProducer : public edm::global::EDProducer<> { -public: - explicit Phase2SeedToTrackProducer(const edm::ParameterSet &); - -private: - void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const final; - TrajectoryStateOnSurface seedTransientState(const L2MuonTrajectorySeed &, - const MagneticField &, - const GlobalTrackingGeometry &) const; - // ----------member data --------------------------- - - edm::EDGetTokenT L2seedsTagT_; - edm::EDGetTokenT> L2seedsTagS_; - - const edm::ESGetToken theMGFieldToken; - const edm::ESGetToken theTrackingGeometryToken; - const edm::ESGetToken theTopoToken; -}; +typedef SeedToTrackProducerBase Phase2SeedToTrackProducer; #endif diff --git a/SimMuon/MCTruth/plugins/SealModule.cc b/SimMuon/MCTruth/plugins/SealModule.cc index cf557981fe9d6..b2988b656c8c3 100644 --- a/SimMuon/MCTruth/plugins/SealModule.cc +++ b/SimMuon/MCTruth/plugins/SealModule.cc @@ -2,6 +2,10 @@ #include "FWCore/PluginManager/interface/ModuleDef.h" #include "SimMuon/MCTruth/interface/CSCTruthTest.h" #include "SimMuon/MCTruth/plugins/MuonAssociatorEDProducer.h" +#include "SimMuon/MCTruth/plugins/SeedToTrackProducer.h" +#include "SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h" DEFINE_FWK_MODULE(MuonAssociatorEDProducer); DEFINE_FWK_MODULE(CSCTruthTest); +DEFINE_FWK_MODULE(SeedToTrackProducer); +DEFINE_FWK_MODULE(Phase2SeedToTrackProducer); diff --git a/SimMuon/MCTruth/plugins/SeedToTrackProducer.cc b/SimMuon/MCTruth/plugins/SeedToTrackProducer.cc deleted file mode 100644 index 22e92ad92964b..0000000000000 --- a/SimMuon/MCTruth/plugins/SeedToTrackProducer.cc +++ /dev/null @@ -1,160 +0,0 @@ -// -*- C++ -*- -// -// Package: SeedToTrackProducer -// Class: SeedToTrackProducer -// -/**\class SeedToTrackProducer SeedToTrackProducer.cc - hugues/SeedToTrackProducer/plugins/SeedToTrackProducer.cc - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: Hugues Brun -// Created: Tue, 05 Nov 2013 13:42:04 GMT -// $Id$ -// -// - -#include "SeedToTrackProducer.h" - -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" -#include "Geometry/Records/interface/TrackerTopologyRcd.h" - -// -// constructors and destructor -// -SeedToTrackProducer::SeedToTrackProducer(const edm::ParameterSet &iConfig) - : theMGFieldToken(esConsumes()), theTrackingGeometryToken(esConsumes()), theTopoToken(esConsumes()) { - L2seedsTagT_ = consumes(iConfig.getParameter("L2seedsCollection")); - L2seedsTagS_ = consumes>(iConfig.getParameter("L2seedsCollection")); - - produces(); - produces(); - produces(); -} - -// -// member functions -// - -// ------------ method called to produce the data ------------ -void SeedToTrackProducer::produce(edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const { - using namespace edm; - using namespace std; - - std::unique_ptr selectedTracks(new reco::TrackCollection); - std::unique_ptr selectedTrackExtras(new reco::TrackExtraCollection()); - std::unique_ptr selectedTrackHits(new TrackingRecHitCollection()); - - reco::TrackRefProd rTracks = iEvent.getRefBeforePut(); - reco::TrackExtraRefProd rTrackExtras = iEvent.getRefBeforePut(); - TrackingRecHitRefProd rHits = iEvent.getRefBeforePut(); - - edm::Ref::key_type hidx = 0; - edm::Ref::key_type idx = 0; - - // magnetic fied and detector geometry - auto const &mgField = iSetup.getData(theMGFieldToken); - auto const &trackingGeometry = iSetup.getData(theTrackingGeometryToken); - - const TrackerTopology &ttopo = iSetup.getData(theTopoToken); - - // now read the L2 seeds collection : - edm::Handle L2seedsCollection; - iEvent.getByToken(L2seedsTagT_, L2seedsCollection); - const std::vector *L2seeds = nullptr; - if (L2seedsCollection.isValid()) - L2seeds = L2seedsCollection.product(); - else - edm::LogError("SeedToTrackProducer") << "L2 seeds collection not found !! " << endl; - - edm::Handle> seedHandle; - iEvent.getByToken(L2seedsTagS_, seedHandle); - - // now loop on the seeds : - for (unsigned int i = 0; i < L2seeds->size(); i++) { - // get the kinematic extrapolation from the seed - TrajectoryStateOnSurface theTrajectory = seedTransientState(L2seeds->at(i), mgField, trackingGeometry); - float seedEta = theTrajectory.globalMomentum().eta(); - float seedPhi = theTrajectory.globalMomentum().phi(); - float seedPt = theTrajectory.globalMomentum().perp(); - CovarianceMatrix matrixSeedErr = theTrajectory.curvilinearError().matrix(); - edm::LogVerbatim("SeedToTrackProducer") - << "seedPt=" << seedPt << " seedEta=" << seedEta << " seedPhi=" << seedPhi << endl; - /*AlgebraicSymMatrix66 errors = theTrajectory.cartesianError().matrix(); - double partialPterror = - errors(3,3)*pow(theTrajectory.globalMomentum().x(),2) + - errors(4,4)*pow(theTrajectory.globalMomentum().y(),2); - edm::LogVerbatim("SeedToTrackProducer") << "seedPtError=" << - sqrt(partialPterror)/theTrajectory.globalMomentum().perp() << - "seedPhiError=" << theTrajectory.curvilinearError().matrix()(2,2) << endl;*/ - // fill the track in a way that its pt, phi and eta will be the same as the - // seed - math::XYZPoint initPoint(0, 0, 0); - math::XYZVector initMom(seedPt * cos(seedPhi), seedPt * sin(seedPhi), seedPt * sinh(seedEta)); - reco::Track theTrack(1, - 1, // dummy Chi2 and ndof - initPoint, - initMom, - 1, - matrixSeedErr, - reco::TrackBase::TrackAlgorithm::globalMuon, - reco::TrackBase::TrackQuality::tight); - - // fill the extra track with dummy information - math::XYZPoint dummyFinalPoint(1, 1, 1); - math::XYZVector dummyFinalMom(0, 0, 10); - edm::RefToBase seed(seedHandle, i); - CovarianceMatrix matrixExtra = ROOT::Math::SMatrixIdentity(); - reco::TrackExtra theTrackExtra(dummyFinalPoint, - dummyFinalMom, - true, - initPoint, - initMom, - true, - matrixSeedErr, - 1, - matrixExtra, - 2, - (L2seeds->at(i)).direction(), - seed); - theTrack.setExtra(reco::TrackExtraRef(rTrackExtras, idx++)); - edm::LogVerbatim("SeedToTrackProducer") - << "trackPt=" << theTrack.pt() << " trackEta=" << theTrack.eta() << " trackPhi=" << theTrack.phi() << endl; - edm::LogVerbatim("SeedToTrackProducer") - << "trackPtError=" << theTrack.ptError() << "trackPhiError=" << theTrack.phiError() << endl; - - // fill the seed segments in the track - unsigned int nHitsAdded = 0; - for (auto const &recHit : L2seeds->at(i).recHits()) { - TrackingRecHit *hit = recHit.clone(); - theTrack.appendHitPattern(*hit, ttopo); - selectedTrackHits->push_back(hit); - nHitsAdded++; - } - theTrackExtra.setHits(rHits, hidx, nHitsAdded); - hidx += nHitsAdded; - selectedTracks->push_back(theTrack); - selectedTrackExtras->push_back(theTrackExtra); - } - iEvent.put(std::move(selectedTracks)); - iEvent.put(std::move(selectedTrackExtras)); - iEvent.put(std::move(selectedTrackHits)); -} - -TrajectoryStateOnSurface SeedToTrackProducer::seedTransientState(const TrajectorySeed &tmpSeed, - const MagneticField &mgField, - const GlobalTrackingGeometry &trackingGeometry) const { - PTrajectoryStateOnDet tmpTSOD = tmpSeed.startingState(); - DetId tmpDetId(tmpTSOD.detId()); - const GeomDet *tmpGeomDet = trackingGeometry.idToDet(tmpDetId); - TrajectoryStateOnSurface tmpTSOS = - trajectoryStateTransform::transientState(tmpTSOD, &(tmpGeomDet->surface()), &mgField); - return tmpTSOS; -} - -// define this as a plug-in -DEFINE_FWK_MODULE(SeedToTrackProducer); diff --git a/SimMuon/MCTruth/plugins/SeedToTrackProducer.h b/SimMuon/MCTruth/plugins/SeedToTrackProducer.h index 9c927c9ff2b5c..c70eb1f14e8f6 100644 --- a/SimMuon/MCTruth/plugins/SeedToTrackProducer.h +++ b/SimMuon/MCTruth/plugins/SeedToTrackProducer.h @@ -1,71 +1,17 @@ #ifndef SimMuon_MCTruth_SeedToTrackProducer_h #define SimMuon_MCTruth_SeedToTrackProducer_h -// -*- C++ -*- -// -// Package: SeedToTrackProducer -// Class: SeedToTrackProducer -// -/**\class SeedToTrackProducer SeedToTrackProducer.cc - hugues/SeedToTrackProducer/plugins/SeedToTrackProducer.cc - Description: +/** \class SeedToTrackProducer + * + * SeedToTrackProducerBase class specialized for Phase 1 + * Muon seeds + * + * \author Luca Ferragina (INFN BO), 2024 + */ -*/ -// -// Original Author: Hugues Brun -// Created: Tue, 05 Nov 2013 13:42:04 GMT -// $Id$ -// -// -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/global/EDProducer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" - -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h" -#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" - -#include "TrackingTools/Records/interface/TransientRecHitRecord.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" -#include "TrackingTools/TransientTrack/interface/TransientTrack.h" -#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" - -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" -// -// class declaration -// - -typedef math::Error<5>::type CovarianceMatrix; - -class SeedToTrackProducer : public edm::global::EDProducer<> { -public: - explicit SeedToTrackProducer(const edm::ParameterSet &); - -private: - void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const final; - TrajectoryStateOnSurface seedTransientState(const TrajectorySeed &, - const MagneticField &, - const GlobalTrackingGeometry &) const; - // ----------member data --------------------------- - - edm::EDGetTokenT L2seedsTagT_; - edm::EDGetTokenT> L2seedsTagS_; - - const edm::ESGetToken theMGFieldToken; - const edm::ESGetToken theTrackingGeometryToken; - const edm::ESGetToken theTopoToken; -}; +typedef SeedToTrackProducerBase SeedToTrackProducer; #endif diff --git a/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.cc b/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc similarity index 77% rename from SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.cc rename to SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc index 5b7541068bebd..fb824635d83b0 100644 --- a/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.cc +++ b/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc @@ -1,19 +1,28 @@ -/** \class Phase2SeedToTrackProducer - * See header file for a description of this class - * \author Luca Ferragina (INFN BO), Carlo Battilana (INFN BO), 2024 +/** \class SeedToTrackProducerBase + * + * See header file for a description of the class + * + * \author Hugues Brun */ -#include "Phase2SeedToTrackProducer.h" +#include "SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h" #include "DataFormats/TrackerCommon/interface/TrackerTopology.h" #include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" +#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h" + +template class SeedToTrackProducerBase>; +template class SeedToTrackProducerBase>; + // // constructors and destructor // -Phase2SeedToTrackProducer::Phase2SeedToTrackProducer(const edm::ParameterSet &iConfig) +template +SeedToTrackProducerBase::SeedToTrackProducerBase(const edm::ParameterSet &iConfig) : theMGFieldToken(esConsumes()), theTrackingGeometryToken(esConsumes()), theTopoToken(esConsumes()) { - L2seedsTagT_ = consumes(iConfig.getParameter("L2seedsCollection")); + L2seedsTagT_ = consumes(iConfig.getParameter("L2seedsCollection")); L2seedsTagS_ = consumes>(iConfig.getParameter("L2seedsCollection")); produces(); @@ -26,7 +35,10 @@ Phase2SeedToTrackProducer::Phase2SeedToTrackProducer(const edm::ParameterSet &iC // // ------------ method called to produce the data ------------ -void Phase2SeedToTrackProducer::produce(edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const { +template +void SeedToTrackProducerBase::produce(edm::StreamID, + edm::Event &iEvent, + const edm::EventSetup &iSetup) const { using namespace edm; using namespace std; @@ -48,13 +60,13 @@ void Phase2SeedToTrackProducer::produce(edm::StreamID, edm::Event &iEvent, const const TrackerTopology &ttopo = iSetup.getData(theTopoToken); // now read the L2 seeds collection : - edm::Handle L2seedsCollection; + edm::Handle L2seedsCollection; iEvent.getByToken(L2seedsTagT_, L2seedsCollection); - const std::vector *L2seeds = nullptr; + const std::vector *L2seeds = nullptr; if (L2seedsCollection.isValid()) L2seeds = L2seedsCollection.product(); else - edm::LogError("Phase2SeedToTrackProducer") << "L2 seeds collection not found !! " << endl; + edm::LogError("SeedToTrackProducerBase") << "L2 seeds collection not found !! " << endl; edm::Handle> seedHandle; iEvent.getByToken(L2seedsTagS_, seedHandle); @@ -67,13 +79,13 @@ void Phase2SeedToTrackProducer::produce(edm::StreamID, edm::Event &iEvent, const float seedPhi = theTrajectory.globalMomentum().phi(); float seedPt = theTrajectory.globalMomentum().perp(); CovarianceMatrix matrixSeedErr = theTrajectory.curvilinearError().matrix(); - edm::LogVerbatim("Phase2SeedToTrackProducer") + edm::LogVerbatim("SeedToTrackProducerBase") << "seedPt=" << seedPt << " seedEta=" << seedEta << " seedPhi=" << seedPhi << endl; /*AlgebraicSymMatrix66 errors = theTrajectory.cartesianError().matrix(); double partialPterror = errors(3,3)*pow(theTrajectory.globalMomentum().x(),2) + errors(4,4)*pow(theTrajectory.globalMomentum().y(),2); - edm::LogVerbatim("Phase2SeedToTrackProducer") << "seedPtError=" << + edm::LogVerbatim("SeedToTrackProducerBase") << "seedPtError=" << sqrt(partialPterror)/theTrajectory.globalMomentum().perp() << "seedPhiError=" << theTrajectory.curvilinearError().matrix()(2,2) << endl;*/ // fill the track in a way that its pt, phi and eta will be the same as the @@ -107,9 +119,9 @@ void Phase2SeedToTrackProducer::produce(edm::StreamID, edm::Event &iEvent, const (L2seeds->at(i)).direction(), seed); theTrack.setExtra(reco::TrackExtraRef(rTrackExtras, idx++)); - edm::LogVerbatim("Phase2SeedToTrackProducer") + edm::LogVerbatim("SeedToTrackProducerBase") << "trackPt=" << theTrack.pt() << " trackEta=" << theTrack.eta() << " trackPhi=" << theTrack.phi() << endl; - edm::LogVerbatim("Phase2SeedToTrackProducer") + edm::LogVerbatim("SeedToTrackProducerBase") << "trackPtError=" << theTrack.ptError() << "trackPhiError=" << theTrack.phiError() << endl; // fill the seed segments in the track @@ -130,10 +142,9 @@ void Phase2SeedToTrackProducer::produce(edm::StreamID, edm::Event &iEvent, const iEvent.put(std::move(selectedTrackHits)); } -TrajectoryStateOnSurface Phase2SeedToTrackProducer::seedTransientState( - const L2MuonTrajectorySeed &tmpSeed, - const MagneticField &mgField, - const GlobalTrackingGeometry &trackingGeometry) const { +template +TrajectoryStateOnSurface SeedToTrackProducerBase::seedTransientState( + const SeedType &tmpSeed, const MagneticField &mgField, const GlobalTrackingGeometry &trackingGeometry) const { PTrajectoryStateOnDet tmpTSOD = tmpSeed.startingState(); DetId tmpDetId(tmpTSOD.detId()); const GeomDet *tmpGeomDet = trackingGeometry.idToDet(tmpDetId); @@ -141,6 +152,3 @@ TrajectoryStateOnSurface Phase2SeedToTrackProducer::seedTransientState( trajectoryStateTransform::transientState(tmpTSOD, &(tmpGeomDet->surface()), &mgField); return tmpTSOS; } - -// define this as a plug-in -DEFINE_FWK_MODULE(Phase2SeedToTrackProducer); diff --git a/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h b/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h new file mode 100644 index 0000000000000..46764652ad840 --- /dev/null +++ b/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h @@ -0,0 +1,70 @@ +#ifndef SimMuon_MCTruth_SeedToTrackProducerBase_h +#define SimMuon_MCTruth_SeedToTrackProducerBase_h + +/** \class SeedToTrackProducerBase + * + * Base class used to produce MuonTracks from seeds + * + * \author Hugues Brun + * Created: Tue, 05 Nov 2013 13:42:04 GMT + * + * Modified to be templated on the seed collection type + * to make it compatible with Phase 2 seeds + * \author Luca Ferragina (INFN BO), 2024 + */ + +// system include files +#include + +// user include files +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" + +#include "Geometry/CommonDetUnit/interface/GeomDet.h" +#include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h" +#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" + +#include "TrackingTools/Records/interface/TransientRecHitRecord.h" +#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" +#include "TrackingTools/TransientTrack/interface/TransientTrack.h" +#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" + +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" + +// +// class declaration +// + +typedef math::Error<5>::type CovarianceMatrix; + +template +class SeedToTrackProducerBase : public edm::global::EDProducer<> { +public: + explicit SeedToTrackProducerBase(const edm::ParameterSet &); + +private: + void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const final; + + using SeedType = typename SeedCollection::value_type; + TrajectoryStateOnSurface seedTransientState(const SeedType &, + const MagneticField &, + const GlobalTrackingGeometry &) const; + // ----------member data --------------------------- + + edm::EDGetTokenT L2seedsTagT_; + edm::EDGetTokenT> L2seedsTagS_; + + const edm::ESGetToken theMGFieldToken; + const edm::ESGetToken theTrackingGeometryToken; + const edm::ESGetToken theTopoToken; +}; + +#endif From a758f4bd4d446fcae0149c29b3433e3acd6d2c86 Mon Sep 17 00:00:00 2001 From: Andre Govinda Stahl Leiton Date: Thu, 5 Dec 2024 12:58:17 +0100 Subject: [PATCH 204/418] Implement eras for Run3 2025 PbPb UPC and oxygen runs --- .../Eras/python/Era_Run3_2025_OXY_cff.py | 6 +++ .../Eras/python/Era_Run3_2025_UPC_cff.py | 8 ++++ .../Eras/python/Modifier_run3_oxygen_cff.py | 3 ++ .../python/relval_standard.py | 17 ++++++-- .../python/relval_steps.py | 39 +++++++++++++++++-- .../StandardSequences/python/Eras.py | 4 +- 6 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 Configuration/Eras/python/Era_Run3_2025_OXY_cff.py create mode 100644 Configuration/Eras/python/Era_Run3_2025_UPC_cff.py create mode 100644 Configuration/Eras/python/Modifier_run3_oxygen_cff.py diff --git a/Configuration/Eras/python/Era_Run3_2025_OXY_cff.py b/Configuration/Eras/python/Era_Run3_2025_OXY_cff.py new file mode 100644 index 0000000000000..3b17e6b0c8560 --- /dev/null +++ b/Configuration/Eras/python/Era_Run3_2025_OXY_cff.py @@ -0,0 +1,6 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Run3_2025_UPC_cff import Run3_2025_UPC +from Configuration.Eras.Modifier_run3_oxygen_cff import run3_oxygen + +Run3_2025_OXY = cms.ModifierChain(Run3_2025_UPC, run3_oxygen) diff --git a/Configuration/Eras/python/Era_Run3_2025_UPC_cff.py b/Configuration/Eras/python/Era_Run3_2025_UPC_cff.py new file mode 100644 index 0000000000000..f70a8749df7c5 --- /dev/null +++ b/Configuration/Eras/python/Era_Run3_2025_UPC_cff.py @@ -0,0 +1,8 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Run3_2025_cff import Run3_2025 +from Configuration.ProcessModifiers.egamma_lowPt_exclusive_cff import egamma_lowPt_exclusive +from Configuration.Eras.Modifier_highBetaStar_cff import highBetaStar +from Configuration.Eras.Modifier_run3_upc_cff import run3_upc + +Run3_2025_UPC = cms.ModifierChain(Run3_2025, egamma_lowPt_exclusive, highBetaStar, run3_upc) diff --git a/Configuration/Eras/python/Modifier_run3_oxygen_cff.py b/Configuration/Eras/python/Modifier_run3_oxygen_cff.py new file mode 100644 index 0000000000000..0483232082616 --- /dev/null +++ b/Configuration/Eras/python/Modifier_run3_oxygen_cff.py @@ -0,0 +1,3 @@ +import FWCore.ParameterSet.Config as cms + +run3_oxygen =cms.Modifier() diff --git a/Configuration/PyReleaseValidation/python/relval_standard.py b/Configuration/PyReleaseValidation/python/relval_standard.py index 9d368812a5f51..086f989eb5f97 100644 --- a/Configuration/PyReleaseValidation/python/relval_standard.py +++ b/Configuration/PyReleaseValidation/python/relval_standard.py @@ -556,8 +556,8 @@ workflows[142.0] = ['',['RunHIPhysicsRawPrime2023A','HLTDR3_HI2023ARawprime','RECOHIRUN3_reHLT_2023','HARVESTRUN3_HI2023A']] ### run3-2024 (2024 HI UPC data) -workflows[142.901] = ['',['RunUPC2023','RECODR3_2024_UPC','HARVESTDPROMPTR3']] -workflows[142.902] = ['',['RunUPC2023','RECODR3_2024_HIN','HARVESTDPROMPTR3']] +workflows[142.901] = ['',['RunUPC2024','RECODR3_2024_UPC','HARVESTDPROMPTR3']] +workflows[142.902] = ['',['RunUPC2024','RECODR3_2024_HIN','HARVESTDPROMPTR3']] ### run3-2024 skim (2024 HI MC temp) workflows[143.201] = ['',['HydjetQ_B12_5362GeV_2024','DIGIHI2024','SKIMHIFORWARDRUN3_2024','HARVESTHI2024']] @@ -566,6 +566,13 @@ ### run2-2016 (2024 PA UPC rereco data) workflows[142.903] = ['',['RunUPC2016PA','RECODR2_2016_UPC','HARVEST2016']] +### run3-2025 (2025 HI UPC data) +workflows[143.901] = ['',['RunUPC2024','RECODR3_2025_UPC','HARVESTDPROMPTR3']] +workflows[143.902] = ['',['RunUPC2024','RECODR3_2025_HIN','HARVESTDPROMPTR3']] + +### run3-2025 (2025 HI OXY data) +workflows[143.911] = ['',['RunUPC2024','RECODR3_2025_OXY','HARVESTDPROMPTR3']] + ################################################################## ### Golden Data Wfs # for a limited set of eras and PDs not to overflow the IB matrices @@ -890,8 +897,10 @@ ### UPC test ### workflows[180] = ['',['Pythia8_GammaNucleus_5360_HI_2023','DIGIHI2023PPRECO','RECOUPC2023','ALCARECOUPC2023','HARVESTUPC2023']] workflows[180.1] = ['',['Starlight_DoubleDiffraction_5360_HI_2023','DIGIHI2023PPRECO','RECOUPC2023','ALCARECOUPC2023','HARVESTUPC2023']] -workflows[181] = ['',['Pythia8_GammaNucleus_5360_HI_2024','DIGIHI2024','RECOUPC2024','ALCARECOUPC2024','HARVESTUPC2024']] -workflows[181.1] = ['',['Starlight_DoubleDiffraction_5360_HI_2024','DIGIHI2024','RECOUPC2024','ALCARECOUPC2024','HARVESTUPC2024']] +workflows[181] = ['',['Pythia8_GammaNucleus_5360_UPC_2024','DIGIUPC2024','RECOUPC2024','ALCARECOUPC2024','HARVESTUPC2024']] +workflows[181.1] = ['',['Starlight_DoubleDiffraction_5360_UPC_2024','DIGIUPC2024','RECOUPC2024','ALCARECOUPC2024','HARVESTUPC2024']] +workflows[182] = ['',['Pythia8_GammaNucleus_5360_UPC_2025','DIGIUPC2025','RECOUPC2025','ALCARECOUPC2025','HARVESTUPC2025']] +workflows[182.1] = ['',['Starlight_DoubleDiffraction_5360_UPC_2025','DIGIUPC2025','RECOUPC2025','ALCARECOUPC2025','HARVESTUPC2025']] ### pp reference test ### workflows[149] = ['',['QCD_Pt_80_120_13_PPREF','DIGIPPREF2017','RECOPPREF2017','HARVESTPPREF2017']] diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 7b1c10ea46bbc..b012fb9e455e1 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -40,6 +40,10 @@ step1Up2024Defaults = merge ([{'--conditions':'auto:phase1_2024_realistic','--era':'Run3','--beamspot':'DBrealistic'},step1Up2018Defaults]) # step1 gensim: for 2024 HI prod step1Up2024HiProdDefaults = merge ([{'--conditions':'auto:phase1_2024_realistic_hi','--era':'Run3_pp_on_PbPb_2024','--beamspot':'DBrealistic'},step1Up2023HiProdDefaults]) +# step1 gensim: for 2024 UPC prod +step1Up2024UPCProdDefaults = merge ([{'--era':'Run3_2024_UPC'},step1Up2024HiProdDefaults]) +# step1 gensim: for 2025 UPC prod +step1Up2025UPCProdDefaults = merge ([{'--era':'Run3_2025_UPC'},step1Up2024HiProdDefaults]) steps = Steps() @@ -634,6 +638,9 @@ Run2023UPC={375463: [[52,52]]} steps['RunUPC2023']={'INPUT':InputInfo(dataSet='/HIForward1/HIRun2023A-v1/RAW',label='upc2023',events=10000,location='STD',ls=Run2023UPC)} +Run2024UPC={388784: [[344,344]]} +steps['RunUPC2024']={'INPUT':InputInfo(dataSet='/HIForward0/HIRun2024B-v1/RAW',label='upc2024',events=10000,location='STD',ls=Run2024UPC)} + RunHI2023={375491: [[100, 100]]} steps['RunHIPhysicsRawPrime2023A']={'INPUT':InputInfo(dataSet='/HIPhysicsRawPrime0/HIRun2023A-v1/RAW',label='HI2023A',events=100000,location='STD', ls=RunHI2023)} @@ -819,6 +826,12 @@ def gen2024(fragment,howMuch): def gen2024hiprod(fragment,howMuch): global step1Up2024HiProdDefaults return merge([{'cfg':fragment},howMuch,step1Up2024HiProdDefaults]) +def gen2024upcprod(fragment,howMuch): + global step1Up2024UPCProdDefaults + return merge([{'cfg':fragment},howMuch,step1Up2024UPCProdDefaults]) +def gen2025upcprod(fragment,howMuch): + global step1Up2025UPCProdDefaults + return merge([{'cfg':fragment},howMuch,step1Up2025UPCProdDefaults]) ### Production test: 13 TeV equivalents steps['ProdMinBias_13']=gen2015('MinBias_13TeV_pythia8_TuneCUETP8M1_cfi',Kby(9,100)) @@ -1271,6 +1284,8 @@ def genS(fragment,howMuch): hiDefaults2024 = {'--conditions':'auto:phase1_2024_realistic_hi', '--era':'Run3_pp_on_PbPb_2024'} hiDefaults2024_approxClusters = {'--conditions':'auto:phase1_2024_realistic_hi', '--era':'Run3_pp_on_PbPb_approxSiStripClusters_2024'} upcDefaults2024 = {'--conditions':'auto:phase1_2024_realistic_hi', '--era':'Run3_2024_UPC'} +upcDefaults2025 = {'--conditions':'auto:phase1_2024_realistic_hi', '--era':'Run3_2025_UPC'} +oxyDefaults2025 = {'--conditions':'auto:phase1_2024_realistic_hi', '--era':'Run3_2025_OXY'} steps['Hydjet2Q_MinBias_5020GeV_2018_ppReco']=merge([{'-n':1},hiDefaults2018_ppReco,gen2018hiprod('Hydjet2_Quenched_MinBias_5020GeV_cfi',U2000by1)]) steps['HydjetQ_MinBias_XeXe_5442GeV_2017']=merge([{'-n':1},hiDefaults2017,gen2017('Hydjet_Quenched_MinBias_XeXe_5442GeV_cfi',U2000by1)]) @@ -1302,9 +1317,11 @@ def genS(fragment,howMuch): steps['ZEE_5362_HI_2024']=merge([hiDefaults2024,gen2024hiprod('ZEE_5362GeV_TuneCP5_cfi',Kby(18,300))]) steps['Starlight_DoubleDiffraction_5360_HI_2023']=merge([{'-s':'LHE,GEN,SIM'},gen2023hiprod('Configuration/Generator/python/Starlight_DoubleDiffraction_5p36TeV_cfi.py',Kby(9,150))]) -steps['Starlight_DoubleDiffraction_5360_HI_2024']=merge([{'-s':'LHE,GEN,SIM'},gen2024hiprod('Configuration/Generator/python/Starlight_DoubleDiffraction_5p36TeV_cfi.py',Kby(9,150))]) +steps['Starlight_DoubleDiffraction_5360_UPC_2024']=merge([{'-s':'LHE,GEN,SIM'},gen2024upcprod('Configuration/Generator/python/Starlight_DoubleDiffraction_5p36TeV_cfi.py',Kby(9,150))]) +steps['Starlight_DoubleDiffraction_5360_UPC_2025']=merge([{'-s':'LHE,GEN,SIM'},gen2025upcprod('Configuration/Generator/python/Starlight_DoubleDiffraction_5p36TeV_cfi.py',Kby(9,150))]) steps['Pythia8_GammaNucleus_5360_HI_2023']=gen2023hiprod('Pythia8_GammaNucleus_5p36TeV_cfi',Kby(9,150)) -steps['Pythia8_GammaNucleus_5360_HI_2024']=gen2024hiprod('Pythia8_GammaNucleus_5p36TeV_cfi',Kby(9,150)) +steps['Pythia8_GammaNucleus_5360_UPC_2024']=gen2024upcprod('Pythia8_GammaNucleus_5p36TeV_cfi',Kby(9,150)) +steps['Pythia8_GammaNucleus_5360_UPC_2025']=gen2025upcprod('Pythia8_GammaNucleus_5p36TeV_cfi',Kby(9,150)) ## pp reference tests ppRefDefaults2017 = {'--conditions':'auto:phase1_2017_realistic_ppref', '--era':'Run2_2017_ppRef', '--beamspot':'Fixed_EmitRealistic5TeVppCollision2017', '-n':2} @@ -2044,6 +2061,8 @@ def lhegensim2018ml(fragment,howMuch): #steps['RESIMDIGI']=merge([{'-s':'reGEN,reSIM,DIGI,L1,DIGI2RAW,HLT:@fake,RAW2DIGI,L1Reco','-n':10,'--restoreRNDSeeds':'','--process':'HLT'},steps['DIGI']]) +steps['DIGIUPC2025']=merge([{'-s':'DIGI,L1,DIGI2RAW,HLT:HIon'}, upcDefaults2025, step2Upg2015Defaults]) +steps['DIGIUPC2024']=merge([{'-s':'DIGI,L1,DIGI2RAW,HLT:HIon'}, upcDefaults2024, step2Upg2015Defaults]) steps['DIGIHI2024APPROXCLUSTERS']=merge([{'-s':'DIGI:pdigi_hi_nogen,L1,DIGI2RAW,HLT:HIon'}, hiDefaults2024_approxClusters, {'--pileup':'HiMixNoPU'}, step2Upg2015Defaults]) steps['DIGIHI2024']=merge([{'-s':'DIGI:pdigi_hi_nogen,L1,DIGI2RAW,HLT:HIon'}, hiDefaults2024, {'--pileup':'HiMixNoPU'}, step2Upg2015Defaults]) steps['DIGIHI2023PPRECOAPPROXCLUSTERS']=merge([{'-s':'DIGI:pdigi_hi_nogen,L1,DIGI2RAW,HLT:@fake2'}, hiDefaults2023_ppReco_approxClusters, {'--pileup':'HiMixNoPU'}, step2Upg2015Defaults]) @@ -2770,6 +2789,7 @@ def lhegensim2018ml(fragment,howMuch): steps['RECODR3_2023']=merge([{'--era':'Run3_2023'},steps['RECODR3']]) steps['RECODR3_2024']=merge([{'--era':'Run3_2024'},steps['RECODR3']]) +steps['RECODR3_2025']=merge([{'--era':'Run3_2025'},steps['RECODR3']]) steps['RECODR3_reHLT_2022']=merge([{'--conditions':'auto:run3_data_relval', '--hltProcess':'reHLT'},steps['RECODR3']]) steps['RECODR3_reHLT_2023']=merge([{'--conditions':'auto:run3_data_relval', '--hltProcess':'reHLT'},steps['RECODR3_2023']]) @@ -2781,6 +2801,9 @@ def lhegensim2018ml(fragment,howMuch): steps['RECODR3_2023_UPC']=merge([{'--conditions':'auto:run3_data', '--era':'Run3_2023_UPC'},steps['RECODR3_2023_HIN']]) steps['RECODR3_2024_HIN']=merge([{'--conditions':'auto:run3_data_prompt', '-s':'RAW2DIGI,L1Reco,RECO,DQM:@commonFakeHLT+@standardDQMFakeHLT', '--repacked':'', '-n':1000},steps['RECODR3_2024']]) steps['RECODR3_2024_UPC']=merge([{'--era':'Run3_2024_UPC'},steps['RECODR3_2024_HIN']]) +steps['RECODR3_2025_HIN']=merge([{'--conditions':'auto:run3_data_prompt', '-s':'RAW2DIGI,L1Reco,RECO,DQM:@commonFakeHLT+@standardDQMFakeHLT', '--repacked':'', '-n':1000},steps['RECODR3_2025']]) +steps['RECODR3_2025_UPC']=merge([{'--era':'Run3_2025_UPC'},steps['RECODR3_2025_HIN']]) +steps['RECODR3_2025_OXY']=merge([{'--era':'Run3_2025_OXY'},steps['RECODR3_2025_HIN']]) steps['RECODR3Splash']=merge([{'-n': 2, '-s': 'RAW2DIGI,L1Reco,RECO,PAT,ALCA:SiStripCalZeroBias+SiStripCalMinBias+TkAlMinBias+EcalESAlign,DQM:@standardDQMFakeHLT+@miniAODDQM' @@ -3240,6 +3263,14 @@ def gen2024HiMix(fragment,howMuch): steps['RECOUP15_ID']=merge([{'--hltProcess':'HLT2'},steps['RECOUP15']]) +steps['RECOOXY2025']=merge([oxyDefaults2025,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@miniAODDQM','--datatier':'GEN-SIM-RECO,MINIAODSIM,DQMIO','--eventcontent':'RECOSIM,MINIAODSIM,DQM'},step3Up2015Defaults]) +steps['MINIOXY2025']=merge([oxyDefaults2025,{'-s':'PAT','--datatier':'MINIAODSIM','--eventcontent':'MINIAODSIM'},step3Up2015Defaults]) +steps['ALCARECOOXY2025']=merge([oxyDefaults2025,{'-s':'ALCA:TkAlMinBias+SiStripCalMinBias','--datatier':'ALCARECO','--eventcontent':'ALCARECO'}]) + +steps['RECOUPC2025']=merge([upcDefaults2025,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@miniAODDQM','--datatier':'GEN-SIM-RECO,MINIAODSIM,DQMIO','--eventcontent':'RECOSIM,MINIAODSIM,DQM'},step3Up2015Defaults]) +steps['MINIUPC2025']=merge([upcDefaults2025,{'-s':'PAT','--datatier':'MINIAODSIM','--eventcontent':'MINIAODSIM'},step3Up2015Defaults]) +steps['ALCARECOUPC2025']=merge([upcDefaults2025,{'-s':'ALCA:TkAlMinBias+SiStripCalMinBias','--datatier':'ALCARECO','--eventcontent':'ALCARECO'}]) + steps['RECOUPC2024']=merge([upcDefaults2024,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@miniAODDQM','--datatier':'GEN-SIM-RECO,MINIAODSIM,DQMIO','--eventcontent':'RECOSIM,MINIAODSIM,DQM'},step3Up2015Defaults]) steps['MINIUPC2024']=merge([upcDefaults2024,{'-s':'PAT','--datatier':'MINIAODSIM','--eventcontent':'MINIAODSIM'},step3Up2015Defaults]) steps['ALCARECOUPC2024']=merge([upcDefaults2024,{'-s':'ALCA:TkAlMinBias+SiStripCalMinBias','--datatier':'ALCARECO','--eventcontent':'ALCARECO'}]) @@ -3272,7 +3303,7 @@ def gen2024HiMix(fragment,howMuch): '--procModifiers':'genJetSubEvent', },step3Up2015Defaults]) -steps['SKIMHIFORWARDRUN3_2024'] = merge([hiDefaults2024, {'-s':'RAW2DIGI,L1Reco,RECO,SKIM:UPCMonopole,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@miniAODDQM'},steps['RECOHI2024']]) +steps['SKIMHIFORWARDRUN3_2024'] = merge([upcDefaults2024, {'-s':'RAW2DIGI,L1Reco,RECO,SKIM:UPCMonopole,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@miniAODDQM'},steps['RECOUPC2024']]) steps['SKIMHIPHYSICSRAWPRIMERUN3_2024'] = merge([hiDefaults2024_approxClusters, {'-s':'RAW2DIGI,L1Reco,RECO,SKIM:PbPbEMu+PbPbZEE+PbPbZMu+PbPbHighPtJets,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@miniAODDQM'},steps['RECOHI2024']]) steps['MINIHI2024PROD']=merge([hiDefaults2024,{'-s':'PAT', @@ -4001,6 +4032,8 @@ def gen2024HiMix(fragment,howMuch): '--filetype':'DQM', '--scenario':'pp'} +steps['HARVESTOXY2025']=merge([oxyDefaults2025,{'-s':'HARVESTING:validationHarvesting+dqmHarvesting','--filein':'file:step3_inDQM.root','--mc':'','--filetype':'DQM'}]) +steps['HARVESTUPC2025']=merge([upcDefaults2025,{'-s':'HARVESTING:validationHarvesting+dqmHarvesting','--filein':'file:step3_inDQM.root','--mc':'','--filetype':'DQM'}]) steps['HARVESTUPC2024']=merge([upcDefaults2024,{'-s':'HARVESTING:validationHarvesting+dqmHarvesting','--filein':'file:step3_inDQM.root','--mc':'','--filetype':'DQM'}]) steps['HARVESTUPC2023']=merge([upcDefaults2023,{'-s':'HARVESTING:validationHarvestingNoHLT+dqmHarvestingFakeHLT','--filein':'file:step3_inDQM.root','--mc':'','--filetype':'DQM'}]) diff --git a/Configuration/StandardSequences/python/Eras.py b/Configuration/StandardSequences/python/Eras.py index 014863af1f699..8cd3ecee770af 100644 --- a/Configuration/StandardSequences/python/Eras.py +++ b/Configuration/StandardSequences/python/Eras.py @@ -52,6 +52,8 @@ def __init__(self): 'Run3_2023_UPC', 'Run3_2024_ppRef', 'Run3_2024_UPC', + 'Run3_2025_UPC', + 'Run3_2025_OXY', 'Phase2', 'Phase2C9', 'Phase2C10', @@ -93,7 +95,7 @@ def __init__(self): 'run2_nanoAOD_106Xv2', 'run3_nanoAOD_pre142X', 'run3_ecal_devel', - 'run3_upc', + 'run3_upc', 'run3_oxygen', 'hcalHardcodeConditions', 'hcalSkipPacker', 'run2_HLTconditions_2016','run2_HLTconditions_2017','run2_HLTconditions_2018', 'bParking'] From 2e1c7f6fa640a7ae581c78ab6c539bfc1c5c3b78 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Thu, 5 Dec 2024 15:43:47 +0100 Subject: [PATCH 205/418] Add MTDDigiGeometryRecord to MTDTopology, adapt all the rest --- .../MTDGeomBuilderFromGeometricTimingDet.h | 4 +-- .../interface/MTDTopology.h | 21 +++++++++---- .../plugins/MTDDigiGeometryESModule.cc | 8 +---- .../plugins/MTDTopologyEP.cc | 30 +++++++++++-------- .../MTDGeomBuilderFromGeometricTimingDet.cc | 9 ++---- .../MTDGeometryBuilder/src/MTDTopology.cc | 4 +-- .../Records/interface/MTDDigiGeometryRecord.h | 2 -- Geometry/Records/interface/MTDTopologyRcd.h | 4 +-- ...SimLayerClusterAssociatorByHitsProducer.cc | 2 ++ .../plugins/MtdTruthAccumulator.cc | 1 + .../plugins/EtlDigiHitsValidation.cc | 1 + .../plugins/EtlLocalRecoValidation.cc | 1 + .../plugins/EtlSimHitsValidation.cc | 1 + 13 files changed, 47 insertions(+), 41 deletions(-) diff --git a/Geometry/MTDGeometryBuilder/interface/MTDGeomBuilderFromGeometricTimingDet.h b/Geometry/MTDGeometryBuilder/interface/MTDGeomBuilderFromGeometricTimingDet.h index 65781ab2aec78..542a8d1ba0c5e 100644 --- a/Geometry/MTDGeometryBuilder/interface/MTDGeomBuilderFromGeometricTimingDet.h +++ b/Geometry/MTDGeometryBuilder/interface/MTDGeomBuilderFromGeometricTimingDet.h @@ -9,13 +9,12 @@ #include "Geometry/CommonDetUnit/interface/GeomDetType.h" class MTDGeometry; -class MTDTopology; class MTDGeomDetType; class PMTDParameters; class MTDGeomBuilderFromGeometricTimingDet { public: - MTDGeometry* build(const GeometricTimingDet* gd, const PMTDParameters& ptp, const MTDTopology* tTopo); + MTDGeometry* build(const GeometricTimingDet* gd, const PMTDParameters& ptp); private: void buildPixel(std::vector const&, @@ -28,7 +27,6 @@ class MTDGeomBuilderFromGeometricTimingDet { double scaleFactor = 1.) const; std::map theMTDDetTypeMap; - const MTDTopology* theTopo; }; #endif diff --git a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h index 218f9e80061cd..f34328bf259ac 100644 --- a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h +++ b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h @@ -12,10 +12,19 @@ class MTDTopology { public: - // number of logical rods, i.e. rows of sensor modules along eta/z in phi, and of modules per rod - static constexpr size_t nBTLphi = BTLDetId::HALF_ROD * BTLDetId::kModulesPerTrkV2; - static constexpr size_t nBTLeta = - 2 * BTLDetId::kRUPerTypeV2 * BTLDetId::kCrystalTypes * BTLDetId::kModulesPerRUV2 / BTLDetId::kModulesPerTrkV2; + struct BTLLayout { + // number of logical rods, i.e. rows of sensor modules along eta/z in phi, and of modules per rod + static constexpr size_t nBTLphi_ = BTLDetId::HALF_ROD * BTLDetId::kModulesPerTrkV2; + static constexpr size_t nBTLeta_ = + 2 * BTLDetId::kRUPerTypeV2 * BTLDetId::kCrystalTypes * BTLDetId::kModulesPerRUV2 / BTLDetId::kModulesPerTrkV2; + static constexpr size_t nBTLmodules_ = nBTLphi_ * nBTLeta_; + + std::array btlDetId_; + std::array btlPhi_; + std::array btlEta_; + }; + + using BTLValues = BTLLayout; struct ETLfaceLayout { uint32_t idDiscSide_; // disc face identifier @@ -27,7 +36,7 @@ class MTDTopology { using ETLValues = std::vector; - MTDTopology(const int& topologyMode, const ETLValues& etl); + MTDTopology(const int& topologyMode, const BTLValues& btl, const ETLValues& etl); int getMTDTopologyMode() const { return mtdTopologyMode_; } @@ -54,6 +63,8 @@ class MTDTopology { private: const int mtdTopologyMode_; + const BTLValues btlVals_; + const ETLValues etlVals_; static constexpr size_t failIndex_ = diff --git a/Geometry/MTDGeometryBuilder/plugins/MTDDigiGeometryESModule.cc b/Geometry/MTDGeometryBuilder/plugins/MTDDigiGeometryESModule.cc index 6666b66ebee10..504be8ee5cf76 100644 --- a/Geometry/MTDGeometryBuilder/plugins/MTDDigiGeometryESModule.cc +++ b/Geometry/MTDGeometryBuilder/plugins/MTDDigiGeometryESModule.cc @@ -8,8 +8,6 @@ #include "Geometry/Records/interface/IdealGeometryRecord.h" #include "Geometry/Records/interface/PMTDParametersRcd.h" #include "CondFormats/GeometryObjects/interface/PMTDParameters.h" -#include "Geometry/MTDGeometryBuilder/interface/MTDTopology.h" -#include "Geometry/Records/interface/MTDTopologyRcd.h" // Alignments #include "CondFormats/Alignment/interface/Alignments.h" @@ -45,7 +43,6 @@ class MTDDigiGeometryESModule : public edm::ESProducer { const std::string myLabel_; edm::ESGetToken geomTimingDetToken_; - edm::ESGetToken mtdTopoToken_; edm::ESGetToken pmtdParamsToken_; //alignment @@ -69,7 +66,6 @@ MTDDigiGeometryESModule::MTDDigiGeometryESModule(const edm::ParameterSet& p) auto cc = setWhatProduced(this); const edm::ESInputTag kEmpty; geomTimingDetToken_ = cc.consumesFrom(kEmpty); - mtdTopoToken_ = cc.consumesFrom(kEmpty); pmtdParamsToken_ = cc.consumesFrom(kEmpty); { @@ -109,12 +105,10 @@ std::unique_ptr MTDDigiGeometryESModule::produce(const MTDDigiGeome // GeometricTimingDet const& gD = iRecord.get(geomTimingDetToken_); - MTDTopology const& tTopo = iRecord.get(mtdTopoToken_); - PMTDParameters const& ptp = iRecord.get(pmtdParamsToken_); MTDGeomBuilderFromGeometricTimingDet builder; - std::unique_ptr mtd(builder.build(&(gD), ptp, &tTopo)); + std::unique_ptr mtd(builder.build(&(gD), ptp)); if (applyAlignment_) { // Since fake is fully working when checking for 'empty', we should get rid of applyAlignment_! diff --git a/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc b/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc index 1fb23c1c3ea63..794d23ee9bbcb 100644 --- a/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc +++ b/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc @@ -11,6 +11,8 @@ #include "Geometry/Records/interface/MTDTopologyRcd.h" #include "CondFormats/GeometryObjects/interface/PMTDParameters.h" #include "Geometry/Records/interface/PMTDParametersRcd.h" +#include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" +#include "Geometry/Records/interface/MTDDigiGeometryRecord.h" #include @@ -25,13 +27,18 @@ class MTDTopologyEP : public edm::ESProducer { ReturnType produce(const MTDTopologyRcd&); private: - void fillParameters(const PMTDParameters&, int& mtdTopologyMode, MTDTopology::ETLValues&); + void fillBTLtopology(const MTDGeometry&, MTDTopology::BTLValues&) {}; + void fillETLtopology(const PMTDParameters&, int& mtdTopologyMode, MTDTopology::ETLValues&); - const edm::ESGetToken token_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken mtdparToken_; }; -MTDTopologyEP::MTDTopologyEP(const edm::ParameterSet& conf) - : token_{setWhatProduced(this).consumesFrom(edm::ESInputTag())} {} +MTDTopologyEP::MTDTopologyEP(const edm::ParameterSet& conf) { + auto cc = setWhatProduced(this); + mtdgeoToken_ = cc.consumesFrom(edm::ESInputTag()); + mtdparToken_ = cc.consumesFrom(edm::ESInputTag()); +} void MTDTopologyEP::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription ttc; @@ -40,22 +47,19 @@ void MTDTopologyEP::fillDescriptions(edm::ConfigurationDescriptions& description MTDTopologyEP::ReturnType MTDTopologyEP::produce(const MTDTopologyRcd& iRecord) { int mtdTopologyMode; + MTDTopology::BTLValues btlVals; MTDTopology::ETLValues etlVals; - fillParameters(iRecord.get(token_), mtdTopologyMode, etlVals); + fillBTLtopology(iRecord.get(mtdgeoToken_), btlVals); + + fillETLtopology(iRecord.get(mtdparToken_), mtdTopologyMode, etlVals); - return std::make_unique(mtdTopologyMode, etlVals); + return std::make_unique(mtdTopologyMode, btlVals, etlVals); } -void MTDTopologyEP::fillParameters(const PMTDParameters& ptp, int& mtdTopologyMode, MTDTopology::ETLValues& etlVals) { +void MTDTopologyEP::fillETLtopology(const PMTDParameters& ptp, int& mtdTopologyMode, MTDTopology::ETLValues& etlVals) { mtdTopologyMode = ptp.topologyMode_; - // for legacy geometry scenarios no topology informastion is stored, only for newer ETL 2-discs layout - - if (mtdTopologyMode <= static_cast(MTDTopologyMode::Mode::barphiflat)) { - return; - } - // Check on the internal consistency of thr ETL layout information provided by parameters for (size_t it = 3; it <= 9; it++) { diff --git a/Geometry/MTDGeometryBuilder/src/MTDGeomBuilderFromGeometricTimingDet.cc b/Geometry/MTDGeometryBuilder/src/MTDGeomBuilderFromGeometricTimingDet.cc index cb4839154ad40..044ea105d96ac 100644 --- a/Geometry/MTDGeometryBuilder/src/MTDGeomBuilderFromGeometricTimingDet.cc +++ b/Geometry/MTDGeometryBuilder/src/MTDGeomBuilderFromGeometricTimingDet.cc @@ -5,8 +5,8 @@ #include "Geometry/MTDGeometryBuilder/interface/MTDGeomDetUnit.h" #include "Geometry/MTDGeometryBuilder/interface/MTDPixelTopologyBuilder.h" #include "DataFormats/DetId/interface/DetId.h" +#include "DataFormats/ForwardDetId/interface/MTDDetId.h" #include "CondFormats/GeometryObjects/interface/PMTDParameters.h" -#include "Geometry/MTDGeometryBuilder/interface/MTDTopology.h" #include "DataFormats/GeometrySurface/interface/MediumProperties.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Utilities/interface/Exception.h" @@ -33,18 +33,13 @@ namespace { } } // namespace -MTDGeometry* MTDGeomBuilderFromGeometricTimingDet::build(const GeometricTimingDet* gd, - const PMTDParameters& ptp, - const MTDTopology* tTopo) { +MTDGeometry* MTDGeomBuilderFromGeometricTimingDet::build(const GeometricTimingDet* gd, const PMTDParameters& ptp) { theMTDDetTypeMap.clear(); MTDGeometry* tracker = new MTDGeometry(gd); std::vector comp; gd->deepComponents(comp); - if (tTopo) - theTopo = tTopo; - //define a vector which associate to the detid subdetector index -1 (from 0 to 5) the GeometridDet enumerator to be able to know which type of subdetector it is std::vector gdsubdetmap( diff --git a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc index 8ea7f8ab38677..e0acdf6102687 100644 --- a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc +++ b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc @@ -4,8 +4,8 @@ #include -MTDTopology::MTDTopology(const int& topologyMode, const ETLValues& etl) - : mtdTopologyMode_(topologyMode), etlVals_(etl) {} +MTDTopology::MTDTopology(const int& topologyMode, const BTLValues& btl, const ETLValues& etl) + : mtdTopologyMode_(topologyMode), btlVals_(btl), etlVals_(etl) {} std::pair MTDTopology::btlIndex(const uint32_t detId) { uint32_t iphi(0), ieta(0); diff --git a/Geometry/Records/interface/MTDDigiGeometryRecord.h b/Geometry/Records/interface/MTDDigiGeometryRecord.h index 115fc0bd07544..b14980b518edc 100644 --- a/Geometry/Records/interface/MTDDigiGeometryRecord.h +++ b/Geometry/Records/interface/MTDDigiGeometryRecord.h @@ -8,7 +8,6 @@ #include "CondFormats/AlignmentRecord/interface/MTDSurfaceDeformationRcd.h" #include "CondFormats/AlignmentRecord/interface/GlobalPositionRcd.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" -#include "Geometry/Records/interface/MTDTopologyRcd.h" #include "Geometry/Records/interface/PMTDParametersRcd.h" #include "FWCore/Utilities/interface/mplVector.h" @@ -19,7 +18,6 @@ class MTDDigiGeometryRecord MTDAlignmentErrorExtendedRcd, MTDSurfaceDeformationRcd, GlobalPositionRcd, - MTDTopologyRcd, PMTDParametersRcd> > {}; #endif /* RECORDS_MTDDIGIGEOMETRYRECORD_H */ diff --git a/Geometry/Records/interface/MTDTopologyRcd.h b/Geometry/Records/interface/MTDTopologyRcd.h index deb0d3b764d85..0c3f03ddd2780 100644 --- a/Geometry/Records/interface/MTDTopologyRcd.h +++ b/Geometry/Records/interface/MTDTopologyRcd.h @@ -3,13 +3,13 @@ #include "FWCore/Framework/interface/EventSetupRecordImplementation.h" #include "FWCore/Framework/interface/DependentRecordImplementation.h" -#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/MTDDigiGeometryRecord.h" #include "Geometry/Records/interface/PMTDParametersRcd.h" #include "FWCore/Utilities/interface/mplVector.h" class MTDTopologyRcd : public edm::eventsetup::DependentRecordImplementation > { + edm::mpl::Vector > { }; #endif diff --git a/SimFastTiming/MtdAssociatorProducers/plugins/MtdRecoClusterToSimLayerClusterAssociatorByHitsProducer.cc b/SimFastTiming/MtdAssociatorProducers/plugins/MtdRecoClusterToSimLayerClusterAssociatorByHitsProducer.cc index f602472e7f81f..b12ecc53d4dd2 100644 --- a/SimFastTiming/MtdAssociatorProducers/plugins/MtdRecoClusterToSimLayerClusterAssociatorByHitsProducer.cc +++ b/SimFastTiming/MtdAssociatorProducers/plugins/MtdRecoClusterToSimLayerClusterAssociatorByHitsProducer.cc @@ -14,6 +14,8 @@ #include "Geometry/MTDCommonData/interface/MTDTopologyMode.h" #include "Geometry/Records/interface/MTDDigiGeometryRecord.h" #include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" +#include "Geometry/Records/interface/MTDTopologyRcd.h" +#include "Geometry/MTDGeometryBuilder/interface/MTDTopology.h" #include "MtdRecoClusterToSimLayerClusterAssociatorByHitsImpl.h" diff --git a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc index 52ddd64abba8f..e6a231b6f4c24 100644 --- a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc +++ b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc @@ -52,6 +52,7 @@ #include "Geometry/MTDCommonData/interface/MTDTopologyMode.h" #include "Geometry/Records/interface/MTDDigiGeometryRecord.h" +#include "Geometry/Records/interface/MTDTopologyRcd.h" #include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" #include "Geometry/MTDGeometryBuilder/interface/MTDGeomUtil.h" #include "Geometry/MTDGeometryBuilder/interface/MTDTopology.h" diff --git a/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc b/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc index 9f076e5e2ec4e..c59757092ac46 100644 --- a/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc +++ b/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc @@ -26,6 +26,7 @@ #include "DataFormats/FTLDigi/interface/FTLDigiCollections.h" #include "Geometry/Records/interface/MTDDigiGeometryRecord.h" +#include "Geometry/Records/interface/MTDTopologyRcd.h" #include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" #include "Geometry/CommonTopologies/interface/PixelTopology.h" #include "Geometry/MTDGeometryBuilder/interface/MTDTopology.h" diff --git a/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc b/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc index 514b84f363bfe..e367986dd3b7c 100644 --- a/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc +++ b/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc @@ -37,6 +37,7 @@ #include "SimDataFormats/TrackingHit/interface/PSimHit.h" #include "Geometry/Records/interface/MTDDigiGeometryRecord.h" +#include "Geometry/Records/interface/MTDTopologyRcd.h" #include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" diff --git a/Validation/MtdValidation/plugins/EtlSimHitsValidation.cc b/Validation/MtdValidation/plugins/EtlSimHitsValidation.cc index 42e7122023a86..e52981101f460 100644 --- a/Validation/MtdValidation/plugins/EtlSimHitsValidation.cc +++ b/Validation/MtdValidation/plugins/EtlSimHitsValidation.cc @@ -33,6 +33,7 @@ #include "Geometry/MTDGeometryBuilder/interface/MTDGeomUtil.h" #include "Geometry/Records/interface/MTDDigiGeometryRecord.h" +#include "Geometry/Records/interface/MTDTopologyRcd.h" #include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" #include "Geometry/MTDGeometryBuilder/interface/MTDTopology.h" #include "Geometry/MTDCommonData/interface/MTDTopologyMode.h" From 12b7b9574b3dc7dcf0de1816d156947fb9b3896a Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Thu, 5 Dec 2024 08:49:47 +0100 Subject: [PATCH 206/418] Do not default construct PortableCollections Do not use default-constructed PortableCollections and similar objects: these have a not well-defined semantics, especially if put into the Event. --- .../VertexSoA/test/alpaka/ZVertexSoA_test.cc | 5 ++-- .../plugins/alpaka/HcalDigisSoAProducer.cc | 4 +-- .../plugins/alpaka/TestHelperClass.cc | 6 ++-- .../plugins/alpaka/TestHelperClass.h | 28 +++++++++++++---- .../alpaka/SiPixelPhase2DigiToCluster.cc | 30 ++++++++----------- .../plugins/alpaka/SiPixelRawToCluster.cc | 5 ++-- 6 files changed, 44 insertions(+), 34 deletions(-) diff --git a/DataFormats/VertexSoA/test/alpaka/ZVertexSoA_test.cc b/DataFormats/VertexSoA/test/alpaka/ZVertexSoA_test.cc index 79a2964c2db85..bd358d7c45c53 100644 --- a/DataFormats/VertexSoA/test/alpaka/ZVertexSoA_test.cc +++ b/DataFormats/VertexSoA/test/alpaka/ZVertexSoA_test.cc @@ -56,11 +56,10 @@ int main() { // If the device is actually the host, use the collection as-is. // Otherwise, copy the data from the device to the host. - ZVertexHost zvertex_h; #ifdef ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED - zvertex_h = std::move(zvertex_d); + ZVertexHost zvertex_h = std::move(zvertex_d); #else - zvertex_h = cms::alpakatools::CopyToHost::copyAsync(queue, zvertex_d); + ZVertexHost zvertex_h = cms::alpakatools::CopyToHost::copyAsync(queue, zvertex_d); #endif alpaka::wait(queue); std::cout << zvertex_h.view().metadata().size() << std::endl; diff --git a/EventFilter/HcalRawToDigi/plugins/alpaka/HcalDigisSoAProducer.cc b/EventFilter/HcalRawToDigi/plugins/alpaka/HcalDigisSoAProducer.cc index 3299b01a41ecf..ae10b24a32b86 100644 --- a/EventFilter/HcalRawToDigi/plugins/alpaka/HcalDigisSoAProducer.cc +++ b/EventFilter/HcalRawToDigi/plugins/alpaka/HcalDigisSoAProducer.cc @@ -116,8 +116,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { event.emplace(digisF5HBToken_, std::move(df5_)); if (qie11Digis.empty()) { - event.emplace(digisF01HEToken_); - event.emplace(digisF3HBToken_); + event.emplace(digisF01HEToken_, 0, event.queue()); + event.emplace(digisF3HBToken_, 0, event.queue()); } else { auto size_f1 = 0; diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestHelperClass.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestHelperClass.cc index aa4c26e4c93bd..8de494e37430f 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestHelperClass.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestHelperClass.cc @@ -23,8 +23,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { hostProductMulti2_ = portabletest::TestHostMultiCollection2{deviceProductMulti2.sizes(), iEvent.queue()}; hostProductMulti3_ = portabletest::TestHostMultiCollection3{deviceProductMulti3.sizes(), iEvent.queue()}; - alpaka::memcpy(iEvent.queue(), hostProduct_.buffer(), deviceProduct.const_buffer()); - alpaka::memcpy(iEvent.queue(), hostProductMulti2_.buffer(), deviceProductMulti2.const_buffer()); - alpaka::memcpy(iEvent.queue(), hostProductMulti3_.buffer(), deviceProductMulti3.const_buffer()); + alpaka::memcpy(iEvent.queue(), hostProduct_->buffer(), deviceProduct.const_buffer()); + alpaka::memcpy(iEvent.queue(), hostProductMulti2_->buffer(), deviceProductMulti2.const_buffer()); + alpaka::memcpy(iEvent.queue(), hostProductMulti3_->buffer(), deviceProductMulti3.const_buffer()); } } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestHelperClass.h b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestHelperClass.h index d592fb40b4210..c369e78fc639a 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestHelperClass.h +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestHelperClass.h @@ -1,6 +1,8 @@ #ifndef HeterogeneousCore_AlpakaTest_plugins_alpaka_TestHelperClass_h #define HeterogeneousCore_AlpakaTest_plugins_alpaka_TestHelperClass_h +#include + #include "DataFormats/PortableTestObjects/interface/TestHostCollection.h" #include "DataFormats/PortableTestObjects/interface/alpaka/TestDeviceCollection.h" #include "FWCore/Framework/interface/ConsumesCollector.h" @@ -23,9 +25,23 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { void makeAsync(device::Event const& iEvent, device::EventSetup const& iSetup); - portabletest::TestHostCollection moveFrom() { return std::move(hostProduct_); } - portabletest::TestHostMultiCollection2 moveFromMulti2() { return std::move(hostProductMulti2_); } - portabletest::TestHostMultiCollection3 moveFromMulti3() { return std::move(hostProductMulti3_); } + portabletest::TestHostCollection moveFrom() { + auto product = std::move(*hostProduct_); + hostProduct_.reset(); + return product; + } + + portabletest::TestHostMultiCollection2 moveFromMulti2() { + auto product = std::move(*hostProductMulti2_); + hostProductMulti2_.reset(); + return product; + } + + portabletest::TestHostMultiCollection3 moveFromMulti3() { + auto product = std::move(*hostProductMulti3_); + hostProductMulti3_.reset(); + return product; + } private: const device::EDGetToken getToken_; @@ -35,9 +51,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const device::ESGetToken esTokenDevice_; // hold the output product between acquire() and produce() - portabletest::TestHostCollection hostProduct_; - portabletest::TestHostMultiCollection2 hostProductMulti2_; - portabletest::TestHostMultiCollection3 hostProductMulti3_; + std::optional hostProduct_; + std::optional hostProductMulti2_; + std::optional hostProductMulti3_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc index 4b97366b060be..cee5bce542bf8 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc @@ -1,5 +1,6 @@ // C++ includes #include +#include #include #include #include @@ -52,7 +53,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const SiPixelClusterThresholds clusterThresholds_; uint32_t nDigis_ = 0; - SiPixelDigisSoACollection digis_d; + std::optional digis_d_; }; SiPixelPhase2DigiToCluster::SiPixelPhase2DigiToCluster(const edm::ParameterSet& iConfig) @@ -88,7 +89,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const TrackerGeometry* geom_ = &iSetup.getData(geomToken_); uint32_t nDigis = 0; - for (const auto& det : input) { nDigis += det.size(); } @@ -107,39 +107,33 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { auto const gind = genericDet->index(); for (auto const& px : det) { digis_h.view()[nDigis].moduleId() = uint16_t(gind); - digis_h.view()[nDigis].xx() = uint16_t(px.row()); digis_h.view()[nDigis].yy() = uint16_t(px.column()); digis_h.view()[nDigis].adc() = uint16_t(px.adc()); - digis_h.view()[nDigis].clus() = 0; - digis_h.view()[nDigis].pdigi() = uint32_t(px.packedData()); - digis_h.view()[nDigis].rawIdArr() = uint32_t(detid); - - nDigis++; + ++nDigis; } } - digis_d = SiPixelDigisSoACollection(nDigis, iEvent.queue()); - alpaka::memcpy(iEvent.queue(), digis_d.buffer(), digis_h.buffer()); - - Algo_.makePhase2ClustersAsync(iEvent.queue(), clusterThresholds_, digis_d.view(), nDigis_); + digis_d_ = SiPixelDigisSoACollection(nDigis, iEvent.queue()); + alpaka::memcpy(iEvent.queue(), digis_d_->buffer(), digis_h.buffer()); + Algo_.makePhase2ClustersAsync(iEvent.queue(), clusterThresholds_, digis_d_->view(), nDigis_); } void SiPixelPhase2DigiToCluster::produce(device::Event& iEvent, device::EventSetup const& iSetup) { if (nDigis_ == 0) { SiPixelClustersSoACollection clusters_d{pixelTopology::Phase2::numberOfModules, iEvent.queue()}; - SiPixelDigisSoACollection digis_d_zero{nDigis_, iEvent.queue()}; + SiPixelDigisSoACollection digis_d_zero{0, iEvent.queue()}; iEvent.emplace(digiPutToken_, std::move(digis_d_zero)); iEvent.emplace(clusterPutToken_, std::move(clusters_d)); - return; + } else { + digis_d_->setNModules(Algo_.nModules()); + iEvent.emplace(digiPutToken_, std::move(*digis_d_)); + iEvent.emplace(clusterPutToken_, Algo_.getClusters()); } - - digis_d.setNModules(Algo_.nModules()); - iEvent.emplace(digiPutToken_, std::move(digis_d)); - iEvent.emplace(clusterPutToken_, Algo_.getClusters()); + digis_d_.reset(); } } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelRawToCluster.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelRawToCluster.cc index 8f14c50f09263..7eafcbf336cd3 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelRawToCluster.cc +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelRawToCluster.cc @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -262,10 +263,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // are no valid pointers to clusters' Collection columns, instantiation // of TrackingRecHits fail. Example: workflow 11604.0 - iEvent.emplace(digiPutToken_, nDigis_, iEvent.queue()); + iEvent.emplace(digiPutToken_, 0, iEvent.queue()); iEvent.emplace(clusterPutToken_, pixelTopology::Phase1::numberOfModules, iEvent.queue()); if (includeErrors_) { - iEvent.emplace(digiErrorPutToken_); + iEvent.emplace(digiErrorPutToken_, 0, iEvent.queue()); iEvent.emplace(fmtErrorToken_); } return; From 6d13038e9d24574ca8f4a91cd242b61ba0213a56 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Thu, 5 Dec 2024 14:20:50 +0100 Subject: [PATCH 207/418] Fix and clean up SiPixelPhase2DigiToCluster --- .../alpaka/SiPixelPhase2DigiToCluster.cc | 35 ++++++++----------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc index cee5bce542bf8..cd8445e9c25b8 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/alpaka/SiPixelPhase2DigiToCluster.cc @@ -44,15 +44,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const edm::ESGetToken geomToken_; const edm::EDGetTokenT> pixelDigiToken_; - - device::EDPutToken digiPutToken_; - device::EDPutToken clusterPutToken_; - - Algo Algo_; - + const device::EDPutToken digiPutToken_; + const device::EDPutToken clusterPutToken_; const SiPixelClusterThresholds clusterThresholds_; - uint32_t nDigis_ = 0; + Algo algo_; + uint32_t nDigis_ = 0; std::optional digis_d_; }; @@ -88,18 +85,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const TrackerGeometry* geom_ = &iSetup.getData(geomToken_); - uint32_t nDigis = 0; + nDigis_ = 0; for (const auto& det : input) { - nDigis += det.size(); + nDigis_ += det.size(); } + digis_d_ = SiPixelDigisSoACollection(nDigis_, iEvent.queue()); - if (nDigis == 0) + if (nDigis_ == 0) return; - nDigis_ = nDigis; SiPixelDigisHost digis_h(nDigis_, iEvent.queue()); - nDigis = 0; + uint32_t nDigis = 0; for (const auto& det : input) { unsigned int detid = det.detId(); DetId detIdObject(detid); @@ -116,22 +113,20 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { ++nDigis; } } + assert(nDigis == nDigis_); - digis_d_ = SiPixelDigisSoACollection(nDigis, iEvent.queue()); alpaka::memcpy(iEvent.queue(), digis_d_->buffer(), digis_h.buffer()); - Algo_.makePhase2ClustersAsync(iEvent.queue(), clusterThresholds_, digis_d_->view(), nDigis_); + algo_.makePhase2ClustersAsync(iEvent.queue(), clusterThresholds_, digis_d_->view(), nDigis_); } void SiPixelPhase2DigiToCluster::produce(device::Event& iEvent, device::EventSetup const& iSetup) { if (nDigis_ == 0) { - SiPixelClustersSoACollection clusters_d{pixelTopology::Phase2::numberOfModules, iEvent.queue()}; - SiPixelDigisSoACollection digis_d_zero{0, iEvent.queue()}; - iEvent.emplace(digiPutToken_, std::move(digis_d_zero)); - iEvent.emplace(clusterPutToken_, std::move(clusters_d)); + iEvent.emplace(digiPutToken_, std::move(*digis_d_)); + iEvent.emplace(clusterPutToken_, pixelTopology::Phase2::numberOfModules, iEvent.queue()); } else { - digis_d_->setNModules(Algo_.nModules()); + digis_d_->setNModules(algo_.nModules()); iEvent.emplace(digiPutToken_, std::move(*digis_d_)); - iEvent.emplace(clusterPutToken_, Algo_.getClusters()); + iEvent.emplace(clusterPutToken_, algo_.getClusters()); } digis_d_.reset(); } From fa6807fac1c8f2048ccaba3d614f579cdb51490b Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 5 Dec 2024 11:09:12 -0600 Subject: [PATCH 208/418] Add customiseWithTimeMemoryInfo() function This will allow the customization to be applied together with other customizations that may use the customise() function name. --- Validation/Performance/python/TimeMemoryInfo.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Validation/Performance/python/TimeMemoryInfo.py b/Validation/Performance/python/TimeMemoryInfo.py index 26d1d8b70b5d3..57883722a75d1 100644 --- a/Validation/Performance/python/TimeMemoryInfo.py +++ b/Validation/Performance/python/TimeMemoryInfo.py @@ -18,3 +18,6 @@ def customise(process): ) return(process) + +def customiseWithTimeMemoryInfo(process): + return customise(process) From 06a5667e6ee43f343e17dad628e955182e11301f Mon Sep 17 00:00:00 2001 From: Sunanda Date: Fri, 6 Dec 2024 10:23:18 +0100 Subject: [PATCH 209/418] Make a test code to find the area of HGCal cells through the method cellArea of HGCalDDConst --- .../HGCalCommonData/test/HGCalTestCellArea.cc | 159 ++++++++++++++++++ .../test/python/testHGCalCellArea_cfg.py | 76 +++++++++ 2 files changed, 235 insertions(+) create mode 100644 Geometry/HGCalCommonData/test/HGCalTestCellArea.cc create mode 100644 Geometry/HGCalCommonData/test/python/testHGCalCellArea_cfg.py diff --git a/Geometry/HGCalCommonData/test/HGCalTestCellArea.cc b/Geometry/HGCalCommonData/test/HGCalTestCellArea.cc new file mode 100644 index 0000000000000..3dab1ed91c45e --- /dev/null +++ b/Geometry/HGCalCommonData/test/HGCalTestCellArea.cc @@ -0,0 +1,159 @@ +// -*- C++ -*- +// +// Package: HGCalTestCellArea +// Class: HGCalTestCellArea +// +/**\class HGCalTestCellArea HGCalTestCellArea.cc + test/HGCalTestCellArea.cc + + Description: + + Implementation: + +*/ +// +// Original Author: Sunanda Banerjee +// Created: Mon 2024/11/29 +// +// + +// system include files +#include +#include +#include +#include +#include + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/Utilities/interface/transform.h" + +#include "DataFormats/DetId/interface/DetId.h" +#include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalGeomUtils.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" + +class HGCalTestCellArea : public edm::one::EDAnalyzer { +public: + explicit HGCalTestCellArea(const edm::ParameterSet &); + ~HGCalTestCellArea() override = default; + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); + + void beginJob() override {} + void beginRun(edm::Run const &, edm::EventSetup const &) override; + void analyze(edm::Event const &iEvent, edm::EventSetup const &) override {} + void endRun(edm::Run const &, edm::EventSetup const &) override {} + void endJob() override {} + +private: + const std::vector nameDetectors_; + const std::string fileName_; + const std::vector> tok_hgcal_; + std::vector hgcCons_; + std::vector> detIds_; +}; + +HGCalTestCellArea::HGCalTestCellArea(const edm::ParameterSet &iC) + : nameDetectors_(iC.getParameter>("nameDetectors")), + fileName_(iC.getParameter("fileName")), + tok_hgcal_{edm::vector_transform(nameDetectors_, [this](const std::string &name) { + return esConsumes(edm::ESInputTag{"", name}); + })} { + std::ostringstream st1; + for (const auto &name : nameDetectors_) + st1 << " : " << name; + edm::LogVerbatim("HGCGeom") << "Test validity of cells for " << nameDetectors_.size() << " detectors" << st1.str() + << " with inputs from " << fileName_; + if (!fileName_.empty()) { + edm::FileInPath filetmp("Geometry/HGCalCommonData/data/" + fileName_); + std::string fileName = filetmp.fullPath(); + std::ifstream fInput(fileName.c_str()); + if (!fInput.good()) { + edm::LogVerbatim("HGCGeom") << "Cannot open file " << fileName; + } else { + char buffer[80]; + const std::vector dets = {DetId::HGCalEE, DetId::HGCalHSi, DetId::HGCalHSc}; + while (fInput.getline(buffer, 80)) { + std::vector items = HGCalGeomUtils::splitString(std::string(buffer)); + if (items.size() == 8) { + DetId::Detector det = static_cast(std::atoi(items[0].c_str())); + auto itr = std::find(dets.begin(), dets.end(), det); + if (itr != dets.end()) { + uint32_t pos = static_cast(itr - dets.begin()); + DetId id(0); + if ((det == DetId::HGCalEE) || (det == DetId::HGCalHSi)) { + int type = std::atoi(items[1].c_str()); + int zside = std::atoi(items[2].c_str()); + int layer = std::atoi(items[3].c_str()); + int waferU = std::atoi(items[4].c_str()); + int waferV = std::atoi(items[5].c_str()); + int cellU = std::atoi(items[6].c_str()); + int cellV = std::atoi(items[7].c_str()); + id = static_cast(HGCSiliconDetId(det, zside, type, layer, waferU, waferV, cellU, cellV)); + detIds_.emplace_back(id, pos); + } + } + } + } + fInput.close(); + } + } + edm::LogVerbatim("HGCGeom") << "Reads " << detIds_.size() << " ID's from " << fileName_; + for (unsigned int k = 0; k < detIds_.size(); ++k) { + edm::LogVerbatim("HGCGeom") << "[" << k << "] " << HGCSiliconDetId(detIds_[k].first) << " from DDConstant " << (detIds_[k].second); + } +} + +void HGCalTestCellArea::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + std::vector names = {"HGCalEESensitive", "HGCalHESiliconSensitive"}; + edm::ParameterSetDescription desc; + desc.add>("nameDetectors", names); + desc.add("fileName", "missD88.txt"); + descriptions.add("hgcalTestCellArea", desc); +} + +// ------------ method called to produce the data ------------ +void HGCalTestCellArea::beginRun(edm::Run const &iRun, edm::EventSetup const &iSetup) { + //initiating hgc Geometry + std::vector names = {"HGCalEESensitive", "HGCalHESiliconSensitive"}; + std::vector dets = {DetId::HGCalEE, DetId::HGCalHSi}; + std::map detMap; + for (uint32_t i = 0; i < nameDetectors_.size(); i++) { + edm::LogVerbatim("HGCGeom") << "Tries to initialize HGCalGeometry and HGCalDDDConstants for " << i << ":" + << nameDetectors_[i]; + const edm::ESHandle &hgcCons = iSetup.getHandle(tok_hgcal_[i]); + if (hgcCons.isValid()) { + hgcCons_.push_back(hgcCons.product()); + } else { + edm::LogWarning("HGCGeom") << "Cannot initiate HGCalDDDConstants for " << nameDetectors_[i] << std::endl; + } + auto ii = std::find(names.begin(), names.end(), nameDetectors_[i]); + if (ii != names.end()) { + uint32_t k = static_cast(ii - names.begin()); + detMap[dets[k]] = i; + } + } + edm::LogVerbatim("HGCGeom") << "Loaded HGCalDDConstants for " << detMap.size() << " detectors"; + + for (auto itr = detMap.begin(); itr != detMap.end(); ++itr) + edm::LogVerbatim("HGCGeom") << "[" << itr->second << "]: " << nameDetectors_[itr->second] << " for Detector " + << itr->first; + + for (unsigned int k = 0; k < detIds_.size(); ++k) { + const HGCalDDDConstants *cons = hgcCons_[detMap[(detIds_[k].first).det()]]; + HGCSiliconDetId id(detIds_[k].first); + edm::LogVerbatim("HGCGeom") << "Hit[" << k << "] " << id << " Area " << cons->cellArea(id, false) << " Valid " << cons->isValidHex8(id.layer(), id.waferU(), id.waferV(), id.cellU(), id.cellV(), true); + } +} + +// define this as a plug-in +DEFINE_FWK_MODULE(HGCalTestCellArea); diff --git a/Geometry/HGCalCommonData/test/python/testHGCalCellArea_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalCellArea_cfg.py new file mode 100644 index 0000000000000..5f3a719d91150 --- /dev/null +++ b/Geometry/HGCalCommonData/test/python/testHGCalCellArea_cfg.py @@ -0,0 +1,76 @@ +############################################################################### +# Way to use this: +# cmsRun testHGCalNumbering_cfg.py type=V19 +# +# Options for type V16, V17, V17n, V18, V19 +# +############################################################################### +import FWCore.ParameterSet.Config as cms +import os, sys, importlib, re +import FWCore.ParameterSet.VarParsing as VarParsing + +#################################################################### +### SETUP OPTIONS +options = VarParsing.VarParsing('standard') +options.register('type', + "V19", + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "type of operations: V16, V17, V17n, V18, V19") + +### get and parse the command line arguments +options.parseArguments() +print(options) + +from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9 +process = cms.Process("HGCalCellArea",Phase2C17I13M9) + +geomFile = "Geometry.HGCalCommonData.testHGCal" + options.type + "XML_cfi" +print("Geometry file: ", geomFile) + + +process.load(geomFile) +process.load("Geometry.HGCalCommonData.hgcalParametersInitialization_cfi") +process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi") +process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff") +process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff") +process.load("SimGeneral.HepPDTESSource.pdt_cfi") +process.load('FWCore.MessageService.MessageLogger_cfi') + +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom=dict() + process.MessageLogger.HGCGeom=dict() + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) + ) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.SimpleMemoryCheck = cms.Service("SimpleMemoryCheck", + ignoreTotal = cms.untracked.int32(1), + moduleMemorySummary = cms.untracked.bool(True) +) + +process.load("Geometry.HGCalCommonData.hgcalTestCellArea_cfi") + + +process.p1 = cms.Path(process.generator*process.hgcalTestCellArea) From 58094c1052a288d88c079fee6fa8c8c361785f1a Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Sat, 30 Nov 2024 10:43:27 +0100 Subject: [PATCH 210/418] Fix PFClusterSoAProducer to read a device collection Make the PFRecHitSoAProducer produce an additional host-only collection with the number of PF rechits. Make the the PFClusterSoAProducer consume the device collection of PF rechits, and the host collection with the number of PF rechits. --- .../plugins/alpaka/PFClusterECLCC.h | 18 +++++----- .../plugins/alpaka/PFClusterSoAProducer.cc | 28 +++++++-------- .../alpaka/PFClusterSoAProducerKernel.dev.cc | 30 ++++++++-------- .../alpaka/PFClusterSoAProducerKernel.h | 15 ++++---- .../plugins/alpaka/PFRecHitSoAProducer.cc | 34 ++++++++++++++----- 5 files changed, 69 insertions(+), 56 deletions(-) diff --git a/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterECLCC.h b/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterECLCC.h index abf63c01e9531..2b6fba2c69d5c 100644 --- a/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterECLCC.h +++ b/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterECLCC.h @@ -1,10 +1,11 @@ #ifndef RecoParticleFlow_PFClusterProducer_plugins_alpaka_PFClusterECLCC_h #define RecoParticleFlow_PFClusterProducer_plugins_alpaka_PFClusterECLCC_h +#include "DataFormats/ParticleFlowReco/interface/alpaka/PFRecHitDeviceCollection.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" -#include "RecoParticleFlow/PFClusterProducer/interface/alpaka/PFClusteringVarsDeviceCollection.h" #include "RecoParticleFlow/PFClusterProducer/interface/alpaka/PFClusteringEdgeVarsDeviceCollection.h" +#include "RecoParticleFlow/PFClusterProducer/interface/alpaka/PFClusteringVarsDeviceCollection.h" // The following comment block is required in using the ECL-CC algorithm for topological clustering @@ -79,9 +80,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // Initial step of ECL-CC. Uses ID of first neighbour in edgeList with a smaller ID class ECLCCInit { public: - template >> - ALPAKA_FN_ACC void operator()(const TAcc& acc, - reco::PFRecHitHostCollection::ConstView pfRecHits, + ALPAKA_FN_ACC void operator()(Acc1D const& acc, + reco::PFRecHitDeviceCollection::ConstView pfRecHits, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, reco::PFClusteringEdgeVarsDeviceCollection::View pfClusteringEdgeVars) const { const int nRH = pfRecHits.size(); @@ -103,9 +103,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // Processes vertices class ECLCCCompute1 { public: - template >> - ALPAKA_FN_ACC void operator()(const TAcc& acc, - reco::PFRecHitHostCollection::ConstView pfRecHits, + ALPAKA_FN_ACC void operator()(Acc1D const& acc, + reco::PFRecHitDeviceCollection::ConstView pfRecHits, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, reco::PFClusteringEdgeVarsDeviceCollection::View pfClusteringEdgeVars) const { const int nRH = pfRecHits.size(); @@ -148,9 +147,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { /* link all vertices to sink */ class ECLCCFlatten { public: - template >> - ALPAKA_FN_ACC void operator()(const TAcc& acc, - reco::PFRecHitHostCollection::ConstView pfRecHits, + ALPAKA_FN_ACC void operator()(Acc1D const& acc, + reco::PFRecHitDeviceCollection::ConstView pfRecHits, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, reco::PFClusteringEdgeVarsDeviceCollection::View pfClusteringEdgeVars) const { const int nRH = pfRecHits.size(); diff --git a/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducer.cc b/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducer.cc index 65c0e4f5c33f3..ac5cbe5ab6ba2 100644 --- a/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducer.cc +++ b/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducer.cc @@ -1,7 +1,7 @@ #include #include -#include "DataFormats/ParticleFlowReco/interface/PFRecHitHostCollection.h" +#include "DataFormats/ParticleFlowReco/interface/alpaka/PFRecHitDeviceCollection.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" @@ -16,12 +16,14 @@ #include "RecoParticleFlow/PFRecHitProducer/interface/PFRecHitTopologyRecord.h" namespace ALPAKA_ACCELERATOR_NAMESPACE { + class PFClusterSoAProducer : public stream::SynchronizingEDProducer<> { public: PFClusterSoAProducer(edm::ParameterSet const& config) : pfClusParamsToken(esConsumes(config.getParameter("pfClusterParams"))), topologyToken_(esConsumes(config.getParameter("topology"))), inputPFRecHitSoA_Token_{consumes(config.getParameter("pfRecHits"))}, + inputPFRecHitNum_Token_{consumes(config.getParameter("pfRecHits"))}, outputPFClusterSoA_Token_{produces()}, outputPFRHFractionSoA_Token_{produces()}, numRHF_{cms::alpakatools::make_host_buffer()}, @@ -30,10 +32,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { void acquire(device::Event const& event, device::EventSetup const& setup) override { const reco::PFClusterParamsDeviceCollection& params = setup.getData(pfClusParamsToken); const reco::PFRecHitHCALTopologyDeviceCollection& topology = setup.getData(topologyToken_); - const reco::PFRecHitHostCollection& pfRecHits = event.get(inputPFRecHitSoA_Token_); - int nRH = 0; - if (pfRecHits->metadata().size() != 0) - nRH = pfRecHits->size(); + const reco::PFRecHitDeviceCollection& pfRecHits = event.get(inputPFRecHitSoA_Token_); + int nRH = event.get(inputPFRecHitNum_Token_); pfClusteringVars_.emplace(nRH, event.queue()); pfClusteringEdgeVars_.emplace(nRH * 8, event.queue()); @@ -42,13 +42,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { *numRHF_ = 0; if (nRH != 0) { - PFClusterProducerKernel kernel(event.queue(), pfRecHits); + PFClusterProducerKernel kernel(event.queue()); kernel.seedTopoAndContract(event.queue(), params, topology, *pfClusteringVars_, *pfClusteringEdgeVars_, pfRecHits, + nRH, *pfClusters_, numRHF_.data()); } @@ -57,23 +58,21 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { void produce(device::Event& event, device::EventSetup const& setup) override { const reco::PFClusterParamsDeviceCollection& params = setup.getData(pfClusParamsToken); const reco::PFRecHitHCALTopologyDeviceCollection& topology = setup.getData(topologyToken_); - const reco::PFRecHitHostCollection& pfRecHits = event.get(inputPFRecHitSoA_Token_); - int nRH = 0; + const reco::PFRecHitDeviceCollection& pfRecHits = event.get(inputPFRecHitSoA_Token_); std::optional pfrhFractions; - if (pfRecHits->metadata().size() != 0) - nRH = pfRecHits->size(); - + int nRH = event.get(inputPFRecHitNum_Token_); if (nRH != 0) { - pfrhFractions.emplace(*numRHF_.data(), event.queue()); - PFClusterProducerKernel kernel(event.queue(), pfRecHits); + pfrhFractions.emplace(*numRHF_, event.queue()); + PFClusterProducerKernel kernel(event.queue()); kernel.cluster(event.queue(), params, topology, *pfClusteringVars_, *pfClusteringEdgeVars_, pfRecHits, + nRH, *pfClusters_, *pfrhFractions); } else { @@ -99,7 +98,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { private: const device::ESGetToken pfClusParamsToken; const device::ESGetToken topologyToken_; - const edm::EDGetTokenT inputPFRecHitSoA_Token_; + const device::EDGetToken inputPFRecHitSoA_Token_; + const edm::EDGetTokenT inputPFRecHitNum_Token_; const device::EDPutToken outputPFClusterSoA_Token_; const device::EDPutToken outputPFRHFractionSoA_Token_; cms::alpakatools::host_buffer numRHF_; diff --git a/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.dev.cc b/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.dev.cc index e0c5e8d5a24fa..b9ec4e557009c 100644 --- a/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.dev.cc +++ b/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.dev.cc @@ -1,13 +1,12 @@ #include +#include "DataFormats/ParticleFlowReco/interface/PFLayer.h" #include "FWCore/Utilities/interface/bit_cast.h" +#include "HeterogeneousCore/AlpakaInterface/interface/atomicMaxF.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" -#include "HeterogeneousCore/AlpakaInterface/interface/atomicMaxF.h" - -#include "DataFormats/ParticleFlowReco/interface/PFLayer.h" -#include "RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.h" #include "RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterECLCC.h" +#include "RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.h" namespace ALPAKA_ACCELERATOR_NAMESPACE { @@ -1088,7 +1087,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, const reco::PFClusterParamsDeviceCollection::ConstView pfClusParams, const reco::PFRecHitHCALTopologyDeviceCollection::ConstView topology, - const reco::PFRecHitHostCollection::ConstView pfRecHits, + const reco::PFRecHitDeviceCollection::ConstView pfRecHits, reco::PFClusterDeviceCollection::View clusterView, uint32_t* __restrict__ nSeeds) const { const int nRH = pfRecHits.size(); @@ -1165,7 +1164,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { public: template >> ALPAKA_FN_ACC void operator()(const TAcc& acc, - const reco::PFRecHitHostCollection::ConstView pfRecHits, + const reco::PFRecHitDeviceCollection::ConstView pfRecHits, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, reco::PFClusteringEdgeVarsDeviceCollection::View pfClusteringEdgeVars, uint32_t* __restrict__ nSeeds) const { @@ -1195,7 +1194,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { public: template >> ALPAKA_FN_ACC void operator()(const TAcc& acc, - const reco::PFRecHitHostCollection::ConstView pfRecHits, + const reco::PFRecHitDeviceCollection::ConstView pfRecHits, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, reco::PFClusterDeviceCollection::View clusterView, uint32_t* __restrict__ nSeeds, @@ -1319,7 +1318,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { public: template >> ALPAKA_FN_ACC void operator()(const TAcc& acc, - const reco::PFRecHitHostCollection::ConstView pfRecHits, + const reco::PFRecHitDeviceCollection::ConstView pfRecHits, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, reco::PFRecHitFractionDeviceCollection::View fracView) const { const int nRH = pfRecHits.size(); @@ -1350,7 +1349,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { public: template >> ALPAKA_FN_ACC void operator()(const TAcc& acc, - const reco::PFRecHitHostCollection::ConstView pfRecHits, + const reco::PFRecHitDeviceCollection::ConstView pfRecHits, const reco::PFClusterParamsDeviceCollection::ConstView pfClusParams, const reco::PFRecHitHCALTopologyDeviceCollection::ConstView topology, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, @@ -1412,7 +1411,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { public: template >> ALPAKA_FN_ACC void operator()(const TAcc& acc, - const reco::PFRecHitHostCollection::ConstView pfRecHits, + const reco::PFRecHitDeviceCollection::ConstView pfRecHits, const reco::PFClusterParamsDeviceCollection::ConstView pfClusParams, const reco::PFRecHitHCALTopologyDeviceCollection::ConstView topology, reco::PFClusteringVarsDeviceCollection::View pfClusteringVars, @@ -1454,7 +1453,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } }; - PFClusterProducerKernel::PFClusterProducerKernel(Queue& queue, const reco::PFRecHitHostCollection& pfRecHits) + PFClusterProducerKernel::PFClusterProducerKernel(Queue& queue) : nSeeds(cms::alpakatools::make_device_buffer(queue)), globalClusterPos( cms::alpakatools::make_device_buffer(queue, blocksForExoticClusters * maxTopoInput)), @@ -1473,10 +1472,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const reco::PFRecHitHCALTopologyDeviceCollection& topology, reco::PFClusteringVarsDeviceCollection& pfClusteringVars, reco::PFClusteringEdgeVarsDeviceCollection& pfClusteringEdgeVars, - const reco::PFRecHitHostCollection& pfRecHits, + const reco::PFRecHitDeviceCollection& pfRecHits, + int nRH, reco::PFClusterDeviceCollection& pfClusters, uint32_t* __restrict__ nRHF) { - const int nRH = pfRecHits->size(); const int threadsPerBlock = 256; const int blocks = divide_up_by(nRH, threadsPerBlock); @@ -1533,11 +1532,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const reco::PFRecHitHCALTopologyDeviceCollection& topology, reco::PFClusteringVarsDeviceCollection& pfClusteringVars, reco::PFClusteringEdgeVarsDeviceCollection& pfClusteringEdgeVars, - const reco::PFRecHitHostCollection& pfRecHits, + const reco::PFRecHitDeviceCollection& pfRecHits, + int nRH, reco::PFClusterDeviceCollection& pfClusters, reco::PFRecHitFractionDeviceCollection& pfrhFractions) { - const int nRH = pfRecHits->size(); - // fillRhfIndex alpaka::exec(queue, make_workdiv({divide_up_by(nRH, 32), divide_up_by(nRH, 32)}, {32, 32}), diff --git a/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.h b/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.h index 32c68a64f4b24..cfc79b8d7ad69 100644 --- a/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.h +++ b/RecoParticleFlow/PFClusterProducer/plugins/alpaka/PFClusterSoAProducerKernel.h @@ -1,15 +1,14 @@ #ifndef RecoParticleFlow_PFClusterProducer_PFClusterProducerAlpakaKernel_h #define RecoParticleFlow_PFClusterProducer_PFClusterProducerAlpakaKernel_h -#include "DataFormats/ParticleFlowReco/interface/alpaka/PFRecHitDeviceCollection.h" -#include "DataFormats/ParticleFlowReco/interface/PFRecHitHostCollection.h" #include "DataFormats/ParticleFlowReco/interface/alpaka/PFClusterDeviceCollection.h" +#include "DataFormats/ParticleFlowReco/interface/alpaka/PFRecHitDeviceCollection.h" #include "DataFormats/ParticleFlowReco/interface/alpaka/PFRecHitFractionDeviceCollection.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "RecoParticleFlow/PFClusterProducer/interface/alpaka/PFClusterParamsDeviceCollection.h" -#include "RecoParticleFlow/PFClusterProducer/interface/alpaka/PFClusteringVarsDeviceCollection.h" #include "RecoParticleFlow/PFClusterProducer/interface/alpaka/PFClusteringEdgeVarsDeviceCollection.h" +#include "RecoParticleFlow/PFClusterProducer/interface/alpaka/PFClusteringVarsDeviceCollection.h" #include "RecoParticleFlow/PFRecHitProducer/interface/alpaka/PFRecHitTopologyDeviceCollection.h" -#include "HeterogeneousCore/AlpakaInterface/interface/config.h" namespace ALPAKA_ACCELERATOR_NAMESPACE { @@ -37,14 +36,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class PFClusterProducerKernel { public: - PFClusterProducerKernel(Queue& queue, const reco::PFRecHitHostCollection& pfRecHits); + explicit PFClusterProducerKernel(Queue& queue); void seedTopoAndContract(Queue& queue, const reco::PFClusterParamsDeviceCollection& params, const reco::PFRecHitHCALTopologyDeviceCollection& topology, reco::PFClusteringVarsDeviceCollection& pfClusteringVars, reco::PFClusteringEdgeVarsDeviceCollection& pfClusteringEdgeVars, - const reco::PFRecHitHostCollection& pfRecHits, + const reco::PFRecHitDeviceCollection& pfRecHits, + int nRH, reco::PFClusterDeviceCollection& pfClusters, uint32_t* __restrict__ nRHF); @@ -53,7 +53,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { const reco::PFRecHitHCALTopologyDeviceCollection& topology, reco::PFClusteringVarsDeviceCollection& pfClusteringVars, reco::PFClusteringEdgeVarsDeviceCollection& pfClusteringEdgeVars, - const reco::PFRecHitHostCollection& pfRecHits, + const reco::PFRecHitDeviceCollection& pfRecHits, + int nRH, reco::PFClusterDeviceCollection& pfClusters, reco::PFRecHitFractionDeviceCollection& pfrhFractions); diff --git a/RecoParticleFlow/PFRecHitProducer/plugins/alpaka/PFRecHitSoAProducer.cc b/RecoParticleFlow/PFRecHitProducer/plugins/alpaka/PFRecHitSoAProducer.cc index 18c160f3cc0c1..ebaf910afd299 100644 --- a/RecoParticleFlow/PFRecHitProducer/plugins/alpaka/PFRecHitSoAProducer.cc +++ b/RecoParticleFlow/PFRecHitProducer/plugins/alpaka/PFRecHitSoAProducer.cc @@ -3,11 +3,12 @@ #include +#include "DataFormats/ParticleFlowReco/interface/alpaka/PFRecHitDeviceCollection.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" -#include "HeterogeneousCore/AlpakaCore/interface/alpaka/global/EDProducer.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/SynchronizingEDProducer.h" #include "RecoParticleFlow/PFRecHitProducer/interface/PFRecHitParamsRecord.h" #include "RecoParticleFlow/PFRecHitProducer/interface/PFRecHitTopologyRecord.h" @@ -18,12 +19,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { using namespace particleFlowRecHitProducer; template - class PFRecHitSoAProducer : public global::EDProducer<> { + class PFRecHitSoAProducer : public stream::SynchronizingEDProducer<> { public: PFRecHitSoAProducer(edm::ParameterSet const& config) : topologyToken_(esConsumes(config.getParameter("topology"))), pfRecHitsToken_(produces()), - synchronise_(config.getUntrackedParameter("synchronise")) { + sizeToken_(produces()), + synchronise_(config.getUntrackedParameter("synchronise")), + size_{cms::alpakatools::make_host_buffer()} { const std::vector producers = config.getParameter>("producers"); recHitsToken_.reserve(producers.size()); for (const edm::ParameterSet& producer : producers) { @@ -32,27 +35,34 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } } - void produce(edm::StreamID, device::Event& event, const device::EventSetup& setup) const override { + void acquire(device::Event const& event, const device::EventSetup& setup) override { const typename CAL::TopologyTypeDevice& topology = setup.getData(topologyToken_); uint32_t num_recHits = 0; for (const auto& token : recHitsToken_) num_recHits += event.get(token.first)->metadata().size(); - reco::PFRecHitDeviceCollection pfRecHits{(int)num_recHits, event.queue()}; + pfRecHits_.emplace((int)num_recHits, event.queue()); + *size_ = 0; if (num_recHits != 0) { PFRecHitProducerKernel kernel{event.queue(), num_recHits}; for (const auto& token : recHitsToken_) kernel.processRecHits( - event.queue(), event.get(token.first), setup.getData(token.second), topology, pfRecHits); - kernel.associateTopologyInfo(event.queue(), topology, pfRecHits); + event.queue(), event.get(token.first), setup.getData(token.second), topology, *pfRecHits_); + kernel.associateTopologyInfo(event.queue(), topology, *pfRecHits_); + auto size_d = cms::alpakatools::make_device_view(event.queue(), pfRecHits_->view().size()); + alpaka::memcpy(event.queue(), size_, size_d); } + } + + void produce(device::Event& event, const device::EventSetup& setup) override { + event.emplace(pfRecHitsToken_, std::move(*pfRecHits_)); + event.emplace(sizeToken_, *size_); + pfRecHits_.reset(); if (synchronise_) alpaka::wait(event.queue()); - - event.emplace(pfRecHitsToken_, std::move(pfRecHits)); } static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { @@ -71,12 +81,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } private: + // module configuration const device::ESGetToken topologyToken_; std::vector, device::ESGetToken>> recHitsToken_; const device::EDPutToken pfRecHitsToken_; + const edm::EDPutTokenT sizeToken_; const bool synchronise_; + + // data members used to communicate between acquire() and produce() + cms::alpakatools::host_buffer size_; + std::optional pfRecHits_; }; using PFRecHitSoAProducerHCAL = PFRecHitSoAProducer; From 03f691f235df816cb99780c30ddd27460af68504 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Fri, 6 Dec 2024 10:38:37 +0100 Subject: [PATCH 211/418] Code check --- Geometry/HGCalCommonData/test/HGCalTestCellArea.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Geometry/HGCalCommonData/test/HGCalTestCellArea.cc b/Geometry/HGCalCommonData/test/HGCalTestCellArea.cc index 3dab1ed91c45e..31346286fb854 100644 --- a/Geometry/HGCalCommonData/test/HGCalTestCellArea.cc +++ b/Geometry/HGCalCommonData/test/HGCalTestCellArea.cc @@ -100,8 +100,8 @@ HGCalTestCellArea::HGCalTestCellArea(const edm::ParameterSet &iC) int cellV = std::atoi(items[7].c_str()); id = static_cast(HGCSiliconDetId(det, zside, type, layer, waferU, waferV, cellU, cellV)); detIds_.emplace_back(id, pos); - } - } + } + } } } fInput.close(); @@ -109,7 +109,8 @@ HGCalTestCellArea::HGCalTestCellArea(const edm::ParameterSet &iC) } edm::LogVerbatim("HGCGeom") << "Reads " << detIds_.size() << " ID's from " << fileName_; for (unsigned int k = 0; k < detIds_.size(); ++k) { - edm::LogVerbatim("HGCGeom") << "[" << k << "] " << HGCSiliconDetId(detIds_[k].first) << " from DDConstant " << (detIds_[k].second); + edm::LogVerbatim("HGCGeom") << "[" << k << "] " << HGCSiliconDetId(detIds_[k].first) << " from DDConstant " + << (detIds_[k].second); } } @@ -151,7 +152,9 @@ void HGCalTestCellArea::beginRun(edm::Run const &iRun, edm::EventSetup const &iS for (unsigned int k = 0; k < detIds_.size(); ++k) { const HGCalDDDConstants *cons = hgcCons_[detMap[(detIds_[k].first).det()]]; HGCSiliconDetId id(detIds_[k].first); - edm::LogVerbatim("HGCGeom") << "Hit[" << k << "] " << id << " Area " << cons->cellArea(id, false) << " Valid " << cons->isValidHex8(id.layer(), id.waferU(), id.waferV(), id.cellU(), id.cellV(), true); + edm::LogVerbatim("HGCGeom") << "Hit[" << k << "] " << id << " Area " << cons->cellArea(id, false) << " Valid " + << cons->isValidHex8( + id.layer(), id.waferU(), id.waferV(), id.cellU(), id.cellV(), true); } } From 24b649fc2f747e2a0833871e3ecf1a9535d94a73 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Fri, 6 Dec 2024 11:40:05 +0100 Subject: [PATCH 212/418] Implement BTL topology navigation --- .../interface/MTDTopology.h | 10 +-- .../plugins/MTDTopologyEP.cc | 27 +++++- .../MTDGeometryBuilder/src/MTDTopology.cc | 84 +++++++++++++++++-- 3 files changed, 106 insertions(+), 15 deletions(-) diff --git a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h index f34328bf259ac..2994ab581597e 100644 --- a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h +++ b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h @@ -14,10 +14,10 @@ class MTDTopology { public: struct BTLLayout { // number of logical rods, i.e. rows of sensor modules along eta/z in phi, and of modules per rod - static constexpr size_t nBTLphi_ = BTLDetId::HALF_ROD * BTLDetId::kModulesPerTrkV2; - static constexpr size_t nBTLeta_ = + static constexpr uint32_t nBTLphi_ = BTLDetId::HALF_ROD * BTLDetId::kModulesPerTrkV2; + static constexpr uint32_t nBTLeta_ = 2 * BTLDetId::kRUPerTypeV2 * BTLDetId::kCrystalTypes * BTLDetId::kModulesPerRUV2 / BTLDetId::kModulesPerTrkV2; - static constexpr size_t nBTLmodules_ = nBTLphi_ * nBTLeta_; + static constexpr uint32_t nBTLmodules_ = nBTLphi_ * nBTLeta_; std::array btlDetId_; std::array btlPhi_; @@ -47,8 +47,8 @@ class MTDTopology { // BTL topology navigation methods, find index of closest module along eta or phi - size_t phishiftBTL(const uint32_t detid, const int phiShift); - size_t etashiftBTL(const uint32_t detid, const int etaShift); + uint32_t phishiftBTL(const uint32_t detid, const int phiShift); + uint32_t etashiftBTL(const uint32_t detid, const int etaShift); // ETL topology navigation is based on a predefined order of dets in sector diff --git a/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc b/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc index 794d23ee9bbcb..bc23b7d302785 100644 --- a/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc +++ b/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc @@ -27,7 +27,7 @@ class MTDTopologyEP : public edm::ESProducer { ReturnType produce(const MTDTopologyRcd&); private: - void fillBTLtopology(const MTDGeometry&, MTDTopology::BTLValues&) {}; + void fillBTLtopology(const MTDGeometry&, MTDTopology::BTLValues&); void fillETLtopology(const PMTDParameters&, int& mtdTopologyMode, MTDTopology::ETLValues&); edm::ESGetToken mtdgeoToken_; @@ -50,13 +50,38 @@ MTDTopologyEP::ReturnType MTDTopologyEP::produce(const MTDTopologyRcd& iRecord) MTDTopology::BTLValues btlVals; MTDTopology::ETLValues etlVals; + // build BTL topology content from MTDGeometry + fillBTLtopology(iRecord.get(mtdgeoToken_), btlVals); + // build ETL topology and topology mode information from PMTDParameters + fillETLtopology(iRecord.get(mtdparToken_), mtdTopologyMode, etlVals); return std::make_unique(mtdTopologyMode, btlVals, etlVals); } +void MTDTopologyEP::fillBTLtopology(const MTDGeometry& mtdgeo, MTDTopology::BTLValues& btlVals) { + MTDTopology::BTLLayout tmpLayout; + uint32_t index(0), iphi(1), ieta(0); + if (mtdgeo.detsBTL().size() != tmpLayout.nBTLmodules_) { + throw cms::Exception("MTDTopologyEP") << "Inconsistent size of BTL structure arrays"; + } + for (const auto& det : mtdgeo.detsBTL()) { + ieta++; + + tmpLayout.btlDetId_[index] = det->geographicalId().rawId(); + tmpLayout.btlPhi_[index] = iphi; + tmpLayout.btlEta_[index] = ieta; + if (ieta == tmpLayout.nBTLeta_) { + iphi++; + ieta = 0; + } + index++; + } + btlVals = tmpLayout; +} + void MTDTopologyEP::fillETLtopology(const PMTDParameters& ptp, int& mtdTopologyMode, MTDTopology::ETLValues& etlVals) { mtdTopologyMode = ptp.topologyMode_; diff --git a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc index e0acdf6102687..4c1d4ed872394 100644 --- a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc +++ b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc @@ -8,28 +8,94 @@ MTDTopology::MTDTopology(const int& topologyMode, const BTLValues& btl, const ET : mtdTopologyMode_(topologyMode), btlVals_(btl), etlVals_(etl) {} std::pair MTDTopology::btlIndex(const uint32_t detId) { - uint32_t iphi(0), ieta(0); - return std::make_pair(iphi, ieta); + size_t index(0); + bool found(false); + for (const auto& theid : btlVals_.btlDetId_) { + if (theid == detId) { + found = true; + break; + } + index++; + } + if (found) { + return std::make_pair(btlVals_.btlPhi_[index], btlVals_.btlEta_[index]); + } else { + edm::LogWarning("MTDTopology") << "Searching BTL topology for BTLDetId " << detId + << " not in BTL geometry structure"; + return std::make_pair(std::numeric_limits::max(), std::numeric_limits::max()); + } } -uint32_t MTDTopology::btlidFromIndex(const uint32_t iphi, const uint32_t ieta) { return 0; } +uint32_t MTDTopology::btlidFromIndex(const uint32_t iphi, const uint32_t ieta) { + uint32_t res(0); + for (uint32_t index = 0; index < btlVals_.nBTLmodules_; index++) { + if (iphi == btlVals_.btlPhi_[index] && ieta == btlVals_.btlEta_[index]) { + res = btlVals_.btlDetId_[index]; + break; + } + index++; + } + return res; +} -size_t MTDTopology::phishiftBTL(const uint32_t detid, const int phiShift) { +uint32_t MTDTopology::phishiftBTL(const uint32_t detid, const int phiShift) { if (phiShift == 0) { edm::LogWarning("MTDTopology") << "asking of a null phiShift in BTL"; return failIndex_; } - - return failIndex_; + // search for the next detector, check only sign from input + int sh = phiShift > 0 ? 1 : -1; + size_t index(0); + bool found(false); + for (const auto& theid : btlVals_.btlDetId_) { + if (theid == detid) { + found = true; + break; + } + index++; + } + if (found) { + int newIndex = index + sh * btlVals_.nBTLeta_; + if (newIndex > static_cast(btlVals_.nBTLmodules_)) { + newIndex = newIndex - btlVals_.nBTLmodules_; + } else if (newIndex < 1) { + newIndex = newIndex + btlVals_.nBTLmodules_; + } + return newIndex; + } else { + edm::LogWarning("MTDTopology") << "Searching for non existent BTLDetId " << detid; + return failIndex_; + } } -size_t MTDTopology::etashiftBTL(const uint32_t detid, const int etaShift) { +uint32_t MTDTopology::etashiftBTL(const uint32_t detid, const int etaShift) { if (etaShift == 0) { edm::LogWarning("MTDTopology") << "asking of a null etaShift in BTL"; return failIndex_; } - - return failIndex_; + // search for the next detector, check only sign from input + int sh = etaShift > 0 ? 1 : -1; + size_t index(0); + bool found(false); + for (const auto& theid : btlVals_.btlDetId_) { + if (theid == detid) { + found = true; + break; + } + index++; + } + if (found) { + int newIndex = index + sh; + if (newIndex < 1 || newIndex > static_cast(btlVals_.nBTLmodules_)) { + return failIndex_; + } else if (btlVals_.btlEta_[newIndex] != btlVals_.btlEta_[index]) { + return failIndex_; + } + return newIndex; + } else { + edm::LogWarning("MTDTopology") << "Searching for non existent BTLDetId " << detid; + return failIndex_; + } } bool MTDTopology::orderETLSector(const GeomDet*& gd1, const GeomDet*& gd2) { From 6643cc7ec9017ce3dd38c572acefd9bd07b76cf3 Mon Sep 17 00:00:00 2001 From: AdrianoDee Date: Mon, 25 Nov 2024 12:39:09 +0100 Subject: [PATCH 213/418] Update default datasets for 2022 (was 2021) --- Configuration/PyReleaseValidation/python/relval_steps.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 455bcb17a0976..60b92688bb9ed 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -4382,10 +4382,9 @@ def gen2024HiMix(fragment,howMuch): defaultDataSets['2017Design']='CMSSW_12_0_0_pre4-113X_mc2017_design_v5-v' defaultDataSets['2018']='CMSSW_12_0_0_pre4-113X_upgrade2018_realistic_v5-v' defaultDataSets['2018Design']='CMSSW_12_0_0_pre4-113X_upgrade2018_design_v5-v' -defaultDataSets['2021']='CMSSW_13_1_0_pre1-130X_mcRun3_2022_realistic_withNewBSFromEOY2022Data_v2_RV186-v' -defaultDataSets['2021Design']='CMSSW_12_5_0_pre4-124X_mcRun3_2022_design_v7_design_BS2022-v' -defaultDataSets['2021FS']='CMSSW_12_4_13-124X_mcRun3_2022_realistic_v12_2021_FastSim-v' -defaultDataSets['2023']='CMSSW_13_0_10-130X_mcRun3_2023_realistic_withEarly2023BS_v1_2023-v' +defaultDataSets['2022']='CMSSW_14_0_18-140X_mcRun3_2022_realistic_v12_STD_noPU_2022_reMC-v' +defaultDataSets['2022Design']='CMSSW_12_5_0_pre4-124X_mcRun3_2022_design_v7_design_BS2022-v' +defaultDataSets['2022FS']='CMSSW_14_0_18-140X_mcRun3_2022_realistic_v12_2022_FastSim_Run3_FastSim-v' defaultDataSets['2023FS']='CMSSW_13_0_11-130X_mcRun3_2023_realistic_withEarly2023BS_v1_FastSim-v' defaultDataSets['2024']='CMSSW_14_1_0_pre7-140X_mcRun3_2024_realistic_v21_STD_RegeneratedGS_2024_noPU-v' defaultDataSets['2025']='CMSSW_14_1_0_pre7-140X_mcRun3_2024_realistic_v21_STD_RegeneratedGS_2024_noPU-v' @@ -4429,7 +4428,7 @@ def gen2024HiMix(fragment,howMuch): PUDataSets[ds]={'-n':10,'--pileup':'AVE_35_BX_25ns','--pileup_input':'das:/RelValMinBias_13/%s/GEN-SIM'%(name,)} elif '2018' in ds or 'postLS2' in ds: PUDataSets[ds]={'-n':10,'--pileup':'AVE_50_BX_25ns','--pileup_input':'das:/RelValMinBias_13/%s/GEN-SIM'%(name,)} - elif '2021' in ds or '2023' in ds or '2024' in ds: + elif '2022' in ds or '2023' in ds or '2024' in ds: if 'FS' not in ds: PUDataSets[ds]={'-n':10,'--pileup':'Run3_Flat55To75_PoissonOOTPU','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM'%(name,)} else: From 97d0c3fad7d98ed1c2e1d3ed6a731762708ed2ce Mon Sep 17 00:00:00 2001 From: Sunanda Date: Fri, 6 Dec 2024 16:39:47 +0100 Subject: [PATCH 214/418] Change directory name 2026 to 2030 to enable future Run3 runs during 2026 --- .../Geometry/python/GeometrySLHCSimDB_cff.py | 2 +- .../python/GeometrySLHCSimIdeal_cff.py | 2 +- Configuration/Geometry/python/dependencies.py | 2 +- .../Geometry/python/dictRun4Geometry.py | 174 +++++++++--------- .../beampipe/{2026 => 2030}/v1/beampipe.xml | 0 .../beampipe/{2026 => 2030}/v2/beampipe.xml | 0 .../beampipe/{2026 => 2030}/v3/beampipe.xml | 0 .../caloBase/{2026 => 2030}/v1/caloBase.xml | 0 .../caloBase/{2026 => 2030}/v2/caloBase.xml | 0 .../caloBase/{2026 => 2030}/v3/caloBase.xml | 0 .../caloBase/{2026 => 2030}/v4/caloBase.xml | 0 .../caloBase/{2026 => 2030}/v5/caloBase.xml | 0 .../caloBase/{2026 => 2030}/v6/caloBase.xml | 0 .../caloBase/{2026 => 2030}/v7/caloBase.xml | 0 .../caloBase/{2026 => 2030}/v8/caloBase.xml | 0 .../data/cms/{2026 => 2015}/v1/cms.xml | 0 .../CMSCommonData/data/cms/2030/v1/cms.xml | 150 +++++++++++++++ .../data/cms/{2026 => 2030}/v2/cms.xml | 0 .../data/cms/{2026 => 2030}/v3/cms.xml | 0 .../data/cms/{2026 => 2030}/v4/cms.xml | 0 .../data/cms/{2026 => 2030}/v5/cms.xml | 0 .../cmsBeam/{2026 => 2030}/v1/cmsBeam.xml | 0 .../dd4hep/cmsExtendedGeometryRun4D100.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D101.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D102.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D103.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D104.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D105.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D106.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D107.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D108.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D109.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D110.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D111.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D112.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D113.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D114.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D115.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D116.xml | 40 ++-- .../dd4hep/cmsExtendedGeometryRun4D95.xml | 38 ++-- .../dd4hep/cmsExtendedGeometryRun4D96.xml | 38 ++-- .../dd4hep/cmsExtendedGeometryRun4D98.xml | 38 ++-- .../dd4hep/cmsExtendedGeometryRun4D99.xml | 38 ++-- .../muonBase/{2026 => 2015}/v1/muonBase.xml | 0 .../data/muonBase/2030/v1/muonBase.xml | 79 ++++++++ .../muonBase/{2026 => 2030}/v2/muonBase.xml | 0 .../muonBase/{2026 => 2030}/v3/muonBase.xml | 0 .../muonBase/{2026 => 2030}/v4/muonBase.xml | 0 .../muonBase/{2026 => 2030}/v5/muonBase.xml | 0 ...msExtendedGeometry2015MuonGEMDevXML_cfi.py | 12 +- .../python/cmsExtendedGeometry2019XML_cfi.py | 4 +- .../cmsExtendedGeometryRun4D100XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D101XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D102XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D103XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D104XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D105XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D106XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D107XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D108XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D109XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D110XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D111XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D112XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D113XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D114XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D115XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D116XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D95XML_cfi.py | 38 ++-- .../cmsExtendedGeometryRun4D96XML_cfi.py | 38 ++-- .../cmsExtendedGeometryRun4D98CaloXML_cfi.py | 24 +-- .../cmsExtendedGeometryRun4D98MuonXML_cfi.py | 27 ++- ...msExtendedGeometryRun4D98TrackerXML_cfi.py | 10 +- .../cmsExtendedGeometryRun4D98XML_cfi.py | 38 ++-- .../cmsExtendedGeometryRun4D99XML_cfi.py | 38 ++-- .../ectkcable/{2026 => 2030}/v1/ectkcable.xml | 0 .../{2026 => 2030}/v1/ectkcablemat.xml | 0 .../{2026 => 2030}/v2/ectkcablemat.xml | 0 .../eregalgo/{2026 => 2030}/v1/eregalgo.xml | 0 .../eregalgo/{2026 => 2030}/v2/eregalgo.xml | 0 .../data/esalgo/{2026 => 2030}/v1/esalgo.xml | 0 .../data/escon/{2026 => 2030}/v1/escon.xml | 0 .../data/brm/{2026 => 2030}/v1/brm.xml | 0 .../data/brm/{2026 => 2030}/v2/brm.xml | 0 .../data/brm/{2026 => 2030}/v3/brm.xml | 0 .../{2026 => 2030}/v1/forwardshield.xml | 0 .../{2026 => 2030}/v2/forwardshield.xml | 0 .../{2026 => 2030}/v3/forwardshield.xml | 0 .../{2026 => 2030}/v4/forwardshield.xml | 0 .../{2026 => 2030}/v5/forwardshield.xml | 0 .../data/zdc/{2026 => 2030}/v1/zdc.xml | 0 .../data/zdc/{2026 => 2030}/v2/zdc.xml | 0 .../python/hfnoseAloneXML_cfi.py | 4 +- .../ForwardCommonData/python/hfnoseXML_cfi.py | 6 +- .../python/testHFNoseXML_cfi.py | 36 ++-- .../GeometryExtendedRun4GE0TestReco_cff.py | 4 +- .../test/GeometryExtendedRun4GE0Test_cff.py | 2 +- .../cmsExtendedGeometryRun4GE0TestXML_cfi.py | 27 ++- .../test/testGlobalTrackingGeometry_cfg.py | 2 +- .../python/testHGCV16XML_cfi.py | 28 +-- .../python/testHGCV17XML_cfi.py | 36 ++-- .../python/testHGCV17nXML_cfi.py | 36 ++-- .../python/testHGCalEEV16XML_cfi.py | 4 +- .../python/testHGCalEEV17XML_cfi.py | 4 +- .../python/testHGCalEEV18XML_cfi.py | 4 +- .../python/testHGCalEEV19XML_cfi.py | 4 +- .../python/testHGCalHEmixV16XML_cfi.py | 4 +- .../python/testHGCalHEmixV17XML_cfi.py | 4 +- .../python/testHGCalHEmixV18XML_cfi.py | 4 +- .../python/testHGCalHEmixV19XML_cfi.py | 4 +- .../python/testHGCalHEsilV16XML_cfi.py | 4 +- .../python/testHGCalHEsilV17XML_cfi.py | 4 +- .../python/testHGCalHEsilV18XML_cfi.py | 4 +- .../python/testHGCalHEsilV19XML_cfi.py | 4 +- .../python/testHGCalPassiveV18XML_cfi.py | 4 +- .../python/testHGCalPassiveV19XML_cfi.py | 4 +- .../python/testHGCalPassiveV19cXML_cfi.py | 4 +- .../python/testHGCalV16XML_cfi.py | 36 ++-- .../python/testHGCalV17ShiftXML_cfi.py | 38 ++-- .../python/testHGCalV17XML_cfi.py | 38 ++-- .../python/testHGCalV17nXML_cfi.py | 38 ++-- .../python/testHGCalV17ngXML_cfi.py | 38 ++-- .../python/testHGCalV18OXML_cfi.py | 11 +- .../python/testHGCalV18XML_cfi.py | 38 ++-- .../python/testHGCalV18nXML_cfi.py | 38 ++-- .../python/testHGCalV19XML_cfi.py | 38 ++-- .../python/testTB181V0XML_cfi.py | 2 +- .../python/testTB181V1XML_cfi.py | 2 +- .../python/testTB181V2XML_cfi.py | 2 +- .../python/testTB181XML_cfi.py | 2 +- .../{2026 => 2030}/hcalRecNumbering.xml | 0 .../{2026 => 2030}/hcalSimNumbering.xml | 0 .../cmsExtendedGeometryRun4D99XML_cfi.py | 41 ++--- .../python/testHcalOnlyGeometryXML_cfi.py | 2 +- .../python/testPhase2GeometryFineXML_cfi.py | 38 ++-- .../python/testPhase2GeometryXML_cfi.py | 41 ++--- .../CaloUtil/{2026 => 2030}/v1/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v1c/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v2/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v2c/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v3/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v3c/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v4/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v4c/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v5/CaloUtil.xml | 0 .../CaloUtil/{2026 => 2030}/v5c/CaloUtil.xml | 0 .../{2026 => 2030}/v1/HcalProdCuts.xml | 0 .../ge0shield/{2026 => 2030}/v1/ge0shield.xml | 0 .../ge0shield/{2026 => 2030}/v2/ge0shield.xml | 0 .../data/gem21/{2026 => 2030}/v1/gem21.xml | 0 .../data/mf/{2026 => 2030}/v1/mf.xml | 0 .../data/mf/{2026 => 2030}/v2/mf.xml | 0 .../data/mf/{2026 => 2030}/v3/mf.xml | 0 .../data/mf/{2026 => 2030}/v4/mf.xml | 0 .../data/mf/{2026 => 2030}/v5/mf.xml | 0 .../data/mf/{2026 => 2030}/v6/mf.xml | 0 .../data/mf/{2026 => 2030}/v7/mf.xml | 0 .../data/mf/{2026 => 2030}/v8/mf.xml | 0 .../mfshield/{2026 => 2030}/v1/mfshield.xml | 0 .../mfshield/{2026 => 2030}/v2/mfshield.xml | 0 .../mfshield/{2026 => 2030}/v3/mfshield.xml | 0 .../mfshield/{2026 => 2030}/v4/mfshield.xml | 0 .../mfshield/{2026 => 2030}/v5/mfshield.xml | 0 .../mfshield/{2026 => 2030}/v6/mfshield.xml | 0 .../muonYoke/{2026 => 2030}/v1/muonYoke.xml | 0 .../muonYoke/{2026 => 2030}/v2/muonYoke.xml | 0 .../muonYoke/{2026 => 2030}/v3/muonYoke.xml | 0 .../muonYoke/{2026 => 2030}/v4/muonYoke.xml | 0 .../data/rpcf/{2026 => 2030}/v1/rpcf.xml | 0 .../data/rpcf/{2026 => 2030}/v2/rpcf.xml | 0 .../data/rpcf/{2026 => 2030}/v3/rpcf.xml | 0 .../cmsExtendedGeometry2026D99XML_cfi.py | 40 ++-- .../cmsExtendedGeometryRun4D99XML_cfi.py | 125 +++++++++++++ .../testExtendedGeometry2026D54XML_cfi.py | 27 ++- ... testExtendedGeometryRun4D54GE0XML_cfi.py} | 27 ++- .../testExtendedGeometryRun4D54XML_cfi.py | 126 +++++++++++++ .../MuonCommonData/python/testGE0XML_cfi.py | 18 +- .../python/testGEMAllXML_cfi.py | 12 +- .../MuonCommonData/python/testGEMXML_cfi.py | 20 +- .../MuonCommonData/python/testMFXML_cfi.py | 29 ++- .../{2026 => 2030}/v1/muonProdCuts.xml | 0 .../{2026 => 2030}/v2/muonProdCuts.xml | 0 .../data/{2026 => 2030}/v1/RPCSpecs.xml | 0 .../{2026 => 2030}/v1/trackermaterial.xml | 0 .../cmsExtendedGeometryRun4D110XML_cfi.py | 43 ++--- 185 files changed, 1877 insertions(+), 1424 deletions(-) rename Geometry/CMSCommonData/data/beampipe/{2026 => 2030}/v1/beampipe.xml (100%) rename Geometry/CMSCommonData/data/beampipe/{2026 => 2030}/v2/beampipe.xml (100%) rename Geometry/CMSCommonData/data/beampipe/{2026 => 2030}/v3/beampipe.xml (100%) rename Geometry/CMSCommonData/data/caloBase/{2026 => 2030}/v1/caloBase.xml (100%) rename Geometry/CMSCommonData/data/caloBase/{2026 => 2030}/v2/caloBase.xml (100%) rename Geometry/CMSCommonData/data/caloBase/{2026 => 2030}/v3/caloBase.xml (100%) rename Geometry/CMSCommonData/data/caloBase/{2026 => 2030}/v4/caloBase.xml (100%) rename Geometry/CMSCommonData/data/caloBase/{2026 => 2030}/v5/caloBase.xml (100%) rename Geometry/CMSCommonData/data/caloBase/{2026 => 2030}/v6/caloBase.xml (100%) rename Geometry/CMSCommonData/data/caloBase/{2026 => 2030}/v7/caloBase.xml (100%) rename Geometry/CMSCommonData/data/caloBase/{2026 => 2030}/v8/caloBase.xml (100%) rename Geometry/CMSCommonData/data/cms/{2026 => 2015}/v1/cms.xml (100%) create mode 100644 Geometry/CMSCommonData/data/cms/2030/v1/cms.xml rename Geometry/CMSCommonData/data/cms/{2026 => 2030}/v2/cms.xml (100%) rename Geometry/CMSCommonData/data/cms/{2026 => 2030}/v3/cms.xml (100%) rename Geometry/CMSCommonData/data/cms/{2026 => 2030}/v4/cms.xml (100%) rename Geometry/CMSCommonData/data/cms/{2026 => 2030}/v5/cms.xml (100%) rename Geometry/CMSCommonData/data/cmsBeam/{2026 => 2030}/v1/cmsBeam.xml (100%) rename Geometry/CMSCommonData/data/muonBase/{2026 => 2015}/v1/muonBase.xml (100%) create mode 100644 Geometry/CMSCommonData/data/muonBase/2030/v1/muonBase.xml rename Geometry/CMSCommonData/data/muonBase/{2026 => 2030}/v2/muonBase.xml (100%) rename Geometry/CMSCommonData/data/muonBase/{2026 => 2030}/v3/muonBase.xml (100%) rename Geometry/CMSCommonData/data/muonBase/{2026 => 2030}/v4/muonBase.xml (100%) rename Geometry/CMSCommonData/data/muonBase/{2026 => 2030}/v5/muonBase.xml (100%) rename Geometry/EcalCommonData/data/ectkcable/{2026 => 2030}/v1/ectkcable.xml (100%) rename Geometry/EcalCommonData/data/ectkcablemat/{2026 => 2030}/v1/ectkcablemat.xml (100%) rename Geometry/EcalCommonData/data/ectkcablemat/{2026 => 2030}/v2/ectkcablemat.xml (100%) rename Geometry/EcalCommonData/data/eregalgo/{2026 => 2030}/v1/eregalgo.xml (100%) rename Geometry/EcalCommonData/data/eregalgo/{2026 => 2030}/v2/eregalgo.xml (100%) rename Geometry/EcalCommonData/data/esalgo/{2026 => 2030}/v1/esalgo.xml (100%) rename Geometry/EcalCommonData/data/escon/{2026 => 2030}/v1/escon.xml (100%) rename Geometry/ForwardCommonData/data/brm/{2026 => 2030}/v1/brm.xml (100%) rename Geometry/ForwardCommonData/data/brm/{2026 => 2030}/v2/brm.xml (100%) rename Geometry/ForwardCommonData/data/brm/{2026 => 2030}/v3/brm.xml (100%) rename Geometry/ForwardCommonData/data/forwardshield/{2026 => 2030}/v1/forwardshield.xml (100%) rename Geometry/ForwardCommonData/data/forwardshield/{2026 => 2030}/v2/forwardshield.xml (100%) rename Geometry/ForwardCommonData/data/forwardshield/{2026 => 2030}/v3/forwardshield.xml (100%) rename Geometry/ForwardCommonData/data/forwardshield/{2026 => 2030}/v4/forwardshield.xml (100%) rename Geometry/ForwardCommonData/data/forwardshield/{2026 => 2030}/v5/forwardshield.xml (100%) rename Geometry/ForwardCommonData/data/zdc/{2026 => 2030}/v1/zdc.xml (100%) rename Geometry/ForwardCommonData/data/zdc/{2026 => 2030}/v2/zdc.xml (100%) rename Geometry/HcalCommonData/data/hcalRecNumbering/{2026 => 2030}/hcalRecNumbering.xml (100%) rename Geometry/HcalCommonData/data/hcalSimNumbering/{2026 => 2030}/hcalSimNumbering.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v1/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v1c/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v2/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v2c/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v3/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v3c/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v4/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v4c/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v5/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/CaloUtil/{2026 => 2030}/v5c/CaloUtil.xml (100%) rename Geometry/HcalSimData/data/HcalProdCuts/{2026 => 2030}/v1/HcalProdCuts.xml (100%) rename Geometry/MuonCommonData/data/ge0shield/{2026 => 2030}/v1/ge0shield.xml (100%) rename Geometry/MuonCommonData/data/ge0shield/{2026 => 2030}/v2/ge0shield.xml (100%) rename Geometry/MuonCommonData/data/gem21/{2026 => 2030}/v1/gem21.xml (100%) rename Geometry/MuonCommonData/data/mf/{2026 => 2030}/v1/mf.xml (100%) rename Geometry/MuonCommonData/data/mf/{2026 => 2030}/v2/mf.xml (100%) rename Geometry/MuonCommonData/data/mf/{2026 => 2030}/v3/mf.xml (100%) rename Geometry/MuonCommonData/data/mf/{2026 => 2030}/v4/mf.xml (100%) rename Geometry/MuonCommonData/data/mf/{2026 => 2030}/v5/mf.xml (100%) rename Geometry/MuonCommonData/data/mf/{2026 => 2030}/v6/mf.xml (100%) rename Geometry/MuonCommonData/data/mf/{2026 => 2030}/v7/mf.xml (100%) rename Geometry/MuonCommonData/data/mf/{2026 => 2030}/v8/mf.xml (100%) rename Geometry/MuonCommonData/data/mfshield/{2026 => 2030}/v1/mfshield.xml (100%) rename Geometry/MuonCommonData/data/mfshield/{2026 => 2030}/v2/mfshield.xml (100%) rename Geometry/MuonCommonData/data/mfshield/{2026 => 2030}/v3/mfshield.xml (100%) rename Geometry/MuonCommonData/data/mfshield/{2026 => 2030}/v4/mfshield.xml (100%) rename Geometry/MuonCommonData/data/mfshield/{2026 => 2030}/v5/mfshield.xml (100%) rename Geometry/MuonCommonData/data/mfshield/{2026 => 2030}/v6/mfshield.xml (100%) rename Geometry/MuonCommonData/data/muonYoke/{2026 => 2030}/v1/muonYoke.xml (100%) rename Geometry/MuonCommonData/data/muonYoke/{2026 => 2030}/v2/muonYoke.xml (100%) rename Geometry/MuonCommonData/data/muonYoke/{2026 => 2030}/v3/muonYoke.xml (100%) rename Geometry/MuonCommonData/data/muonYoke/{2026 => 2030}/v4/muonYoke.xml (100%) rename Geometry/MuonCommonData/data/rpcf/{2026 => 2030}/v1/rpcf.xml (100%) rename Geometry/MuonCommonData/data/rpcf/{2026 => 2030}/v2/rpcf.xml (100%) rename Geometry/MuonCommonData/data/rpcf/{2026 => 2030}/v3/rpcf.xml (100%) create mode 100644 Geometry/MuonCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py rename Geometry/MuonCommonData/python/{testExtendedGeometry2026D54GE0XML_cfi.py => testExtendedGeometryRun4D54GE0XML_cfi.py} (88%) create mode 100644 Geometry/MuonCommonData/python/testExtendedGeometryRun4D54XML_cfi.py rename Geometry/MuonSimData/data/muonProdCuts/{2026 => 2030}/v1/muonProdCuts.xml (100%) rename Geometry/MuonSimData/data/muonProdCuts/{2026 => 2030}/v2/muonProdCuts.xml (100%) rename Geometry/RPCGeometryBuilder/data/{2026 => 2030}/v1/RPCSpecs.xml (100%) rename Geometry/TrackerCommonData/data/trackermaterial/{2026 => 2030}/v1/trackermaterial.xml (100%) diff --git a/Configuration/Geometry/python/GeometrySLHCSimDB_cff.py b/Configuration/Geometry/python/GeometrySLHCSimDB_cff.py index a92749dfadcc4..ace8ba61d5c6a 100644 --- a/Configuration/Geometry/python/GeometrySLHCSimDB_cff.py +++ b/Configuration/Geometry/python/GeometrySLHCSimDB_cff.py @@ -5,7 +5,7 @@ # # Ideal geometry, needed for simulation from GeometryReaders.XMLIdealGeometryESSource.cmsGeometryDB_cff import * -from Geometry.TrackerNumberingBuilder.trackerNumbering2026GeometryDB_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometryDB_cfi import * from Geometry.EcalCommonData.ecalSimulationParameters_cff import * from Geometry.HcalCommonData.hcalSimulationParameters_cff import * from Geometry.HcalCommonData.hcalDDDSimConstants_cfi import * diff --git a/Configuration/Geometry/python/GeometrySLHCSimIdeal_cff.py b/Configuration/Geometry/python/GeometrySLHCSimIdeal_cff.py index 741439917b675..c88f2e32ee1ca 100644 --- a/Configuration/Geometry/python/GeometrySLHCSimIdeal_cff.py +++ b/Configuration/Geometry/python/GeometrySLHCSimIdeal_cff.py @@ -2,4 +2,4 @@ # Ideal geometry, needed for simulation from SLHCUpgradeSimulations.Geometry.Phase1_R30F12_cmsSimIdealGeometryXML_cff import * -from Geometry.TrackerNumberingBuilder.trackerNumbering2026Geometry_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * diff --git a/Configuration/Geometry/python/dependencies.py b/Configuration/Geometry/python/dependencies.py index 7ed3e0a09b8f8..1fabb1afe77dd 100644 --- a/Configuration/Geometry/python/dependencies.py +++ b/Configuration/Geometry/python/dependencies.py @@ -1,2 +1,2 @@ -# this file exists to enforce dependencies for the generate2026Geometry unit test +# this file exists to enforce dependencies for the generateRun4Geometry unit test from Configuration.StandardSequences.GeometryConf import GeometryConf diff --git a/Configuration/Geometry/python/dictRun4Geometry.py b/Configuration/Geometry/python/dictRun4Geometry.py index b91b48f4f8c22..715994175f7ba 100644 --- a/Configuration/Geometry/python/dictRun4Geometry.py +++ b/Configuration/Geometry/python/dictRun4Geometry.py @@ -10,17 +10,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -37,17 +37,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -65,17 +65,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -538,9 +538,9 @@ "default" : 18, "C17" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -569,11 +569,11 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', ], @@ -612,9 +612,9 @@ }, "C18" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -643,11 +643,11 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', ], @@ -686,9 +686,9 @@ }, "C19" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -716,11 +716,11 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', ], @@ -759,9 +759,9 @@ }, "C20" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -795,12 +795,12 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/ForwardSimData/data/hfnosesens.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml', @@ -845,9 +845,9 @@ }, "C21" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -875,11 +875,11 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', ], @@ -918,9 +918,9 @@ }, "C22" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -950,11 +950,11 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', ], @@ -993,9 +993,9 @@ }, "C23" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -1024,11 +1024,11 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', ], @@ -1067,9 +1067,9 @@ }, "C24" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -1098,11 +1098,11 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', ], @@ -1141,9 +1141,9 @@ }, "C25" : { 1 : [ - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo/2021/v1/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -1172,11 +1172,11 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', ], 4 : [ - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', ], @@ -1228,16 +1228,16 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', ], 2 : [ 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', @@ -1247,12 +1247,12 @@ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', ], 4 : [ - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', ], "sim" : [ 'from Geometry.MuonNumbering.muonGeometryConstants_cff import *', @@ -1275,16 +1275,16 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', ], 2 : [ 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', @@ -1294,12 +1294,12 @@ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', ], 4 : [ - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', ], "sim" : [ 'from Geometry.MuonNumbering.muonGeometryConstants_cff import *', @@ -1322,16 +1322,16 @@ 'Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2030/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v4/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', ], 2 : [ 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', @@ -1341,12 +1341,12 @@ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', ], 4 : [ - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', ], "sim" : [ 'from Geometry.MuonNumbering.muonGeometryConstants_cff import *', @@ -1369,12 +1369,12 @@ "default" : 8, "F8" : { 1 : [ - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', ], @@ -1392,12 +1392,12 @@ }, "F9" : { 1 : [ - 'Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v5/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', ], diff --git a/Geometry/CMSCommonData/data/beampipe/2026/v1/beampipe.xml b/Geometry/CMSCommonData/data/beampipe/2030/v1/beampipe.xml similarity index 100% rename from Geometry/CMSCommonData/data/beampipe/2026/v1/beampipe.xml rename to Geometry/CMSCommonData/data/beampipe/2030/v1/beampipe.xml diff --git a/Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml b/Geometry/CMSCommonData/data/beampipe/2030/v2/beampipe.xml similarity index 100% rename from Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml rename to Geometry/CMSCommonData/data/beampipe/2030/v2/beampipe.xml diff --git a/Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml b/Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml similarity index 100% rename from Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml rename to Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml diff --git a/Geometry/CMSCommonData/data/caloBase/2026/v1/caloBase.xml b/Geometry/CMSCommonData/data/caloBase/2030/v1/caloBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/caloBase/2026/v1/caloBase.xml rename to Geometry/CMSCommonData/data/caloBase/2030/v1/caloBase.xml diff --git a/Geometry/CMSCommonData/data/caloBase/2026/v2/caloBase.xml b/Geometry/CMSCommonData/data/caloBase/2030/v2/caloBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/caloBase/2026/v2/caloBase.xml rename to Geometry/CMSCommonData/data/caloBase/2030/v2/caloBase.xml diff --git a/Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml b/Geometry/CMSCommonData/data/caloBase/2030/v3/caloBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml rename to Geometry/CMSCommonData/data/caloBase/2030/v3/caloBase.xml diff --git a/Geometry/CMSCommonData/data/caloBase/2026/v4/caloBase.xml b/Geometry/CMSCommonData/data/caloBase/2030/v4/caloBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/caloBase/2026/v4/caloBase.xml rename to Geometry/CMSCommonData/data/caloBase/2030/v4/caloBase.xml diff --git a/Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml b/Geometry/CMSCommonData/data/caloBase/2030/v5/caloBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml rename to Geometry/CMSCommonData/data/caloBase/2030/v5/caloBase.xml diff --git a/Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml b/Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml rename to Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml diff --git a/Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml b/Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml rename to Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml diff --git a/Geometry/CMSCommonData/data/caloBase/2026/v8/caloBase.xml b/Geometry/CMSCommonData/data/caloBase/2030/v8/caloBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/caloBase/2026/v8/caloBase.xml rename to Geometry/CMSCommonData/data/caloBase/2030/v8/caloBase.xml diff --git a/Geometry/CMSCommonData/data/cms/2026/v1/cms.xml b/Geometry/CMSCommonData/data/cms/2015/v1/cms.xml similarity index 100% rename from Geometry/CMSCommonData/data/cms/2026/v1/cms.xml rename to Geometry/CMSCommonData/data/cms/2015/v1/cms.xml diff --git a/Geometry/CMSCommonData/data/cms/2030/v1/cms.xml b/Geometry/CMSCommonData/data/cms/2030/v1/cms.xml new file mode 100644 index 0000000000000..41809294238e8 --- /dev/null +++ b/Geometry/CMSCommonData/data/cms/2030/v1/cms.xml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/cms/2026/v2/cms.xml b/Geometry/CMSCommonData/data/cms/2030/v2/cms.xml similarity index 100% rename from Geometry/CMSCommonData/data/cms/2026/v2/cms.xml rename to Geometry/CMSCommonData/data/cms/2030/v2/cms.xml diff --git a/Geometry/CMSCommonData/data/cms/2026/v3/cms.xml b/Geometry/CMSCommonData/data/cms/2030/v3/cms.xml similarity index 100% rename from Geometry/CMSCommonData/data/cms/2026/v3/cms.xml rename to Geometry/CMSCommonData/data/cms/2030/v3/cms.xml diff --git a/Geometry/CMSCommonData/data/cms/2026/v4/cms.xml b/Geometry/CMSCommonData/data/cms/2030/v4/cms.xml similarity index 100% rename from Geometry/CMSCommonData/data/cms/2026/v4/cms.xml rename to Geometry/CMSCommonData/data/cms/2030/v4/cms.xml diff --git a/Geometry/CMSCommonData/data/cms/2026/v5/cms.xml b/Geometry/CMSCommonData/data/cms/2030/v5/cms.xml similarity index 100% rename from Geometry/CMSCommonData/data/cms/2026/v5/cms.xml rename to Geometry/CMSCommonData/data/cms/2030/v5/cms.xml diff --git a/Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml b/Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml similarity index 100% rename from Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml rename to Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D100.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D100.xml index 08d647593d1ab..3ed3483b92f59 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D100.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D100.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - - + + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D101.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D101.xml index 543c7b052c58a..5df17bc6c8e4a 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D101.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D101.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - - + + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D102.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D102.xml index 1df96c04b7e21..939da8b73dedd 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D102.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D102.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D103.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D103.xml index c8dc35803afe4..ed6f644467d19 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D103.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D103.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D104.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D104.xml index c0ffcf3fdfa81..f9d8985c73438 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D104.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D104.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - - + + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D105.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D105.xml index 65c77d4a8c632..946660c78056e 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D105.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D105.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D106.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D106.xml index b96dd87b8fdb3..bdcb21a6fb12c 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D106.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D106.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D107.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D107.xml index d8ea30f0160df..4fd3c512b233b 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D107.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D107.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - - + + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D108.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D108.xml index 49c460b173297..b8f626812ad68 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D108.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D108.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -70,22 +70,22 @@ - - + + - + - - + + - - + + - + @@ -99,21 +99,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D109.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D109.xml index 8068840610f50..4abaf781bd235 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D109.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D109.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D110.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D110.xml index 4c4cbf550a410..cbf5c39436dcf 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D110.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D110.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D111.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D111.xml index 1e4e794b96ec8..dc4e4677bd4a9 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D111.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D111.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D112.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D112.xml index abbc720f156b5..d5cf7f27b910f 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D112.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D112.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D113.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D113.xml index f3b8c16bb1c47..3f8708c890aea 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D113.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D113.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -71,22 +71,22 @@ - - + + - + - - + + - - + + - + @@ -100,21 +100,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D114.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D114.xml index 35e012d488d88..05db625f38a1d 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D114.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D114.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -70,22 +70,22 @@ - - + + - + - - + + - - + + - + @@ -99,21 +99,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D115.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D115.xml index 4095d3854b66f..cd1b03266bcf2 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D115.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D115.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -41,9 +41,9 @@ - - - + + + @@ -76,22 +76,22 @@ - - + + - + - - + + - - + + - + @@ -105,23 +105,23 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml index 0e3cf107d8d00..cb9116b56a66b 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D116.xml @@ -9,17 +9,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - - + + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D95.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D95.xml index c817f9a9fadd6..e0510a5301c2e 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D95.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D95.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D96.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D96.xml index 546dd172b582b..13ac40c746bbe 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D96.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D96.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D98.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D98.xml index abc9479c321d9..3a05488a54c5a 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D98.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D98.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D99.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D99.xml index 813922779e6b3..3bd06207f3807 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D99.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometryRun4D99.xml @@ -8,17 +8,17 @@ - + - + - + - - + + @@ -42,9 +42,9 @@ - - - + + + @@ -72,22 +72,22 @@ - - + + - + - + - - + + - + @@ -101,21 +101,21 @@ - + - + - + - + diff --git a/Geometry/CMSCommonData/data/muonBase/2026/v1/muonBase.xml b/Geometry/CMSCommonData/data/muonBase/2015/v1/muonBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/muonBase/2026/v1/muonBase.xml rename to Geometry/CMSCommonData/data/muonBase/2015/v1/muonBase.xml diff --git a/Geometry/CMSCommonData/data/muonBase/2030/v1/muonBase.xml b/Geometry/CMSCommonData/data/muonBase/2030/v1/muonBase.xml new file mode 100644 index 0000000000000..c04581e2c2c4c --- /dev/null +++ b/Geometry/CMSCommonData/data/muonBase/2030/v1/muonBase.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/muonBase/2026/v2/muonBase.xml b/Geometry/CMSCommonData/data/muonBase/2030/v2/muonBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/muonBase/2026/v2/muonBase.xml rename to Geometry/CMSCommonData/data/muonBase/2030/v2/muonBase.xml diff --git a/Geometry/CMSCommonData/data/muonBase/2026/v3/muonBase.xml b/Geometry/CMSCommonData/data/muonBase/2030/v3/muonBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/muonBase/2026/v3/muonBase.xml rename to Geometry/CMSCommonData/data/muonBase/2030/v3/muonBase.xml diff --git a/Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml b/Geometry/CMSCommonData/data/muonBase/2030/v4/muonBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml rename to Geometry/CMSCommonData/data/muonBase/2030/v4/muonBase.xml diff --git a/Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml b/Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml similarity index 100% rename from Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml rename to Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2015MuonGEMDevXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2015MuonGEMDevXML_cfi.py index 167ecf21ae2d0..1b9a8fa0eabed 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2015MuonGEMDevXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2015MuonGEMDevXML_cfi.py @@ -9,11 +9,11 @@ 'Geometry/CMSCommonData/data/extend/cmsextent.xml', # 'Geometry/CMSCommonData/data/cms.xml', # Phase-1 Muon 'Geometry/CMSCommonData/data/cavernData/2017/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v1/cms.xml', # Phase-2 Muon - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', # Phase-2 Muon + 'Geometry/CMSCommonData/data/cms/2015/v1/cms.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v1/muonBase.xml', # Phase-2 Muon + 'Geometry/CMSCommonData/data/muonBase/2015/v1/muonBase.xml', # Phase-2 Muon 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', 'Geometry/CMSCommonData/data/beampipe/2015/v1/beampipe.xml', @@ -210,13 +210,13 @@ 'Geometry/MuonCommonData/data/mb3/2015/v1/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v1/mb4.xml', 'Geometry/MuonCommonData/data/muonYoke/2015/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v1/mf.xml', # Phase-2 Muon - 'Geometry/MuonCommonData/data/rpcf/2026/v1/rpcf.xml', # Phase-2 Muon + 'Geometry/MuonCommonData/data/mf/2030/v1/mf.xml', # Phase-2 Muon + 'Geometry/MuonCommonData/data/rpcf/2030/v1/rpcf.xml', # Phase-2 Muon 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', # Phase-2 Muon 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', # Phase-2 Muon 'Geometry/MuonCommonData/data/gem21/TDR_BaseLine/gem21.xml', # Phase-2 Muon 'Geometry/MuonCommonData/data/csc/2015/v1/csc.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', # Phase-2 Muon + 'Geometry/MuonCommonData/data/mfshield/2030/v1/mfshield.xml', # Phase-2 Muon 'Geometry/MuonCommonData/data/me0/TDR_BaseLine/me0.xml', # Phase-2 Muon # --- Muon ------------------------------------------------------------ diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2019XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2019XML_cfi.py index a1cc0f53e4a1c..e72be6f070b62 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2019XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2019XML_cfi.py @@ -16,8 +16,8 @@ 'Geometry/CMSCommonData/data/muonBase/2017/v1/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v1/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2017/v2/cavern.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D100XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D100XML_cfi.py index 8b68c2538ef3c..b05c0aa35d0e6 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D100XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D100XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D101XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D101XML_cfi.py index 5a3bcbeecb3ae..d0bec22bbbab9 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D101XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D101XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D102XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D102XML_cfi.py index 945289b68c780..64b01c7b7d098 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D102XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D102XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D103XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D103XML_cfi.py index 80a16e30c99b3..bffc3001b0aad 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D103XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D103XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D104XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D104XML_cfi.py index 22779bbcef403..ec10b69c19eef 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D104XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D104XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D105XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D105XML_cfi.py index 24a7ed1df3ee6..5b65651da7c8c 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D105XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D105XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D106XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D106XML_cfi.py index a1d60d61f432d..aee673bd9717c 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D106XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D106XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D107XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D107XML_cfi.py index a93127b0874cd..25793f13ed8e6 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D107XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D107XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D108XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D108XML_cfi.py index 6d1aa57b8bbcd..1d7933550eddc 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D108XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D108XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -71,22 +71,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -102,21 +102,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D109XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D109XML_cfi.py index e5c8f0be32f3d..5f508edf59611 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D109XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D109XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D110XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D110XML_cfi.py index 01c06221da807..f0a4ae497ddbb 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D110XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D110XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D111XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D111XML_cfi.py index 325379e4ee11e..20463b9c7fd07 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D111XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D111XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_OT806_IT741_2024_01/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D112XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D112XML_cfi.py index f51ad8d014d11..8384eae0383f2 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D112XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D112XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_OT806_IT741_2024_01/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D113XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D113XML_cfi.py index 2a3b7d1a6e211..52224ce6f7c8e 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D113XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D113XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_OT806_IT741_2024_01/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +72,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +103,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D114XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D114XML_cfi.py index 8814481a55d29..d1577299bbf7c 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D114XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D114XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -71,22 +71,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -102,21 +102,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D115XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D115XML_cfi.py index 3ff1891234d7a..3ec1bee3dc5c9 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D115XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D115XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +42,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -77,22 +77,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -108,23 +108,23 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/ForwardSimData/data/hfnosesens.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py index 21de4ae69e0a8..f6d12775fe0c5 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D116XML_cfi.py @@ -10,17 +10,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo/2021/v1/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v3/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2030/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v4/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v5/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v5/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D95XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D95XML_cfi.py index 9b4e7b5054b31..b6cacf38d0e97 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D95XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D95XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D96XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D96XML_cfi.py index edd74f1ebc0fc..29a363c91d982 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D96XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D96XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98CaloXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98CaloXML_cfi.py index 33bc5c05e21b1..0557fe3b94d10 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98CaloXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98CaloXML_cfi.py @@ -6,23 +6,23 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -44,12 +44,12 @@ 'Geometry/HGCalCommonData/data/hgcalHEmix/v16/hgcalHEmix.xml', 'Geometry/HGCalCommonData/data/hgcalCons/v16/hgcalCons.xml', 'Geometry/HGCalCommonData/data/hgcalConsData/v16/hgcalConsData.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', @@ -57,10 +57,10 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98MuonXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98MuonXML_cfi.py index 42d5683a8f7c0..7d49ac6f41f1a 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98MuonXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98MuonXML_cfi.py @@ -1,24 +1,21 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -29,25 +26,25 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/CMSCommonData/data/FieldParameters.xml', ), rootNodeName = cms.string('cms:OCMS') diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98TrackerXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98TrackerXML_cfi.py index be222ce1fbc46..458996b48980f 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98TrackerXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98TrackerXML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98XML_cfi.py index 991fba49a0d10..50c3df0ab51ca 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D98XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py index e4da741654034..b64d5fb60aac1 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py @@ -9,17 +9,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +43,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +73,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +104,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml b/Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml similarity index 100% rename from Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml rename to Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml diff --git a/Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml b/Geometry/EcalCommonData/data/ectkcablemat/2030/v1/ectkcablemat.xml similarity index 100% rename from Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml rename to Geometry/EcalCommonData/data/ectkcablemat/2030/v1/ectkcablemat.xml diff --git a/Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml b/Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml similarity index 100% rename from Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml rename to Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml diff --git a/Geometry/EcalCommonData/data/eregalgo/2026/v1/eregalgo.xml b/Geometry/EcalCommonData/data/eregalgo/2030/v1/eregalgo.xml similarity index 100% rename from Geometry/EcalCommonData/data/eregalgo/2026/v1/eregalgo.xml rename to Geometry/EcalCommonData/data/eregalgo/2030/v1/eregalgo.xml diff --git a/Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml b/Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml similarity index 100% rename from Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml rename to Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml diff --git a/Geometry/EcalCommonData/data/esalgo/2026/v1/esalgo.xml b/Geometry/EcalCommonData/data/esalgo/2030/v1/esalgo.xml similarity index 100% rename from Geometry/EcalCommonData/data/esalgo/2026/v1/esalgo.xml rename to Geometry/EcalCommonData/data/esalgo/2030/v1/esalgo.xml diff --git a/Geometry/EcalCommonData/data/escon/2026/v1/escon.xml b/Geometry/EcalCommonData/data/escon/2030/v1/escon.xml similarity index 100% rename from Geometry/EcalCommonData/data/escon/2026/v1/escon.xml rename to Geometry/EcalCommonData/data/escon/2030/v1/escon.xml diff --git a/Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml b/Geometry/ForwardCommonData/data/brm/2030/v1/brm.xml similarity index 100% rename from Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml rename to Geometry/ForwardCommonData/data/brm/2030/v1/brm.xml diff --git a/Geometry/ForwardCommonData/data/brm/2026/v2/brm.xml b/Geometry/ForwardCommonData/data/brm/2030/v2/brm.xml similarity index 100% rename from Geometry/ForwardCommonData/data/brm/2026/v2/brm.xml rename to Geometry/ForwardCommonData/data/brm/2030/v2/brm.xml diff --git a/Geometry/ForwardCommonData/data/brm/2026/v3/brm.xml b/Geometry/ForwardCommonData/data/brm/2030/v3/brm.xml similarity index 100% rename from Geometry/ForwardCommonData/data/brm/2026/v3/brm.xml rename to Geometry/ForwardCommonData/data/brm/2030/v3/brm.xml diff --git a/Geometry/ForwardCommonData/data/forwardshield/2026/v1/forwardshield.xml b/Geometry/ForwardCommonData/data/forwardshield/2030/v1/forwardshield.xml similarity index 100% rename from Geometry/ForwardCommonData/data/forwardshield/2026/v1/forwardshield.xml rename to Geometry/ForwardCommonData/data/forwardshield/2030/v1/forwardshield.xml diff --git a/Geometry/ForwardCommonData/data/forwardshield/2026/v2/forwardshield.xml b/Geometry/ForwardCommonData/data/forwardshield/2030/v2/forwardshield.xml similarity index 100% rename from Geometry/ForwardCommonData/data/forwardshield/2026/v2/forwardshield.xml rename to Geometry/ForwardCommonData/data/forwardshield/2030/v2/forwardshield.xml diff --git a/Geometry/ForwardCommonData/data/forwardshield/2026/v3/forwardshield.xml b/Geometry/ForwardCommonData/data/forwardshield/2030/v3/forwardshield.xml similarity index 100% rename from Geometry/ForwardCommonData/data/forwardshield/2026/v3/forwardshield.xml rename to Geometry/ForwardCommonData/data/forwardshield/2030/v3/forwardshield.xml diff --git a/Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml b/Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml similarity index 100% rename from Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml rename to Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml diff --git a/Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml b/Geometry/ForwardCommonData/data/forwardshield/2030/v5/forwardshield.xml similarity index 100% rename from Geometry/ForwardCommonData/data/forwardshield/2026/v5/forwardshield.xml rename to Geometry/ForwardCommonData/data/forwardshield/2030/v5/forwardshield.xml diff --git a/Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml b/Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml similarity index 100% rename from Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml rename to Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml diff --git a/Geometry/ForwardCommonData/data/zdc/2026/v2/zdc.xml b/Geometry/ForwardCommonData/data/zdc/2030/v2/zdc.xml similarity index 100% rename from Geometry/ForwardCommonData/data/zdc/2026/v2/zdc.xml rename to Geometry/ForwardCommonData/data/zdc/2030/v2/zdc.xml diff --git a/Geometry/ForwardCommonData/python/hfnoseAloneXML_cfi.py b/Geometry/ForwardCommonData/python/hfnoseAloneXML_cfi.py index 2da5210f62000..12ab6ce9a1ab9 100644 --- a/Geometry/ForwardCommonData/python/hfnoseAloneXML_cfi.py +++ b/Geometry/ForwardCommonData/python/hfnoseAloneXML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2017/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v5/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml', diff --git a/Geometry/ForwardCommonData/python/hfnoseXML_cfi.py b/Geometry/ForwardCommonData/python/hfnoseXML_cfi.py index aa9743efc047a..c6bf2bd493a57 100644 --- a/Geometry/ForwardCommonData/python/hfnoseXML_cfi.py +++ b/Geometry/ForwardCommonData/python/hfnoseXML_cfi.py @@ -6,13 +6,13 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2017/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v5/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml', 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml', 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml', diff --git a/Geometry/ForwardCommonData/python/testHFNoseXML_cfi.py b/Geometry/ForwardCommonData/python/testHFNoseXML_cfi.py index 2022e9e8ac949..bb0c36dd29a7f 100644 --- a/Geometry/ForwardCommonData/python/testHFNoseXML_cfi.py +++ b/Geometry/ForwardCommonData/python/testHFNoseXML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -75,17 +75,17 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', @@ -106,23 +106,23 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/ForwardSimData/data/hfnosesens.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/GEMGeometry/test/GeometryExtendedRun4GE0TestReco_cff.py b/Geometry/GEMGeometry/test/GeometryExtendedRun4GE0TestReco_cff.py index 640a6718e020e..6bedfb48f9d94 100644 --- a/Geometry/GEMGeometry/test/GeometryExtendedRun4GE0TestReco_cff.py +++ b/Geometry/GEMGeometry/test/GeometryExtendedRun4GE0TestReco_cff.py @@ -1,9 +1,9 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py +# This config was generated automatically using generateRun4Geometry.py # If you notice a mistake, please update the generating script, not just this config -from GeometryExtended2026GE0Test_cff import * +from GeometryExtendedRun4GE0Test_cff import * # tracker from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * diff --git a/Geometry/GEMGeometry/test/GeometryExtendedRun4GE0Test_cff.py b/Geometry/GEMGeometry/test/GeometryExtendedRun4GE0Test_cff.py index 75682e7d0cddf..1b5dc6acc306c 100644 --- a/Geometry/GEMGeometry/test/GeometryExtendedRun4GE0Test_cff.py +++ b/Geometry/GEMGeometry/test/GeometryExtendedRun4GE0Test_cff.py @@ -1,6 +1,6 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py +# This config was generated automatically using generateRun4Geometry.py # If you notice a mistake, please update the generating script, not just this config from cmsExtendedGeometryRun4GE0TestXML_cfi import * diff --git a/Geometry/GEMGeometry/test/cmsExtendedGeometryRun4GE0TestXML_cfi.py b/Geometry/GEMGeometry/test/cmsExtendedGeometryRun4GE0TestXML_cfi.py index 8919dfa6ab5c0..c48cb46786afd 100644 --- a/Geometry/GEMGeometry/test/cmsExtendedGeometryRun4GE0TestXML_cfi.py +++ b/Geometry/GEMGeometry/test/cmsExtendedGeometryRun4GE0TestXML_cfi.py @@ -1,8 +1,5 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials.xml', @@ -14,16 +11,16 @@ 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v1/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/CMSCommonData/data/cms/2026/v3/cms.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v2/caloBase.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v3/muonBase.xml', + 'Geometry/CMSCommonData/data/cms/2030/v3/cms.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v2/caloBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v3/muonBase.xml', 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixfwd.xml', @@ -42,9 +39,9 @@ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker700/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v1/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -74,13 +71,13 @@ 'Geometry/MuonCommonData/data/muonYoke/2021/v2/muonYoke.xml', 'Geometry/MuonCommonData/data/csc/2021/v1/csc.xml', 'Geometry/MuonCommonData/data/mfshield/2017/v1/mfshield.xml', - 'Geometry/MuonCommonData/data/mf/2026/v4/mf.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v2/rpcf.xml', + 'Geometry/MuonCommonData/data/mf/2030/v4/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v2/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v2/ge0.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v1/mfshield.xml', 'Geometry/ForwardCommonData/data/forwardshield/2017/v1/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', 'Geometry/ForwardCommonData/data/PostLS2/brm.xml', @@ -110,7 +107,7 @@ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v9/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v9/GEMSpecs.xml', 'Geometry/ForwardCommonData/data/brmsens.xml', diff --git a/Geometry/GlobalTrackingGeometryBuilder/test/testGlobalTrackingGeometry_cfg.py b/Geometry/GlobalTrackingGeometryBuilder/test/testGlobalTrackingGeometry_cfg.py index d084295f27403..11d12ba851d2c 100644 --- a/Geometry/GlobalTrackingGeometryBuilder/test/testGlobalTrackingGeometry_cfg.py +++ b/Geometry/GlobalTrackingGeometryBuilder/test/testGlobalTrackingGeometry_cfg.py @@ -2,7 +2,7 @@ from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9 process = cms.Process("Demo",Phase2C17I13M9) -process.load('Configuration.Geometry.GeometryExtended2026D99Reco_cff') +process.load('Configuration.Geometry.GeometryExtendedRun4D99Reco_cff') process.load('FWCore.MessageLogger.MessageLogger_cfi') if 'MessageLogger' in process.__dict__: diff --git a/Geometry/HGCalCommonData/python/testHGCV16XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCV16XML_cfi.py index 3a9b752468e77..5c00d53e97fc1 100644 --- a/Geometry/HGCalCommonData/python/testHGCV16XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCV16XML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v1/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -64,7 +64,7 @@ 'Geometry/HGCalCommonData/data/hgcalHEmix/v16/hgcalHEmix.xml', 'Geometry/HGCalCommonData/data/hgcalCons/v16/hgcalCons.xml', 'Geometry/HGCalCommonData/data/hgcalConsData/v16/hgcalConsData.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', )+ cms.vstring( 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', @@ -73,14 +73,14 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v7/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v1/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v7/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v5/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v5/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v3/ge0.xml', 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', @@ -92,7 +92,7 @@ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/HcalSimData/data/hf.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCV17XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCV17XML_cfi.py index 18f99bb4bc503..782b2bf66ef86 100644 --- a/Geometry/HGCalCommonData/python/testHGCV17XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCV17XML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -70,22 +70,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -101,13 +101,13 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', @@ -115,7 +115,7 @@ 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCV17nXML_cfi.py b/Geometry/HGCalCommonData/python/testHGCV17nXML_cfi.py index 73b77723b5fac..ae0acf788d022 100644 --- a/Geometry/HGCalCommonData/python/testHGCV17nXML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCV17nXML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -69,22 +69,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -100,13 +100,13 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', @@ -114,7 +114,7 @@ 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalEEV16XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalEEV16XML_cfi.py index a3ce02c942345..796ea2e5d70fc 100644 --- a/Geometry/HGCalCommonData/python/testHGCalEEV16XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalEEV16XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v16/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalEEV17XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalEEV17XML_cfi.py index 2ae779ea05527..d97d1bf5c91b0 100644 --- a/Geometry/HGCalCommonData/python/testHGCalEEV17XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalEEV17XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalEEV18XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalEEV18XML_cfi.py index 98d83e6bd8fde..e5785d6e01b16 100644 --- a/Geometry/HGCalCommonData/python/testHGCalEEV18XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalEEV18XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v18/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalEEV19XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalEEV19XML_cfi.py index 8e9d342abfcd9..87da0e9031c81 100644 --- a/Geometry/HGCalCommonData/python/testHGCalEEV19XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalEEV19XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v3/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalHEmixV16XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalHEmixV16XML_cfi.py index 78b823db1fa34..fa009c3ba5454 100644 --- a/Geometry/HGCalCommonData/python/testHGCalHEmixV16XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalHEmixV16XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v16/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalHEmixV17XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalHEmixV17XML_cfi.py index ab22a8ef59c23..1e7ba8d7c8187 100644 --- a/Geometry/HGCalCommonData/python/testHGCalHEmixV17XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalHEmixV17XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalHEmixV18XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalHEmixV18XML_cfi.py index 95de86e270df1..a2d7a282ca1ca 100644 --- a/Geometry/HGCalCommonData/python/testHGCalHEmixV18XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalHEmixV18XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v18/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalHEmixV19XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalHEmixV19XML_cfi.py index 188d56da6defb..bda231d6bb1b1 100644 --- a/Geometry/HGCalCommonData/python/testHGCalHEmixV19XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalHEmixV19XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v3/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalHEsilV16XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalHEsilV16XML_cfi.py index d1700f368bb07..b0f4336bafb6a 100644 --- a/Geometry/HGCalCommonData/python/testHGCalHEsilV16XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalHEsilV16XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v16/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalHEsilV17XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalHEsilV17XML_cfi.py index 800154e632edb..5496d2666ec1f 100644 --- a/Geometry/HGCalCommonData/python/testHGCalHEsilV17XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalHEsilV17XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalHEsilV18XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalHEsilV18XML_cfi.py index d9385358edd65..210c0b539d189 100644 --- a/Geometry/HGCalCommonData/python/testHGCalHEsilV18XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalHEsilV18XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v18/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalHEsilV19XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalHEsilV19XML_cfi.py index 9b31cb3918da9..22405d16342eb 100644 --- a/Geometry/HGCalCommonData/python/testHGCalHEsilV19XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalHEsilV19XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v6/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v3/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalPassiveV18XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalPassiveV18XML_cfi.py index a04308ee6dde8..0fd4320bdea57 100644 --- a/Geometry/HGCalCommonData/python/testHGCalPassiveV18XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalPassiveV18XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v18/hgcal.xml', 'Geometry/HGCalCommonData/data/hgcalPassive/v18/hgcalPassive.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalPassiveV19XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalPassiveV19XML_cfi.py index 750d59d6d1a6c..05f49e9309a7d 100644 --- a/Geometry/HGCalCommonData/python/testHGCalPassiveV19XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalPassiveV19XML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v3/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml', 'Geometry/HGCalCommonData/data/hgcalPassive/v19/hgcalPassive.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalPassiveV19cXML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalPassiveV19cXML_cfi.py index 230b1b60477c3..9cec600ff4b03 100644 --- a/Geometry/HGCalCommonData/python/testHGCalPassiveV19cXML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalPassiveV19cXML_cfi.py @@ -6,10 +6,10 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v3/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v19/hgcal.xml', 'Geometry/HGCalCommonData/data/hgcalPassive/v19/hgcalPassive.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV16XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV16XML_cfi.py index 3be193c4190c0..4b1755788d26e 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV16XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV16XML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -70,22 +70,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -101,13 +101,13 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', @@ -115,7 +115,7 @@ 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV17ShiftXML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV17ShiftXML_cfi.py index 1b429b3e392d8..62d8293ff8a84 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV17ShiftXML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV17ShiftXML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -70,22 +70,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -101,21 +101,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV17XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV17XML_cfi.py index d773887a940ef..f822e831b4a0b 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV17XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV17XML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -70,22 +70,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -101,21 +101,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV17nXML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV17nXML_cfi.py index caa1cccd4c80e..38d148b06ddad 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV17nXML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV17nXML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -69,22 +69,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -100,21 +100,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV17ngXML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV17ngXML_cfi.py index 3949fd1b1458d..12770f17d2074 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV17ngXML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV17ngXML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -69,22 +69,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -100,21 +100,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV18OXML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV18OXML_cfi.py index 5ed763c8acbf4..ad86a4c62685a 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV18OXML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV18OXML_cfi.py @@ -1,18 +1,15 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v18/hgcal.xml', @@ -24,9 +21,9 @@ 'Geometry/HGCalCommonData/data/hgcalHEmix/v18/hgcalHEmix.xml', 'Geometry/HGCalCommonData/data/hgcalCons/v18/hgcalCons.xml', 'Geometry/HGCalCommonData/data/hgcalConsData/v17/hgcalConsData.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', 'Geometry/CMSCommonData/data/FieldParameters.xml', ), diff --git a/Geometry/HGCalCommonData/python/testHGCalV18XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV18XML_cfi.py index 052f14d627d57..6c9b0dfc1fd20 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV18XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV18XML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -71,22 +71,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -102,21 +102,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV18nXML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV18nXML_cfi.py index 59cadb36977e1..e7b51ead9c204 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV18nXML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV18nXML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -70,22 +70,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -101,21 +101,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV19XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV19XML_cfi.py index 4af018e161211..3e059e4559301 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV19XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV19XML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v8/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v8/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -71,22 +71,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -102,21 +102,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv17n.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalTBCommonData/python/testTB181V0XML_cfi.py b/Geometry/HGCalTBCommonData/python/testTB181V0XML_cfi.py index 194bb759a6d65..ac243c71ffcaf 100644 --- a/Geometry/HGCalTBCommonData/python/testTB181V0XML_cfi.py +++ b/Geometry/HGCalTBCommonData/python/testTB181V0XML_cfi.py @@ -14,7 +14,7 @@ 'Geometry/HGCalTBCommonData/data/TB181/Oct181/hgcalsense.xml', 'Geometry/HGCalTBCommonData/data/TB181/hgcProdCuts.xml', 'Geometry/HGCalTBCommonData/data/TB181/Oct181/hgcalCons.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml' + 'Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml' ), rootNodeName = cms.string('cms:OCMS') ) diff --git a/Geometry/HGCalTBCommonData/python/testTB181V1XML_cfi.py b/Geometry/HGCalTBCommonData/python/testTB181V1XML_cfi.py index c5fa4490308f0..7d5dd19a226ba 100644 --- a/Geometry/HGCalTBCommonData/python/testTB181V1XML_cfi.py +++ b/Geometry/HGCalTBCommonData/python/testTB181V1XML_cfi.py @@ -11,7 +11,7 @@ 'Geometry/HGCalTBCommonData/data/TB181/Oct181/hgcalsense.xml', 'Geometry/HGCalTBCommonData/data/TB181/hgcProdCuts.xml', 'Geometry/HGCalTBCommonData/data/TB181/Oct181/hgcalCons.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml' + 'Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml' ), rootNodeName = cms.string('cms:OCMS') diff --git a/Geometry/HGCalTBCommonData/python/testTB181V2XML_cfi.py b/Geometry/HGCalTBCommonData/python/testTB181V2XML_cfi.py index 4a7b7b98d7fc5..4bbb96bd65a98 100644 --- a/Geometry/HGCalTBCommonData/python/testTB181V2XML_cfi.py +++ b/Geometry/HGCalTBCommonData/python/testTB181V2XML_cfi.py @@ -11,7 +11,7 @@ 'Geometry/HGCalTBCommonData/data/TB181/Test/hgcalsense.xml', 'Geometry/HGCalTBCommonData/data/TB181/Test/hgcProdCuts.xml', 'Geometry/HGCalTBCommonData/data/TB181/Test/hgcalCons.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml' + 'Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml' ), rootNodeName = cms.string('cms:OCMS') diff --git a/Geometry/HGCalTBCommonData/python/testTB181XML_cfi.py b/Geometry/HGCalTBCommonData/python/testTB181XML_cfi.py index 6a4671cefe747..20f8781916100 100644 --- a/Geometry/HGCalTBCommonData/python/testTB181XML_cfi.py +++ b/Geometry/HGCalTBCommonData/python/testTB181XML_cfi.py @@ -14,7 +14,7 @@ 'Geometry/HGCalTBCommonData/data/TB181/Oct181/hgcalsense.xml', 'Geometry/HGCalTBCommonData/data/TB181/hgcProdCuts.xml', 'Geometry/HGCalTBCommonData/data/TB181/Oct181/hgcalCons.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml' + 'Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml' ), rootNodeName = cms.string('cms:OCMS') diff --git a/Geometry/HcalCommonData/data/hcalRecNumbering/2026/hcalRecNumbering.xml b/Geometry/HcalCommonData/data/hcalRecNumbering/2030/hcalRecNumbering.xml similarity index 100% rename from Geometry/HcalCommonData/data/hcalRecNumbering/2026/hcalRecNumbering.xml rename to Geometry/HcalCommonData/data/hcalRecNumbering/2030/hcalRecNumbering.xml diff --git a/Geometry/HcalCommonData/data/hcalSimNumbering/2026/hcalSimNumbering.xml b/Geometry/HcalCommonData/data/hcalSimNumbering/2030/hcalSimNumbering.xml similarity index 100% rename from Geometry/HcalCommonData/data/hcalSimNumbering/2026/hcalSimNumbering.xml rename to Geometry/HcalCommonData/data/hcalSimNumbering/2030/hcalSimNumbering.xml diff --git a/Geometry/HcalCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py b/Geometry/HcalCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py index 157b81d870aa7..28a8c8a04daa0 100644 --- a/Geometry/HcalCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py +++ b/Geometry/HcalCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py @@ -1,25 +1,22 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,22 +70,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -104,21 +101,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py b/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py index 05ed21d99fbd2..e7a8bb479ebbf 100644 --- a/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py +++ b/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py @@ -8,7 +8,7 @@ 'Geometry/CMSCommonData/data/normal/cmsextent.xml', 'Geometry/CMSCommonData/data/cms/2017/v1/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v1/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/CMSCommonData/data/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', diff --git a/Geometry/HcalCommonData/python/testPhase2GeometryFineXML_cfi.py b/Geometry/HcalCommonData/python/testPhase2GeometryFineXML_cfi.py index 9293b5fa4b7b9..00ccab96beab1 100644 --- a/Geometry/HcalCommonData/python/testPhase2GeometryFineXML_cfi.py +++ b/Geometry/HcalCommonData/python/testPhase2GeometryFineXML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -70,19 +70,19 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', + 'Geometry/ForwardCommonData/data/brm/2030/v1/brm.xml', 'Geometry/ForwardCommonData/data/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', @@ -98,21 +98,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardCommonData/data/brmsens.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/CMSCommonData/data/FieldParameters.xml', diff --git a/Geometry/HcalCommonData/python/testPhase2GeometryXML_cfi.py b/Geometry/HcalCommonData/python/testPhase2GeometryXML_cfi.py index 684b7f9b26c28..5aeac5851f052 100644 --- a/Geometry/HcalCommonData/python/testPhase2GeometryXML_cfi.py +++ b/Geometry/HcalCommonData/python/testPhase2GeometryXML_cfi.py @@ -1,25 +1,22 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -43,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -73,19 +70,19 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', + 'Geometry/ForwardCommonData/data/brm/2030/v1/brm.xml', 'Geometry/ForwardCommonData/data/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', @@ -106,22 +103,22 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardCommonData/data/brmsens.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v1/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v1/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v1/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v1/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v1c/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v1c/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v1c/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v1c/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v2/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v2/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v3/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v3/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v3/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v3/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v3c/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v3c/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v3c/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v3c/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v4/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v4/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v4/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v4/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v4c/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v4c/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v4c/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v4c/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v5/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v5/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v5/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v5/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml similarity index 100% rename from Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml rename to Geometry/HcalSimData/data/CaloUtil/2030/v5c/CaloUtil.xml diff --git a/Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml b/Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml similarity index 100% rename from Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml rename to Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml diff --git a/Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml b/Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml similarity index 100% rename from Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml rename to Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml diff --git a/Geometry/MuonCommonData/data/ge0shield/2026/v2/ge0shield.xml b/Geometry/MuonCommonData/data/ge0shield/2030/v2/ge0shield.xml similarity index 100% rename from Geometry/MuonCommonData/data/ge0shield/2026/v2/ge0shield.xml rename to Geometry/MuonCommonData/data/ge0shield/2030/v2/ge0shield.xml diff --git a/Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml b/Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml similarity index 100% rename from Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml rename to Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml diff --git a/Geometry/MuonCommonData/data/mf/2026/v1/mf.xml b/Geometry/MuonCommonData/data/mf/2030/v1/mf.xml similarity index 100% rename from Geometry/MuonCommonData/data/mf/2026/v1/mf.xml rename to Geometry/MuonCommonData/data/mf/2030/v1/mf.xml diff --git a/Geometry/MuonCommonData/data/mf/2026/v2/mf.xml b/Geometry/MuonCommonData/data/mf/2030/v2/mf.xml similarity index 100% rename from Geometry/MuonCommonData/data/mf/2026/v2/mf.xml rename to Geometry/MuonCommonData/data/mf/2030/v2/mf.xml diff --git a/Geometry/MuonCommonData/data/mf/2026/v3/mf.xml b/Geometry/MuonCommonData/data/mf/2030/v3/mf.xml similarity index 100% rename from Geometry/MuonCommonData/data/mf/2026/v3/mf.xml rename to Geometry/MuonCommonData/data/mf/2030/v3/mf.xml diff --git a/Geometry/MuonCommonData/data/mf/2026/v4/mf.xml b/Geometry/MuonCommonData/data/mf/2030/v4/mf.xml similarity index 100% rename from Geometry/MuonCommonData/data/mf/2026/v4/mf.xml rename to Geometry/MuonCommonData/data/mf/2030/v4/mf.xml diff --git a/Geometry/MuonCommonData/data/mf/2026/v5/mf.xml b/Geometry/MuonCommonData/data/mf/2030/v5/mf.xml similarity index 100% rename from Geometry/MuonCommonData/data/mf/2026/v5/mf.xml rename to Geometry/MuonCommonData/data/mf/2030/v5/mf.xml diff --git a/Geometry/MuonCommonData/data/mf/2026/v6/mf.xml b/Geometry/MuonCommonData/data/mf/2030/v6/mf.xml similarity index 100% rename from Geometry/MuonCommonData/data/mf/2026/v6/mf.xml rename to Geometry/MuonCommonData/data/mf/2030/v6/mf.xml diff --git a/Geometry/MuonCommonData/data/mf/2026/v7/mf.xml b/Geometry/MuonCommonData/data/mf/2030/v7/mf.xml similarity index 100% rename from Geometry/MuonCommonData/data/mf/2026/v7/mf.xml rename to Geometry/MuonCommonData/data/mf/2030/v7/mf.xml diff --git a/Geometry/MuonCommonData/data/mf/2026/v8/mf.xml b/Geometry/MuonCommonData/data/mf/2030/v8/mf.xml similarity index 100% rename from Geometry/MuonCommonData/data/mf/2026/v8/mf.xml rename to Geometry/MuonCommonData/data/mf/2030/v8/mf.xml diff --git a/Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml b/Geometry/MuonCommonData/data/mfshield/2030/v1/mfshield.xml similarity index 100% rename from Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml rename to Geometry/MuonCommonData/data/mfshield/2030/v1/mfshield.xml diff --git a/Geometry/MuonCommonData/data/mfshield/2026/v2/mfshield.xml b/Geometry/MuonCommonData/data/mfshield/2030/v2/mfshield.xml similarity index 100% rename from Geometry/MuonCommonData/data/mfshield/2026/v2/mfshield.xml rename to Geometry/MuonCommonData/data/mfshield/2030/v2/mfshield.xml diff --git a/Geometry/MuonCommonData/data/mfshield/2026/v3/mfshield.xml b/Geometry/MuonCommonData/data/mfshield/2030/v3/mfshield.xml similarity index 100% rename from Geometry/MuonCommonData/data/mfshield/2026/v3/mfshield.xml rename to Geometry/MuonCommonData/data/mfshield/2030/v3/mfshield.xml diff --git a/Geometry/MuonCommonData/data/mfshield/2026/v4/mfshield.xml b/Geometry/MuonCommonData/data/mfshield/2030/v4/mfshield.xml similarity index 100% rename from Geometry/MuonCommonData/data/mfshield/2026/v4/mfshield.xml rename to Geometry/MuonCommonData/data/mfshield/2030/v4/mfshield.xml diff --git a/Geometry/MuonCommonData/data/mfshield/2026/v5/mfshield.xml b/Geometry/MuonCommonData/data/mfshield/2030/v5/mfshield.xml similarity index 100% rename from Geometry/MuonCommonData/data/mfshield/2026/v5/mfshield.xml rename to Geometry/MuonCommonData/data/mfshield/2030/v5/mfshield.xml diff --git a/Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml b/Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml similarity index 100% rename from Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml rename to Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml diff --git a/Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml b/Geometry/MuonCommonData/data/muonYoke/2030/v1/muonYoke.xml similarity index 100% rename from Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml rename to Geometry/MuonCommonData/data/muonYoke/2030/v1/muonYoke.xml diff --git a/Geometry/MuonCommonData/data/muonYoke/2026/v2/muonYoke.xml b/Geometry/MuonCommonData/data/muonYoke/2030/v2/muonYoke.xml similarity index 100% rename from Geometry/MuonCommonData/data/muonYoke/2026/v2/muonYoke.xml rename to Geometry/MuonCommonData/data/muonYoke/2030/v2/muonYoke.xml diff --git a/Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml b/Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml similarity index 100% rename from Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml rename to Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml diff --git a/Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml b/Geometry/MuonCommonData/data/muonYoke/2030/v4/muonYoke.xml similarity index 100% rename from Geometry/MuonCommonData/data/muonYoke/2026/v4/muonYoke.xml rename to Geometry/MuonCommonData/data/muonYoke/2030/v4/muonYoke.xml diff --git a/Geometry/MuonCommonData/data/rpcf/2026/v1/rpcf.xml b/Geometry/MuonCommonData/data/rpcf/2030/v1/rpcf.xml similarity index 100% rename from Geometry/MuonCommonData/data/rpcf/2026/v1/rpcf.xml rename to Geometry/MuonCommonData/data/rpcf/2030/v1/rpcf.xml diff --git a/Geometry/MuonCommonData/data/rpcf/2026/v2/rpcf.xml b/Geometry/MuonCommonData/data/rpcf/2030/v2/rpcf.xml similarity index 100% rename from Geometry/MuonCommonData/data/rpcf/2026/v2/rpcf.xml rename to Geometry/MuonCommonData/data/rpcf/2030/v2/rpcf.xml diff --git a/Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml b/Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml similarity index 100% rename from Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml rename to Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml diff --git a/Geometry/MuonCommonData/python/cmsExtendedGeometry2026D99XML_cfi.py b/Geometry/MuonCommonData/python/cmsExtendedGeometry2026D99XML_cfi.py index 188c1b7ac1990..27fec75991d4b 100644 --- a/Geometry/MuonCommonData/python/cmsExtendedGeometry2026D99XML_cfi.py +++ b/Geometry/MuonCommonData/python/cmsExtendedGeometry2026D99XML_cfi.py @@ -6,17 +6,17 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -40,9 +40,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -70,22 +70,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -101,21 +101,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v4/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', diff --git a/Geometry/MuonCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py b/Geometry/MuonCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py new file mode 100644 index 0000000000000..27fec75991d4b --- /dev/null +++ b/Geometry/MuonCommonData/python/cmsExtendedGeometryRun4D99XML_cfi.py @@ -0,0 +1,125 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_OT800_IT615_2022_10/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_03/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixel.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerStructureTopology.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelsens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII/v2/trackingMaterialGroups_ForPhaseII.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', + 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', + 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v17/hgcalcell.xml', + 'Geometry/HGCalCommonData/data/hgcalwafer/v17/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v17/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v17/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v17/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v17/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalConsData/v17/hgcalConsData.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', + 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', + 'Geometry/MTDCommonData/data/btl/v2/btl.xml', + 'Geometry/MTDCommonData/data/etl/v7/etl.xml', + 'Geometry/MTDCommonData/data/mtdParameters/v4/mtdStructureTopology.xml', + 'Geometry/MTDCommonData/data/mtdParameters/v4/mtdParameters.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', + 'Geometry/HGCalSimData/data/hgcsensv15.xml', + 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/MTDSimData/data/v4/mtdsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/MTDSimData/data/v4/mtdProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/MuonCommonData/python/testExtendedGeometry2026D54XML_cfi.py b/Geometry/MuonCommonData/python/testExtendedGeometry2026D54XML_cfi.py index a25895540f5a2..8b1020a10a80d 100644 --- a/Geometry/MuonCommonData/python/testExtendedGeometry2026D54XML_cfi.py +++ b/Geometry/MuonCommonData/python/testExtendedGeometry2026D54XML_cfi.py @@ -1,8 +1,5 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials.xml', @@ -14,16 +11,16 @@ 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v1/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/CMSCommonData/data/cms/2026/v3/cms.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v2/caloBase.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v3/muonBase.xml', + 'Geometry/CMSCommonData/data/cms/2030/v3/cms.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v2/caloBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v3/muonBase.xml', 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixfwd.xml', @@ -42,9 +39,9 @@ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker700/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v1/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -74,12 +71,12 @@ 'Geometry/MuonCommonData/data/muonYoke/2021/v2/muonYoke.xml', 'Geometry/MuonCommonData/data/csc/2021/v1/csc.xml', 'Geometry/MuonCommonData/data/mfshield/2017/v1/mfshield.xml', - 'Geometry/MuonCommonData/data/mf/2026/v2/mf.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v2/rpcf.xml', + 'Geometry/MuonCommonData/data/mf/2030/v2/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v2/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v1/mfshield.xml', 'Geometry/MuonCommonData/data/me0/TDR_Dev/v2/me0.xml', 'Geometry/ForwardCommonData/data/forwardshield/2017/v1/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', @@ -110,7 +107,7 @@ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecs.xml', 'Geometry/ForwardCommonData/data/brmsens.xml', diff --git a/Geometry/MuonCommonData/python/testExtendedGeometry2026D54GE0XML_cfi.py b/Geometry/MuonCommonData/python/testExtendedGeometryRun4D54GE0XML_cfi.py similarity index 88% rename from Geometry/MuonCommonData/python/testExtendedGeometry2026D54GE0XML_cfi.py rename to Geometry/MuonCommonData/python/testExtendedGeometryRun4D54GE0XML_cfi.py index be30051efa98f..84cc31d5df9ea 100644 --- a/Geometry/MuonCommonData/python/testExtendedGeometry2026D54GE0XML_cfi.py +++ b/Geometry/MuonCommonData/python/testExtendedGeometryRun4D54GE0XML_cfi.py @@ -1,8 +1,5 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials.xml', @@ -14,16 +11,16 @@ 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v1/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/CMSCommonData/data/cms/2026/v3/cms.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v2/caloBase.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v3/muonBase.xml', + 'Geometry/CMSCommonData/data/cms/2030/v3/cms.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v2/caloBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v3/muonBase.xml', 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixfwd.xml', @@ -42,9 +39,9 @@ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker700/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v1/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -74,12 +71,12 @@ 'Geometry/MuonCommonData/data/muonYoke/2021/v2/muonYoke.xml', 'Geometry/MuonCommonData/data/csc/2021/v1/csc.xml', 'Geometry/MuonCommonData/data/mfshield/2017/v1/mfshield.xml', - 'Geometry/MuonCommonData/data/mf/2026/v4/mf.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v2/rpcf.xml', + 'Geometry/MuonCommonData/data/mf/2030/v4/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v2/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v2/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v2/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v2/ge0.xml', 'Geometry/ForwardCommonData/data/forwardshield/2017/v1/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', @@ -110,7 +107,7 @@ 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v9/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v9/GEMSpecs.xml', 'Geometry/ForwardCommonData/data/brmsens.xml', diff --git a/Geometry/MuonCommonData/python/testExtendedGeometryRun4D54XML_cfi.py b/Geometry/MuonCommonData/python/testExtendedGeometryRun4D54XML_cfi.py new file mode 100644 index 0000000000000..8b1020a10a80d --- /dev/null +++ b/Geometry/MuonCommonData/python/testExtendedGeometryRun4D54XML_cfi.py @@ -0,0 +1,126 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/CMSCommonData/data/cms/2030/v3/cms.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v2/caloBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v3/muonBase.xml', + 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/otst.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker700/pixel.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker700/pixelStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker700/pixelsens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker700/trackerRecoMaterial.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker700/pixelProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v1/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', + 'Geometry/HGCalCommonData/data/hgcal/v11/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v10/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v11/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v11/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v11/hgcalCons.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2021/v2/muonYoke.xml', + 'Geometry/MuonCommonData/data/csc/2021/v1/csc.xml', + 'Geometry/MuonCommonData/data/mfshield/2017/v1/mfshield.xml', + 'Geometry/MuonCommonData/data/mf/2030/v2/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v2/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v1/mfshield.xml', + 'Geometry/MuonCommonData/data/me0/TDR_Dev/v2/me0.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2017/v1/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/PostLS2/brm.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/MTDCommonData/data/btl.xml', + 'Geometry/MTDCommonData/data/etl/v2/etl.xml', + 'Geometry/MTDCommonData/data/CrystalBarPhiFlat/v3/mtd.xml', + 'Geometry/MTDCommonData/data/CrystalBarPhiFlat/mtdStructureTopology.xml', + 'Geometry/MTDCommonData/data/CrystalBarPhiFlat/mtdParameters.xml', + )+ + cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/muonNumbering.xml', + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/HGCalSimData/data/hgcsensv9.xml', + 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/MTDSimData/data/CrystalBarPhiFlat/mtdsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', + 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/MTDSimData/data/CrystalBarPhiFlat/mtdProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/MuonCommonData/python/testGE0XML_cfi.py b/Geometry/MuonCommonData/python/testGE0XML_cfi.py index 96bfb5dd40100..35b1f11b0d697 100644 --- a/Geometry/MuonCommonData/python/testGE0XML_cfi.py +++ b/Geometry/MuonCommonData/python/testGE0XML_cfi.py @@ -6,12 +6,12 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v5/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', @@ -22,22 +22,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v1/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v3/muonNumbering.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', diff --git a/Geometry/MuonCommonData/python/testGEMAllXML_cfi.py b/Geometry/MuonCommonData/python/testGEMAllXML_cfi.py index 9e1b2783a2437..de66d7a0d304c 100644 --- a/Geometry/MuonCommonData/python/testGEMAllXML_cfi.py +++ b/Geometry/MuonCommonData/python/testGEMAllXML_cfi.py @@ -6,22 +6,22 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', 'Geometry/CMSCommonData/data/FieldParameters.xml', ), rootNodeName = cms.string('cms:OCMS') diff --git a/Geometry/MuonCommonData/python/testGEMXML_cfi.py b/Geometry/MuonCommonData/python/testGEMXML_cfi.py index 3267616d30a95..c3ee29895f07d 100644 --- a/Geometry/MuonCommonData/python/testGEMXML_cfi.py +++ b/Geometry/MuonCommonData/python/testGEMXML_cfi.py @@ -6,16 +6,16 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v5/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', @@ -24,21 +24,21 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v6/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v1/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v6/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v4/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v4/mfshield.xml', 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml', 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecs.xml', 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', diff --git a/Geometry/MuonCommonData/python/testMFXML_cfi.py b/Geometry/MuonCommonData/python/testMFXML_cfi.py index 259146e9d9547..373cc02c54d2b 100644 --- a/Geometry/MuonCommonData/python/testMFXML_cfi.py +++ b/Geometry/MuonCommonData/python/testMFXML_cfi.py @@ -1,24 +1,21 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cms/2026/v1/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v1/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v1/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v2/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v2/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v1/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v1/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2017/v2/cavern.xml', @@ -47,21 +44,21 @@ 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4025/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', 'Geometry/EcalCommonData/data/ectkcable.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v1/eregalgo.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v1/eregalgo.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', - 'Geometry/EcalCommonData/data/escon/2026/v1/escon.xml', - 'Geometry/EcalCommonData/data/esalgo/2026/v1/esalgo.xml', + 'Geometry/EcalCommonData/data/escon/2030/v1/escon.xml', + 'Geometry/EcalCommonData/data/esalgo/2030/v1/esalgo.xml', 'Geometry/HcalCommonData/data/hcalrotations.xml', 'Geometry/HcalCommonData/data/hcal/HGCal/hcalalgo.xml', 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', 'Geometry/HcalCommonData/data/hcalendcap/HGCal/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/2026/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/2026/hcalRecNumbering.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/2030/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/2030/hcalRecNumbering.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v7/hgcal.xml', 'Geometry/HGCalCommonData/data/hgcalEE/v7/hgcalEE.xml', @@ -74,13 +71,13 @@ 'Geometry/MuonCommonData/data/mb3/2015/v1/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v1/mb4.xml', 'Geometry/MuonCommonData/data/design/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v2/mf.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/mf/2030/v2/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v1/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', 'Geometry/MuonCommonData/data/csc/2015/v1/csc.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v1/mfshield.xml', 'Geometry/MuonCommonData/data/me0/TDR_Dev/me0.xml', 'Geometry/ForwardCommonData/data/forwardshield/2017/v1/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', diff --git a/Geometry/MuonSimData/data/muonProdCuts/2026/v1/muonProdCuts.xml b/Geometry/MuonSimData/data/muonProdCuts/2030/v1/muonProdCuts.xml similarity index 100% rename from Geometry/MuonSimData/data/muonProdCuts/2026/v1/muonProdCuts.xml rename to Geometry/MuonSimData/data/muonProdCuts/2030/v1/muonProdCuts.xml diff --git a/Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml b/Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml similarity index 100% rename from Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml rename to Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml diff --git a/Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml b/Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml similarity index 100% rename from Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml rename to Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml diff --git a/Geometry/TrackerCommonData/data/trackermaterial/2026/v1/trackermaterial.xml b/Geometry/TrackerCommonData/data/trackermaterial/2030/v1/trackermaterial.xml similarity index 100% rename from Geometry/TrackerCommonData/data/trackermaterial/2026/v1/trackermaterial.xml rename to Geometry/TrackerCommonData/data/trackermaterial/2030/v1/trackermaterial.xml diff --git a/Geometry/TrackerCommonData/python/cmsExtendedGeometryRun4D110XML_cfi.py b/Geometry/TrackerCommonData/python/cmsExtendedGeometryRun4D110XML_cfi.py index 01c06221da807..ba119328a3af4 100644 --- a/Geometry/TrackerCommonData/python/cmsExtendedGeometryRun4D110XML_cfi.py +++ b/Geometry/TrackerCommonData/python/cmsExtendedGeometryRun4D110XML_cfi.py @@ -1,25 +1,22 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generateRun4Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cms/2030/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2030/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2030/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/beampipe/2030/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2030/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', @@ -42,9 +39,9 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT711_2023_05/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/eregalgo/2030/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2030/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2030/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', @@ -72,22 +69,22 @@ 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2030/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2030/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/rpcf/2030/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/2026/v1/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/gem21/2030/v1/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2030/v6/mfshield.xml', 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', - 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/MuonCommonData/data/ge0shield/2030/v1/ge0shield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2030/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/zdcmaterials/2021/v1/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc/2026/v1/zdc.xml', + 'Geometry/ForwardCommonData/data/zdc/2030/v1/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi/2021/v2/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', @@ -103,21 +100,21 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2030/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2030/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v5/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2026/v1/HcalProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts/2030/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', - 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2030/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts/2021/v2/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v5/mtdProdCuts.xml', From c32dd118c296a86c0fa20659b60cb0c92a6d30b4 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Fri, 6 Dec 2024 18:07:14 +0100 Subject: [PATCH 215/418] Add test for BTL topology navigation in parallel to tracking geometry --- .../interface/MTDTopology.h | 8 +- .../MTDGeometryBuilder/src/MTDTopology.cc | 8 +- RecoMTD/DetLayers/interface/MTDDetTray.h | 3 + RecoMTD/DetLayers/src/MTDDetTray.cc | 3 + RecoMTD/DetLayers/test/BuildFile.xml | 7 +- RecoMTD/DetLayers/test/TestBTLNavigation.cc | 177 ++++++++++++++++++ 6 files changed, 193 insertions(+), 13 deletions(-) create mode 100644 RecoMTD/DetLayers/test/TestBTLNavigation.cc diff --git a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h index 2994ab581597e..c82293f865561 100644 --- a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h +++ b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h @@ -42,13 +42,13 @@ class MTDTopology { // BTL topology navigation is based on a predefined order of dets in MTDGeometry, mapped onto phi/eta grid - std::pair btlIndex(const uint32_t detId); - uint32_t btlidFromIndex(const uint32_t iphi, const uint32_t ieta); + std::pair btlIndex(const uint32_t detId) const; + uint32_t btlidFromIndex(const uint32_t iphi, const uint32_t ieta) const; // BTL topology navigation methods, find index of closest module along eta or phi - uint32_t phishiftBTL(const uint32_t detid, const int phiShift); - uint32_t etashiftBTL(const uint32_t detid, const int etaShift); + uint32_t phishiftBTL(const uint32_t detid, const int phiShift) const; + uint32_t etashiftBTL(const uint32_t detid, const int etaShift) const; // ETL topology navigation is based on a predefined order of dets in sector diff --git a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc index 4c1d4ed872394..ea43ab1ca9458 100644 --- a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc +++ b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc @@ -7,7 +7,7 @@ MTDTopology::MTDTopology(const int& topologyMode, const BTLValues& btl, const ETLValues& etl) : mtdTopologyMode_(topologyMode), btlVals_(btl), etlVals_(etl) {} -std::pair MTDTopology::btlIndex(const uint32_t detId) { +std::pair MTDTopology::btlIndex(const uint32_t detId) const { size_t index(0); bool found(false); for (const auto& theid : btlVals_.btlDetId_) { @@ -26,7 +26,7 @@ std::pair MTDTopology::btlIndex(const uint32_t detId) { } } -uint32_t MTDTopology::btlidFromIndex(const uint32_t iphi, const uint32_t ieta) { +uint32_t MTDTopology::btlidFromIndex(const uint32_t iphi, const uint32_t ieta) const { uint32_t res(0); for (uint32_t index = 0; index < btlVals_.nBTLmodules_; index++) { if (iphi == btlVals_.btlPhi_[index] && ieta == btlVals_.btlEta_[index]) { @@ -38,7 +38,7 @@ uint32_t MTDTopology::btlidFromIndex(const uint32_t iphi, const uint32_t ieta) { return res; } -uint32_t MTDTopology::phishiftBTL(const uint32_t detid, const int phiShift) { +uint32_t MTDTopology::phishiftBTL(const uint32_t detid, const int phiShift) const { if (phiShift == 0) { edm::LogWarning("MTDTopology") << "asking of a null phiShift in BTL"; return failIndex_; @@ -68,7 +68,7 @@ uint32_t MTDTopology::phishiftBTL(const uint32_t detid, const int phiShift) { } } -uint32_t MTDTopology::etashiftBTL(const uint32_t detid, const int etaShift) { +uint32_t MTDTopology::etashiftBTL(const uint32_t detid, const int etaShift) const { if (etaShift == 0) { edm::LogWarning("MTDTopology") << "asking of a null etaShift in BTL"; return failIndex_; diff --git a/RecoMTD/DetLayers/interface/MTDDetTray.h b/RecoMTD/DetLayers/interface/MTDDetTray.h index f79168322a973..de24081df0ee7 100644 --- a/RecoMTD/DetLayers/interface/MTDDetTray.h +++ b/RecoMTD/DetLayers/interface/MTDDetTray.h @@ -12,6 +12,9 @@ #include "TrackingTools/DetLayers/interface/DetRodOneR.h" #include "TrackingTools/DetLayers/interface/PeriodicBinFinderInZ.h" #include "Utilities/BinningTools/interface/GenericBinFinderInZ.h" + +#include + class GeomDet; class MTDDetTray : public DetRodOneR { diff --git a/RecoMTD/DetLayers/src/MTDDetTray.cc b/RecoMTD/DetLayers/src/MTDDetTray.cc index cd26dc486148a..8665913ddbc3f 100644 --- a/RecoMTD/DetLayers/src/MTDDetTray.cc +++ b/RecoMTD/DetLayers/src/MTDDetTray.cc @@ -13,7 +13,10 @@ #include +#include "DataFormats/Math/interface/Rounding.h" + using namespace std; +using namespace cms_rounding; MTDDetTray::MTDDetTray(vector::const_iterator first, vector::const_iterator last) : DetRodOneR(first, last) { diff --git a/RecoMTD/DetLayers/test/BuildFile.xml b/RecoMTD/DetLayers/test/BuildFile.xml index c9fb7147c279b..01b04f104a000 100644 --- a/RecoMTD/DetLayers/test/BuildFile.xml +++ b/RecoMTD/DetLayers/test/BuildFile.xml @@ -2,18 +2,15 @@ - + - + - - - diff --git a/RecoMTD/DetLayers/test/TestBTLNavigation.cc b/RecoMTD/DetLayers/test/TestBTLNavigation.cc new file mode 100644 index 0000000000000..d7d349535d244 --- /dev/null +++ b/RecoMTD/DetLayers/test/TestBTLNavigation.cc @@ -0,0 +1,177 @@ +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/global/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Utilities/interface/StreamID.h" + +#include "Geometry/MTDGeometryBuilder/interface/MTDTopology.h" +#include "Geometry/Records/interface/MTDTopologyRcd.h" + +#include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" +#include "RecoMTD/Records/interface/MTDRecoGeometryRecord.h" + +#include "RecoMTD/DetLayers/interface/MTDTrayBarrelLayer.h" +#include "RecoMTD/DetLayers/interface/MTDDetTray.h" + +#include + +#include + +#include "DataFormats/Math/interface/Rounding.h" + +using namespace std; +using namespace edm; +using namespace cms_rounding; + +class TestBTLNavigation : public global::EDAnalyzer<> { +public: + TestBTLNavigation(const ParameterSet& pset); + + void analyze(edm::StreamID, edm::Event const&, edm::EventSetup const&) const override; + +private: + inline std::string fround(const double in, const size_t prec) const { + std::stringstream ss; + ss << std::setprecision(prec) << std::fixed << std::setw(14) << roundIfNear0(in); + return ss.str(); + } + + inline std::string fvecround(const GlobalPoint vecin, const size_t prec) const { + std::stringstream ss; + ss << std::setprecision(prec) << std::fixed << std::setw(14) << roundVecIfNear0(vecin); + return ss.str(); + } + + const edm::ESInputTag tag_; + edm::ESGetToken geomToken_; + edm::ESGetToken topoToken_; +}; + +TestBTLNavigation::TestBTLNavigation(const ParameterSet& iConfig) : tag_(edm::ESInputTag{"", ""}) { + geomToken_ = esConsumes(tag_); + topoToken_ = esConsumes(tag_); +} + +void TestBTLNavigation::analyze(edm::StreamID, edm::Event const&, edm::EventSetup const& es) const { + auto geo = es.getTransientHandle(geomToken_); + auto topo = es.getTransientHandle(topoToken_); + + const vector& layers = geo->allBTLLayers(); + + // dump of BTL layers structure + + LogVerbatim("MTDLayerDumpFull") << "\n\nTest of BTL navigation \n\n"; + LogVerbatim("MTDLayerDump") << "\n\nTest of BTL navigation \n\n"; + + for (const auto& ilay : layers) { + const MTDTrayBarrelLayer* layer = static_cast(ilay); + + LogVerbatim("MTDLayerDumpFull") << std::fixed << "\nBTL layer " << std::setw(4) << layer->subDetector() + << " at z = " << fround(layer->surface().position().z(), 4) + << " rods = " << std::setw(14) << layer->rods().size() + << " dets = " << std::setw(14) << layer->basicComponents().size(); + LogVerbatim("MTDLayerDump") << std::fixed << "\nBTL layer " << std::setw(4) << layer->subDetector() + << " at z = " << fround(layer->surface().position().z(), 2) + << " rods = " << std::setw(14) << layer->rods().size() << " dets = " << std::setw(14) + << layer->basicComponents().size(); + + unsigned int irodInd(0); + for (const auto& irod : layer->rods()) { + irodInd++; + LogVerbatim("MTDLayerDumpFull") << std::fixed << "\nTray " << std::setw(4) << irodInd << "\n" + << " MTDDetTray at " << std::fixed << std::setprecision(3) + << roundVecIfNear0(irod->specificSurface().position()) << std::endl + << " L/W/T : " << fround(irod->specificSurface().bounds().length(), 2) << " / " + << fround(irod->specificSurface().bounds().width(), 2) << " / " + << fround(irod->specificSurface().bounds().thickness(), 2) + << " normal phi = " << fround(irod->specificSurface().normalVector().phi(), 2) + << std::endl; + LogVerbatim("MTDLayerDump") << std::fixed << "\nTray " << std::setw(4) << irodInd << "\n" + << " MTDDetTray at " << std::fixed << std::setprecision(3) + << roundVecIfNear0(irod->specificSurface().position()) << std::endl + << " L/W/T : " << fround(irod->specificSurface().bounds().length(), 2) << " / " + << fround(irod->specificSurface().bounds().width(), 2) << " / " + << fround(irod->specificSurface().bounds().thickness(), 2) + << " normal phi = " << fround(irod->specificSurface().normalVector().phi(), 2) + << std::endl; + unsigned int imodInd(0); + for (const auto& imod : irod->basicComponents()) { + imodInd++; + BTLDetId modId(imod->geographicalId().rawId()); + auto topoId = topo.product()->btlIndex(modId.rawId()); + auto topoDetId = topo.product()->btlidFromIndex(topoId.first, topoId.second); + LogVerbatim("MTDLayerDumpFull") << std::fixed << std::setw(5) << imodInd << " BTLDetId " << modId.rawId() + << " iphi/ieta = " << std::setw(4) << topoId.first << " / " << std::setw(4) + << topoId.second << " side = " << std::setw(4) << modId.mtdSide() + << " RU = " << std::setw(4) << modId.runit() << " mod = " << std::setw(4) + << modId.module() << " pos = " << fvecround(imod->position(), 4); + LogVerbatim("MTDLayerDump") << std::fixed << std::setw(5) << imodInd << " BTLDetId " << modId.rawId() + << " iphi/ieta = " << std::setw(4) << topoId.first << " / " << std::setw(4) + << topoId.second << " side = " << std::setw(4) << modId.mtdSide() + << " RU = " << std::setw(4) << modId.runit() << " mod = " << std::setw(4) + << modId.module() << " pos = " << fvecround(imod->position(), 2); + if (topoDetId != modId.rawId()) { + LogVerbatim("MTDLayerDumpFull") + << "DIFFERENCE BtlDetId " << modId.rawId() << " not equal to MTDTopology " << topoDetId; + LogVerbatim("MTDLayerDump") << "DIFFERENCE BtlDetId " << modId.rawId() << " not equal to MTDTopology " + << topoDetId; + } + for (int iside = -1; iside <= 1; iside += 2) { + size_t idetNew = topo.product()->phishiftBTL(modId.rawId(), iside); + if (idetNew > irod->basicComponents().size()) { + LogVerbatim("MTDLayerDumpFull") + << "...............phishift= " << std::fixed << std::setw(2) << iside << " out of range"; + LogVerbatim("MTDLayerDump") << "...............phishift= " << std::fixed << std::setw(2) << iside + << " out of range"; + } else { + BTLDetId newId(irod->basicComponents()[idetNew]->geographicalId().rawId()); + auto newTopoId = topo.product()->btlIndex(newId.rawId()); + LogVerbatim("MTDLayerDumpFull") + << std::fixed << "...............phishift= " + << " iphi/ieta = " << std::setw(4) << newTopoId.first << " / " << std::setw(4) << newTopoId.second + << std::setw(2) << iside << " side = " << std::setw(4) << newId.mtdSide() << " RU = " << std::setw(4) + << newId.runit() << " mod = " << std::setw(4) << newId.module() + << " pos = " << fvecround(irod->basicComponents()[idetNew]->position(), 4); + LogVerbatim("MTDLayerDump") << std::fixed << "...............phishift= " + << " iphi/ieta = " << std::setw(4) << newTopoId.first << " / " << std::setw(4) + << newTopoId.second << std::setw(2) << iside << " side = " << std::setw(4) + << newId.mtdSide() << " RU = " << std::setw(4) << newId.runit() + << " mod = " << std::setw(4) << newId.module() + << " pos = " << fvecround(irod->basicComponents()[idetNew]->position(), 2); + } + } + for (int iside = -1; iside <= 1; iside += 2) { + auto idetNew = topo.product()->etashiftBTL(modId, iside); + if (idetNew > irod->basicComponents().size()) { + LogVerbatim("MTDLayerDumpFull") + << "...............etashift= " << std::fixed << std::setw(2) << iside << " out of range"; + LogVerbatim("MTDLayerDump") << "...............etashift= " << std::fixed << std::setw(2) << iside + << " out of range"; + } else { + BTLDetId newId(irod->basicComponents()[idetNew]->geographicalId().rawId()); + auto const& newTopoId = topo.product()->btlIndex(newId.rawId()); + LogVerbatim("MTDLayerDumpFull") + << std::fixed << "...............etashift= " + << " iphi/ieta = " << std::setw(4) << newTopoId.first << " / " << std::setw(4) << newTopoId.second + << std::setw(2) << iside << " side = " << std::setw(4) << newId.mtdSide() << " RU = " << std::setw(4) + << newId.runit() << " mod = " << std::setw(4) << newId.module() + << " pos = " << fvecround(irod->basicComponents()[idetNew]->position(), 4); + LogVerbatim("MTDLayerDump") << std::fixed << "...............etashift= " + << " iphi/ieta = " << std::setw(4) << newTopoId.first << " / " << std::setw(4) + << newTopoId.second << std::setw(2) << iside << " side = " << std::setw(4) + << newId.mtdSide() << " RU = " << std::setw(4) << newId.runit() + << " mod = " << std::setw(4) << newId.module() + << " pos = " << fvecround(irod->basicComponents()[idetNew]->position(), 2); + } + } + } + } + } +} + +//define this as a plug-in +#include +DEFINE_FWK_MODULE(TestBTLNavigation); From da7e287ea018d6b27852aab63aea3e8efa9a91d9 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Fri, 6 Dec 2024 18:16:15 +0100 Subject: [PATCH 216/418] Change Vtx generators to allow HepMC3Product smearing --- .../interface/BaseEvtVtxGenerator.h | 8 +--- .../interface/BeamProfileVtxGenerator.h | 3 +- .../interface/BetafuncEvtVtxGenerator.h | 3 +- .../interface/FlatEvtVtxGenerator.h | 3 +- .../interface/GaussEvtVtxGenerator.h | 3 +- .../interface/HLLHCEvtVtxGenerator.h | 2 +- .../interface/PassThroughEvtVtxGenerator.h | 16 +------ .../src/BaseEvtVtxGenerator.cc | 26 +++++++---- .../src/BeamProfileVtxGenerator.cc | 45 +++++++++---------- .../src/BetafuncEvtVtxGenerator.cc | 5 +-- .../src/FlatEvtVtxGenerator.cc | 7 +-- .../src/GaussEvtVtxGenerator.cc | 5 +-- .../src/HLLHCEvtVtxGenerator.cc | 5 +-- .../src/PassThroughEvtVtxGenerator.cc | 42 +---------------- 14 files changed, 59 insertions(+), 114 deletions(-) diff --git a/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h index ae3a50fb31ac9..ccd5aac7b3eb2 100644 --- a/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h @@ -6,6 +6,7 @@ #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Utilities/interface/EDGetToken.h" +#include "Math/Vector4D.h" #include "TMatrixD.h" namespace HepMC { @@ -29,12 +30,7 @@ class BaseEvtVtxGenerator : public edm::stream::EDProducer<> { void produce(edm::Event&, const edm::EventSetup&) override; - virtual HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const = 0; - /** This method - and the comment - is a left-over from COBRA-OSCAR time : - * return the last generated event vertex. - * If no vertex has been generated yet, a NULL pointer is returned. */ - //virtual CLHEP::Hep3Vector* lastVertex() { return fVertex; } - //virtual HepMC::FourVector* lastVertex() { return fVertex; } + virtual ROOT::Math::XYZTVector vertexShift(CLHEP::HepRandomEngine*) const = 0; virtual TMatrixD const* GetInvLorentzBoost() const = 0; diff --git a/IOMC/EventVertexGenerators/interface/BeamProfileVtxGenerator.h b/IOMC/EventVertexGenerators/interface/BeamProfileVtxGenerator.h index d952a5c79b4ae..d770e9d5db816 100644 --- a/IOMC/EventVertexGenerators/interface/BeamProfileVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/BeamProfileVtxGenerator.h @@ -26,8 +26,7 @@ class BeamProfileVtxGenerator : public BaseEvtVtxGenerator { ~BeamProfileVtxGenerator() override; /// return a new event vertex - //virtual CLHEP::Hep3Vector * newVertex(); - HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override; + ROOT::Math::XYZTVector vertexShift(CLHEP::HepRandomEngine*) const override; TMatrixD const* GetInvLorentzBoost() const override { return nullptr; } diff --git a/IOMC/EventVertexGenerators/interface/BetafuncEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/BetafuncEvtVtxGenerator.h index 2e1703d760548..53141e548331a 100644 --- a/IOMC/EventVertexGenerators/interface/BetafuncEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/BetafuncEvtVtxGenerator.h @@ -43,8 +43,7 @@ class BetafuncEvtVtxGenerator : public BaseEvtVtxGenerator { void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override; /// return a new event vertex - //virtual CLHEP::Hep3Vector * newVertex(); - HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override; + ROOT::Math::XYZTVector vertexShift(CLHEP::HepRandomEngine*) const override; TMatrixD const* GetInvLorentzBoost() const override; diff --git a/IOMC/EventVertexGenerators/interface/FlatEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/FlatEvtVtxGenerator.h index 25a976a4e8b3f..9c58a4cae90e1 100644 --- a/IOMC/EventVertexGenerators/interface/FlatEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/FlatEvtVtxGenerator.h @@ -29,8 +29,7 @@ class FlatEvtVtxGenerator : public BaseEvtVtxGenerator { ~FlatEvtVtxGenerator() override; /// return a new event vertex - //virtual CLHEP::Hep3Vector* newVertex(); - HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override; + ROOT::Math::XYZTVector vertexShift(CLHEP::HepRandomEngine*) const override; const TMatrixD* GetInvLorentzBoost() const override { return nullptr; } diff --git a/IOMC/EventVertexGenerators/interface/GaussEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/GaussEvtVtxGenerator.h index b0a05ddb5b647..1f98a1f450eb7 100644 --- a/IOMC/EventVertexGenerators/interface/GaussEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/GaussEvtVtxGenerator.h @@ -32,8 +32,7 @@ class GaussEvtVtxGenerator : public BaseEvtVtxGenerator { void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override; /// return a new event vertex - //virtual CLHEP::Hep3Vector* newVertex(); - HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override; + ROOT::Math::XYZTVector vertexShift(CLHEP::HepRandomEngine*) const override; TMatrixD const* GetInvLorentzBoost() const override { return nullptr; } diff --git a/IOMC/EventVertexGenerators/interface/HLLHCEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/HLLHCEvtVtxGenerator.h index e966791a03a07..eacede70b5fe7 100644 --- a/IOMC/EventVertexGenerators/interface/HLLHCEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/HLLHCEvtVtxGenerator.h @@ -44,7 +44,7 @@ class HLLHCEvtVtxGenerator : public BaseEvtVtxGenerator { static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); /// return a new event vertex - HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override; + ROOT::Math::XYZTVector vertexShift(CLHEP::HepRandomEngine*) const override; TMatrixD const* GetInvLorentzBoost() const override { return nullptr; }; diff --git a/IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h index 956998b04c931..7df10a2a6a881 100644 --- a/IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h @@ -4,37 +4,25 @@ */ #include "IOMC/EventVertexGenerators/interface/BaseEvtVtxGenerator.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "FWCore/Utilities/interface/EDGetToken.h" #include "TMatrixD.h" -namespace HepMC { - class FourVector; -} - namespace CLHEP { class HepRandomEngine; } -namespace edm { - class HepMCProduct; -} - class PassThroughEvtVtxGenerator : public BaseEvtVtxGenerator { public: // ctor & dtor explicit PassThroughEvtVtxGenerator(const edm::ParameterSet&); ~PassThroughEvtVtxGenerator() override; - void produce(edm::Event&, const edm::EventSetup&) override; - - HepMC::FourVector newVertex(CLHEP::HepRandomEngine*) const override; + ROOT::Math::XYZTVector vertexShift(CLHEP::HepRandomEngine*) const override; TMatrixD const* GetInvLorentzBoost() const override { return nullptr; }; private: - edm::EDGetTokenT sourceToken; + }; #endif diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index f9e3d9a784150..1427699c9861d 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -1,4 +1,3 @@ - /* */ @@ -18,13 +17,8 @@ #include "DataFormats/Provenance/interface/Provenance.h" #include "FWCore/Utilities/interface/EDMException.h" -//#include "HepMC/GenEvent.h" -// #include "CLHEP/Vector/ThreeVector.h" -// #include "HepMC/SimpleVector.h" - using namespace edm; using namespace CLHEP; -//using namespace HepMC; BaseEvtVtxGenerator::BaseEvtVtxGenerator(const ParameterSet& pset) { Service rng; @@ -59,7 +53,8 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { std::unique_ptr HepMCEvt(new edm::HepMCProduct(genevt)); // generate new vertex & apply the shift // - HepMCEvt->applyVtxGen(newVertex(engine)); + ROOT::Math::XYZTVector VertexShift = vertexShift(engine); + HepMCEvt->applyVtxGen(HepMC::FourVector(VertexShift.x(), VertexShift.y(), VertexShift.z(), VertexShift.t())); HepMCEvt->boostToLab(GetInvLorentzBoost(), "vertex"); HepMCEvt->boostToLab(GetInvLorentzBoost(), "momentum"); @@ -76,7 +71,22 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { HepMC3::GenEvent* genevt3 = new HepMC3::GenEvent(); genevt3->read_data(*HepUnsmearedMCEvt3->GetEvent()); - HepMC3Product* productcopy3 = new HepMC3Product(genevt3); // For the moment do not really smear HepMC3 + HepMC3Product* productcopy3 = new HepMC3Product(genevt3); + ROOT::Math::XYZTVector VertexShift = vertexShift(engine); + productcopy3->applyVtxGen(HepMC3::FourVector(VertexShift.x(), VertexShift.y(), VertexShift.z(), VertexShift.t())); + + if(GetInvLorentzBoost() != nullptr) { + TMatrixD tmplorentz(*GetInvLorentzBoost()); + TMatrixD p4(4, 1); + p4(0, 0) = 1.; p4(1, 0) = 1.; p4(2, 0) = 1.; p4(3, 0) = 1.; // Check if the boost matrix is not trivial + TMatrixD p4lab(4, 1); + p4lab = tmplorentz * p4; + if (p4lab(0, 0) - p4(0, 0) != 0. || p4lab(1, 0) - p4(1, 0) != 0. || p4lab(2, 0) - p4(2, 0) != 0. || p4lab(3, 0) - p4(3, 0) != 0.) { // not trivial + productcopy3->boostToLab(GetInvLorentzBoost(), "vertex"); + productcopy3->boostToLab(GetInvLorentzBoost(), "momentum"); + } + } + std::unique_ptr HepMC3Evt(productcopy3); evt.put(std::move(HepMC3Evt)); } diff --git a/IOMC/EventVertexGenerators/src/BeamProfileVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BeamProfileVtxGenerator.cc index 453b96df669e6..30ab8a27c47bc 100644 --- a/IOMC/EventVertexGenerators/src/BeamProfileVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BeamProfileVtxGenerator.cc @@ -11,7 +11,6 @@ #include #include #include -#include "HepMC/SimpleVector.h" #include #include @@ -80,8 +79,7 @@ BeamProfileVtxGenerator::BeamProfileVtxGenerator(const edm::ParameterSet& p) : B BeamProfileVtxGenerator::~BeamProfileVtxGenerator() {} -//Hep3Vector * BeamProfileVtxGenerator::newVertex() { -HepMC::FourVector BeamProfileVtxGenerator::newVertex(CLHEP::HepRandomEngine* engine) const { +ROOT::Math::XYZTVector BeamProfileVtxGenerator::vertexShift(CLHEP::HepRandomEngine* engine) const { double aX, aY; if (ffile) { double r1 = engine->flat(); @@ -121,10 +119,11 @@ HepMC::FourVector BeamProfileVtxGenerator::newVertex(CLHEP::HepRandomEngine* eng /* static const double kRadToDeg ( 180./M_PI ) ; std::cout<<"theta = "< #include #include -#include "HepMC/SimpleVector.h" using CLHEP::cm; using CLHEP::ns; @@ -72,7 +71,7 @@ void BetafuncEvtVtxGenerator::update(const edm::EventSetup& iEventSetup) { } } -HepMC::FourVector BetafuncEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine* engine) const { +ROOT::Math::XYZTVector BetafuncEvtVtxGenerator::vertexShift(CLHEP::HepRandomEngine* engine) const { double X, Y, Z; double tmp_sigz = CLHEP::RandGaussQ::shoot(engine, 0., fSigmaZ); @@ -91,7 +90,7 @@ HepMC::FourVector BetafuncEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine* eng double tmp_sigt = CLHEP::RandGaussQ::shoot(engine, 0., fSigmaZ); double T = tmp_sigt + fTimeOffset; - return HepMC::FourVector(X, Y, Z, T); + return ROOT::Math::XYZTVector(X, Y, Z, T); } double BetafuncEvtVtxGenerator::BetaFunction(double z, double z0) const { diff --git a/IOMC/EventVertexGenerators/src/FlatEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/FlatEvtVtxGenerator.cc index d2996dd97ef34..bb7a6d2939a87 100644 --- a/IOMC/EventVertexGenerators/src/FlatEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/FlatEvtVtxGenerator.cc @@ -9,8 +9,6 @@ #include #include #include -//#include "CLHEP/Vector/ThreeVector.h" -#include "HepMC/SimpleVector.h" using CLHEP::cm; using CLHEP::ns; @@ -48,8 +46,7 @@ FlatEvtVtxGenerator::FlatEvtVtxGenerator(const edm::ParameterSet& p) : BaseEvtVt FlatEvtVtxGenerator::~FlatEvtVtxGenerator() {} -//Hep3Vector * FlatEvtVtxGenerator::newVertex() { -HepMC::FourVector FlatEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine* engine) const { +ROOT::Math::XYZTVector FlatEvtVtxGenerator::vertexShift(CLHEP::HepRandomEngine* engine) const { double aX, aY, aZ, aT; aX = CLHEP::RandFlat::shoot(engine, fMinX, fMaxX); aY = CLHEP::RandFlat::shoot(engine, fMinY, fMaxY); @@ -59,7 +56,7 @@ HepMC::FourVector FlatEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine* engine) edm::LogVerbatim("FlatEvtVtx") << "FlatEvtVtxGenerator Vertex at [" << aX << ", " << aY << ", " << aZ << ", " << aT << "]"; - return HepMC::FourVector(aX, aY, aZ, aT); + return ROOT::Math::XYZTVector(aX, aY, aZ, aT); } void FlatEvtVtxGenerator::minX(double min) { fMinX = min; } diff --git a/IOMC/EventVertexGenerators/src/GaussEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/GaussEvtVtxGenerator.cc index 14fc79b65a285..b81834942ebda 100644 --- a/IOMC/EventVertexGenerators/src/GaussEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/GaussEvtVtxGenerator.cc @@ -5,7 +5,6 @@ #include #include #include -#include "HepMC/SimpleVector.h" using CLHEP::cm; using CLHEP::ns; @@ -58,14 +57,14 @@ void GaussEvtVtxGenerator::update(const edm::EventSetup& iEventSetup) { } } -HepMC::FourVector GaussEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine* engine) const { +ROOT::Math::XYZTVector GaussEvtVtxGenerator::vertexShift(CLHEP::HepRandomEngine* engine) const { double X, Y, Z, T; X = CLHEP::RandGaussQ::shoot(engine, fMeanX, fSigmaX); Y = CLHEP::RandGaussQ::shoot(engine, fMeanY, fSigmaY); Z = CLHEP::RandGaussQ::shoot(engine, fMeanZ, fSigmaZ); T = CLHEP::RandGaussQ::shoot(engine, fTimeOffset, fSigmaZ); - return HepMC::FourVector(X, Y, Z, T); + return ROOT::Math::XYZTVector(X, Y, Z, T); } void GaussEvtVtxGenerator::sigmaX(double s) { diff --git a/IOMC/EventVertexGenerators/src/HLLHCEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/HLLHCEvtVtxGenerator.cc index f363f88732c68..796e48cf8a3d4 100644 --- a/IOMC/EventVertexGenerators/src/HLLHCEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/HLLHCEvtVtxGenerator.cc @@ -11,7 +11,6 @@ #include #include #include -#include "HepMC/SimpleVector.h" using namespace std; @@ -119,7 +118,7 @@ void HLLHCEvtVtxGenerator::update(const edm::EventSetup& iEventSetup) { } } -HepMC::FourVector HLLHCEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine* engine) const { +ROOT::Math::XYZTVector HLLHCEvtVtxGenerator::vertexShift(CLHEP::HepRandomEngine* engine) const { double imax = intensity(0., 0., 0., 0.); double x(0.), y(0.), z(0.), t(0.), i(0.); @@ -155,7 +154,7 @@ HepMC::FourVector HLLHCEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine* engine z += fMeanZ; t += fTimeOffset_c_light; - return HepMC::FourVector(x, y, z, t); + return ROOT::Math::XYZTVector(x, y, z, t); } double HLLHCEvtVtxGenerator::sigma(double z, double epsilon, double beta, double betagamma) const { diff --git a/IOMC/EventVertexGenerators/src/PassThroughEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/PassThroughEvtVtxGenerator.cc index 39ff10512fc2d..16ce3bc72251d 100644 --- a/IOMC/EventVertexGenerators/src/PassThroughEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/PassThroughEvtVtxGenerator.cc @@ -4,58 +4,20 @@ #include "IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h" -#include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - #include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Utilities/interface/RandomNumberGenerator.h" - #include "FWCore/Utilities/interface/Exception.h" -#include "DataFormats/Provenance/interface/Provenance.h" -#include "FWCore/Utilities/interface/EDMException.h" - -//#include "HepMC/GenEvent.h" -// #include "CLHEP/Vector/ThreeVector.h" -// #include "HepMC/SimpleVector.h" - using namespace edm; -using namespace CLHEP; -//using namespace HepMC; PassThroughEvtVtxGenerator::PassThroughEvtVtxGenerator(const ParameterSet& pset) : BaseEvtVtxGenerator(pset) { Service rng; - if (!rng.isAvailable()) { - throw cms::Exception("Configuration") - << "The PassThroughEvtVtxGenerator requires the RandomNumberGeneratorService\n" - "which is not present in the configuration file. \n" - "You must add the service\n" - "in the configuration file or remove the modules that require it."; - } - sourceToken = consumes(pset.getParameter("src")); } PassThroughEvtVtxGenerator::~PassThroughEvtVtxGenerator() {} -HepMC::FourVector PassThroughEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine*) const { - return HepMC::FourVector(0., 0., 0., 0); -} - -void PassThroughEvtVtxGenerator::produce(Event& evt, const EventSetup&) { - edm::Service rng; - - Handle HepUnsmearedMCEvt; - - evt.getByToken(sourceToken, HepUnsmearedMCEvt); - - // Copy the HepMC::GenEvent - HepMC::GenEvent* genevt = new HepMC::GenEvent(*HepUnsmearedMCEvt->GetEvent()); - std::unique_ptr HepMCEvt(new edm::HepMCProduct(genevt)); - - evt.put(std::move(HepMCEvt)); - - return; +ROOT::Math::XYZTVector PassThroughEvtVtxGenerator::vertexShift(CLHEP::HepRandomEngine*) const { + return ROOT::Math::XYZTVector(0., 0., 0., 0.); } From ee50e37d245ca125ffec54f9bc711f284ae01699 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Fri, 6 Dec 2024 18:45:48 +0100 Subject: [PATCH 217/418] code-check fix1 --- .../interface/PassThroughEvtVtxGenerator.h | 1 - IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc | 10 +++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h b/IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h index 7df10a2a6a881..e8925aba734a7 100644 --- a/IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h +++ b/IOMC/EventVertexGenerators/interface/PassThroughEvtVtxGenerator.h @@ -22,7 +22,6 @@ class PassThroughEvtVtxGenerator : public BaseEvtVtxGenerator { TMatrixD const* GetInvLorentzBoost() const override { return nullptr; }; private: - }; #endif diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index 1427699c9861d..559f83241a161 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -75,13 +75,17 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { ROOT::Math::XYZTVector VertexShift = vertexShift(engine); productcopy3->applyVtxGen(HepMC3::FourVector(VertexShift.x(), VertexShift.y(), VertexShift.z(), VertexShift.t())); - if(GetInvLorentzBoost() != nullptr) { + if (GetInvLorentzBoost() != nullptr) { TMatrixD tmplorentz(*GetInvLorentzBoost()); TMatrixD p4(4, 1); - p4(0, 0) = 1.; p4(1, 0) = 1.; p4(2, 0) = 1.; p4(3, 0) = 1.; // Check if the boost matrix is not trivial + p4(0, 0) = 1.; + p4(1, 0) = 1.; + p4(2, 0) = 1.; + p4(3, 0) = 1.; // Check if the boost matrix is not trivial TMatrixD p4lab(4, 1); p4lab = tmplorentz * p4; - if (p4lab(0, 0) - p4(0, 0) != 0. || p4lab(1, 0) - p4(1, 0) != 0. || p4lab(2, 0) - p4(2, 0) != 0. || p4lab(3, 0) - p4(3, 0) != 0.) { // not trivial + if (p4lab(0, 0) - p4(0, 0) != 0. || p4lab(1, 0) - p4(1, 0) != 0. || + p4lab(2, 0) - p4(2, 0) != 0. || p4lab(3, 0) - p4(3, 0) != 0.) { // not trivial productcopy3->boostToLab(GetInvLorentzBoost(), "vertex"); productcopy3->boostToLab(GetInvLorentzBoost(), "momentum"); } From e872742b2f9d05775c10fffb109d8c1fef6a4ae2 Mon Sep 17 00:00:00 2001 From: Mikhail Kirsanov Date: Fri, 6 Dec 2024 18:57:11 +0100 Subject: [PATCH 218/418] code-check fix1 --- IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc index 559f83241a161..0cd58f8ff1c1a 100644 --- a/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc +++ b/IOMC/EventVertexGenerators/src/BaseEvtVtxGenerator.cc @@ -81,11 +81,11 @@ void BaseEvtVtxGenerator::produce(Event& evt, const EventSetup&) { p4(0, 0) = 1.; p4(1, 0) = 1.; p4(2, 0) = 1.; - p4(3, 0) = 1.; // Check if the boost matrix is not trivial + p4(3, 0) = 1.; // Check if the boost matrix is not trivial TMatrixD p4lab(4, 1); p4lab = tmplorentz * p4; - if (p4lab(0, 0) - p4(0, 0) != 0. || p4lab(1, 0) - p4(1, 0) != 0. || - p4lab(2, 0) - p4(2, 0) != 0. || p4lab(3, 0) - p4(3, 0) != 0.) { // not trivial + if (p4lab(0, 0) - p4(0, 0) != 0. || p4lab(1, 0) - p4(1, 0) != 0. || p4lab(2, 0) - p4(2, 0) != 0. || + p4lab(3, 0) - p4(3, 0) != 0.) { // not trivial: productcopy3->boostToLab(GetInvLorentzBoost(), "vertex"); productcopy3->boostToLab(GetInvLorentzBoost(), "momentum"); } From a4a0d1685ad4716ef65a472445fd755ea42e7a3d Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 6 Dec 2024 22:02:11 +0100 Subject: [PATCH 219/418] annotate SequentialPrimaryVertexFitterAdapter::fit exception --- .../interface/SequentialPrimaryVertexFitterAdapter.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/RecoVertex/PrimaryVertexProducer/interface/SequentialPrimaryVertexFitterAdapter.h b/RecoVertex/PrimaryVertexProducer/interface/SequentialPrimaryVertexFitterAdapter.h index 3c75fbab20037..b512aa61cf492 100644 --- a/RecoVertex/PrimaryVertexProducer/interface/SequentialPrimaryVertexFitterAdapter.h +++ b/RecoVertex/PrimaryVertexProducer/interface/SequentialPrimaryVertexFitterAdapter.h @@ -7,6 +7,8 @@ */ +#include + #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "TrackingTools/TransientTrack/interface/TransientTrack.h" #include "RecoVertex/PrimaryVertexProducer/interface/PrimaryVertexFitterBase.h" @@ -27,7 +29,15 @@ class SequentialPrimaryVertexFitterAdapter : public PrimaryVertexFitterBase { const std::vector& tracklist = cluster.originalTracks(); TransientVertex v; if (useBeamConstraint && (tracklist.size() > 1)) { - v = fitter->vertex(tracklist, beamspot); + try { + v = fitter->vertex(tracklist, beamspot); + } catch (VertexException& ex) { + std::ostringstream beamspotInfo; + beamspotInfo << "While processing SequentialPrimaryVertexFitterAdapter::fit() with BeamSpot parameters: \n" + << beamspot; + ex.addContext(beamspotInfo.str()); + throw; // rethrow the exception + } } else if (!(useBeamConstraint) && (tracklist.size() > 1)) { v = fitter->vertex(tracklist); } // else: no fit ==> v.isValid()=False From a390d6b643460a04903e7acc49a4e997495c0c8b Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 6 Dec 2024 22:02:37 +0100 Subject: [PATCH 220/418] re-organize BeamSpotOnlineProducer to be more modular --- .../plugins/BeamSpotOnlineProducer.cc | 280 ++++++++++-------- 1 file changed, 150 insertions(+), 130 deletions(-) diff --git a/RecoVertex/BeamSpotProducer/plugins/BeamSpotOnlineProducer.cc b/RecoVertex/BeamSpotProducer/plugins/BeamSpotOnlineProducer.cc index 47c1daf735e41..79fe97af78acc 100644 --- a/RecoVertex/BeamSpotProducer/plugins/BeamSpotOnlineProducer.cc +++ b/RecoVertex/BeamSpotProducer/plugins/BeamSpotOnlineProducer.cc @@ -41,6 +41,16 @@ class BeamSpotOnlineProducer : public edm::stream::EDProducer<> { static void fillDescriptions(edm::ConfigurationDescriptions& iDesc); private: + // helper methods + bool shouldShout(const edm::Event& iEvent) const; + bool processTransientRecord(const edm::EventSetup& iSetup, reco::BeamSpot& result, bool shoutMODE); + void createBeamSpotFromTransient(const BeamSpotObjects& spotDB, reco::BeamSpot& result) const; + bool processScalers(const edm::Event& iEvent, reco::BeamSpot& result, bool shoutMODE); + void createBeamSpotFromScaler(const BeamSpotOnline& spotOnline, reco::BeamSpot& result) const; + bool isInvalidScaler(const BeamSpotOnline& spotOnline, bool shoutMODE) const; + void createBeamSpotFromDB(const edm::EventSetup& iSetup, reco::BeamSpot& result, bool shoutMODE) const; + + // data members const bool changeFrame_; const double theMaxZ, theSetSigmaZ; double theMaxR2; @@ -88,151 +98,161 @@ void BeamSpotOnlineProducer::fillDescriptions(edm::ConfigurationDescriptions& iD iDesc.addWithDefaultLabel(ps); } -void BeamSpotOnlineProducer::produce(Event& iEvent, const EventSetup& iSetup) { - // product is a reco::BeamSpot object +void BeamSpotOnlineProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { auto result = std::make_unique(); - reco::BeamSpot aSpot; - //shout MODE only in stable beam - bool shoutMODE = false; + + // Determine if we should "shout" based on the beam mode + bool shoutMODE = shouldShout(iEvent); + bool fallBackToDB{false}; + + // Use transient record if enabled + if (useTransientRecord_) { + fallBackToDB = processTransientRecord(iSetup, *result, shoutMODE); + } else { + // Process online beam spot scalers + fallBackToDB = processScalers(iEvent, *result, shoutMODE); + } + + // Fallback to DB if necessary + if (fallBackToDB) { + createBeamSpotFromDB(iSetup, *result, shoutMODE); + } + + iEvent.put(std::move(result)); +} + +bool BeamSpotOnlineProducer::shouldShout(const edm::Event& iEvent) const { edm::Handle gtEvmReadoutRecord; if (iEvent.getByToken(l1GtEvmReadoutRecordToken_, gtEvmReadoutRecord)) { - if (gtEvmReadoutRecord->gtfeWord().beamMode() == theBeamShoutMode) - shoutMODE = true; - } else { - shoutMODE = true; + return gtEvmReadoutRecord->gtfeWord().beamMode() == theBeamShoutMode; } - bool fallBackToDB = false; - if (useTransientRecord_) { - auto const& spotDB = iSetup.getData(beamTransientToken_); - if (spotDB.beamType() != 2) { - if (shoutMODE && beamTransientRcdESWatcher_.check(iSetup)) { - edm::LogWarning("BeamSpotOnlineProducer") - << "Online Beam Spot producer falls back to DB value because the ESProducer returned a fake beamspot "; - } - fallBackToDB = true; - } else { - // translate from BeamSpotObjects to reco::BeamSpot - // in case we need to switch to LHC reference frame - // ignore for the moment rotations, and translations - double f = 1.; - if (changeFrame_) - f = -1.; - reco::BeamSpot::Point apoint(f * spotDB.x(), f * spotDB.y(), f * spotDB.z()); - - reco::BeamSpot::CovarianceMatrix matrix; - for (int i = 0; i < reco::BeamSpot::dimension; ++i) { - for (int j = 0; j < reco::BeamSpot::dimension; ++j) { - matrix(i, j) = spotDB.covariance(i, j); - } - } - double sigmaZ = spotDB.sigmaZ(); - if (theSetSigmaZ > 0) - sigmaZ = theSetSigmaZ; - - // this assume beam width same in x and y - aSpot = reco::BeamSpot(apoint, sigmaZ, spotDB.dxdz(), spotDB.dydz(), spotDB.beamWidthX(), matrix); - aSpot.setBeamWidthY(spotDB.beamWidthY()); - aSpot.setEmittanceX(spotDB.emittanceX()); - aSpot.setEmittanceY(spotDB.emittanceY()); - aSpot.setbetaStar(spotDB.betaStar()); - aSpot.setType(reco::BeamSpot::Tracker); + return true; // Default to "shout" if the record is missing +} + +bool BeamSpotOnlineProducer::processTransientRecord(const edm::EventSetup& iSetup, + reco::BeamSpot& result, + bool shoutMODE) { + auto const& spotDB = iSetup.getData(beamTransientToken_); + + if (spotDB.beamType() != 2) { + if (shoutMODE && beamTransientRcdESWatcher_.check(iSetup)) { + edm::LogWarning("BeamSpotOnlineProducer") + << "Online Beam Spot producer falls back to DB value due to fake beamspot in transient record."; } - } else { - // get scalar collection - Handle handleScaler; - iEvent.getByToken(scalerToken_, handleScaler); - - // beam spot scalar object - BeamSpotOnline spotOnline; - - // product is a reco::BeamSpot object - auto result = std::make_unique(); - - if (!handleScaler->empty()) { - // get one element - spotOnline = *(handleScaler->begin()); - - // in case we need to switch to LHC reference frame - // ignore for the moment rotations, and translations - double f = 1.; - if (changeFrame_) - f = -1.; - - reco::BeamSpot::Point apoint(f * spotOnline.x(), spotOnline.y(), f * spotOnline.z()); - - reco::BeamSpot::CovarianceMatrix matrix; - matrix(0, 0) = spotOnline.err_x() * spotOnline.err_x(); - matrix(1, 1) = spotOnline.err_y() * spotOnline.err_y(); - matrix(2, 2) = spotOnline.err_z() * spotOnline.err_z(); - matrix(3, 3) = spotOnline.err_sigma_z() * spotOnline.err_sigma_z(); - - double sigmaZ = spotOnline.sigma_z(); - if (theSetSigmaZ > 0) - sigmaZ = theSetSigmaZ; - - aSpot = reco::BeamSpot(apoint, sigmaZ, spotOnline.dxdz(), f * spotOnline.dydz(), spotOnline.width_x(), matrix); - - aSpot.setBeamWidthY(spotOnline.width_y()); - aSpot.setEmittanceX(0.); - aSpot.setEmittanceY(0.); - aSpot.setbetaStar(0.); - aSpot.setType(reco::BeamSpot::LHC); // flag value from scalars - - // check if we have a valid beam spot fit result from online DQM - if (spotOnline.x() == 0 && spotOnline.y() == 0 && spotOnline.z() == 0 && spotOnline.width_x() == 0 && - spotOnline.width_y() == 0) { - if (shoutMODE) { - edm::LogWarning("BeamSpotOnlineProducer") - << "Online Beam Spot producer falls back to DB value because the scaler values are zero "; - } - fallBackToDB = true; - } - double r2 = spotOnline.x() * spotOnline.x() + spotOnline.y() * spotOnline.y(); - if (std::abs(spotOnline.z()) >= theMaxZ || r2 >= theMaxR2) { - if (shoutMODE) { - edm::LogError("BeamSpotOnlineProducer") - << "Online Beam Spot producer falls back to DB value because the scaler values are too big to be true :" - << spotOnline.x() << " " << spotOnline.y() << " " << spotOnline.z(); - } - fallBackToDB = true; - } - } else { - //empty online beamspot collection: FED data was empty - //the error should probably have been send at unpacker level - fallBackToDB = true; + return true; // Trigger fallback to DB + } + + // Create BeamSpot from transient record + createBeamSpotFromTransient(spotDB, result); + return false; // No fallback needed +} + +void BeamSpotOnlineProducer::createBeamSpotFromTransient(const BeamSpotObjects& spotDB, reco::BeamSpot& result) const { + double f = changeFrame_ ? -1.0 : 1.0; + reco::BeamSpot::Point apoint(f * spotDB.x(), f * spotDB.y(), f * spotDB.z()); + + reco::BeamSpot::CovarianceMatrix matrix; + for (int i = 0; i < reco::BeamSpot::dimension; ++i) { + for (int j = 0; j < reco::BeamSpot::dimension; ++j) { + matrix(i, j) = spotDB.covariance(i, j); } } - if (fallBackToDB) { - edm::ESHandle beamhandle = iSetup.getHandle(beamToken_); - const BeamSpotObjects* spotDB = beamhandle.product(); - // translate from BeamSpotObjects to reco::BeamSpot - reco::BeamSpot::Point apoint(spotDB->x(), spotDB->y(), spotDB->z()); + double sigmaZ = (theSetSigmaZ > 0) ? theSetSigmaZ : spotDB.sigmaZ(); + result = reco::BeamSpot(apoint, sigmaZ, spotDB.dxdz(), spotDB.dydz(), spotDB.beamWidthX(), matrix); + result.setBeamWidthY(spotDB.beamWidthY()); + result.setEmittanceX(spotDB.emittanceX()); + result.setEmittanceY(spotDB.emittanceY()); + result.setbetaStar(spotDB.betaStar()); + result.setType(reco::BeamSpot::Tracker); +} + +bool BeamSpotOnlineProducer::processScalers(const edm::Event& iEvent, reco::BeamSpot& result, bool shoutMODE) { + edm::Handle handleScaler; + iEvent.getByToken(scalerToken_, handleScaler); + + if (handleScaler->empty()) { + return true; // Fallback to DB if scaler collection is empty + } - reco::BeamSpot::CovarianceMatrix matrix; - for (int i = 0; i < reco::BeamSpot::dimension; ++i) { - for (int j = 0; j < reco::BeamSpot::dimension; ++j) { - matrix(i, j) = spotDB->covariance(i, j); - } + // Extract data from scaler + BeamSpotOnline spotOnline = *(handleScaler->begin()); + createBeamSpotFromScaler(spotOnline, result); + + // Validate the scaler data + if (isInvalidScaler(spotOnline, shoutMODE)) { + return true; // Trigger fallback to DB + } + return false; // No fallback needed +} + +void BeamSpotOnlineProducer::createBeamSpotFromScaler(const BeamSpotOnline& spotOnline, reco::BeamSpot& result) const { + double f = changeFrame_ ? -1.0 : 1.0; + reco::BeamSpot::Point apoint(f * spotOnline.x(), spotOnline.y(), f * spotOnline.z()); + + reco::BeamSpot::CovarianceMatrix matrix; + matrix(0, 0) = spotOnline.err_x() * spotOnline.err_x(); + matrix(1, 1) = spotOnline.err_y() * spotOnline.err_y(); + matrix(2, 2) = spotOnline.err_z() * spotOnline.err_z(); + matrix(3, 3) = spotOnline.err_sigma_z() * spotOnline.err_sigma_z(); + + double sigmaZ = (theSetSigmaZ > 0) ? theSetSigmaZ : spotOnline.sigma_z(); + result = reco::BeamSpot(apoint, sigmaZ, spotOnline.dxdz(), f * spotOnline.dydz(), spotOnline.width_x(), matrix); + result.setBeamWidthY(spotOnline.width_y()); + result.setEmittanceX(0.0); + result.setEmittanceY(0.0); + result.setbetaStar(0.0); + result.setType(reco::BeamSpot::LHC); +} + +bool BeamSpotOnlineProducer::isInvalidScaler(const BeamSpotOnline& spotOnline, bool shoutMODE) const { + if (spotOnline.x() == 0 && spotOnline.y() == 0 && spotOnline.z() == 0 && spotOnline.width_x() == 0 && + spotOnline.width_y() == 0) { + if (shoutMODE) { + edm::LogWarning("BeamSpotOnlineProducer") + << "Online Beam Spot producer falls back to DB due to zero scaler values."; } + return true; + } - // this assume beam width same in x and y - aSpot = reco::BeamSpot(apoint, spotDB->sigmaZ(), spotDB->dxdz(), spotDB->dydz(), spotDB->beamWidthX(), matrix); - aSpot.setBeamWidthY(spotDB->beamWidthY()); - aSpot.setEmittanceX(spotDB->emittanceX()); - aSpot.setEmittanceY(spotDB->emittanceY()); - aSpot.setbetaStar(spotDB->betaStar()); - aSpot.setType(reco::BeamSpot::Tracker); - - GlobalError bse(aSpot.rotatedCovariance3D()); - if ((bse.cxx() <= 0.) || (bse.cyy() <= 0.) || (bse.czz() <= 0.)) { - edm::LogError("UnusableBeamSpot") << "Beamspot from fallback to DB with invalid errors: " << aSpot.covariance(); + double r2 = spotOnline.x() * spotOnline.x() + spotOnline.y() * spotOnline.y(); + if (std::abs(spotOnline.z()) >= theMaxZ || r2 >= theMaxR2) { + if (shoutMODE) { + edm::LogError("BeamSpotOnlineProducer") + << "Online Beam Spot producer falls back to DB due to out-of-range scaler values: " << spotOnline.x() << ", " + << spotOnline.y() << ", " << spotOnline.z(); } + return true; } + return false; +} - *result = aSpot; +void BeamSpotOnlineProducer::createBeamSpotFromDB(const edm::EventSetup& iSetup, + reco::BeamSpot& result, + bool shoutMODE) const { + edm::ESHandle beamhandle = iSetup.getHandle(beamToken_); + const BeamSpotObjects* spotDB = beamhandle.product(); - iEvent.put(std::move(result)); + reco::BeamSpot::Point apoint(spotDB->x(), spotDB->y(), spotDB->z()); + + reco::BeamSpot::CovarianceMatrix matrix; + for (int i = 0; i < reco::BeamSpot::dimension; ++i) { + for (int j = 0; j < reco::BeamSpot::dimension; ++j) { + matrix(i, j) = spotDB->covariance(i, j); + } + } + + result = reco::BeamSpot(apoint, spotDB->sigmaZ(), spotDB->dxdz(), spotDB->dydz(), spotDB->beamWidthX(), matrix); + result.setBeamWidthY(spotDB->beamWidthY()); + result.setEmittanceX(spotDB->emittanceX()); + result.setEmittanceY(spotDB->emittanceY()); + result.setbetaStar(spotDB->betaStar()); + result.setType(reco::BeamSpot::Tracker); + + GlobalError bse(result.rotatedCovariance3D()); + if ((bse.cxx() <= 0.0) || (bse.cyy() <= 0.0) || (bse.czz() <= 0.0)) { + edm::LogError("UnusableBeamSpot") << "Beamspot from DB fallback has invalid errors: " << result.covariance(); + } } #include "FWCore/Framework/interface/MakerMacros.h" From a4b939dfd415f72ca075f5beae1b5b6da907e006 Mon Sep 17 00:00:00 2001 From: mmusich Date: Sat, 7 Dec 2024 11:32:29 +0100 Subject: [PATCH 221/418] fix replacing of split clusters in DQM online clients after #46694 --- .../python/clients/pixel_dqm_sourceclient-live_cfg.py | 3 ++- .../clients/sistrip_approx_dqm_sourceclient-live_cfg.py | 3 ++- .../python/clients/sistrip_dqm_sourceclient-live_cfg.py | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py index aee5a5157257c..c8539b1d8088e 100644 --- a/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py @@ -222,7 +222,8 @@ process.InitialStepPreSplittingTask.remove(process.siPixelClusterShapeCache) # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff - process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi") + from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters + process.siPixelClusters = _siPixelClusters.clone() from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import * process.PixelLayerTriplets.BPix.HitProducer = cms.string('siPixelRecHitsPreSplitting') diff --git a/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py index 4a462e5c2602d..a9e26c4d01f2b 100644 --- a/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py @@ -215,7 +215,8 @@ process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent) # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff - process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi") + from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters + process.siPixelClusters = _siPixelClusters.clone() # Select events based on the pixel cluster multiplicity import HLTrigger.special.hltPixelActivityFilter_cfi diff --git a/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py index 108e0d61e9db5..7c30ed948aac7 100644 --- a/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py @@ -388,7 +388,8 @@ process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent) # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff - process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi") + from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters + process.siPixelClusters = _siPixelClusters.clone() from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import * process.PixelLayerTriplets.BPix.HitProducer = cms.string('siPixelRecHitsPreSplitting') @@ -623,7 +624,8 @@ process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent) # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff - process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi") + from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters + process.siPixelClusters = _siPixelClusters.clone() # Select events based on the pixel cluster multiplicity import HLTrigger.special.hltPixelActivityFilter_cfi From 387021ecc5f8f11faaed8451acd292b5130b9209 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Sat, 7 Dec 2024 18:39:16 +0100 Subject: [PATCH 222/418] Move BTL phi order from 0 to 2pi to -pi to +pi --- .../plugins/CmsMTDConstruction.cc | 10 ++++------ .../plugins/CmsMTDConstruction.h | 13 +++++++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc index 12c61a3f9e09a..2d575f9fa4f6e 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc @@ -9,8 +9,6 @@ #include "DataFormats/ForwardDetId/interface/ETLDetId.h" #include "Geometry/MTDCommonData/interface/MTDBaseNumber.h" -#include "DataFormats/Math/interface/deltaPhi.h" - using angle_units::operators::convertRadToDeg; template @@ -39,14 +37,14 @@ bool CmsMTDConstruction::mtdOrderPhi(const GeometricTimingDet* a, template bool CmsMTDConstruction::btlOrderPhi(const GeometricTimingDet* a, const GeometricTimingDet* b) { - return static_cast(convertRadToDeg(angle0to2pi::make0To2pi(a->phi()))) < - static_cast(convertRadToDeg(angle0to2pi::make0To2pi(b->phi()))); + return static_cast(convertRadToDeg(makempiToppi(a->phi()))) < + static_cast(convertRadToDeg(makempiToppi(b->phi()))); } template bool CmsMTDConstruction::btlOrderZ(const GeometricTimingDet* a, const GeometricTimingDet* b) { - bool order = (static_cast(convertRadToDeg(angle0to2pi::make0To2pi(a->phi()))) == - static_cast(convertRadToDeg(angle0to2pi::make0To2pi(b->phi())))) && + bool order = (static_cast(convertRadToDeg(makempiToppi(a->phi()))) == + static_cast(convertRadToDeg(makempiToppi(b->phi())))) && (a->translation().z() < b->translation().z()); return order; } diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h index c1bb036a21d85..bdf80f618bce4 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h @@ -7,6 +7,19 @@ #include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" #include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h" +#include "DataFormats/Math/interface/deltaPhi.h" + +namespace { + + template + inline constexpr valType makempiToppi(valType angle) { + constexpr valType twoPi = 2. * M_PI; + constexpr valType epsilon = 1.e-13; + auto tmpphi = angle0to2pi::make0To2pi(angle); + return (tmpphi - M_PI > epsilon) ? tmpphi - twoPi : tmpphi; + } +} // namespace + /** * Adds GeometricTimingDets representing final modules to the previous level */ From 2368db5ad4cb29427c86130b6485320b5ad3a5a7 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Sun, 8 Dec 2024 15:55:31 +0100 Subject: [PATCH 223/418] Fix IOPool/Input test for modified DataFormats/Common Fix the TestIOPoolInputNoParentDictionary test to build correctly even if DataFormats/Common was modified in the local release area. --- IOPool/Input/test/testNoParentDictionary.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/IOPool/Input/test/testNoParentDictionary.sh b/IOPool/Input/test/testNoParentDictionary.sh index d512b5aa52cc7..70afd3c52eb5b 100755 --- a/IOPool/Input/test/testNoParentDictionary.sh +++ b/IOPool/Input/test/testNoParentDictionary.sh @@ -11,11 +11,16 @@ cd $SCRAM_TEST_NAME NEW_CMSSW_BASE=$(/bin/pwd -P)/$CMSSW_VERSION scram -a $SCRAM_ARCH project $CMSSW_VERSION pushd $CMSSW_VERSION/src +mkdir DataFormats + +# Copy DataFormats/Common if it was modified locally +if [ -d ${CMSSW_BASE}/src/DataFormats/Common ]; then + cp -Lr ${CMSSW_BASE}/src/DataFormats/Common DataFormats/ +fi # Copy DataFormats/TestObjects code to be able to edit it to make ROOT header parsing to fail for DIR in ${CMSSW_BASE} ${CMSSW_RELEASE_BASE} ${CMSSW_FULL_RELEASE_BASE} ; do if [ -d ${DIR}/src/DataFormats/TestObjects ]; then - mkdir DataFormats cp -Lr ${DIR}/src/DataFormats/TestObjects DataFormats/ break fi From 0c38ae57b537b4d80a500917c3719211fbaecafe Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Sun, 8 Dec 2024 15:57:44 +0100 Subject: [PATCH 224/418] Rename IOPool/Input test for consistency Rename run_TestRefProductIDMetadataConsistencyRoot.sh to testRefProductIDMetadataConsistencyRoot.sh to match the other tests. --- IOPool/Input/test/BuildFile.xml | 3 +-- ...tencyRoot.sh => testRefProductIDMetadataConsistencyRoot.sh} | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) rename IOPool/Input/test/{run_TestRefProductIDMetadataConsistencyRoot.sh => testRefProductIDMetadataConsistencyRoot.sh} (99%) diff --git a/IOPool/Input/test/BuildFile.xml b/IOPool/Input/test/BuildFile.xml index 609b2ad691586..16f8aea45fcab 100644 --- a/IOPool/Input/test/BuildFile.xml +++ b/IOPool/Input/test/BuildFile.xml @@ -25,7 +25,6 @@ - - + diff --git a/IOPool/Input/test/run_TestRefProductIDMetadataConsistencyRoot.sh b/IOPool/Input/test/testRefProductIDMetadataConsistencyRoot.sh similarity index 99% rename from IOPool/Input/test/run_TestRefProductIDMetadataConsistencyRoot.sh rename to IOPool/Input/test/testRefProductIDMetadataConsistencyRoot.sh index bf678e5568088..230a854dc9c0c 100755 --- a/IOPool/Input/test/run_TestRefProductIDMetadataConsistencyRoot.sh +++ b/IOPool/Input/test/testRefProductIDMetadataConsistencyRoot.sh @@ -9,6 +9,5 @@ function runSuccess { runSuccess ${SCRAM_TEST_PATH}/testRefProductIDMetadataConsistencyRoot_cfg.py runSuccess ${SCRAM_TEST_PATH}/testRefProductIDMetadataConsistencyRoot_cfg.py --enableOther - runSuccess ${SCRAM_TEST_PATH}/testRefProductIDMetadataConsistencyRootMerge_cfg.py runSuccess ${SCRAM_TEST_PATH}/testRefProductIDMetadataConsistencyRootTest_cfg.py From e2744713a64af90f599a1d3478dc30e442a663d1 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Thu, 5 Dec 2024 09:56:06 +0100 Subject: [PATCH 225/418] Let edm::Wrapper use the constructor T{kUninitialized} Let edm::Wrapper use a special constructor T{kUninitialized} instead of the default constructor T{}, if the latter does not exist. Extend the edm::Wrapper unit tests to cover this case. --- DataFormats/Common/interface/Uninitialized.h | 19 +++++++++++++++++++ DataFormats/Common/interface/Wrapper.h | 17 +++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 DataFormats/Common/interface/Uninitialized.h diff --git a/DataFormats/Common/interface/Uninitialized.h b/DataFormats/Common/interface/Uninitialized.h new file mode 100644 index 0000000000000..298229d56c0a8 --- /dev/null +++ b/DataFormats/Common/interface/Uninitialized.h @@ -0,0 +1,19 @@ +#ifndef DataFormats_Common_interface_Uninitialized_h +#define DataFormats_Common_interface_Uninitialized_h + +/* Uninitialized + * + * This is an empty struct used as a tag to signal that a constructor will leave an object (partially) uninitialised, + * with the assumption that it will be overwritten before being used. + * One expected use case is to replace the default constructor used when deserialising objects from a ROOT file. + */ + +namespace edm { + + struct Uninitialized {}; + + constexpr inline Uninitialized kUninitialized; + +} // namespace edm + +#endif // DataFormats_Common_interface_Uninitialized_h diff --git a/DataFormats/Common/interface/Wrapper.h b/DataFormats/Common/interface/Wrapper.h index 97d193779dcf9..8dc9cb09995ae 100644 --- a/DataFormats/Common/interface/Wrapper.h +++ b/DataFormats/Common/interface/Wrapper.h @@ -7,9 +7,10 @@ Wrapper: A template wrapper around EDProducts to hold the product ID. ----------------------------------------------------------------------*/ +#include "DataFormats/Common/interface/Uninitialized.h" +#include "DataFormats/Common/interface/CMS_CLASS_VERSION.h" #include "DataFormats/Common/interface/WrapperBase.h" #include "DataFormats/Common/interface/WrapperDetail.h" -#include "DataFormats/Common/interface/CMS_CLASS_VERSION.h" #include "DataFormats/Provenance/interface/ProductID.h" #include "FWCore/Utilities/interface/Visibility.h" @@ -25,7 +26,7 @@ namespace edm { public: typedef T value_type; typedef T wrapped_type; // used with the dictionary to identify Wrappers - Wrapper() : WrapperBase(), obj(), present(false) {} + Wrapper() : WrapperBase(), obj{construct_()}, present(false) {} explicit Wrapper(std::unique_ptr ptr); Wrapper(Wrapper const& rh) = delete; // disallow copy construction Wrapper& operator=(Wrapper const&) = delete; // disallow assignment @@ -49,6 +50,14 @@ namespace edm { CMS_CLASS_VERSION(4) private: + constexpr T construct_() { + if constexpr (requires { T(); }) { + return T(); + } else { + return T(edm::kUninitialized); + } + } + bool isPresent_() const override { return present; } std::type_info const& dynamicTypeInfo_() const override { return typeid(T); } std::type_info const& wrappedTypeInfo_() const override { return typeid(Wrapper); } @@ -78,7 +87,7 @@ namespace edm { }; template - Wrapper::Wrapper(std::unique_ptr ptr) : WrapperBase(), obj(), present(ptr.get() != nullptr) { + Wrapper::Wrapper(std::unique_ptr ptr) : WrapperBase(), obj{construct_()}, present(ptr.get() != nullptr) { if (present) { obj = std::move(*ptr); } @@ -89,7 +98,7 @@ namespace edm { Wrapper::Wrapper(Emplace, Args&&... args) : WrapperBase(), obj(std::forward(args)...), present(true) {} template - Wrapper::Wrapper(T* ptr) : WrapperBase(), present(ptr != 0), obj() { + Wrapper::Wrapper(T* ptr) : WrapperBase(), present(ptr != 0), obj{construct_()} { std::unique_ptr temp(ptr); if (present) { obj = std::move(*ptr); From ffcde7a2243a355c051876416067ce7725589d3f Mon Sep 17 00:00:00 2001 From: Ivan Razumov Date: Mon, 9 Dec 2024 11:17:42 +0100 Subject: [PATCH 226/418] SeedToTrackProducer: return early if L2 seed collection is not found --- SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc b/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc index fb824635d83b0..8044b6f0040f2 100644 --- a/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc +++ b/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc @@ -65,8 +65,10 @@ void SeedToTrackProducerBase::produce(edm::StreamID, const std::vector *L2seeds = nullptr; if (L2seedsCollection.isValid()) L2seeds = L2seedsCollection.product(); - else + else { edm::LogError("SeedToTrackProducerBase") << "L2 seeds collection not found !! " << endl; + return; + } edm::Handle> seedHandle; iEvent.getByToken(L2seedsTagS_, seedHandle); From 94872c84972d49cb3879a44ff7ece29647c90307 Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 9 Dec 2024 19:08:57 +0100 Subject: [PATCH 227/418] fix clang linking issue --- .../MCTruth/plugins/Phase2SeedToTrackProducer.h | 17 ----------------- SimMuon/MCTruth/plugins/SealModule.cc | 4 ---- SimMuon/MCTruth/plugins/SeedToTrackProducer.h | 17 ----------------- .../MCTruth/plugins/SeedToTrackProducerBase.cc | 14 ++++++++++---- 4 files changed, 10 insertions(+), 42 deletions(-) delete mode 100644 SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h delete mode 100644 SimMuon/MCTruth/plugins/SeedToTrackProducer.h diff --git a/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h b/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h deleted file mode 100644 index 12fe7141af582..0000000000000 --- a/SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SimMuon_MCTruth_Phase2SeedToTrackProducer_h -#define SimMuon_MCTruth_Phase2SeedToTrackProducer_h - -/** \class SeedToTrackProducer - * - * SeedToTrackProducerBase class specialized for Phase 2 - * Muon seeds - * - * \author Luca Ferragina (INFN BO), 2024 - */ - -#include "SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h" -#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" - -typedef SeedToTrackProducerBase Phase2SeedToTrackProducer; - -#endif diff --git a/SimMuon/MCTruth/plugins/SealModule.cc b/SimMuon/MCTruth/plugins/SealModule.cc index b2988b656c8c3..cf557981fe9d6 100644 --- a/SimMuon/MCTruth/plugins/SealModule.cc +++ b/SimMuon/MCTruth/plugins/SealModule.cc @@ -2,10 +2,6 @@ #include "FWCore/PluginManager/interface/ModuleDef.h" #include "SimMuon/MCTruth/interface/CSCTruthTest.h" #include "SimMuon/MCTruth/plugins/MuonAssociatorEDProducer.h" -#include "SimMuon/MCTruth/plugins/SeedToTrackProducer.h" -#include "SimMuon/MCTruth/plugins/Phase2SeedToTrackProducer.h" DEFINE_FWK_MODULE(MuonAssociatorEDProducer); DEFINE_FWK_MODULE(CSCTruthTest); -DEFINE_FWK_MODULE(SeedToTrackProducer); -DEFINE_FWK_MODULE(Phase2SeedToTrackProducer); diff --git a/SimMuon/MCTruth/plugins/SeedToTrackProducer.h b/SimMuon/MCTruth/plugins/SeedToTrackProducer.h deleted file mode 100644 index c70eb1f14e8f6..0000000000000 --- a/SimMuon/MCTruth/plugins/SeedToTrackProducer.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SimMuon_MCTruth_SeedToTrackProducer_h -#define SimMuon_MCTruth_SeedToTrackProducer_h - -/** \class SeedToTrackProducer - * - * SeedToTrackProducerBase class specialized for Phase 1 - * Muon seeds - * - * \author Luca Ferragina (INFN BO), 2024 - */ - -#include "SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h" -#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" - -typedef SeedToTrackProducerBase SeedToTrackProducer; - -#endif diff --git a/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc b/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc index fb824635d83b0..f0096a01b81a6 100644 --- a/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc +++ b/SimMuon/MCTruth/plugins/SeedToTrackProducerBase.cc @@ -6,15 +6,12 @@ */ #include "SimMuon/MCTruth/plugins/SeedToTrackProducerBase.h" - #include "DataFormats/TrackerCommon/interface/TrackerTopology.h" #include "Geometry/Records/interface/TrackerTopologyRcd.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" #include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h" - -template class SeedToTrackProducerBase>; -template class SeedToTrackProducerBase>; +#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" // // constructors and destructor @@ -152,3 +149,12 @@ TrajectoryStateOnSurface SeedToTrackProducerBase::seedTransientS trajectoryStateTransform::transientState(tmpTSOD, &(tmpGeomDet->surface()), &mgField); return tmpTSOS; } + +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" + +typedef SeedToTrackProducerBase SeedToTrackProducer; +typedef SeedToTrackProducerBase Phase2SeedToTrackProducer; + +DEFINE_FWK_MODULE(SeedToTrackProducer); +DEFINE_FWK_MODULE(Phase2SeedToTrackProducer); From 126bf82c3a51652245e3b1d7ca63357c7932d7ec Mon Sep 17 00:00:00 2001 From: "W. David Dagenhart" Date: Thu, 5 Dec 2024 00:01:03 +0100 Subject: [PATCH 228/418] SubProcess bug fix, updateLookup called too early --- FWCore/Framework/interface/EventSetupProvider.h | 2 ++ FWCore/Framework/interface/EventSetupRecordProvider.h | 4 ++++ FWCore/Framework/src/ESProducer.cc | 6 +++--- FWCore/Framework/src/EventSetupProvider.cc | 11 +++++++---- FWCore/Framework/src/EventSetupRecordProvider.cc | 6 ++++++ FWCore/Framework/src/EventSetupsController.cc | 8 ++++++++ 6 files changed, 30 insertions(+), 7 deletions(-) diff --git a/FWCore/Framework/interface/EventSetupProvider.h b/FWCore/Framework/interface/EventSetupProvider.h index 96673e672500d..a1960604921cf 100644 --- a/FWCore/Framework/interface/EventSetupProvider.h +++ b/FWCore/Framework/interface/EventSetupProvider.h @@ -96,6 +96,8 @@ namespace edm { std::map>& referencedESProducers, EventSetupsController& esController); + void updateLookup(); + bool doRecordsMatch(EventSetupProvider& precedingESProvider, EventSetupRecordKey const& eventSetupRecordKey, std::map& allComponentsMatch, diff --git a/FWCore/Framework/interface/EventSetupRecordProvider.h b/FWCore/Framework/interface/EventSetupRecordProvider.h index a1891dede5f6f..7c426715fa701 100644 --- a/FWCore/Framework/interface/EventSetupRecordProvider.h +++ b/FWCore/Framework/interface/EventSetupRecordProvider.h @@ -23,6 +23,7 @@ #include "FWCore/Framework/interface/EventSetupRecordImpl.h" #include "FWCore/Framework/interface/ValidityInterval.h" #include "FWCore/Utilities/interface/get_underlying_safe.h" +#include "FWCore/Utilities/interface/propagate_const.h" // system include files #include @@ -40,6 +41,7 @@ namespace edm { struct ComponentDescription; class DataKey; class ESProductResolverProvider; + class ESRecordsToProductResolverIndices; class EventSetupProvider; class EventSetupRecordImpl; class ParameterSetIDHolder; @@ -157,6 +159,8 @@ namespace edm { IntervalStatus intervalStatus() const { return intervalStatus_; } + void updateLookup(ESRecordsToProductResolverIndices const&); + protected: void addResolversToRecordHelper(edm::propagate_const>& dpp, DataToPreferredProviderMap const& mp) { diff --git a/FWCore/Framework/src/ESProducer.cc b/FWCore/Framework/src/ESProducer.cc index 234e7fd7b02c6..eee94fe0eec84 100644 --- a/FWCore/Framework/src/ESProducer.cc +++ b/FWCore/Framework/src/ESProducer.cc @@ -28,13 +28,13 @@ namespace edm { sharedResourceNames_.reset(); } - itemsToGetFromRecords_.reserve(consumesInfos_.size()); - recordsUsedDuringGet_.reserve(consumesInfos_.size()); - if (itemsToGetFromRecords_.size() == consumesInfos_.size()) { return; } + itemsToGetFromRecords_.reserve(consumesInfos_.size()); + recordsUsedDuringGet_.reserve(consumesInfos_.size()); + for (auto& info : consumesInfos_) { auto& items = itemsToGetFromRecords_.emplace_back(); items.reserve(info->size()); diff --git a/FWCore/Framework/src/EventSetupProvider.cc b/FWCore/Framework/src/EventSetupProvider.cc index 6b3165f183eef..f747a130ff756 100644 --- a/FWCore/Framework/src/EventSetupProvider.cc +++ b/FWCore/Framework/src/EventSetupProvider.cc @@ -347,10 +347,6 @@ namespace edm { } } - auto indices = recordsToResolverIndices(); - for (auto& provider : *dataProviders_) { - provider->updateLookup(indices); - } dataProviders_.reset(); mustFinishConfiguration_ = false; @@ -541,6 +537,13 @@ namespace edm { } } + void EventSetupProvider::updateLookup() { + auto indices = recordsToResolverIndices(); + for (auto& recordProvider : recordProviders_) { + recordProvider->updateLookup(indices); + } + } + bool EventSetupProvider::doRecordsMatch(EventSetupProvider& precedingESProvider, EventSetupRecordKey const& eventSetupRecordKey, std::map& allComponentsMatch, diff --git a/FWCore/Framework/src/EventSetupRecordProvider.cc b/FWCore/Framework/src/EventSetupRecordProvider.cc index 5daa14824bcb8..25597a8e3957a 100644 --- a/FWCore/Framework/src/EventSetupRecordProvider.cc +++ b/FWCore/Framework/src/EventSetupRecordProvider.cc @@ -252,6 +252,12 @@ namespace edm { for_all(providers_, std::bind(&EventSetupRecordProvider::addResolversToRecordHelper, this, _1, iMap)); } + void EventSetupRecordProvider::updateLookup(ESRecordsToProductResolverIndices const& iResolverToIndices) { + for (auto& productResolverProvider : providers_) { + productResolverProvider->updateLookup(iResolverToIndices); + } + } + std::set EventSetupRecordProvider::dependentRecords() const { return dependencies(key()); } std::set EventSetupRecordProvider::resolverProviderDescriptions() const { diff --git a/FWCore/Framework/src/EventSetupsController.cc b/FWCore/Framework/src/EventSetupsController.cc index 3f6873a7db37b..1947cfd7979a8 100644 --- a/FWCore/Framework/src/EventSetupsController.cc +++ b/FWCore/Framework/src/EventSetupsController.cc @@ -87,9 +87,17 @@ namespace edm { // In the following function, all the other components that contribute // to the same record and also the records that record depends on are // also checked. The component sharing is appropriately fixed as necessary. + // (this needs to be done before updateLookup because this can cause new + // ESProducers to be constructed). checkESProducerSharing(); clearComponents(); + // updateLookup needs to be called after checkESProducerSharing because + // that can cause new ESProducers to be constructed + for (auto& eventSetupProvider : providers_) { + eventSetupProvider->updateLookup(); + } + initializeEventSetupRecordIOVQueues(); numberOfConcurrentIOVs_.clear(); mustFinishConfiguration_ = false; From b0e35989bc6471422d0747b07f44e0261fc4c406 Mon Sep 17 00:00:00 2001 From: Michal Bluj Date: Mon, 9 Dec 2024 23:58:08 +0100 Subject: [PATCH 229/418] Sort hybrid taus with descending pt --- PhysicsTools/PatAlgos/plugins/PATTauHybridProducer.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/PhysicsTools/PatAlgos/plugins/PATTauHybridProducer.cc b/PhysicsTools/PatAlgos/plugins/PATTauHybridProducer.cc index e5b813034bfa9..2c5e6e3c8eb80 100644 --- a/PhysicsTools/PatAlgos/plugins/PATTauHybridProducer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATTauHybridProducer.cc @@ -10,6 +10,7 @@ #include "RecoTauTag/RecoTau/interface/RecoTauCommonUtilities.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "CommonTools/Utils/interface/PtComparator.h" class PATTauHybridProducer : public edm::stream::EDProducer<> { public: @@ -37,6 +38,7 @@ class PATTauHybridProducer : public edm::stream::EDProducer<> { const bool checkTauScoreIsBest_; const bool usePFLeptonsAsChargedHadrons_; + GreaterByPt pTTauComparator_; const std::map tagToDM_; enum class tauId_utag_idx : size_t { dm = 0, vsjet, vse, vsmu, ptcorr, qconf, pdm0, pdm1, pdm2, pdm10, pdm11, last }; enum class tauId_min_idx : size_t { hpsnew = 0, last }; @@ -325,6 +327,9 @@ void PATTauHybridProducer::produce(edm::Event& evt, const edm::EventSetup& es) { } } //non-matched taus + // sort taus in pT + std::sort(outputTaus->begin(), outputTaus->end(), pTTauComparator_); + evt.put(std::move(outputTaus)); } From 047b04e7dc09ad5427c1f582d66e06eb688ecc36 Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Thu, 28 Nov 2024 16:09:39 +0100 Subject: [PATCH 230/418] Implement new Phase 2 Standalone Muon seeder - Takes full advantage of the Phase 2 L1 Tracker Muon information - Direct match between L1 stubs and segments in DTs/CSCs - Extract stubs from L1Tk Muon, only checks segments in the same chamber as the stub to match - Match based on dphi, dtheta and number of hits in the segment - In the barrel, if no match is found in a given station, a rough extrapolation is attempted from the closest station with a match - At most one seed per L1Tk Muon produced in a single seeding step, with the possibility to extend to exotic signatures --- .../python/phase2L2AndL3Muons_cff.py | 5 + .../MuonSeed/interface/L2MuonTrajectorySeed.h | 9 +- .../MuonSeed/src/L2MuonTrajectorySeed.cc | 8 + DataFormats/MuonSeed/src/classes_def.xml | 3 +- .../modules/hltL2MuonSeedsFromL1TkMuon_cfi.py | 23 + .../HLTL2MuonsFromL1TkSequence_cfi.py | 14 +- .../src/Phase2L2MuonSeedCreator.cc | 844 ++++++++++++++++++ .../src/Phase2L2MuonSeedCreator.h | 152 ++++ 8 files changed, 1055 insertions(+), 3 deletions(-) create mode 100644 Configuration/ProcessModifiers/python/phase2L2AndL3Muons_cff.py create mode 100644 RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.cc create mode 100644 RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h diff --git a/Configuration/ProcessModifiers/python/phase2L2AndL3Muons_cff.py b/Configuration/ProcessModifiers/python/phase2L2AndL3Muons_cff.py new file mode 100644 index 0000000000000..13bfbf79edc62 --- /dev/null +++ b/Configuration/ProcessModifiers/python/phase2L2AndL3Muons_cff.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +# this modifier is for enabling Phase 2 L2 Muon seeding from L1Tk Muons +# and the simplified L3 Tracker Muon reconstruction (Inside-Out first) +phase2L2AndL3Muons = cms.Modifier() diff --git a/DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h b/DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h index 2dbc8622b6467..5b7c0955f2a3d 100644 --- a/DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h +++ b/DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h @@ -10,6 +10,7 @@ #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h" +#include "DataFormats/L1TMuonPhase2/interface/TrackerMuon.h" #include "DataFormats/L1Trigger/interface/Muon.h" #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h" #include "DataFormats/TrajectoryState/interface/PTrajectoryStateOnDet.h" @@ -31,6 +32,11 @@ class L2MuonTrajectorySeed : public TrajectorySeed { PropagationDirection dir, l1t::MuonRef l1Ref); + L2MuonTrajectorySeed(PTrajectoryStateOnDet const& ptsos, + RecHitContainer const& rh, + PropagationDirection dir, + l1t::TrackerMuonRef l1TkMuRef); + /// Destructor ~L2MuonTrajectorySeed() override {} @@ -39,10 +45,11 @@ class L2MuonTrajectorySeed : public TrajectorySeed { /// Get L1 info inline l1extra::L1MuonParticleRef l1Particle() const { return theL1Particle; } inline l1t::MuonRef l1tParticle() const { return theL1TParticle; } + inline l1t::TrackerMuonRef l1TkMu() const { return theL1TkMu; } -protected: private: l1extra::L1MuonParticleRef theL1Particle; l1t::MuonRef theL1TParticle; + l1t::TrackerMuonRef theL1TkMu; }; #endif diff --git a/DataFormats/MuonSeed/src/L2MuonTrajectorySeed.cc b/DataFormats/MuonSeed/src/L2MuonTrajectorySeed.cc index cfc46b56f158f..5c0c37675ccf6 100644 --- a/DataFormats/MuonSeed/src/L2MuonTrajectorySeed.cc +++ b/DataFormats/MuonSeed/src/L2MuonTrajectorySeed.cc @@ -26,3 +26,11 @@ L2MuonTrajectorySeed::L2MuonTrajectorySeed(PTrajectoryStateOnDet const& ptsos, : TrajectorySeed(ptsos, rh, dir) { theL1TParticle = l1Ref; } + +L2MuonTrajectorySeed::L2MuonTrajectorySeed(PTrajectoryStateOnDet const& ptsos, + RecHitContainer const& rh, + PropagationDirection dir, + l1t::TrackerMuonRef l1TkMuRef) + : TrajectorySeed(ptsos, rh, dir) { + theL1TkMu = l1TkMuRef; +} diff --git a/DataFormats/MuonSeed/src/classes_def.xml b/DataFormats/MuonSeed/src/classes_def.xml index 4fbac9251f4f9..21f77e436c2d7 100644 --- a/DataFormats/MuonSeed/src/classes_def.xml +++ b/DataFormats/MuonSeed/src/classes_def.xml @@ -1,5 +1,6 @@ - + + diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltL2MuonSeedsFromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltL2MuonSeedsFromL1TkMuon_cfi.py index bfe3b7bfef6a8..06aa1b6fa1219 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltL2MuonSeedsFromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltL2MuonSeedsFromL1TkMuon_cfi.py @@ -20,3 +20,26 @@ UseOfflineSeed = cms.untracked.bool(True), UseUnassociatedL1 = cms.bool(False) ) + +phase2HltL2MuonSeedsFromL1TkMuon = cms.EDProducer('Phase2L2MuonSeedCreator', + InputObjects = cms.InputTag('l1tTkMuonsGmt'), + CSCRecSegmentLabel = cms.InputTag('hltCscSegments'), + DTRecSegmentLabel = cms.InputTag('hltDt4DSegments'), + MinPL1Tk = cms.double(3.5), + MaxPL1Tk = cms.double(200), + stubMatchDPhi = cms.double(0.05), + stubMatchDTheta = cms.double(0.1), + extrapolationWindowClose = cms.double(0.2), + extrapolationWindowFar = cms.double(0.1), + maximumEtaBarrel = cms.double(0.7), + maximumEtaOverlap = cms.double(1.3), + Propagator = cms.string('SteppingHelixPropagatorAny'), + ServiceParameters = cms.PSet( + Propagators = cms.untracked.vstring('SteppingHelixPropagatorAny'), + RPCLayers = cms.bool(True), + UseMuonNavigation = cms.untracked.bool(True) + ) +) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +phase2L2AndL3Muons.toReplaceWith(hltL2MuonSeedsFromL1TkMuon, phase2HltL2MuonSeedsFromL1TkMuon) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTL2MuonsFromL1TkSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTL2MuonsFromL1TkSequence_cfi.py index eca9f9f91d8c3..27041f8e8b53e 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTL2MuonsFromL1TkSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTL2MuonsFromL1TkSequence_cfi.py @@ -5,4 +5,16 @@ from ..modules.hltL2OfflineMuonSeeds_cfi import * from ..sequences.HLTMuonlocalrecoSequence_cfi import * -HLTL2MuonsFromL1TkSequence = cms.Sequence(HLTMuonlocalrecoSequence+hltL2OfflineMuonSeeds+hltL2MuonSeedsFromL1TkMuon+hltL2MuonsFromL1TkMuon) +HLTL2MuonsFromL1TkSequence = cms.Sequence( + HLTMuonlocalrecoSequence + + hltL2OfflineMuonSeeds + + hltL2MuonSeedsFromL1TkMuon + + hltL2MuonsFromL1TkMuon +) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons + +phase2L2AndL3Muons.toReplaceWith( + HLTL2MuonsFromL1TkSequence, + HLTL2MuonsFromL1TkSequence.copyAndExclude([hltL2OfflineMuonSeeds]), +) diff --git a/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.cc b/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.cc new file mode 100644 index 0000000000000..970ac8626ee36 --- /dev/null +++ b/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.cc @@ -0,0 +1,844 @@ +/** \class phase2L2MuonSeedCreator + * See header file for a description of this class + * \author Luca Ferragina (INFN BO), 2024 + */ + +#include "RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h" +#include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h" +#include "RecoMuon/TrackingTools/interface/MuonPatternRecoDumper.h" + +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" + +#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" +#include "TrackingTools/DetLayers/interface/DetLayer.h" + +#include "DataFormats/Common/interface/OwnVector.h" +#include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h" +#include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h" +#include "DataFormats/GeometrySurface/interface/BoundCylinder.h" +#include "DataFormats/L1TMuonPhase2/interface/TrackerMuon.h" +#include "DataFormats/Math/interface/deltaR.h" +#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h" +#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" +#include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" +#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" +#include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h" +#include "DataFormats/TrajectoryState/interface/PTrajectoryStateOnDet.h" + +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include "CLHEP/Vector/ThreeVector.h" + +#include + +// Constructor +Phase2L2MuonSeedCreator::Phase2L2MuonSeedCreator(const edm::ParameterSet& pset) + : l1TkMuCollToken_{consumes(pset.getParameter("InputObjects"))}, + cscSegmentCollToken_{consumes(pset.getParameter("CSCRecSegmentLabel"))}, + dtSegmentCollToken_{consumes(pset.getParameter("DTRecSegmentLabel"))}, + cscGeometryToken_{esConsumes()}, + dtGeometryToken_{esConsumes()}, + magneticFieldToken_{esConsumes()}, + minMomentum_{pset.getParameter("MinPL1Tk")}, + maxMomentum_{pset.getParameter("MaxPL1Tk")}, + matchingPhiWindow_{pset.getParameter("stubMatchDPhi")}, + matchingThetaWindow_{pset.getParameter("stubMatchDTheta")}, + extrapolationDeltaPhiClose_{pset.getParameter("extrapolationWindowClose")}, + extrapolationDeltaPhiFar_{pset.getParameter("extrapolationWindowFar")}, + maxEtaBarrel_{pset.getParameter("maximumEtaBarrel")}, + maxEtaOverlap_{pset.getParameter("maximumEtaOverlap")}, + propagatorName_{pset.getParameter("Propagator")} { + // Service parameters + edm::ParameterSet serviceParameters = pset.getParameter("ServiceParameters"); + // Services + service_ = std::make_unique(serviceParameters, consumesCollector()); + estimator_ = std::make_unique(10000.); + produces(); +} + +void Phase2L2MuonSeedCreator::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("InputObjects", edm::InputTag("l1tTkMuonsGmt")); + desc.add("CSCRecSegmentLabel", edm::InputTag("hltCscSegments")); + desc.add("DTRecSegmentLabel", edm::InputTag("hltDt4DSegments")); + desc.add("MinPL1Tk", 3.5); + desc.add("MaxPL1Tk", 200); + desc.add("stubMatchDPhi", 0.05); + desc.add("stubMatchDTheta", 0.1); + desc.add("extrapolationWindowClose", 0.1); + desc.add("extrapolationWindowFar", 0.05); + desc.add("maximumEtaBarrel", 0.7); + desc.add("maximumEtaOverlap", 1.3); + desc.add("Propagator", "SteppingHelixPropagatorAny"); + + // Service parameters + edm::ParameterSetDescription psd0; + psd0.addUntracked>("Propagators", {"SteppingHelixPropagatorAny"}); + psd0.add("RPCLayers", true); + psd0.addUntracked("UseMuonNavigation", true); + desc.add("ServiceParameters", psd0); + descriptions.add("Phase2L2MuonSeedCreator", desc); +} + +void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { + const std::string metname = "RecoMuon|Phase2L2MuonSeedCreator"; + + auto output = std::make_unique(); + + auto const l1TkMuColl = iEvent.getHandle(l1TkMuCollToken_); + + auto cscHandle = iEvent.getHandle(cscSegmentCollToken_); + auto cscSegments = *cscHandle; + auto dtHandle = iEvent.getHandle(dtSegmentCollToken_); + auto dtSegments = *dtHandle; + + cscGeometry_ = iSetup.getHandle(cscGeometryToken_); + dtGeometry_ = iSetup.getHandle(dtGeometryToken_); + magneticField_ = iSetup.getHandle(magneticFieldToken_); + + LogDebug(metname) << "Number of L1 Tracker Muons in the Event: " << l1TkMuColl->size(); + + // Loop on all L1TkMu in event + for (size_t l1TkMuIndex = 0; l1TkMuIndex != l1TkMuColl->size(); ++l1TkMuIndex) { + l1t::TrackerMuonRef l1TkMuRef(l1TkMuColl, l1TkMuIndex); + + // Physical info of L1TkMu + float pt = l1TkMuRef->phPt(); + if (pt < minMomentum_) { + continue; + } + float eta = l1TkMuRef->phEta(); + float theta = 2 * std::atan(std::exp(-eta)); + float phi = l1TkMuRef->phPhi(); + int charge = l1TkMuRef->phCharge(); + + LogDebug(metname) << "L1TKMu pT: " << pt << ", eta: " << eta << ", phi: " << phi; + Type muonType = overlap; + if (std::abs(eta) < maxEtaBarrel_) { + muonType = barrel; + LogDebug(metname) << "L1TkMu found in the barrel"; + } else if (std::abs(eta) > maxEtaOverlap_) { + muonType = endcap; + LogDebug(metname) << "L1TkMu found in the endcap"; + } + + // Starting seed creation + LogDebug(metname) << "Start seed creation"; + + l1t::MuonStubRefVector stubRefs = l1TkMuRef->stubs(); + + LogDebug(metname) << "Number of stubs per L1TkMu: " << stubRefs.size(); + LogDebug(metname) << "Number of DT segments in event: " << dtSegments.size(); + LogDebug(metname) << "Number of CSC segments in event: " << cscSegments.size(); + + // Pairs segIndex, segQuality for matches in Barrel/Overlap/Endcap + std::map> matchesInBarrel; + std::map> matchesInEndcap; + + // Matching info + bool atLeastOneMatch = false; + bool bestInDt = false; + + // Variables for matches in Overlap + int totalBarrelQuality = 0; + int totalEndcapQuality = 0; + unsigned int nDtHits = 0; + unsigned int nCscHits = 0; + + // Loop on L1TkMu stubs to find best association to DT/CSC segments + for (auto stub : stubRefs) { +#ifdef EDM_ML_DEBUG + stub->print(); +#endif + // Separate barrel, endcap and overlap cases + switch (muonType) { + case barrel: { + if (!stub->isBarrel()) { + continue; // skip all non-barrel stubs + } + // Create detId for stub + DTChamberId stubId = DTChamberId(stub->etaRegion(), // wheel + stub->depthRegion(), // station + stub->phiRegion() + 1); // sector, online to offline + LogDebug(metname) << "Stub DT detId: " << stubId << ". RawId: " << stubId.rawId(); + + auto& tmpMatch = matchingStubSegment(stubId, stub, dtSegments, l1TkMuRef); + + // Found a match -> update matching info + if (tmpMatch.first != -1) { + matchesInBarrel.emplace(stubId, tmpMatch); + atLeastOneMatch = true; + bestInDt = true; + } + +#ifdef EDM_ML_DEBUG + LogDebug(metname) << "BARREL best segments:"; + for (const auto& [detId, matchingPair] : matchesInBarrel) { + LogDebug(metname) << "Station " << detId.station() << " (" << matchingPair.first << ", " + << matchingPair.second << ")"; + } +#endif + break; + } // End barrel + + case endcap: { + if (!stub->isEndcap()) { + continue; // skip all non-endcap stubs + } + // Create detId for stub + int endcap = (eta > 0) ? 1 : 2; // CSC DetId endcap (1 -> Forward, 2 -> Backwards) + CSCDetId stubId = CSCDetId(endcap, + stub->depthRegion(), // station + 6 - std::abs(stub->etaRegion()), // ring, online to offline + stub->phiRegion()); // chamber + LogDebug(metname) << "Stub CSC detId: " << stubId << ". RawId: " << stubId.rawId(); + + auto& tmpMatch = matchingStubSegment(stubId, stub, cscSegments, l1TkMuRef); + + // Found a match -> update matching info + if (tmpMatch.first != -1) { + matchesInEndcap.emplace(stubId, tmpMatch); + atLeastOneMatch = true; + } + +#ifdef EDM_ML_DEBUG + LogDebug(metname) << "ENDCAP best segments:"; + for (const auto& [detId, matchingPair] : matchesInEndcap) { + LogDebug(metname) << "Station " << detId.station() << " (" << matchingPair.first << ", " + << matchingPair.second << ")"; + } +#endif + break; + } // End endcap + + case overlap: { + // Overlap runs on both DTs and CSCs and picks the best overall match + if (stub->isBarrel()) { + // Check DTs + LogDebug(metname) << "OVERLAP stub in DTs, checking " << dtSegments.size() << " DT segments"; + // Create detId for stub + DTChamberId stubId = DTChamberId(stub->etaRegion(), // wheel + stub->depthRegion(), // station + stub->phiRegion() + 1); // sector, online to offline + LogDebug(metname) << "Stub DT detId: " << stubId << ". RawId: " << stubId.rawId(); + + auto& tmpMatch = matchingStubSegment(stubId, stub, dtSegments, l1TkMuRef); + totalBarrelQuality += tmpMatch.second; + + // Found a match -> update matching info + if (tmpMatch.first != -1) { + matchesInBarrel.emplace(stubId, tmpMatch); + atLeastOneMatch = true; + auto dtSegment = dtSegments.begin() + tmpMatch.first; + nDtHits += (dtSegment->hasPhi() ? dtSegment->phiSegment()->recHits().size() : 0); + nDtHits += (dtSegment->hasZed() ? dtSegment->zSegment()->recHits().size() : 0); + } + +#ifdef EDM_ML_DEBUG + LogDebug(metname) << "OVERLAP best segments in DTs:"; + for (auto& [detId, matchingPair] : matchesInBarrel) { + LogDebug(metname) << "Station " << detId.station() << " (" << matchingPair.first << ", " + << matchingPair.second << ")"; + } +#endif + } else if (stub->isEndcap()) { + // Check CSCs + LogDebug(metname) << "OVERLAP stub in CSCs, checking " << cscSegments.size() << " CSC segments"; + int endcap = (eta > 0) ? 1 : 2; // CSC DetId endcap (1 -> Forward, 2 -> Backwards) + CSCDetId stubId = CSCDetId(endcap, + stub->depthRegion(), // station + 6 - std::abs(stub->etaRegion()), // ring, online to offline + stub->phiRegion()); // chamber + LogDebug(metname) << "Stub CSC detId: " << stubId << ". RawId: " << stubId.rawId(); + + auto& tmpMatch = matchingStubSegment(stubId, stub, cscSegments, l1TkMuRef); + totalEndcapQuality += tmpMatch.second; + + // Found a match -> update matching info + if (tmpMatch.first != -1) { + matchesInEndcap.emplace(stubId, tmpMatch); + atLeastOneMatch = true; + auto cscSegment = cscSegments.begin() + tmpMatch.first; + nCscHits += cscSegment->nRecHits(); + } + +#ifdef EDM_ML_DEBUG + LogDebug(metname) << "OVERLAP best segments in CSCs:"; + for (auto& [detId, matchingPair] : matchesInEndcap) { + LogDebug(metname) << "Station " << detId.station() << " (" << matchingPair.first << ", " + << matchingPair.second << ")"; + } +#endif + } + + LogDebug(metname) << "OVERLAP comparing total qualities. DT: " << totalBarrelQuality + << ", CSC: " << totalEndcapQuality; + + // Pick segments in DTs / CSCs based on quality + bestInDt = (totalBarrelQuality > totalEndcapQuality) ? true : false; + + // Same qualities, pick higher number of hits + if (totalBarrelQuality == totalEndcapQuality and totalBarrelQuality > -1) { + LogDebug(metname) << "Same quality " << totalBarrelQuality << ". Checking total number of hits"; + LogDebug(metname) << "DT hits: " << nDtHits << ", CSC hits: " << nCscHits; + LogDebug(metname) << (nDtHits > nCscHits ? "More hits in DT segment" : "More hits in CSC segment"); + bestInDt = (nDtHits >= nCscHits) ? true : false; + } +#ifdef EDM_ML_DEBUG + LogDebug(metname) << "OVERLAP best segments:"; + if (bestInDt) { + LogDebug(metname) << "OVERLAP best match in DTs:"; + for (auto& [detId, matchingPair] : matchesInBarrel) { + LogDebug(metname) << "Station " << detId.station() << " (" << matchingPair.first << ", " + << matchingPair.second << ")"; + } + } else if (!bestInDt) { + LogDebug(metname) << "OVERLAP best match in CSCs:"; + for (auto& [detId, matchingPair] : matchesInEndcap) { + LogDebug(metname) << "Station " << detId.station() << " (" << matchingPair.first << ", " + << matchingPair.second << ")"; + } + } +#endif + break; + } // End overlap + + default: + edm::LogError("L1TkMu must be either barrel, endcap or overlap"); + break; + } + } // End loop on stubs + + // Emplace seeds in output + if (!atLeastOneMatch) { + LogDebug(metname) << "No matching stub found, skipping seed"; + continue; // skip unmatched L1TkMu + } else { + // Info for propagation to MB2 or ME2 + service_->update(iSetup); + const DetLayer* detLayer = nullptr; + float radius = 0.; + + CLHEP::Hep3Vector vec(0., 1., 0.); + vec.setTheta(theta); + vec.setPhi(phi); + + DetId propagateToId; + + edm::OwnVector container; + if (bestInDt) { + // Found at least one matching segment in DT -> propagate to MB2 + LogDebug(metname) << "Found matching segment(s) in DTs, propagating L1TkMu info to MB2 to seed"; + // MB2 + propagateToId = DTChamberId(0, 2, 0); + detLayer = service_->detLayerGeometry()->idToLayer(propagateToId); + const BoundSurface* sur = &(detLayer->surface()); + const BoundCylinder* bc = dynamic_cast(sur); + radius = std::abs(bc->radius() / sin(theta)); + + // Propagate matched segments to the seed and try to extrapolate in unmatched chambers + std::vector matchedStations; + matchedStations.reserve(4); + for (auto& [detId, matchingPair] : matchesInBarrel) { + // Add matched segments to the seed + LogDebug(metname) << "Adding matched DT segment in station " << detId.station() << " to the seed"; + container.push_back(dtSegments[matchingPair.first]); + matchedStations.push_back(detId.station()); + } + for (int station = 1; station != 5; ++station) { + if (std::find(matchedStations.begin(), matchedStations.end(), station) == matchedStations.end()) { + // Try to extrapolate from stations with a match to the ones without + LogDebug(metname) << "No matching DT segment found in station " << station; + auto extrapolatedMatch = extrapolateToNearbyStation(station, matchesInBarrel, dtSegments); + if (extrapolatedMatch.first != -1) { + LogDebug(metname) << "Adding extrapolated DT segment " << extrapolatedMatch.first << " with quality " + << extrapolatedMatch.second << " found in station " << station << " to the seed"; + container.push_back(dtSegments[extrapolatedMatch.first]); + } + } + } + } else if (!bestInDt) { + // Found a matching segment in CSC -> propagate to ME2 + LogDebug(metname) << "Found matching segment(s) in CSCs, propagating L1TkMu info to ME2 to seed"; + // ME2 + propagateToId = eta > 0 ? CSCDetId(1, 2, 0, 0, 0) : CSCDetId(2, 2, 0, 0, 0); + detLayer = service_->detLayerGeometry()->idToLayer(propagateToId); + radius = std::abs(detLayer->position().z() / cos(theta)); + + // Fill seed with matched segment(s) + for (auto& [detId, matchingPair] : matchesInEndcap) { + LogDebug(metname) << "Adding matched CSC segment in station " << detId.station() << " to the seed"; + container.push_back(cscSegments[matchingPair.first]); + } + } + vec.setMag(radius); + // Get Global point and direction + GlobalPoint pos(vec.x(), vec.y(), vec.z()); + GlobalVector mom(pt * cos(phi), pt * sin(phi), pt * cos(theta) / sin(theta)); + + GlobalTrajectoryParameters param(pos, mom, charge, &*magneticField_); + + AlgebraicSymMatrix55 mat; + + mat[0][0] = bestInDt ? (0.25 / pt) * (0.25 / pt) : (0.4 / pt) * (0.4 / pt); // sigma^2(charge/abs_momentum) + mat[1][1] = 0.05 * 0.05; // sigma^2(lambda) + mat[2][2] = 0.2 * 0.2; // sigma^2(phi) + mat[3][3] = 20. * 20.; // sigma^2(x_transverse) + mat[4][4] = 20. * 20.; // sigma^2(y_transverse) + + CurvilinearTrajectoryError error(mat); + + const FreeTrajectoryState state(param, error); + + // Create the TrajectoryStateOnSurface + TrajectoryStateOnSurface tsos = service_->propagator(propagatorName_)->propagate(state, detLayer->surface()); + // Find valid detectors with states + auto detsWithStates = detLayer->compatibleDets(tsos, *service_->propagator(propagatorName_), *estimator_); + // Check that at least one valid detector was found + if (detsWithStates.size() > 0) { + // Update the detId with the one from the first valid detector with measurments found + propagateToId = detsWithStates.front().first->geographicalId(); + // Create the Trajectory State on that detector's surface + tsos = detsWithStates.front().second; + } else if (detsWithStates.empty() and bestInDt) { + // Propagation to MB2 failed, fallback to ME2 (might be an overlap edge case) + LogDebug(metname) << "Warning: detsWithStates collection is empty for a barrel collection. Falling back to ME2"; + // Get ME2 DetLayer + DetId fallback_id; + theta < Geom::pi() / 2. ? fallback_id = CSCDetId(1, 2, 0, 0, 0) : fallback_id = CSCDetId(2, 2, 0, 0, 0); + const DetLayer* ME2DetLayer = service_->detLayerGeometry()->idToLayer(fallback_id); + // Trajectory state on ME2 DetLayer + tsos = service_->propagator(propagatorName_)->propagate(state, ME2DetLayer->surface()); + // Find the detectors with states on ME2 + detsWithStates = ME2DetLayer->compatibleDets(tsos, *service_->propagator(propagatorName_), *estimator_); + } + // Use the valid detector found to produce the persistentState for the seed + if (!detsWithStates.empty()) { + LogDebug(metname) << "Found a compatible detWithStates"; + TrajectoryStateOnSurface newTSOS = detsWithStates.front().second; + const GeomDet* newTSOSDet = detsWithStates.front().first; + LogDebug(metname) << "Most compatible detector: " << newTSOSDet->geographicalId().rawId(); + if (newTSOS.isValid()) { + LogDebug(metname) << "pos: (r=" << newTSOS.globalPosition().mag() + << ", phi=" << newTSOS.globalPosition().phi() << ", eta=" << newTSOS.globalPosition().eta() + << ")"; + LogDebug(metname) << "mom: (q*pt=" << newTSOS.charge() * newTSOS.globalMomentum().perp() + << ", phi=" << newTSOS.globalMomentum().phi() << ", eta=" << newTSOS.globalMomentum().eta() + << ")"; + // Transform the TrajectoryStateOnSurface in a Persistent TrajectoryStateOnDet + const PTrajectoryStateOnDet& seedTSOS = + trajectoryStateTransform::persistentState(newTSOS, newTSOSDet->geographicalId().rawId()); + + // Emplace seed in output + LogDebug(metname) << "Emplacing seed in output"; + output->emplace_back(L2MuonTrajectorySeed(seedTSOS, container, alongMomentum, l1TkMuRef)); + } + } + } // End seed emplacing (one seed per L1TkMu) + } // End loop on L1TkMu + LogDebug(metname) << "All L1TkMu in event processed"; + iEvent.put(std::move(output)); +} + +// In DT station 4 the top and bottom sectors are made of two chambers +// due to material requirements. Online is not split: +// Online sector 4 == offline sector 4 or 13, Online sector 10 == offline sector 10 or 14 +const std::vector Phase2L2MuonSeedCreator::matchingIds(const DTChamberId& stubId) const { + std::vector matchingDtIds; + matchingDtIds.reserve(2); + matchingDtIds.push_back(stubId); + if (stubId.station() == 4) { + if (stubId.sector() == 4) { + matchingDtIds.emplace_back(DTChamberId(stubId.wheel(), stubId.station(), 13)); + } + if (stubId.sector() == 10) { + matchingDtIds.emplace_back(DTChamberId(stubId.wheel(), stubId.station(), 14)); + } + } + return matchingDtIds; +} + +// Pair bestSegIndex, quality for DT segments matching +const std::pair Phase2L2MuonSeedCreator::matchingStubSegment(const DTChamberId& stubId, + const l1t::MuonStubRef stub, + const DTRecSegment4DCollection& segments, + const l1t::TrackerMuonRef l1TkMuRef) const { + const std::string metname = "RecoMuon|Phase2L2MuonSeedCreator"; + + int bestSegIndex = -1; + int quality = -1; + unsigned int nHitsPhiBest = 0; + unsigned int nHitsThetaBest = 0; + + LogDebug(metname) << "Matching stub with DT segment"; + int nMatchingIds = 0; + + for (DTChamberId id : matchingIds(stubId)) { + DTRecSegment4DCollection::range segmentsInChamber = segments.get(id); + for (DTRecSegment4DCollection::const_iterator segment = segmentsInChamber.first; + segment != segmentsInChamber.second; + ++segment) { + ++nMatchingIds; + DTChamberId segId = segment->chamberId(); + LogDebug(metname) << "Segment DT detId: " << segId << ". RawId: " << segId.rawId(); + + // Global position of the segment + GlobalPoint segPos = dtGeometry_->idToDet(segId)->toGlobal(segment->localPosition()); + + // Check delta phi + double deltaPhi = std::abs(segPos.phi() - stub->offline_coord1()); + LogDebug(metname) << "deltaPhi: " << deltaPhi; + + double deltaTheta = std::abs(segPos.theta() - 2 * std::atan(std::exp(-l1TkMuRef->phEta()))); + LogDebug(metname) << "deltaTheta: " << deltaTheta; + + // Skip segments outside phi window or very far in the theta view + if (deltaPhi > matchingPhiWindow_ or deltaTheta > 4 * matchingThetaWindow_) { + continue; + } + + // Inside phi window -> check hit multiplicity + unsigned int nHitsPhi = (segment->hasPhi() ? segment->phiSegment()->recHits().size() : 0); + unsigned int nHitsTheta = (segment->hasZed() ? segment->zSegment()->recHits().size() : 0); + LogDebug(metname) << "DT found match in deltaPhi: " << std::distance(segments.begin(), segment) << " with " + << nHitsPhi << " hits in phi and " << nHitsTheta << " hits in theta"; + + if (nHitsPhi == nHitsPhiBest and segment->hasZed()) { + // Same phi hit multiplicity -> check delta theta + LogDebug(metname) << "DT found segment with same hits in phi as previous best (" << nHitsPhiBest + << "), checking theta window"; + + // More precise check in theta window + if (deltaTheta > matchingThetaWindow_) { + continue; // skip segments outside theta window + } + + LogDebug(metname) << "DT found match in deltaTheta: " << std::distance(segments.begin(), segment) << " with " + << nHitsPhi << " hits in phi and " << nHitsTheta << " hits in theta"; + + // Inside theta window -> check hit multiplicity (theta) + if (nHitsTheta > nHitsThetaBest) { + // More hits in theta -> update bestSegment and quality + LogDebug(metname) << "DT found segment with more hits in theta than previous best"; + bestSegIndex = std::distance(segments.begin(), segment); + quality = 2; + LogDebug(metname) << "DT updating bestSegIndex (nHitsTheta): " << bestSegIndex << " with " + << nHitsPhi + nHitsTheta << ">" << nHitsPhiBest + nHitsThetaBest + << " total hits and quality " << quality; + nHitsThetaBest = nHitsTheta; + } + } else if (nHitsPhi > nHitsPhiBest) { + // More hits in phi -> update bestSegment and quality + LogDebug(metname) << "DT found segment with more hits in phi than previous best"; + bestSegIndex = std::distance(segments.begin(), segment); + quality = 1; + LogDebug(metname) << "DT updating bestSegIndex (nHitsPhi): " << bestSegIndex << " with " << nHitsPhi << ">" + << nHitsPhiBest << " hits in phi, " << nHitsTheta << " hits in theta and quality " << quality; + nHitsPhiBest = nHitsPhi; + nHitsThetaBest = nHitsTheta; + } + } // End loop on segments + } + + LogDebug(metname) << "DT looped over " << nMatchingIds << (nMatchingIds > 1 ? " segments" : " segment") + << " with same DT detId as stub"; + + if (quality < 0) { + LogDebug(metname) << "DT proposed match: " << bestSegIndex << " with quality " << quality << ". Not good enough!"; + return std::make_pair(-1, -1); + } else { + LogDebug(metname) << "Found DT segment match"; + LogDebug(metname) << "New DT segment: " << bestSegIndex << " with " << nHitsPhiBest + nHitsThetaBest + << " total hits and quality " << quality; + return std::make_pair(bestSegIndex, quality); + } +} + +// Match online-level CSCDetIds to offline labels +const std::vector Phase2L2MuonSeedCreator::matchingIds(const CSCDetId& stubId) const { + std::vector matchingCscIds; + matchingCscIds.push_back(stubId); + + if (stubId.station() == 1 and stubId.ring() == 1) { + matchingCscIds.emplace_back(CSCDetId(stubId.endcap(), stubId.station(), 4, stubId.chamber())); + } + + return matchingCscIds; +} + +// Pair bestSegIndex, quality for CSC segments matching +const std::pair Phase2L2MuonSeedCreator::matchingStubSegment(const CSCDetId& stubId, + const l1t::MuonStubRef stub, + const CSCSegmentCollection& segments, + const l1t::TrackerMuonRef l1TkMuRef) const { + const std::string metname = "RecoMuon|Phase2L2MuonSeedCreator"; + + int bestSegIndex = -1; + int quality = -1; + unsigned int nHitsBest = 0; + + LogDebug(metname) << "Matching stub with CSC segment"; + int nMatchingIds = 0; + for (CSCDetId id : matchingIds(stubId)) { + CSCSegmentCollection::range segmentsInChamber = segments.get(id); + for (CSCSegmentCollection::const_iterator segment = segmentsInChamber.first; segment != segmentsInChamber.second; + ++segment) { + ++nMatchingIds; + CSCDetId segId = segment->cscDetId(); + LogDebug(metname) << "Segment CSC detId: " << segId << ". RawId: " << segId.rawId(); + + // Global position of the segment + GlobalPoint segPos = cscGeometry_->idToDet(segId)->toGlobal(segment->localPosition()); + + // Check delta phi + double deltaPhi = std::abs(segPos.phi() - stub->offline_coord1()); + LogDebug(metname) << "deltaPhi: " << deltaPhi; + + double deltaTheta = std::abs(segPos.theta() - 2 * std::atan(std::exp(-l1TkMuRef->phEta()))); + LogDebug(metname) << "deltaTheta: " << deltaTheta; + + if (deltaPhi > matchingPhiWindow_ or deltaTheta > 0.4) { + continue; // skip segments outside phi window + } + + // Inside phi window -> check hit multiplicity + unsigned int nHits = segment->nRecHits(); + LogDebug(metname) << "CSC found match in deltaPhi: " << std::distance(segments.begin(), segment) << " with " + << nHits << " hits"; + + if (nHits == nHitsBest) { + // Same hit multiplicity -> check delta theta + LogDebug(metname) << "Found CSC segment with same hits (" << nHitsBest + << ") as previous best, checking theta window"; + + if (deltaTheta > matchingThetaWindow_) { + continue; // skip segments outside theta window + } + + // Inside theta window -> update bestSegment and quality + bestSegIndex = std::distance(segments.begin(), segment); + quality = 1; + LogDebug(metname) << "CSC found match in deltaTheta: " << bestSegIndex << " with " << nHits + << " hits and quality " << quality; + } else if (nHits > nHitsBest) { + // More hits -> update bestSegment and quality + bestSegIndex = std::distance(segments.begin(), segment); + quality = 2; + LogDebug(metname) << "Found CSC segment with more hits. Index: " << bestSegIndex << " with " << nHits << ">" + << nHitsBest << " hits and quality " << quality; + nHitsBest = nHits; + } + } // End loop on segments + } + + LogDebug(metname) << "CSC looped over " << nMatchingIds << (nMatchingIds != 1 ? " segments" : " segment") + << " with same CSC detId as stub"; + + if (quality < 0) { + LogDebug(metname) << "CSC proposed match: " << bestSegIndex << " with quality " << quality << ". Not good enough!"; + return std::make_pair(-1, -1); + } else { + LogDebug(metname) << "Found CSC segment match"; + LogDebug(metname) << "New CSC segment: " << bestSegIndex << " with " << nHitsBest << " hits and quality " + << quality; + return std::make_pair(bestSegIndex, quality); + } +} + +const std::pair Phase2L2MuonSeedCreator::extrapolateToNearbyStation( + const int endingStation, + const std::map>& matchesInBarrel, + const DTRecSegment4DCollection& segments) const { + const std::string metname = "RecoMuon|Phase2L2MuonSeedCreator"; + + std::pair extrapolatedMatch = std::make_pair(-1, -1); + bool foundExtrapolatedMatch = false; + switch (endingStation) { + case 1: { + // Station 1. Extrapolate 2->1 or 3->1 (4->1) + int startingStation = 2; + while (startingStation < 5) { + for (auto& [detId, matchingPair] : matchesInBarrel) { + if (detId.station() == startingStation) { + LogDebug(metname) << "Extrapolating from station " << startingStation << " to station " << endingStation; + extrapolatedMatch = extrapolateMatch(matchingPair.first, endingStation, segments); + if (extrapolatedMatch.first != -1) { + LogDebug(metname) << "Found extrapolated match in station " << endingStation << " from station " + << startingStation; + foundExtrapolatedMatch = true; + break; + } + } + } + if (foundExtrapolatedMatch) { + break; + } + ++startingStation; + } + break; + } + case 2: { + // Station 2. Extrapolate 1->2 or 3->2 (4->2) + int startingStation = 1; + while (startingStation < 5) { + for (auto& [detId, matchingPair] : matchesInBarrel) { + if (detId.station() == startingStation) { + LogDebug(metname) << "Extrapolating from station " << startingStation << " to station " << endingStation; + extrapolatedMatch = extrapolateMatch(matchingPair.first, endingStation, segments); + if (extrapolatedMatch.first != -1) { + LogDebug(metname) << "Found extrapolated match in station " << endingStation << " from station " + << startingStation; + foundExtrapolatedMatch = true; + break; + } + } + } + if (foundExtrapolatedMatch) { + break; + } + startingStation = startingStation == 1 ? startingStation + 2 : startingStation + 1; + } + break; + } + case 3: { + // Station 3. Extrapolate 2->3 or 4->3 (1->3) + int startingStation = 2; + while (startingStation > 0) { + for (auto& [detId, matchingPair] : matchesInBarrel) { + if (detId.station() == startingStation) { + LogDebug(metname) << "Extrapolating from station " << startingStation << " to station " << endingStation; + extrapolatedMatch = extrapolateMatch(matchingPair.first, endingStation, segments); + if (extrapolatedMatch.first != -1) { + LogDebug(metname) << "Found extrapolated match in station " << endingStation << " from station " + << startingStation; + foundExtrapolatedMatch = true; + break; + } + } + } + if (foundExtrapolatedMatch) { + break; + } + startingStation = startingStation == 2 ? startingStation + 2 : startingStation - 3; + } + break; + } + case 4: { + // Station 4. Extrapolate 2->4 or 3->4 (1->4) + int startingStation = 2; + while (startingStation > 0) { + for (auto& [detId, matchingPair] : matchesInBarrel) { + if (detId.station() == startingStation) { + LogDebug(metname) << "Extrapolating from station " << startingStation << " to station " << endingStation; + extrapolatedMatch = extrapolateMatch(matchingPair.first, endingStation, segments); + if (extrapolatedMatch.first != -1) { + LogDebug(metname) << "Found extrapolated match in station " << endingStation << " from station " + << startingStation; + foundExtrapolatedMatch = true; + break; + } + } + } + if (foundExtrapolatedMatch) { + break; + } + startingStation = startingStation == 2 ? startingStation + 1 : startingStation - 2; + } + break; + } + default: + std::cerr << "Muon stations only go from 1 to 4" << std::endl; + break; + } // end endingStation switch + return extrapolatedMatch; +} + +const std::pair Phase2L2MuonSeedCreator::extrapolateMatch(const int bestStartingSegIndex, + const int endingStation, + const DTRecSegment4DCollection& segments) const { + const std::string metname = "RecoMuon|Phase2L2MuonSeedCreator"; + + const auto& segmentInStartingStation = segments.begin() + bestStartingSegIndex; + auto matchId = segmentInStartingStation->chamberId(); + GlobalPoint matchPos = dtGeometry_->idToDet(matchId)->toGlobal(segmentInStartingStation->localPosition()); + + int bestSegIndex = -1; + int quality = -1; + unsigned int nHitsPhiBest = 0; + unsigned int nHitsThetaBest = 0; + + // Find possible extrapolation from startingStation to endingStation + for (DTRecSegment4DCollection::const_iterator segment = segments.begin(), last = segments.end(); segment != last; + ++segment) { + auto segId = segment->chamberId(); + + if (segId.station() != endingStation) { + continue; // skip segments outside of endingStation + } + + // Global positions of the segment + GlobalPoint segPos = dtGeometry_->idToDet(segId)->toGlobal(segment->localPosition()); + + double deltaPhi = std::abs(segPos.phi() - matchPos.phi()); + LogDebug(metname) << "Extrapolation deltaPhi: " << deltaPhi; + + double deltaTheta = std::abs(segPos.theta() - matchPos.theta()); + LogDebug(metname) << "Extrapolation deltaTheta: " << deltaTheta; + + double matchingDeltaPhi = + std::abs(matchId.station() - endingStation) == 1 ? extrapolationDeltaPhiClose_ : extrapolationDeltaPhiFar_; + + if (deltaPhi > matchingDeltaPhi or deltaTheta > 0.4) { + continue; + } + + // Inside phi window -> check hit multiplicity + unsigned int nHitsPhi = (segment->hasPhi() ? segment->phiSegment()->recHits().size() : 0); + unsigned int nHitsTheta = (segment->hasZed() ? segment->zSegment()->recHits().size() : 0); + LogDebug(metname) << "Extrapolation found match in deltaPhi: " << std::distance(segments.begin(), segment) + << " with " << nHitsPhi << " hits in phi and " << nHitsTheta << " hits in theta"; + + if (nHitsPhi == nHitsPhiBest and segment->hasZed()) { + // Same phi hit multiplicity -> check delta theta + LogDebug(metname) << "Extrapolation found segment with same hits in phi as previous best (" << nHitsPhiBest + << "), checking theta window"; + double deltaTheta = std::abs(segPos.theta() - matchPos.theta()); + LogDebug(metname) << "Extrapolation deltaTheta: " << deltaTheta; + + if (deltaTheta > matchingThetaWindow_) { + continue; // skip segments outside theta window + } + + LogDebug(metname) << "Extrapolation found match in deltaTheta: " << std::distance(segments.begin(), segment) + << " with " << nHitsPhi << " hits in phi and " << nHitsTheta << " hits in theta"; + + // Inside theta window -> check hit multiplicity (theta) + if (nHitsTheta > nHitsThetaBest) { + // More hits in theta -> update bestSegment and quality + LogDebug(metname) << "Extrapolation found segment with more hits in theta than previous best"; + bestSegIndex = std::distance(segments.begin(), segment); + quality = 2; + LogDebug(metname) << "Extrapolation updating bestSegIndex (nHitsTheta): " << bestSegIndex << " with " + << nHitsPhi + nHitsTheta << ">" << nHitsPhiBest + nHitsThetaBest << " total hits and quality " + << quality; + nHitsThetaBest = nHitsTheta; + } + } else if (nHitsPhi > nHitsPhiBest) { + // More hits in phi -> update bestSegment and quality + LogDebug(metname) << "Extrapolation found segment with more hits in phi than previous best"; + bestSegIndex = std::distance(segments.begin(), segment); + quality = 1; + LogDebug(metname) << "Extrapolation updating bestSegIndex (nHitsPhi): " << bestSegIndex << " with " << nHitsPhi + << ">" << nHitsPhiBest << " hits in phi, " << nHitsTheta << " hits in theta and quality " + << quality; + nHitsPhiBest = nHitsPhi; + nHitsThetaBest = nHitsTheta; + } + } // end loop on segments + return std::make_pair(bestSegIndex, quality); +} + +DEFINE_FWK_MODULE(Phase2L2MuonSeedCreator); diff --git a/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h b/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h new file mode 100644 index 0000000000000..2a88d0a2fdbdb --- /dev/null +++ b/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h @@ -0,0 +1,152 @@ +#ifndef RecoMuon_L2MuonSeedCreator_Phase2L2MuonSeedCreator_H +#define RecoMuon_L2MuonSeedCreator_Phase2L2MuonSeedCreator_H + +/** \class Phase2L2MuonSeedCreator + * + * Standalone Muon seeds for Phase-2 + * This class takes in input the full L1 Tracker Muon collection + * and the collections of (DT/CSC) segments in the muon chambers. + * For each L1 Tracker Muon, the stubs used to produce it are + * matched with segments in the muon chambers looking, in order, + * at deltaPhi, number of hits, and deltaTheta. All matched segments + * are added to the seed, together with the pT information from the + * tracker muon itself. Specifically for the barrel region and in + * stations where no stub is found, a simple extrapolation is + * attempted from nearby stations with a match (e.g no stub found in + * station 2, attempt to match segments extrapolating from station + * 1, 3, and 4 in this order). + * + * The logic allows a single-step extension to seed displaced muons + * (currently not implemented) + * + * \author Luca Ferragina (INFN BO), 2024 + */ + +#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h" +#include "DataFormats/L1TMuonPhase2/interface/TrackerMuon.h" + +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/Utilities/interface/ESGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "DataFormats/L1TMuonPhase2/interface/MuonStub.h" +#include "DataFormats/CSCRecHit/interface/CSCSegment.h" +#include "DataFormats/DTRecHit/interface/DTRecSegment4D.h" +#include "DataFormats/MuonDetId/interface/DTChamberId.h" +#include "DataFormats/MuonDetId/interface/CSCDetId.h" + +#include "Geometry/CSCGeometry/interface/CSCGeometry.h" +#include "Geometry/DTGeometry/interface/DTGeometry.h" +#include "Geometry/Records/interface/MuonGeometryRecord.h" + +#include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h" +#include "RecoMuon/MeasurementDet/interface/MuonDetLayerMeasurements.h" +#include "RecoMuon/DetLayers/interface/MuonDetLayerGeometry.h" +#include "RecoMuon/Records/interface/MuonRecoGeometryRecord.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h" + +#include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h" + +#include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" + +#include +#include + +class RecHit; +class Plane; +class GeomDet; +class MagneticField; +class MuonTransientTrackingRecHit; + +enum Type { barrel, overlap, endcap }; + +class Phase2L2MuonSeedCreator : public edm::stream::EDProducer<> { +public: + typedef MuonTransientTrackingRecHit::MuonRecHitContainer SegmentContainer; + + // Constructor + explicit Phase2L2MuonSeedCreator(const edm::ParameterSet& pset); + + // Destructor + ~Phase2L2MuonSeedCreator() override = default; + + // Operations + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + void produce(edm::Event&, const edm::EventSetup&) override; + +private: + // Tokens + const edm::EDGetTokenT l1TkMuCollToken_; + const edm::EDGetTokenT cscSegmentCollToken_; + const edm::EDGetTokenT dtSegmentCollToken_; + + const edm::ESGetToken cscGeometryToken_; + const edm::ESGetToken dtGeometryToken_; + const edm::ESGetToken magneticFieldToken_; + + // Miminum and maximum pt momentum of a track + const double minMomentum_; + const double maxMomentum_; + + // Parameters to match L1 stubs to DT/CSC segments + const double matchingPhiWindow_; + const double matchingThetaWindow_; + + // Parameters to extrapolate matches in nearby stations + const double extrapolationDeltaPhiClose_; + const double extrapolationDeltaPhiFar_; + + const double maxEtaBarrel_; // barrel with |eta| < 0.7 + const double maxEtaOverlap_; // overlap with |eta| < 1.3, endcap after that + + // Handles + edm::ESHandle magneticField_; + edm::ESHandle cscGeometry_; + edm::ESHandle dtGeometry_; + + std::unique_ptr service_; + std::unique_ptr estimator_; + + const std::string propagatorName_; + + // In DT station 4 the top and bottom sectors are made of two chambers + // due to material requirements. Online is not split: + // Online sector 4 == offline sector 4 or 10, Online sector 10 == offline sector 10 or 14 + const std::vector matchingIds(const DTChamberId& stubId) const; + + // Match online-level CSCDetIds with offline + const std::vector matchingIds(const CSCDetId& stubId) const; + + // Logic to match L1 stubs to DT segments + const std::pair matchingStubSegment(const DTChamberId& stubId, + const l1t::MuonStubRef stub, + const DTRecSegment4DCollection& segments, + const l1t::TrackerMuonRef l1TkMuRef) const; + + // Logic to match L1 stubs to CSC segments + const std::pair matchingStubSegment(const CSCDetId& stubId, + const l1t::MuonStubRef stub, + const CSCSegmentCollection& segments, + const l1t::TrackerMuonRef l1TkMuRef) const; + + // Logic to extrapolate from nearby stations in the barrel + const std::pair extrapolateToNearbyStation(const int endingStation, + const std::map>& matchesInBarrel, + const DTRecSegment4DCollection& segments) const; + + const std::pair extrapolateMatch(const int bestStartingSegIndex, + const int endingStation, + const DTRecSegment4DCollection& segments) const; +}; +#endif From 9d7592fc16bdaaf222f91dd05c6eb512efe67f14 Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Thu, 28 Nov 2024 16:27:18 +0100 Subject: [PATCH 231/418] Streamline HLT L3 Muon reconstruction - execute either Inside-Out or Outside-In reconstruction first, resorting to the second pass only for candidates that require it - Tracks filtered by quality using some of the same criteria as HLT Muon ID - L1/L2 objects matched with bad L3 tracks are reused to seed the second reconstruction step - Changes implemented via 2 procModifiers for IO first (default) and OI first reconstruction - Implemented changes in SingleMu, TTbar, and ZMM workflows with .777 and .778 subfixes for IO and OI first reconstruction, respectively - Change 2026 to Run4 in Phase 2 workflows --- .../python/phase2L3MuonsOIFirst_cff.py | 4 + .../python/upgradeWorkflowComponents.py | 64 ++++++ ...se2L3FromL1TkMuonPixelSeedsFiltered_cfi.py | 7 + ...mL1TkMuonPixelTracksTrackingRegions_cfi.py | 7 + .../modules/hltPhase2L3MuonFilter_cfi.py | 24 ++ .../modules/hltPhase2L3MuonMerged_cfi.py | 47 +++- .../hltPhase2L3OISeedsFromL2Muons_cfi.py | 12 + .../sequences/HLTMuonsSequence_cfi.py | 42 +++- .../interface/phase2HLTMuonSelectorForL3.h | 81 +++++++ .../src/phase2HLTMuonSelectorForL3.cc | 206 ++++++++++++++++++ 10 files changed, 484 insertions(+), 10 deletions(-) create mode 100644 Configuration/ProcessModifiers/python/phase2L3MuonsOIFirst_cff.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonFilter_cfi.py create mode 100644 RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h create mode 100644 RecoMuon/L3TrackFinder/src/phase2HLTMuonSelectorForL3.cc diff --git a/Configuration/ProcessModifiers/python/phase2L3MuonsOIFirst_cff.py b/Configuration/ProcessModifiers/python/phase2L3MuonsOIFirst_cff.py new file mode 100644 index 0000000000000..715f86fef6af3 --- /dev/null +++ b/Configuration/ProcessModifiers/python/phase2L3MuonsOIFirst_cff.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +# this modifier is for enabling Phase 2 L3 Tracker Muon Outside-In first reconstruction +phase2L3MuonsOIFirst = cms.Modifier() diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 31543ebd3b380..e4a2cef035865 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -814,6 +814,70 @@ def condition(self, fragment, stepList, key, hasHarvest): upgradeWFs['ticl_v5_superclustering_mustache_pf'].step3 = {'--procModifiers': 'ticl_v5,ticl_superclustering_mustache_pf'} upgradeWFs['ticl_v5_superclustering_mustache_pf'].step4 = {'--procModifiers': 'ticl_v5,ticl_superclustering_mustache_pf'} +# Improved L2 seeding from L1Tk Muons and L3 Tracker Muon Inside-Out reconstruction first (Phase-2 Muon default) +class UpgradeWorkflow_phase2L2AndL3Muons(UpgradeWorkflow): + def setup_(self, step, stepName, stepDict, k, properties): + if ('Digi' in step and 'NoHLT' not in step) or ('HLTOnly' in step): + stepDict[stepName][k] = merge([self.step2, stepDict[step][k]]) + if 'RecoGlobal' in step: + stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) + if 'HARVESTGlobal' in step: + stepDict[stepName][k] = merge([self.step4, stepDict[step][k]]) + def condition(self, fragment, stepList, key, hasHarvest): + return (fragment=="ZMM_14" or 'SingleMu' in fragment or 'TTbar_14' in fragment) and 'Run4' in key + +upgradeWFs['phase2L2AndL3Muons'] = UpgradeWorkflow_phase2L2AndL3Muons( + steps = [ + 'HLTOnly', + 'DigiTrigger', + 'RecoGlobal', + 'HARVESTGlobal' + ], + PU = [ + 'HLTOnly', + 'DigiTrigger', + 'RecoGlobal', + 'HARVESTGlobal' + ], + suffix = '_phase2L2AndL3MuonsIOFirst', + offset = 0.777, +) +upgradeWFs['phase2L2AndL3Muons'].step2 = {'--procModifiers':'phase2L2AndL3Muons'} +upgradeWFs['phase2L2AndL3Muons'].step3 = {'--procModifiers':'phase2L2AndL3Muons'} +upgradeWFs['phase2L2AndL3Muons'].step4 = {'--procModifiers':'phase2L2AndL3Muons'} + +# Improved L2 seeding from L1Tk Muons and L3 Tracker Muon Outside-In reconstruction first +class UpgradeWorkflow_phase2L3MuonsOIFirst(UpgradeWorkflow): + def setup_(self, step, stepName, stepDict, k, properties): + if ('Digi' in step and 'NoHLT' not in step) or ('HLTOnly' in step): + stepDict[stepName][k] = merge([self.step2, stepDict[step][k]]) + if 'RecoGlobal' in step: + stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) + if 'HARVESTGlobal' in step: + stepDict[stepName][k] = merge([self.step4, stepDict[step][k]]) + def condition(self, fragment, stepList, key, hasHarvest): + return (fragment=="ZMM_14" or 'SingleMu' in fragment or 'TTbar_14' in fragment) and 'Run4' in key + +upgradeWFs['phase2L3MuonsOIFirst'] = UpgradeWorkflow_phase2L3MuonsOIFirst( + steps = [ + 'HLTOnly', + 'DigiTrigger', + 'RecoGlobal', + 'HARVESTGlobal' + ], + PU = [ + 'HLTOnly', + 'DigiTrigger', + 'RecoGlobal', + 'HARVESTGlobal' + ], + suffix = '_phase2L2AndL3MuonsOIFirst', + offset = 0.778, +) +upgradeWFs['phase2L3MuonsOIFirst'].step2 = {'--procModifiers':'phase2L2AndL3Muons,phase2L3MuonsOIFirst'} +upgradeWFs['phase2L3MuonsOIFirst'].step3 = {'--procModifiers':'phase2L2AndL3Muons,phase2L3MuonsOIFirst'} +upgradeWFs['phase2L3MuonsOIFirst'].step4 = {'--procModifiers':'phase2L2AndL3Muons,phase2L3MuonsOIFirst'} + # Track DNN workflows class UpgradeWorkflow_trackdnn(UpgradeWorkflow): def setup_(self, step, stepName, stepDict, k, properties): diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltIter2Phase2L3FromL1TkMuonPixelSeedsFiltered_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltIter2Phase2L3FromL1TkMuonPixelSeedsFiltered_cfi.py index deff17f466795..5ff8982912fe8 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltIter2Phase2L3FromL1TkMuonPixelSeedsFiltered_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltIter2Phase2L3FromL1TkMuonPixelSeedsFiltered_cfi.py @@ -33,3 +33,10 @@ nSeedsMax_E = cms.int32(20), src = cms.InputTag("hltIter2Phase2L3FromL1TkMuonPixelSeeds") ) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst +(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify( + hltIter2Phase2L3FromL1TkMuonPixelSeedsFiltered, + L1TkMu = "hltPhase2L3MuonFilter:L1TkMuToReuse" +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3FromL1TkMuonPixelTracksTrackingRegions_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3FromL1TkMuonPixelTracksTrackingRegions_cfi.py index 0a3b8c684c74c..347df20dedc9a 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3FromL1TkMuonPixelTracksTrackingRegions_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3FromL1TkMuonPixelTracksTrackingRegions_cfi.py @@ -22,3 +22,10 @@ zErrorVetex = cms.double(0.2) ) ) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst +(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify( + hltPhase2L3FromL1TkMuonPixelTracksTrackingRegions.RegionPSet, + input = "hltPhase2L3MuonFilter:L1TkMuToReuse" +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonFilter_cfi.py new file mode 100644 index 0000000000000..bfae8f433951f --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonFilter_cfi.py @@ -0,0 +1,24 @@ +import FWCore.ParameterSet.Config as cms + +hltPhase2L3MuonFilter = cms.EDProducer("phase2HLTMuonSelectorForL3", + l1TkMuons = cms.InputTag("l1tTkMuonsGmt"), + l2MuonsUpdVtx = cms.InputTag("hltL2MuonsFromL1TkMuon:UpdatedAtVtx"), + l3Tracks = cms.InputTag("hltIter2Phase2L3FromL1TkMuonMerged"), + IOFirst = cms.bool(True), + matchingDr = cms.double(0.02), + applyL3Filters = cms.bool(True), + MinNhits = cms.int32(1), + MaxNormalizedChi2 = cms.double(5.0), + MinNhitsMuons = cms.int32(0), + MinNhitsPixel = cms.int32(1), + MinNhitsTracker = cms.int32(6), + MaxPtDifference = cms.double(999.0), +) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst +(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify( + hltPhase2L3MuonFilter, + l3Tracks = "hltPhase2L3OIMuonTrackSelectionHighPurity", + IOFirst = False, +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonMerged_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonMerged_cfi.py index 710bf4a1eaac2..6a9c18040ae11 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonMerged_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonMerged_cfi.py @@ -8,18 +8,47 @@ MinFound = cms.int32(3), MinPT = cms.double(0.05), ShareFrac = cms.double(0.19), - TrackProducers = cms.VInputTag("hltPhase2L3OIMuonTrackSelectionHighPurity", "hltIter2Phase2L3FromL1TkMuonMerged"), + TrackProducers = cms.VInputTag( + "hltPhase2L3OIMuonTrackSelectionHighPurity", + "hltIter2Phase2L3FromL1TkMuonMerged", + ), allowFirstHitShare = cms.bool(True), copyExtras = cms.untracked.bool(True), copyMVA = cms.bool(False), hasSelector = cms.vint32(0, 0), indivShareFrac = cms.vdouble(1.0, 1.0), - newQuality = cms.string('confirmed'), - selectedTrackQuals = cms.VInputTag("hltPhase2L3OIMuonTrackSelectionHighPurity", "hltIter2Phase2L3FromL1TkMuonMerged"), - setsToMerge = cms.VPSet(cms.PSet( - pQual = cms.bool(False), - tLists = cms.vint32(0, 1) - )), - trackAlgoPriorityOrder = cms.string('hltESPTrackAlgoPriorityOrder'), - writeOnlyTrkQuals = cms.bool(False) + newQuality = cms.string("confirmed"), + selectedTrackQuals = cms.VInputTag( + "hltPhase2L3OIMuonTrackSelectionHighPurity", + "hltIter2Phase2L3FromL1TkMuonMerged", + ), + setsToMerge = cms.VPSet(cms.PSet(pQual = cms.bool(False), tLists = cms.vint32(0, 1))), + trackAlgoPriorityOrder = cms.string("hltESPTrackAlgoPriorityOrder"), + writeOnlyTrkQuals = cms.bool(False), +) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +phase2L2AndL3Muons.toModify( + hltPhase2L3MuonMerged, + TrackProducers = cms.VInputTag( + "hltPhase2L3OIMuonTrackSelectionHighPurity", + "hltPhase2L3MuonFilter:L3IOTracksFiltered", + ), + selectedTrackQuals = cms.VInputTag( + "hltPhase2L3OIMuonTrackSelectionHighPurity", + "hltPhase2L3MuonFilter:L3IOTracksFiltered", + ), +) + +from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst +(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify( + hltPhase2L3MuonMerged, + TrackProducers = cms.VInputTag( + "hltPhase2L3MuonFilter:L3OITracksFiltered", + "hltIter2Phase2L3FromL1TkMuonMerged", + ), + selectedTrackQuals = cms.VInputTag( + "hltPhase2L3MuonFilter:L3OITracksFiltered", + "hltIter2Phase2L3FromL1TkMuonMerged", + ), ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3OISeedsFromL2Muons_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3OISeedsFromL2Muons_cfi.py index 3ec2fa2b86f9f..b67e7953e445e 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3OISeedsFromL2Muons_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3OISeedsFromL2Muons_cfi.py @@ -39,3 +39,15 @@ tsosDiff1 = cms.double(0.2), tsosDiff2 = cms.double(0.02) ) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +phase2L2AndL3Muons.toModify( + hltPhase2L3OISeedsFromL2Muons, + src = "hltPhase2L3MuonFilter:L2MuToReuse" +) + +from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst +(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify( + hltPhase2L3OISeedsFromL2Muons, + src ="hltL2MuonsFromL1TkMuon:UpdatedAtVtx" +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTMuonsSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTMuonsSequence_cfi.py index 22434b77a2ab3..0a0bb00ecc56b 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTMuonsSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTMuonsSequence_cfi.py @@ -7,4 +7,44 @@ from ..sequences.HLTPhase2L3MuonsSequence_cfi import * from ..sequences.HLTPhase2L3OISequence_cfi import * -HLTMuonsSequence = cms.Sequence(HLTL2MuonsFromL1TkSequence+HLTPhase2L3OISequence+HLTPhase2L3FromL1TkSequence+HLTIter0Phase2L3FromL1TkSequence+HLTIter2Phase2L3FromL1TkSequence+HLTPhase2L3MuonsSequence) +HLTMuonsSequence = cms.Sequence( + HLTL2MuonsFromL1TkSequence + + HLTPhase2L3OISequence + + HLTPhase2L3FromL1TkSequence + + HLTIter0Phase2L3FromL1TkSequence + + HLTIter2Phase2L3FromL1TkSequence + + HLTPhase2L3MuonsSequence +) + +from ..modules.hltPhase2L3MuonFilter_cfi import * + +# The IO first HLT Muons sequence +Phase2HLTMuonsSequenceIOFirst = cms.Sequence( + HLTL2MuonsFromL1TkSequence + + HLTPhase2L3FromL1TkSequence + + HLTIter0Phase2L3FromL1TkSequence + + HLTIter2Phase2L3FromL1TkSequence + + hltPhase2L3MuonFilter + + HLTPhase2L3OISequence + + HLTPhase2L3MuonsSequence +) +# The OI first HLT Muons sequence +Phase2HLTMuonsSequenceOIFirst = cms.Sequence( + HLTL2MuonsFromL1TkSequence + + HLTPhase2L3OISequence + + hltPhase2L3MuonFilter + + HLTPhase2L3FromL1TkSequence + + HLTIter0Phase2L3FromL1TkSequence + + HLTIter2Phase2L3FromL1TkSequence + + HLTPhase2L3MuonsSequence +) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons + +phase2L2AndL3Muons.toReplaceWith(HLTMuonsSequence, Phase2HLTMuonsSequenceIOFirst) + +from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst + +(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toReplaceWith( + HLTMuonsSequence, Phase2HLTMuonsSequenceOIFirst +) diff --git a/RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h b/RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h new file mode 100644 index 0000000000000..9a807f7df1c28 --- /dev/null +++ b/RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h @@ -0,0 +1,81 @@ +#ifndef RecoMuon_L3TrackFinder_phase2HLTMuonSelectorForL3_H +#define RecoMuon_L3TrackFinder_phase2HLTMuonSelectorForL3_H + +/** \class phase2HLTMuonSelectorForL3 + * + * Phase-2 L3 selector for Muons + * This module allows to choose whether to perform + * Inside-Out or Outside-In reconstruction first for L3 Muons, + * performing the second pass only on candidates that were not + * reconstructed or whose quality was not good enough. Required + * quality criteria are configurable, the default parameters + * match the requests of HLT Muon ID. + * When Inside-Out reconstruction is performed first, the resulting + * L3 Tracks are filtered and geometrically matched with L2 + * Standalone Muons. If either the match is unsuccessful, or + * the L3 track is not of good-enough quality, the associated + * Standalone Muon will be re-used to seed the Outside-In step. + * The Outside-In first approach follows a similar logic by + * matching the L3 tracks directly with L1 Tracker Muons. + * Then, when either the match fails or the track is not of + * good-enough quality, the L1 Tracker Muon is re-used to seed + * the Inside-Out reconstruction. + * + * \author Luca Ferragina (INFN BO), 2024 + */ + +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/Utilities/interface/ESGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "DataFormats/L1TMuonPhase2/interface/TrackerMuon.h" +#include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" + +namespace edm { + class ParameterSet; + class Event; + class EventSetup; +} // End namespace edm + +class phase2HLTMuonSelectorForL3 : public edm::stream::EDProducer<> { +public: + // Constructor + phase2HLTMuonSelectorForL3(const edm::ParameterSet&); + + // Destructor + ~phase2HLTMuonSelectorForL3() override = default; + + // Default values + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + + // Select objects to be reused + void produce(edm::Event&, const edm::EventSetup&) override; + +private: + const edm::EDGetTokenT l1TkMuCollToken_; + const edm::EDGetTokenT l2MuCollectionToken_; + const edm::EDGetTokenT l3TrackCollectionToken_; + + const bool IOFirst_; + const double matchingDr_; + const bool applyL3Filters_; + const double maxNormalizedChi2_, maxPtDifference_; + const int minNhits_, minNhitsMuons_, minNhitsPixel_, minNhitsTracker_; + + // Check L3 inner track quality parameters + const bool rejectL3Track(l1t::TrackerMuonRef l1TkMuRef, reco::TrackRef l3TrackRef) const; +}; + +#endif diff --git a/RecoMuon/L3TrackFinder/src/phase2HLTMuonSelectorForL3.cc b/RecoMuon/L3TrackFinder/src/phase2HLTMuonSelectorForL3.cc new file mode 100644 index 0000000000000..a8090c8d149ac --- /dev/null +++ b/RecoMuon/L3TrackFinder/src/phase2HLTMuonSelectorForL3.cc @@ -0,0 +1,206 @@ +/** \class phase2HLTMuonSelectorForL3 + * See header file for a description of this class + * \author Luca Ferragina (INFN BO), 2024 + */ +#include "RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DataFormats/Math/interface/deltaR.h" + +#include + +// Constructor +phase2HLTMuonSelectorForL3::phase2HLTMuonSelectorForL3(const edm::ParameterSet& iConfig) + : l1TkMuCollToken_(consumes(iConfig.getParameter("l1TkMuons"))), + l2MuCollectionToken_(consumes(iConfig.getParameter("l2MuonsUpdVtx"))), + l3TrackCollectionToken_(consumes(iConfig.getParameter("l3Tracks"))), + IOFirst_(iConfig.getParameter("IOFirst")), + matchingDr_(iConfig.getParameter("matchingDr")), + applyL3Filters_(iConfig.getParameter("applyL3Filters")), + maxNormalizedChi2_(iConfig.getParameter("MaxNormalizedChi2")), + maxPtDifference_(iConfig.getParameter("MaxPtDifference")), + minNhits_(iConfig.getParameter("MinNhits")), + minNhitsMuons_(iConfig.getParameter("MinNhitsMuons")), + minNhitsPixel_(iConfig.getParameter("MinNhitsPixel")), + minNhitsTracker_(iConfig.getParameter("MinNhitsTracker")) { + if (IOFirst_) { + produces("L2MuToReuse"); + produces("L3IOTracksFiltered"); + } else { + produces("L1TkMuToReuse"); + produces("L3OITracksFiltered"); + } +} + +void phase2HLTMuonSelectorForL3::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("l1TkMuons", edm::InputTag("l1tTkMuonsGmt")); + desc.add("l2MuonsUpdVtx", edm::InputTag("hltL2MuonsFromL1TkMuon", "UpdatedAtVtx")); + desc.add("l3Tracks", edm::InputTag("hltIter2Phase2L3FromL1TkMuonMerged")); + desc.add("IOFirst", true); + desc.add("matchingDr", 0.02); + desc.add("applyL3Filters", true); + desc.add("MinNhits", 1); + desc.add("MaxNormalizedChi2", 5.0); + desc.add("MinNhitsMuons", 0); + desc.add("MinNhitsPixel", 1); + desc.add("MinNhitsTracker", 6); + desc.add("MaxPtDifference", 999.0); //relative difference + descriptions.add("phase2HLTMuonSelectorForL3", desc); +} + +// IO first -> collection of L2 muons not already matched to a L3 inner track +// OI first -> collection of L1Tk Muons not matched to a L3 track +void phase2HLTMuonSelectorForL3::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { + const std::string metname = "RecoMuon|phase2HLTMuonSelectorForL3"; + + // L3 tracks (IO or OI) + auto l3TracksCollectionH = iEvent.getHandle(l3TrackCollectionToken_); + + if (IOFirst_) { + LogDebug(metname) << "Inside-Out reconstruction done first, looping over L2 muons"; + + // L2 Muons collection + auto const l2MuonsCollectionH = iEvent.getHandle(l2MuCollectionToken_); + + // Output + std::unique_ptr L2MuToReuse = std::make_unique(); + std::unique_ptr L3IOTracksFiltered = std::make_unique(); + + // Indexes of good L3 Tracks + std::unordered_set goodL3Indexes; + + // Loop over L2 Muons + for (size_t l2MuIndex = 0; l2MuIndex != l2MuonsCollectionH->size(); ++l2MuIndex) { + reco::TrackRef l2MuRef(l2MuonsCollectionH, l2MuIndex); + bool reuseL2 = true; + + // Extract L1TkMu from L2 Muon + edm::RefToBase seedRef = l2MuRef->seedRef(); + edm::Ref l2Seed = seedRef.castTo>(); + l1t::TrackerMuonRef l1TkMuRef = l2Seed->l1TkMu(); + + // Check validity of cast (actually found a L1TkMu) + if (l1TkMuRef.isNonnull()) { + // Loop over L3 tracks + LogDebug(metname) << "Looping over L3 tracks"; + for (size_t l3MuIndex = 0; l3MuIndex != l3TracksCollectionH->size(); ++l3MuIndex) { + reco::TrackRef l3TrackRef(l3TracksCollectionH, l3MuIndex); + bool rejectL3 = true; + // Filter L3 Tracks + if (applyL3Filters_) { + LogDebug(metname) << "Checking L3 Track quality"; + rejectL3 = rejectL3Track(l1TkMuRef, l3TrackRef); + if (!rejectL3) { + LogDebug(metname) << "Adding good quality L3 IO track to filtered collection"; + goodL3Indexes.insert(l3MuIndex); + } + } + // Check match in dR + float dR2 = deltaR2(l1TkMuRef->phEta(), l1TkMuRef->phPhi(), l3TrackRef->eta(), l3TrackRef->phi()); + LogDebug(metname) << "deltaR2: " << dR2; + if (dR2 < matchingDr_ * matchingDr_) { + LogDebug(metname) << "Found L2 muon that matches the L3 track"; + reuseL2 = applyL3Filters_ ? rejectL3 : false; + LogDebug(metname) << "Reuse L2: " << reuseL2; + } + } // End loop over L3 Tracks + } else { + LogDebug(metname) << "Found L2 muon without an associated L1TkMu"; + } + if (reuseL2) { + LogDebug(metname) << "Found a L2 muon to be reused"; + L2MuToReuse->push_back(*l2MuRef); + } + } // End loop over L2 Muons + + // Fill L3 IO Tracks Filtered + for (const size_t index : goodL3Indexes) { + L3IOTracksFiltered->push_back(*(reco::TrackRef(l3TracksCollectionH, index))); + } + + LogDebug(metname) << "Placing L2 Muons to be reused in the event"; + iEvent.put(std::move(L2MuToReuse), "L2MuToReuse"); + LogDebug(metname) << "Placing good quality L3 IO Tracks in the event"; + iEvent.put(std::move(L3IOTracksFiltered), "L3IOTracksFiltered"); + } else { + LogDebug(metname) << "Outside-In reconstruction done first, looping over L1Tk muons"; + + // L1Tk Muons collection + auto const l1TkMuonsCollectionH = iEvent.getHandle(l1TkMuCollToken_); + + // Output + std::unique_ptr L1TkMuToReuse = std::make_unique(); + std::unique_ptr L3OITracksFiltered = std::make_unique(); + + // Indexes of good L3 Tracks + std::unordered_set goodL3Indexes; + + // Loop over L1Tk Muons + for (size_t l1TkMuIndex = 0; l1TkMuIndex != l1TkMuonsCollectionH->size(); ++l1TkMuIndex) { + l1t::TrackerMuonRef l1TkMuRef(l1TkMuonsCollectionH, l1TkMuIndex); + bool reuseL1TkMu = true; + + // Loop over L3 tracks + LogDebug(metname) << "Looping over L3 tracks"; + for (size_t l3MuIndex = 0; l3MuIndex != l3TracksCollectionH->size(); ++l3MuIndex) { + reco::TrackRef l3TrackRef(l3TracksCollectionH, l3MuIndex); + bool rejectL3 = true; + // Filter L3 Tracks + if (applyL3Filters_) { + LogDebug(metname) << "Checking L3 Track quality"; + rejectL3 = rejectL3Track(l1TkMuRef, l3TrackRef); + if (!rejectL3) { + LogDebug(metname) << "Adding good quality L3 OI track to filtered collection"; + goodL3Indexes.insert(l3MuIndex); + } + } + // Check match in dR + float dR2 = deltaR2(l1TkMuRef->phEta(), l1TkMuRef->phPhi(), l3TrackRef->eta(), l3TrackRef->phi()); + LogDebug(metname) << "deltaR2: " << dR2; + if (dR2 < matchingDr_ * matchingDr_) { + LogDebug(metname) << "Found L1TkMu that matches the L3 track"; + reuseL1TkMu = applyL3Filters_ ? rejectL3 : false; + LogDebug(metname) << "Reuse L1TkMu: " << reuseL1TkMu; + } + } // End loop over L3 Tracks + if (reuseL1TkMu) { + LogDebug(metname) << "Found a L1TkMu to be reused"; + L1TkMuToReuse->push_back(*l1TkMuRef); + } + } // End loop over L1Tk Muons + + // Fill L3 OI Tracks Filtered + for (const size_t index : goodL3Indexes) { + L3OITracksFiltered->push_back(*(reco::TrackRef(l3TracksCollectionH, index))); + } + + LogDebug(metname) << "Placing L1Tk Muons to be reused in the event"; + iEvent.put(std::move(L1TkMuToReuse), "L1TkMuToReuse"); + LogDebug(metname) << "Placing good quality L3 OI Tracks in the event"; + iEvent.put(std::move(L3OITracksFiltered), "L3OITracksFiltered"); + } +} + +const bool phase2HLTMuonSelectorForL3::rejectL3Track(l1t::TrackerMuonRef l1TkMuRef, reco::TrackRef l3TrackRef) const { + const std::string metname = "RecoMuon|phase2HLTMuonSelectorForL3"; + + bool nHitsCut = l3TrackRef->numberOfValidHits() < minNhits_; + bool chi2Cut = l3TrackRef->normalizedChi2() > maxNormalizedChi2_; + bool nHitsMuonsCut = l3TrackRef->hitPattern().numberOfValidMuonHits() < minNhitsMuons_; + bool nHitsPixelCut = l3TrackRef->hitPattern().numberOfValidPixelHits() < minNhitsPixel_; + bool nHitsTrackerCut = l3TrackRef->hitPattern().trackerLayersWithMeasurement() < minNhitsTracker_; + bool ptCut = std::abs(l3TrackRef->pt() - l1TkMuRef->phPt()) > maxPtDifference_ * l3TrackRef->pt(); + + bool reject = nHitsCut or chi2Cut or nHitsMuonsCut or nHitsPixelCut or nHitsTrackerCut or ptCut; + + LogDebug(metname) << "nHits: " << l3TrackRef->numberOfValidHits() << " | chi2: " << l3TrackRef->normalizedChi2() + << " | nHitsMuon: " << l3TrackRef->hitPattern().numberOfValidMuonHits() + << " | nHitsPixel: " << l3TrackRef->hitPattern().numberOfValidPixelHits() + << " | nHitsTracker: " << l3TrackRef->hitPattern().trackerLayersWithMeasurement(); + LogDebug(metname) << "Reject L3 Track: " << reject; + return reject; +} + +DEFINE_FWK_MODULE(phase2HLTMuonSelectorForL3); From 2eab640ebf0e113301a5ae2d982c99c1669214c8 Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Fri, 29 Nov 2024 11:07:09 +0100 Subject: [PATCH 232/418] Implement validation for new Phase 2 muon workflows --- .../EventContent/python/EventContent_cff.py | 6 +++ Validation/RecoMuon/python/associators_cff.py | 48 +++++++++++++++++ .../RecoMuon/python/muonValidationHLT_cff.py | 51 +++++++++++++++++++ 3 files changed, 105 insertions(+) diff --git a/Configuration/EventContent/python/EventContent_cff.py b/Configuration/EventContent/python/EventContent_cff.py index 927c439e01b94..b73c7a4626594 100644 --- a/Configuration/EventContent/python/EventContent_cff.py +++ b/Configuration/EventContent/python/EventContent_cff.py @@ -703,6 +703,12 @@ def SwapKeepAndDrop(l): 'keep *_hltPhase2L3MuonsNoID_*_*', 'keep *_hltPhase2L3Muons_*_*']) +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +(phase2_muon & phase2L2AndL3Muons).toModify(FEVTDEBUGHLTEventContent, + outputCommands = FEVTDEBUGHLTEventContent.outputCommands + [ + 'keep *_hltPhase2L3MuonFilter_*_*' + ]) + phase2_hgcal.toModify(FEVTDEBUGHLTEventContent, outputCommands = FEVTDEBUGHLTEventContent.outputCommands + TICL_FEVTHLT.outputCommands) diff --git a/Validation/RecoMuon/python/associators_cff.py b/Validation/RecoMuon/python/associators_cff.py index 5c2b16a5ca16c..8bf86963bdda6 100644 --- a/Validation/RecoMuon/python/associators_cff.py +++ b/Validation/RecoMuon/python/associators_cff.py @@ -265,6 +265,24 @@ UseTracker = True, UseMuon = False ) +# L2 muons to reuse (IO first only) +Phase2tpToL2MuonToReuseAssociation = MABHhlt.clone( + tracksTag = 'hltPhase2L3MuonFilter:L2MuToReuse', + UseTracker = False, + UseMuon = True +) +# L3 IO inner tracks filtered (IO first only) +Phase2tpToL3IOTkFilteredAssociation = MABHhlt.clone( + tracksTag = 'hltPhase2L3MuonFilter:L3IOTracksFiltered', + UseTracker = True, + UseMuon = False +) +# L3 OI inner tracks filtered (OI first only) +Phase2tpToL3OITkFilteredAssociation = MABHhlt.clone( + tracksTag = 'hltPhase2L3MuonFilter:L3OITracksFiltered', + UseTracker = True, + UseMuon = False +) # L3 inner tracks merged Phase2tpToL3TkMergedAssociation = MABHhlt.clone( tracksTag = 'hltPhase2L3MuonMerged', @@ -408,6 +426,33 @@ from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon phase2_muon.toReplaceWith(muonAssociationHLT_seq, Phase2MuonAssociationHLT_seq) +# Inside-Out first +Phase2IOFirstMuonAssociationHLT_seq = cms.Sequence( + hltPhase2L2MuonSeedTracks+Phase2tpToL2SeedAssociation + +Phase2tpToL2MuonAssociation+Phase2tpToL2MuonUpdAssociation + +Phase2tpToL3IOTkAssociation+Phase2tpToL3OITkAssociation + +Phase2tpToL2MuonToReuseAssociation+Phase2tpToL3IOTkFilteredAssociation + +Phase2tpToL3TkMergedAssociation+Phase2tpToL3GlbMuonMergedAssociation + +hltPhase2L3MuonNoIdTracks+Phase2tpToL3MuonNoIdAssociation + +hltPhase2L3MuonIdTracks+Phase2tpToL3MuonIdAssociation + ) +# Outside-In first +Phase2OIFirstMuonAssociationHLT_seq = cms.Sequence( + hltPhase2L2MuonSeedTracks+Phase2tpToL2SeedAssociation + +Phase2tpToL2MuonAssociation+Phase2tpToL2MuonUpdAssociation + +Phase2tpToL3OITkAssociation+Phase2tpToL3OITkFilteredAssociation + +Phase2tpToL3IOTkAssociation+Phase2tpToL3TkMergedAssociation + +Phase2tpToL3GlbMuonMergedAssociation + +hltPhase2L3MuonNoIdTracks+Phase2tpToL3MuonNoIdAssociation + +hltPhase2L3MuonIdTracks+Phase2tpToL3MuonIdAssociation + ) + +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +phase2L2AndL3Muons.toReplaceWith(muonAssociationHLT_seq, Phase2IOFirstMuonAssociationHLT_seq) + +from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst +(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toReplaceWith(muonAssociationHLT_seq, Phase2OIFirstMuonAssociationHLT_seq) + # fastsim has no hlt specific dt hit collection from Configuration.Eras.Modifier_fastSim_cff import fastSim _DTrechitTag = SimMuon.MCTruth.MuonAssociatorByHits_cfi.muonAssociatorByHits.DTrechitTag @@ -427,6 +472,9 @@ fastSim.toModify(Phase2tpToL2MuonUpdAssociation, DTrechitTag = _DTrechitTag) fastSim.toModify(Phase2tpToL3IOTkAssociation, DTrechitTag = _DTrechitTag) fastSim.toModify(Phase2tpToL3OITkAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL2MuonToReuseAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL3IOTkFilteredAssociation, DTrechitTag = _DTrechitTag) +fastSim.toModify(Phase2tpToL3OITkFilteredAssociation, DTrechitTag = _DTrechitTag) fastSim.toModify(Phase2tpToL3TkMergedAssociation, DTrechitTag = _DTrechitTag) fastSim.toModify(Phase2tpToL3GlbMuonMergedAssociation, DTrechitTag = _DTrechitTag) fastSim.toModify(Phase2tpToL3MuonNoIdAssociation, DTrechitTag = _DTrechitTag) diff --git a/Validation/RecoMuon/python/muonValidationHLT_cff.py b/Validation/RecoMuon/python/muonValidationHLT_cff.py index f677606f90065..50c8d3b52cfd7 100644 --- a/Validation/RecoMuon/python/muonValidationHLT_cff.py +++ b/Validation/RecoMuon/python/muonValidationHLT_cff.py @@ -101,6 +101,24 @@ label = ('hltPhase2L3OIMuonTrackSelectionHighPurity',), muonHistoParameters = trkMuonHistoParameters ) +# L2 muons to reuse (IO first only) +Phase2L2MuToReuseV = MTVhlt.clone( + associatormap = 'Phase2tpToL2MuonToReuseAssociation', + label = ('hltPhase2L3MuonFilter:L2MuToReuse',), + muonHistoParameters = staMuonHistoParameters +) +# L3 IO inner tracks filtered (IO first only) +Phase2l3IOTkFilteredV = MTVhlt.clone( + associatormap = 'Phase2tpToL3IOTkFilteredAssociation', + label = ('hltPhase2L3MuonFilter:L3IOTracksFiltered',), + muonHistoParameters = trkMuonHistoParameters +) +# L3 OI inner tracks filtered (OI first only) +Phase2l3OITkFilteredV = MTVhlt.clone( + associatormap = 'Phase2tpToL3OITkFilteredAssociation', + label = ('hltPhase2L3MuonFilter:L3OITracksFiltered',), + muonHistoParameters = trkMuonHistoParameters +) # L3 inner tracks merged Phase2l3TkMergedV = MTVhlt.clone( associatormap = 'Phase2tpToL3TkMergedAssociation', @@ -157,10 +175,43 @@ +Phase2l3MuNoIdTrackV +Phase2l3MuIdTrackV ) +# Inside-Out first sequence +Phase2IOFirstMuonValidationHLT_seq = cms.Sequence(muonAssociationHLT_seq + +Phase2l2MuSeedV + +Phase2l2MuV + +Phase2l2MuUpdV + +Phase2l3IOTkV + +Phase2L2MuToReuseV + +Phase2l3IOTkFilteredV + +Phase2l3OITkV + +Phase2l3TkMergedV + +Phase2l3GlbMuonV + +Phase2l3MuNoIdTrackV + +Phase2l3MuIdTrackV + ) +# Outside-In first sequence +Phase2OIFirstMuonValidationHLT_seq = cms.Sequence(muonAssociationHLT_seq + +Phase2l2MuSeedV + +Phase2l2MuV + +Phase2l2MuUpdV + +Phase2l3OITkV + +Phase2l3OITkFilteredV + +Phase2l3IOTkV + +Phase2l3TkMergedV + +Phase2l3GlbMuonV + +Phase2l3MuNoIdTrackV + +Phase2l3MuIdTrackV + ) from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon phase2_muon.toReplaceWith(muonValidationHLT_seq, Phase2MuonValidationHLT_seq) +from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons +phase2L2AndL3Muons.toReplaceWith(muonValidationHLT_seq, Phase2IOFirstMuonValidationHLT_seq) + +from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst +(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toReplaceWith(muonValidationHLT_seq, Phase2OIFirstMuonValidationHLT_seq) + recoMuonValidationHLT_seq = cms.Sequence( cms.SequencePlaceholder("TPmu") + muonValidationHLT_seq From 4762785992908b7fffe9788f1ee3f85cf11ba8f7 Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Fri, 29 Nov 2024 12:01:14 +0100 Subject: [PATCH 233/418] Formatting muon sequences --- .../paths/HLT_AK4PFPuppiJet520_cfi.py | 14 +++- ...leMediumChargedIsoPFTauHPS40_eta2p1_cfi.py | 19 +++++- ...oubleMediumDeepTauPFTauHPS35_eta2p1_cfi.py | 19 +++++- ...ets128_DoublePFPuppiBTagDeepCSV_2p4_cfi.py | 17 ++++- ...28_DoublePFPuppiBTagDeepFlavour_2p4_cfi.py | 17 ++++- ...oseDeepTauPFTauHPS27_eta2p1_CrossL1_cfi.py | 55 +++++++++------- .../paths/HLT_IsoMu24_FromL1TkMuon_cfi.py | 66 ++++++++----------- ...soVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py | 46 ++++++------- .../paths/HLT_Mu37_Mu27_FromL1TkMuon_cfi.py | 26 ++++---- .../paths/HLT_Mu50_FromL1TkMuon_cfi.py | 24 +++---- ..._30_30_TriplePFPuppiBTagDeepCSV_2p4_cfi.py | 20 +++++- ...30_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py | 20 +++++- ..._45_40_TriplePFPuppiBTagDeepCSV_2p4_cfi.py | 22 ++++++- ...40_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py | 22 ++++++- .../HLT_75e33/paths/HLT_PFPuppiHT1070_cfi.py | 15 ++++- ..._PFPuppiMETTypeOne140_PFPuppiMHT140_cfi.py | 19 +++++- .../HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py | 29 ++++---- .../python/HLT_75e33/paths/MC_BTV_cfi.py | 13 +++- .../python/HLT_75e33/paths/MC_JME_cfi.py | 14 +++- .../HLTIter0Phase2L3FromL1TkSequence_cfi.py | 8 ++- .../HLTIter2Phase2L3FromL1TkSequence_cfi.py | 16 ++++- .../HLTPhase2L3FromL1TkSequence_cfi.py | 10 ++- .../sequences/HLTPhase2L3MuonsSequence_cfi.py | 8 ++- .../sequences/HLTPhase2L3OISequence_cfi.py | 8 ++- 24 files changed, 382 insertions(+), 145 deletions(-) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_AK4PFPuppiJet520_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_AK4PFPuppiJet520_cfi.py index c75c77b387b54..e835af21a0c6a 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_AK4PFPuppiJet520_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_AK4PFPuppiJet520_cfi.py @@ -12,4 +12,16 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_AK4PFPuppiJet520 = cms.Path(HLTBeginSequence+hltL1SeedsForPuppiJetFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+hltSingleAK4PFPuppiJet520+HLTEndSequence) +HLT_AK4PFPuppiJet520 = cms.Path( + HLTBeginSequence + + hltL1SeedsForPuppiJetFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + hltSingleAK4PFPuppiJet520 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleMediumChargedIsoPFTauHPS40_eta2p1_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleMediumChargedIsoPFTauHPS40_eta2p1_cfi.py index 92836e69259a3..f9cfbf2193bcc 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleMediumChargedIsoPFTauHPS40_eta2p1_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleMediumChargedIsoPFTauHPS40_eta2p1_cfi.py @@ -17,4 +17,21 @@ from ..sequences.HLTRawToDigiSequence_cfi import * from ..modules.hltL1SeedForDoublePuppiTau_cfi import * -HLT_DoubleMediumChargedIsoPFTauHPS40_eta2p1 = cms.Path(HLTBeginSequence+hltL1SeedForDoublePuppiTau+hltPreDoublePFTauHPS+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFJetsReconstruction+hltAK4PFJetsForTaus+HLTPFTauHPS+HLTHPSMediumChargedIsoPFTauSequence+hltHpsSelectedPFTausTrackPt1MediumChargedIsolation+hltHpsDoublePFTau40TrackPt1MediumChargedIsolation+HLTEndSequence) +HLT_DoubleMediumChargedIsoPFTauHPS40_eta2p1 = cms.Path( + HLTBeginSequence + + hltL1SeedForDoublePuppiTau + + hltPreDoublePFTauHPS + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFJetsReconstruction + + hltAK4PFJetsForTaus + + HLTPFTauHPS + + HLTHPSMediumChargedIsoPFTauSequence + + hltHpsSelectedPFTausTrackPt1MediumChargedIsolation + + hltHpsDoublePFTau40TrackPt1MediumChargedIsolation + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleMediumDeepTauPFTauHPS35_eta2p1_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleMediumDeepTauPFTauHPS35_eta2p1_cfi.py index 2e43a58e60c58..0572ea3683432 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleMediumDeepTauPFTauHPS35_eta2p1_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleMediumDeepTauPFTauHPS35_eta2p1_cfi.py @@ -17,4 +17,21 @@ from ..sequences.HLTRawToDigiSequence_cfi import * from ..modules.hltL1SeedForDoublePuppiTau_cfi import * -HLT_DoubleMediumDeepTauPFTauHPS35_eta2p1 = cms.Path(HLTBeginSequence+hltL1SeedForDoublePuppiTau+hltPreDoublePFTauHPS+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFJetsReconstruction+hltAK4PFJetsForTaus+HLTPFTauHPS+HLTHPSDeepTauPFTauSequence+hltHpsSelectedPFTausMediumDitauWPDeepTau+hltHpsDoublePFTau35MediumDitauWPDeepTau+HLTEndSequence) +HLT_DoubleMediumDeepTauPFTauHPS35_eta2p1 = cms.Path( + HLTBeginSequence + + hltL1SeedForDoublePuppiTau + + hltPreDoublePFTauHPS + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFJetsReconstruction + + hltAK4PFJetsForTaus + + HLTPFTauHPS + + HLTHPSDeepTauPFTauSequence + + hltHpsSelectedPFTausMediumDitauWPDeepTau + + hltHpsDoublePFTau35MediumDitauWPDeepTau + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepCSV_2p4_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepCSV_2p4_cfi.py index a81a315dd5dc4..59475918ec8ae 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepCSV_2p4_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepCSV_2p4_cfi.py @@ -15,4 +15,19 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepCSV_2p4 = cms.Path(HLTBeginSequence+hltL1SeedsForDoublePuppiJetBtagFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+hltDoublePFPuppiJets128MaxEta2p4+hltDoublePFPuppiJets128Eta2p4MaxDeta1p6+HLTBtagDeepCSVSequencePFPuppiModEta2p4+hltBTagPFPuppiDeepCSV0p865DoubleEta2p4+HLTEndSequence) +HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepCSV_2p4 = cms.Path( + HLTBeginSequence + + hltL1SeedsForDoublePuppiJetBtagFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + hltDoublePFPuppiJets128MaxEta2p4 + + hltDoublePFPuppiJets128Eta2p4MaxDeta1p6 + + HLTBtagDeepCSVSequencePFPuppiModEta2p4 + + hltBTagPFPuppiDeepCSV0p865DoubleEta2p4 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepFlavour_2p4_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepFlavour_2p4_cfi.py index 72fb6c9aeac5a..d2a743a90b505 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepFlavour_2p4_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepFlavour_2p4_cfi.py @@ -15,4 +15,19 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepFlavour_2p4 = cms.Path(HLTBeginSequence+hltL1SeedsForDoublePuppiJetBtagFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+hltDoublePFPuppiJets128MaxEta2p4+hltDoublePFPuppiJets128Eta2p4MaxDeta1p6+HLTBtagDeepFlavourSequencePFPuppiModEta2p4+hltBTagPFPuppiDeepFlavour0p935DoubleEta2p4+HLTEndSequence) +HLT_DoublePFPuppiJets128_DoublePFPuppiBTagDeepFlavour_2p4 = cms.Path( + HLTBeginSequence + + hltL1SeedsForDoublePuppiJetBtagFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + hltDoublePFPuppiJets128MaxEta2p4 + + hltDoublePFPuppiJets128Eta2p4MaxDeta1p6 + + HLTBtagDeepFlavourSequencePFPuppiModEta2p4 + + hltBTagPFPuppiDeepFlavour0p935DoubleEta2p4 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_cfi.py index 30cadebad2006..98b68026f7b46 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_cfi.py @@ -32,29 +32,34 @@ from ..modules.hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p07_cfi import * HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1 = cms.Path( - HLTBeginSequence + - hltPuppiTauTkMuon4218L1TkFilter + - HLTRawToDigiSequence + HLTHgcalLocalRecoSequence + - HLTLocalrecoSequence + HLTTrackingV61Sequence + - HLTMuonsSequence + HLTParticleFlowSequence + - hltParticleFlowRecHitECALUnseeded + - hltParticleFlowClusterECALUncorrectedUnseeded + - hltParticleFlowClusterECALUnseeded + - hltFixedGridRhoFastjetAllCaloForEGamma + - hltPhase2L3MuonCandidates + - hltPhase2L3MuonsEcalIsodR0p3dRVeto0p000 + - hltPhase2L3MuonsHcalIsodR0p3dRVeto0p000 + - hltPhase2L3MuonsHgcalLCIsodR0p2dRVetoEM0p00dRVetoHad0p02minEEM0p00minEHad0p00 + - hltL3fL1TkSingleMu18Filtered20 + - hltL3crIsoL1TkSingleMu22EcalIso0p41 + - hltL3crIsoL1TkSingleMu22HcalIso0p40 + - hltL3crIsoL1TkSingleMu22HgcalIso4p70 + - HLTPhase2L3MuonGeneralTracksSequence + - hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p07 + - hltL3crIsoL1TkSingleMu22TrkIsoRegionalNewFiltered0p07EcalHcalHgcalTrk + - HLTAK4PFJetsReconstruction + hltAK4PFJetsForTaus + - HLTPFTauHPS + HLTHPSDeepTauPFTauSequence + - hltHpsSelectedPFTauLooseTauWPDeepTau + - hltHpsPFTau27LooseTauWPDeepTau + - HLTEndSequence + HLTBeginSequence + + hltPuppiTauTkMuon4218L1TkFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + hltParticleFlowRecHitECALUnseeded + + hltParticleFlowClusterECALUncorrectedUnseeded + + hltParticleFlowClusterECALUnseeded + + hltFixedGridRhoFastjetAllCaloForEGamma + + hltPhase2L3MuonCandidates + + hltPhase2L3MuonsEcalIsodR0p3dRVeto0p000 + + hltPhase2L3MuonsHcalIsodR0p3dRVeto0p000 + + hltPhase2L3MuonsHgcalLCIsodR0p2dRVetoEM0p00dRVetoHad0p02minEEM0p00minEHad0p00 + + hltL3fL1TkSingleMu18Filtered20 + + hltL3crIsoL1TkSingleMu22EcalIso0p41 + + hltL3crIsoL1TkSingleMu22HcalIso0p40 + + hltL3crIsoL1TkSingleMu22HgcalIso4p70 + + HLTPhase2L3MuonGeneralTracksSequence + + hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p07 + + hltL3crIsoL1TkSingleMu22TrkIsoRegionalNewFiltered0p07EcalHcalHgcalTrk + + HLTAK4PFJetsReconstruction + + hltAK4PFJetsForTaus + + HLTPFTauHPS + + HLTHPSDeepTauPFTauSequence + + hltHpsSelectedPFTauLooseTauWPDeepTau + + hltHpsPFTau27LooseTauWPDeepTau + + HLTEndSequence ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_IsoMu24_FromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_IsoMu24_FromL1TkMuon_cfi.py index 189e9781c5f46..e60c4c91228f1 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_IsoMu24_FromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_IsoMu24_FromL1TkMuon_cfi.py @@ -8,14 +8,9 @@ from ..sequences.HLTHgcalLocalRecoSequence_cfi import * from ..sequences.HLTDoLocalHcalSequence_cfi import * from ..sequences.HLTDoFullUnpackingEgammaEcalSequence_cfi import * +from ..sequences.HLTMuonsSequence_cfi import * from ..sequences.HLTFastJetForEgammaSequence_cfi import * -from ..sequences.HLTIter0Phase2L3FromL1TkSequence_cfi import * -from ..sequences.HLTIter2Phase2L3FromL1TkSequence_cfi import * from ..sequences.HLTPfClusteringHBHEHFSequence_cfi import * -from ..sequences.HLTPhase2L3FromL1TkSequence_cfi import * -from ..sequences.HLTPhase2L3OISequence_cfi import * -from ..sequences.HLTPhase2L3MuonsSequence_cfi import * -from ..sequences.HLTL2MuonsFromL1TkSequence_cfi import * from ..sequences.HLTPFClusteringForEgammaUnseededSequence_cfi import * from ..sequences.HLTPhase2L3MuonGeneralTracksSequence_cfi import * from ..modules.hltSingleTkMuon22L1TkMuonFilter_cfi import * @@ -31,35 +26,30 @@ from ..modules.hltPhase2L3MuonsHgcalLCIsodR0p2dRVetoEM0p00dRVetoHad0p02minEEM0p00minEHad0p00_cfi import * from ..modules.hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p07_cfi import * - - -HLT_IsoMu24_FromL1TkMuon = cms.Path(HLTBeginSequence - +hltSingleTkMuon22L1TkMuonFilter - +HLTRawToDigiSequence - +HLTItLocalRecoSequence - +HLTOtLocalRecoSequence - +HLTL2MuonsFromL1TkSequence - +HLTPhase2L3OISequence - +hltPhase2PixelFitterByHelixProjections - +hltPhase2PixelTrackFilterByKinematics - +HLTPhase2L3FromL1TkSequence - +HLTIter0Phase2L3FromL1TkSequence - +HLTIter2Phase2L3FromL1TkSequence - +HLTPhase2L3MuonsSequence - +hltL3fL1TkSingleMu22L3Filtered24Q - +HLTHgcalLocalRecoSequence - +HLTDoLocalHcalSequence - +HLTDoFullUnpackingEgammaEcalSequence - +HLTFastJetForEgammaSequence - +HLTPfClusteringHBHEHFSequence - +HLTPFClusteringForEgammaUnseededSequence - +hltPhase2L3MuonsEcalIsodR0p3dRVeto0p000 - +hltPhase2L3MuonsHcalIsodR0p3dRVeto0p000 - +hltPhase2L3MuonsHgcalLCIsodR0p2dRVetoEM0p00dRVetoHad0p02minEEM0p00minEHad0p00 - +hltL3crIsoL1TkSingleMu22L3f24QL3pfecalIsoFiltered0p41 - +hltL3crIsoL1TkSingleMu22L3f24QL3pfhcalIsoFiltered0p40 - +hltL3crIsoL1TkSingleMu22L3f24QL3pfhgcalIsoFiltered4p70 - +HLTPhase2L3MuonGeneralTracksSequence - +hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p07 - +hltL3crIsoL1TkSingleMu22L3f24QL3trkIsoRegionalNewFiltered0p07EcalHcalHgcalTrk - +HLTEndSequence) +HLT_IsoMu24_FromL1TkMuon = cms.Path( + HLTBeginSequence + + hltSingleTkMuon22L1TkMuonFilter + + HLTRawToDigiSequence + + HLTItLocalRecoSequence + + HLTOtLocalRecoSequence + + hltPhase2PixelFitterByHelixProjections + + hltPhase2PixelTrackFilterByKinematics + + HLTMuonsSequence + + hltL3fL1TkSingleMu22L3Filtered24Q + + HLTHgcalLocalRecoSequence + + HLTDoLocalHcalSequence + + HLTDoFullUnpackingEgammaEcalSequence + + HLTFastJetForEgammaSequence + + HLTPfClusteringHBHEHFSequence + + HLTPFClusteringForEgammaUnseededSequence + + hltPhase2L3MuonsEcalIsodR0p3dRVeto0p000 + + hltPhase2L3MuonsHcalIsodR0p3dRVeto0p000 + + hltPhase2L3MuonsHgcalLCIsodR0p2dRVetoEM0p00dRVetoHad0p02minEEM0p00minEHad0p00 + + hltL3crIsoL1TkSingleMu22L3f24QL3pfecalIsoFiltered0p41 + + hltL3crIsoL1TkSingleMu22L3f24QL3pfhcalIsoFiltered0p40 + + hltL3crIsoL1TkSingleMu22L3f24QL3pfhgcalIsoFiltered4p70 + + HLTPhase2L3MuonGeneralTracksSequence + + hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p07 + + hltL3crIsoL1TkSingleMu22L3f24QL3trkIsoRegionalNewFiltered0p07EcalHcalHgcalTrk + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py index 50f0dea249ccf..828b3e5c17490 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py @@ -9,13 +9,8 @@ from ..sequences.HLTDoLocalHcalSequence_cfi import * from ..sequences.HLTDoFullUnpackingEgammaEcalSequence_cfi import * from ..sequences.HLTFastJetForEgammaSequence_cfi import * -from ..sequences.HLTIter0Phase2L3FromL1TkSequence_cfi import * -from ..sequences.HLTIter2Phase2L3FromL1TkSequence_cfi import * from ..sequences.HLTPfClusteringHBHEHFSequence_cfi import * -from ..sequences.HLTPhase2L3FromL1TkSequence_cfi import * -from ..sequences.HLTPhase2L3OISequence_cfi import * -from ..sequences.HLTPhase2L3MuonsSequence_cfi import * -from ..sequences.HLTL2MuonsFromL1TkSequence_cfi import * +from ..sequences.HLTMuonsSequence_cfi import * from ..sequences.HLTPFClusteringForEgammaUnseededSequence_cfi import * from ..sequences.HLTPhase2L3MuonGeneralTracksSequence_cfi import * from ..modules.hltDoubleTkMuon157L1TkMuonFilter_cfi import * @@ -30,24 +25,21 @@ from ..modules.hltL3fL1DoubleMu155fPreFiltered8_cfi import * from ..modules.hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p4_cfi import * -HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon = cms.Path(HLTBeginSequence - +hltDoubleTkMuon157L1TkMuonFilter - +hltDoubleMuon7DZ1p0 - +HLTRawToDigiSequence - +HLTItLocalRecoSequence - +HLTOtLocalRecoSequence - +HLTL2MuonsFromL1TkSequence - +HLTPhase2L3OISequence - +hltPhase2PixelFitterByHelixProjections - +hltPhase2PixelTrackFilterByKinematics - +HLTPhase2L3FromL1TkSequence - +HLTIter0Phase2L3FromL1TkSequence - +HLTIter2Phase2L3FromL1TkSequence - +HLTPhase2L3MuonsSequence - +hltL3fL1DoubleMu155fPreFiltered8 - +hltL3fL1DoubleMu155fFiltered17 - +HLTPhase2L3MuonGeneralTracksSequence - +hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p4 - +hltDiMuon178RelTrkIsoFiltered0p4 - +hltDiMuon178RelTrkIsoFiltered0p4DzFiltered0p2 - +HLTEndSequence) +HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon = cms.Path( + HLTBeginSequence + + hltDoubleTkMuon157L1TkMuonFilter + + hltDoubleMuon7DZ1p0 + + HLTRawToDigiSequence + + HLTItLocalRecoSequence + + HLTOtLocalRecoSequence + + hltPhase2PixelFitterByHelixProjections + + hltPhase2PixelTrackFilterByKinematics + + HLTMuonsSequence + + hltL3fL1DoubleMu155fPreFiltered8 + + hltL3fL1DoubleMu155fFiltered17 + + HLTPhase2L3MuonGeneralTracksSequence + + hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p4 + + hltDiMuon178RelTrkIsoFiltered0p4 + + hltDiMuon178RelTrkIsoFiltered0p4DzFiltered0p2 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu37_Mu27_FromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu37_Mu27_FromL1TkMuon_cfi.py index bb9d916d1b20e..fc89377d28318 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu37_Mu27_FromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu37_Mu27_FromL1TkMuon_cfi.py @@ -13,15 +13,17 @@ from ..sequences.HLTMuonlocalrecoSequence_cfi import * from ..sequences.HLTOtLocalRecoSequence_cfi import * -HLT_Mu37_Mu27_FromL1TkMuon = cms.Path(HLTBeginSequence -+hltDoubleMuon7DZ1p0 -+HLTMuonlocalrecoSequence -+HLTItLocalRecoSequence -+HLTOtLocalRecoSequence -+hltPhase2PixelFitterByHelixProjections -+hltPhase2PixelTrackFilterByKinematics -+HLTMuonsSequence -+hltPhase2L3MuonCandidates -+hltL3fL1DoubleMu155fPreFiltered27 -+hltL3fL1DoubleMu155fFiltered37 -+HLTEndSequence) +HLT_Mu37_Mu27_FromL1TkMuon = cms.Path( + HLTBeginSequence + + hltDoubleMuon7DZ1p0 + + HLTMuonlocalrecoSequence + + HLTItLocalRecoSequence + + HLTOtLocalRecoSequence + + hltPhase2PixelFitterByHelixProjections + + hltPhase2PixelTrackFilterByKinematics + + HLTMuonsSequence + + hltPhase2L3MuonCandidates + + hltL3fL1DoubleMu155fPreFiltered27 + + hltL3fL1DoubleMu155fFiltered37 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py index fe3dd25eaa47f..4cf72d0ec4daa 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py @@ -13,14 +13,16 @@ from ..sequences.HLTMuonlocalrecoSequence_cfi import * from ..sequences.HLTOtLocalRecoSequence_cfi import * -HLT_Mu50_FromL1TkMuon = cms.Path(HLTBeginSequence - +hltSingleTkMuon22L1TkMuonFilter - +HLTMuonlocalrecoSequence - +HLTItLocalRecoSequence - +HLTOtLocalRecoSequence - +hltPhase2PixelFitterByHelixProjections - +hltPhase2PixelTrackFilterByKinematics - +HLTMuonsSequence - +hltPhase2L3MuonCandidates - +hltL3fL1TkSingleMu22L3Filtered50Q - +HLTEndSequence) +HLT_Mu50_FromL1TkMuon = cms.Path( + HLTBeginSequence + + hltSingleTkMuon22L1TkMuonFilter + + HLTMuonlocalrecoSequence + + HLTItLocalRecoSequence + + HLTOtLocalRecoSequence + + hltPhase2PixelFitterByHelixProjections + + hltPhase2PixelTrackFilterByKinematics + + HLTMuonsSequence + + hltPhase2L3MuonCandidates + + hltL3fL1TkSingleMu22L3Filtered50Q + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepCSV_2p4_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepCSV_2p4_cfi.py index 3852cc01b3e7a..f4cf26073d459 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepCSV_2p4_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepCSV_2p4_cfi.py @@ -18,4 +18,22 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepCSV_2p4 = cms.Path(HLTBeginSequence+hltL1SeedsForQuadPuppiJetTripleBtagFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+hltPFPuppiCentralJetQuad30MaxEta2p4+hlt1PFPuppiCentralJet70MaxEta2p4+hlt2PFPuppiCentralJet40MaxEta2p4+hltHtMhtPFPuppiCentralJetsQuadC30MaxEta2p4+hltPFPuppiCentralJetsQuad30HT200MaxEta2p4+HLTBtagDeepCSVSequencePFPuppiModEta2p4+hltBTagPFPuppiDeepCSV0p38Eta2p4TripleEta2p4+HLTEndSequence) +HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepCSV_2p4 = cms.Path( + HLTBeginSequence + + hltL1SeedsForQuadPuppiJetTripleBtagFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + hltPFPuppiCentralJetQuad30MaxEta2p4 + + hlt1PFPuppiCentralJet70MaxEta2p4 + + hlt2PFPuppiCentralJet40MaxEta2p4 + + hltHtMhtPFPuppiCentralJetsQuadC30MaxEta2p4 + + hltPFPuppiCentralJetsQuad30HT200MaxEta2p4 + + HLTBtagDeepCSVSequencePFPuppiModEta2p4 + + hltBTagPFPuppiDeepCSV0p38Eta2p4TripleEta2p4 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py index fff610e0e381b..687e2f7352de2 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py @@ -18,4 +18,22 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepFlavour_2p4 = cms.Path(HLTBeginSequence+hltL1SeedsForQuadPuppiJetTripleBtagFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+hltPFPuppiCentralJetQuad30MaxEta2p4+hlt1PFPuppiCentralJet70MaxEta2p4+hlt2PFPuppiCentralJet40MaxEta2p4+hltHtMhtPFPuppiCentralJetsQuadC30MaxEta2p4+hltPFPuppiCentralJetsQuad30HT200MaxEta2p4+HLTBtagDeepFlavourSequencePFPuppiModEta2p4+hltBTagPFPuppiDeepFlavour0p375Eta2p4TripleEta2p4+HLTEndSequence) +HLT_PFHT200PT30_QuadPFPuppiJet_70_40_30_30_TriplePFPuppiBTagDeepFlavour_2p4 = cms.Path( + HLTBeginSequence + + hltL1SeedsForQuadPuppiJetTripleBtagFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + hltPFPuppiCentralJetQuad30MaxEta2p4 + + hlt1PFPuppiCentralJet70MaxEta2p4 + + hlt2PFPuppiCentralJet40MaxEta2p4 + + hltHtMhtPFPuppiCentralJetsQuadC30MaxEta2p4 + + hltPFPuppiCentralJetsQuad30HT200MaxEta2p4 + + HLTBtagDeepFlavourSequencePFPuppiModEta2p4 + + hltBTagPFPuppiDeepFlavour0p375Eta2p4TripleEta2p4 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepCSV_2p4_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepCSV_2p4_cfi.py index ebd36ef894fb7..231ea26ef5c17 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepCSV_2p4_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepCSV_2p4_cfi.py @@ -20,4 +20,24 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepCSV_2p4 = cms.Path(HLTBeginSequence+hltL1SeedsForQuadPuppiJetTripleBtagFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+hltPFPuppiCentralJetQuad30MaxEta2p4+hlt1PFPuppiCentralJet75MaxEta2p4+hlt2PFPuppiCentralJet60MaxEta2p4+hlt3PFPuppiCentralJet45MaxEta2p4+hlt4PFPuppiCentralJet40MaxEta2p4+hltHtMhtPFPuppiCentralJetsQuadC30MaxEta2p4+hltPFPuppiCentralJetsQuad30HT330MaxEta2p4+HLTBtagDeepCSVSequencePFPuppiModEta2p4+hltBTagPFPuppiDeepCSV0p31Eta2p4TripleEta2p4+HLTEndSequence) +HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepCSV_2p4 = cms.Path( + HLTBeginSequence + + hltL1SeedsForQuadPuppiJetTripleBtagFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + hltPFPuppiCentralJetQuad30MaxEta2p4 + + hlt1PFPuppiCentralJet75MaxEta2p4 + + hlt2PFPuppiCentralJet60MaxEta2p4 + + hlt3PFPuppiCentralJet45MaxEta2p4 + + hlt4PFPuppiCentralJet40MaxEta2p4 + + hltHtMhtPFPuppiCentralJetsQuadC30MaxEta2p4 + + hltPFPuppiCentralJetsQuad30HT330MaxEta2p4 + + HLTBtagDeepCSVSequencePFPuppiModEta2p4 + + hltBTagPFPuppiDeepCSV0p31Eta2p4TripleEta2p4 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py index 74039707ac3f2..ea2419fe36f1e 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepFlavour_2p4_cfi.py @@ -20,4 +20,24 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepFlavour_2p4 = cms.Path(HLTBeginSequence+hltL1SeedsForQuadPuppiJetTripleBtagFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+hltPFPuppiCentralJetQuad30MaxEta2p4+hlt1PFPuppiCentralJet75MaxEta2p4+hlt2PFPuppiCentralJet60MaxEta2p4+hlt3PFPuppiCentralJet45MaxEta2p4+hlt4PFPuppiCentralJet40MaxEta2p4+hltHtMhtPFPuppiCentralJetsQuadC30MaxEta2p4+hltPFPuppiCentralJetsQuad30HT330MaxEta2p4+HLTBtagDeepFlavourSequencePFPuppiModEta2p4+hltBTagPFPuppiDeepFlavour0p275Eta2p4TripleEta2p4+HLTEndSequence) +HLT_PFHT330PT30_QuadPFPuppiJet_75_60_45_40_TriplePFPuppiBTagDeepFlavour_2p4 = cms.Path( + HLTBeginSequence + + hltL1SeedsForQuadPuppiJetTripleBtagFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + hltPFPuppiCentralJetQuad30MaxEta2p4 + + hlt1PFPuppiCentralJet75MaxEta2p4 + + hlt2PFPuppiCentralJet60MaxEta2p4 + + hlt3PFPuppiCentralJet45MaxEta2p4 + + hlt4PFPuppiCentralJet40MaxEta2p4 + + hltHtMhtPFPuppiCentralJetsQuadC30MaxEta2p4 + + hltPFPuppiCentralJetsQuad30HT330MaxEta2p4 + + HLTBtagDeepFlavourSequencePFPuppiModEta2p4 + + hltBTagPFPuppiDeepFlavour0p275Eta2p4TripleEta2p4 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFPuppiHT1070_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFPuppiHT1070_cfi.py index f488b89ec23ea..cdd9341a71a02 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFPuppiHT1070_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFPuppiHT1070_cfi.py @@ -13,4 +13,17 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_PFPuppiHT1070 = cms.Path(HLTBeginSequence+hltL1SeedsForPuppiHTFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+hltPFPuppiHT+hltPFPuppiHT1070+HLTEndSequence) +HLT_PFPuppiHT1070 = cms.Path( + HLTBeginSequence + + hltL1SeedsForPuppiHTFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + hltPFPuppiHT + + hltPFPuppiHT1070 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFPuppiMETTypeOne140_PFPuppiMHT140_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFPuppiMETTypeOne140_PFPuppiMHT140_cfi.py index b22e829ce869a..63823e86f1083 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFPuppiMETTypeOne140_PFPuppiMHT140_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_PFPuppiMETTypeOne140_PFPuppiMHT140_cfi.py @@ -17,4 +17,21 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -HLT_PFPuppiMETTypeOne140_PFPuppiMHT140 = cms.Path(HLTBeginSequence+hltL1SeedsForPuppiMETFilter+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+HLTPFPuppiMETReconstruction+hltPFPuppiMETTypeOneCorrector+hltPFPuppiMETTypeOne+hltPFPuppiMETTypeOne140+hltPFPuppiMHT+hltPFPuppiMHT140+HLTEndSequence) +HLT_PFPuppiMETTypeOne140_PFPuppiMHT140 = cms.Path( + HLTBeginSequence + + hltL1SeedsForPuppiMETFilter + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + HLTPFPuppiMETReconstruction + + hltPFPuppiMETTypeOneCorrector + + hltPFPuppiMETTypeOne + + hltPFPuppiMETTypeOne140 + + hltPFPuppiMHT + + hltPFPuppiMHT140 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py index 098cc0e2f0111..044cb6fbb507b 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py @@ -20,17 +20,18 @@ from ..modules.hltTripleMuon3DR0_cfi import * from ..modules.hltTripleMuon3DZ1p0_cfi import * -HLT_TriMu_10_5_5_DZ_FromL1TkMuon = cms.Path(HLTBeginSequence - +hltTripleMuon3DZ1p0 - +hltTripleMuon3DR0 - +HLTRawToDigiSequence - +HLTItLocalRecoSequence - +HLTOtLocalRecoSequence - +hltPhase2PixelFitterByHelixProjections - +hltPhase2PixelTrackFilterByKinematics - +HLTMuonsSequence - +hltL3fL1TkTripleMu533PreFiltered555 - +hltL3fL1TkTripleMu533L3Filtered1055 - +hltL3fL1TkTripleMu533L31055DZFiltered0p2 - +HLTEndSequence) -# +HLT_TriMu_10_5_5_DZ_FromL1TkMuon = cms.Path( + HLTBeginSequence + + hltTripleMuon3DZ1p0 + + hltTripleMuon3DR0 + + HLTRawToDigiSequence + + HLTItLocalRecoSequence + + HLTOtLocalRecoSequence + + hltPhase2PixelFitterByHelixProjections + + hltPhase2PixelTrackFilterByKinematics + + HLTMuonsSequence + + hltL3fL1TkTripleMu533PreFiltered555 + + hltL3fL1TkTripleMu533L3Filtered1055 + + hltL3fL1TkTripleMu533L31055DZFiltered0p2 + + HLTEndSequence +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/MC_BTV_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/MC_BTV_cfi.py index 4d44642abce49..6cf52b857d58e 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/MC_BTV_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/MC_BTV_cfi.py @@ -11,4 +11,15 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -MC_BTV = cms.Path(HLTBeginSequence+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTAK4PFPuppiJetsReconstruction+HLTBtagDeepCSVSequencePFPuppi+HLTBtagDeepFlavourSequencePFPuppi) +MC_BTV = cms.Path( + HLTBeginSequence + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFPuppiJetsReconstruction + + HLTBtagDeepCSVSequencePFPuppi + + HLTBtagDeepFlavourSequencePFPuppi +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/MC_JME_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/MC_JME_cfi.py index 64344d4ec2d5d..e0c163d7f8d36 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/MC_JME_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/MC_JME_cfi.py @@ -12,4 +12,16 @@ from ..sequences.HLTLocalrecoSequence_cfi import * from ..sequences.HLTRawToDigiSequence_cfi import * -MC_JME = cms.Path(HLTBeginSequence+HLTRawToDigiSequence+HLTHgcalLocalRecoSequence+HLTLocalrecoSequence+HLTTrackingV61Sequence+HLTMuonsSequence+HLTParticleFlowSequence+HLTHgcalTiclPFClusteringForEgamma+HLTJMESequence+hltPFPuppiHT+hltPFPuppiMHT) +MC_JME = cms.Path( + HLTBeginSequence + + HLTRawToDigiSequence + + HLTHgcalLocalRecoSequence + + HLTLocalrecoSequence + + HLTTrackingV61Sequence + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTHgcalTiclPFClusteringForEgamma + + HLTJMESequence + + hltPFPuppiHT + + hltPFPuppiMHT +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTIter0Phase2L3FromL1TkSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTIter0Phase2L3FromL1TkSequence_cfi.py index acf7d66a7cd58..0f95370442a61 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTIter0Phase2L3FromL1TkSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTIter0Phase2L3FromL1TkSequence_cfi.py @@ -6,4 +6,10 @@ from ..modules.hltIter0Phase2L3FromL1TkMuonTrackCutClassifier_cfi import * from ..modules.hltIter0Phase2L3FromL1TkMuonTrackSelectionHighPurity_cfi import * -HLTIter0Phase2L3FromL1TkSequence = cms.Sequence(hltIter0Phase2L3FromL1TkMuonPixelSeedsFromPixelTracks+hltIter0Phase2L3FromL1TkMuonCkfTrackCandidates+hltIter0Phase2L3FromL1TkMuonCtfWithMaterialTracks+hltIter0Phase2L3FromL1TkMuonTrackCutClassifier+hltIter0Phase2L3FromL1TkMuonTrackSelectionHighPurity) +HLTIter0Phase2L3FromL1TkSequence = cms.Sequence( + hltIter0Phase2L3FromL1TkMuonPixelSeedsFromPixelTracks + + hltIter0Phase2L3FromL1TkMuonCkfTrackCandidates + + hltIter0Phase2L3FromL1TkMuonCtfWithMaterialTracks + + hltIter0Phase2L3FromL1TkMuonTrackCutClassifier + + hltIter0Phase2L3FromL1TkMuonTrackSelectionHighPurity +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTIter2Phase2L3FromL1TkSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTIter2Phase2L3FromL1TkSequence_cfi.py index f11cdee410d31..741f1307b5975 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTIter2Phase2L3FromL1TkSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTIter2Phase2L3FromL1TkSequence_cfi.py @@ -14,4 +14,18 @@ from ..modules.hltIter2Phase2L3FromL1TkMuonTrackCutClassifier_cfi import * from ..modules.hltIter2Phase2L3FromL1TkMuonTrackSelectionHighPurity_cfi import * -HLTIter2Phase2L3FromL1TkSequence = cms.Sequence(hltIter2Phase2L3FromL1TkMuonClustersRefRemoval+hltIter2Phase2L3FromL1TkMuonMaskedMeasurementTrackerEvent+hltIter2Phase2L3FromL1TkMuonPixelLayerTriplets+hltIter2Phase2L3FromL1TkMuonPixelClusterCheck+hltIter2Phase2L3FromL1TkMuonPixelHitDoublets+hltIter2Phase2L3FromL1TkMuonPixelHitTriplets+hltIter2Phase2L3FromL1TkMuonPixelSeeds+hltIter2Phase2L3FromL1TkMuonPixelSeedsFiltered+hltIter2Phase2L3FromL1TkMuonCkfTrackCandidates+hltIter2Phase2L3FromL1TkMuonCtfWithMaterialTracks+hltIter2Phase2L3FromL1TkMuonTrackCutClassifier+hltIter2Phase2L3FromL1TkMuonTrackSelectionHighPurity+hltIter2Phase2L3FromL1TkMuonMerged) +HLTIter2Phase2L3FromL1TkSequence = cms.Sequence( + hltIter2Phase2L3FromL1TkMuonClustersRefRemoval + + hltIter2Phase2L3FromL1TkMuonMaskedMeasurementTrackerEvent + + hltIter2Phase2L3FromL1TkMuonPixelLayerTriplets + + hltIter2Phase2L3FromL1TkMuonPixelClusterCheck + + hltIter2Phase2L3FromL1TkMuonPixelHitDoublets + + hltIter2Phase2L3FromL1TkMuonPixelHitTriplets + + hltIter2Phase2L3FromL1TkMuonPixelSeeds + + hltIter2Phase2L3FromL1TkMuonPixelSeedsFiltered + + hltIter2Phase2L3FromL1TkMuonCkfTrackCandidates + + hltIter2Phase2L3FromL1TkMuonCtfWithMaterialTracks + + hltIter2Phase2L3FromL1TkMuonTrackCutClassifier + + hltIter2Phase2L3FromL1TkMuonTrackSelectionHighPurity + + hltIter2Phase2L3FromL1TkMuonMerged +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3FromL1TkSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3FromL1TkSequence_cfi.py index f9551d260efe7..a4f624201e340 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3FromL1TkSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3FromL1TkSequence_cfi.py @@ -8,4 +8,12 @@ from ..modules.hltPhase2L3FromL1TkMuonPixelVertices_cfi import * from ..modules.hltPhase2L3FromL1TkMuonTrimmedPixelVertices_cfi import * -HLTPhase2L3FromL1TkSequence = cms.Sequence(hltPhase2L3FromL1TkMuonPixelLayerQuadruplets+hltPhase2L3FromL1TkMuonPixelTracksTrackingRegions+hltPhase2L3FromL1TkMuonPixelTracksHitDoublets+hltPhase2L3FromL1TkMuonPixelTracksHitQuadruplets+hltPhase2L3FromL1TkMuonPixelTracks+hltPhase2L3FromL1TkMuonPixelVertices+hltPhase2L3FromL1TkMuonTrimmedPixelVertices) +HLTPhase2L3FromL1TkSequence = cms.Sequence( + hltPhase2L3FromL1TkMuonPixelLayerQuadruplets + + hltPhase2L3FromL1TkMuonPixelTracksTrackingRegions + + hltPhase2L3FromL1TkMuonPixelTracksHitDoublets + + hltPhase2L3FromL1TkMuonPixelTracksHitQuadruplets + + hltPhase2L3FromL1TkMuonPixelTracks + + hltPhase2L3FromL1TkMuonPixelVertices + + hltPhase2L3FromL1TkMuonTrimmedPixelVertices +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3MuonsSequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3MuonsSequence_cfi.py index 920fae389d4ac..65fd45f86ba8e 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3MuonsSequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3MuonsSequence_cfi.py @@ -6,4 +6,10 @@ from ..modules.hltPhase2L3MuonsNoID_cfi import * from ..modules.hltPhase2L3MuonCandidates_cfi import * -HLTPhase2L3MuonsSequence = cms.Sequence(hltPhase2L3MuonMerged+hltPhase2L3GlbMuon+hltPhase2L3MuonsNoID+hltPhase2L3Muons+hltPhase2L3MuonCandidates) +HLTPhase2L3MuonsSequence = cms.Sequence( + hltPhase2L3MuonMerged + + hltPhase2L3GlbMuon + + hltPhase2L3MuonsNoID + + hltPhase2L3Muons + + hltPhase2L3MuonCandidates +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3OISequence_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3OISequence_cfi.py index 7cc5ce52720d0..8f4b5ca4c7f86 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3OISequence_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/sequences/HLTPhase2L3OISequence_cfi.py @@ -6,4 +6,10 @@ from ..modules.hltPhase2L3OISeedsFromL2Muons_cfi import * from ..modules.hltPhase2L3OITrackCandidates_cfi import * -HLTPhase2L3OISequence = cms.Sequence(hltPhase2L3OISeedsFromL2Muons+hltPhase2L3OITrackCandidates+hltPhase2L3OIMuCtfWithMaterialTracks+hltPhase2L3OIMuonTrackCutClassifier+hltPhase2L3OIMuonTrackSelectionHighPurity) +HLTPhase2L3OISequence = cms.Sequence( + hltPhase2L3OISeedsFromL2Muons + + hltPhase2L3OITrackCandidates + + hltPhase2L3OIMuCtfWithMaterialTracks + + hltPhase2L3OIMuonTrackCutClassifier + + hltPhase2L3OIMuonTrackSelectionHighPurity +) From a372e6be27ccc66c4cb9a516c6150a56f38b8fa0 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 10 Dec 2024 11:16:27 +0100 Subject: [PATCH 234/418] Fixes and debugging printouts --- .../plugins/MTDTopologyEP.cc | 4 +++ .../MTDGeometryBuilder/src/MTDTopology.cc | 9 +++--- .../plugins/DDCmsMTDConstruction.cc | 10 ++++--- RecoMTD/DetLayers/test/TestBTLNavigation.cc | 28 +++++++++---------- RecoMTD/DetLayers/test/mtd_cfg.py | 5 ++-- 5 files changed, 31 insertions(+), 25 deletions(-) diff --git a/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc b/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc index bc23b7d302785..0b060b6986a3d 100644 --- a/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc +++ b/Geometry/MTDGeometryBuilder/plugins/MTDTopologyEP.cc @@ -73,6 +73,10 @@ void MTDTopologyEP::fillBTLtopology(const MTDGeometry& mtdgeo, MTDTopology::BTLV tmpLayout.btlDetId_[index] = det->geographicalId().rawId(); tmpLayout.btlPhi_[index] = iphi; tmpLayout.btlEta_[index] = ieta; +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("MTDTopologyEP") << "MTDTopology BTL# " << index << " id= " << det->geographicalId().rawId() + << " iphi/ieta= " << iphi << " / " << ieta; +#endif if (ieta == tmpLayout.nBTLeta_) { iphi++; ieta = 0; diff --git a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc index ea43ab1ca9458..2994ec2000ef1 100644 --- a/Geometry/MTDGeometryBuilder/src/MTDTopology.cc +++ b/Geometry/MTDGeometryBuilder/src/MTDTopology.cc @@ -33,7 +33,6 @@ uint32_t MTDTopology::btlidFromIndex(const uint32_t iphi, const uint32_t ieta) c res = btlVals_.btlDetId_[index]; break; } - index++; } return res; } @@ -56,9 +55,9 @@ uint32_t MTDTopology::phishiftBTL(const uint32_t detid, const int phiShift) cons } if (found) { int newIndex = index + sh * btlVals_.nBTLeta_; - if (newIndex > static_cast(btlVals_.nBTLmodules_)) { + if (newIndex >= static_cast(btlVals_.nBTLmodules_)) { newIndex = newIndex - btlVals_.nBTLmodules_; - } else if (newIndex < 1) { + } else if (newIndex < 0) { newIndex = newIndex + btlVals_.nBTLmodules_; } return newIndex; @@ -86,9 +85,9 @@ uint32_t MTDTopology::etashiftBTL(const uint32_t detid, const int etaShift) cons } if (found) { int newIndex = index + sh; - if (newIndex < 1 || newIndex > static_cast(btlVals_.nBTLmodules_)) { + if (newIndex < 0 || newIndex >= static_cast(btlVals_.nBTLmodules_)) { return failIndex_; - } else if (btlVals_.btlEta_[newIndex] != btlVals_.btlEta_[index]) { + } else if (btlVals_.btlPhi_[newIndex] != btlVals_.btlPhi_[index]) { return failIndex_; } return newIndex; diff --git a/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc b/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc index c4c6d038c5de1..da2ecf9378929 100644 --- a/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc +++ b/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc @@ -1,3 +1,5 @@ +//#define EDM_ML_DEBUG + #include "Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.h" #include @@ -224,8 +226,8 @@ std::unique_ptr DDCmsMTDConstruction::construct(const DDComp std::stringstream after(std::stringstream::in | std::stringstream::out); for (const auto& it : comp) { after << "ORDER2 " << it->geographicalId().rawId() << " " << static_cast(it->geographicalId()).mtdRR() - << " " << it->type() << " " << it->translation().z() << " " - << convertRadToDeg(angle0to2pi::make0To2pi(it->phi())) << "\n"; + << " " << it->type() << " " << it->translation().z() << " " << convertRadToDeg(makempiToppi(it->phi())) + << "\n"; } edm::LogVerbatim("MTDNumbering") << "GeometricTimingDet order after sorting \n" << after.str(); #endif @@ -396,8 +398,8 @@ std::unique_ptr DDCmsMTDConstruction::construct(const cms::D std::stringstream after(std::stringstream::in | std::stringstream::out); for (const auto& it : comp) { after << "ORDER2 " << it->geographicalId().rawId() << " " << static_cast(it->geographicalId()).mtdRR() - << " " << it->type() << " " << it->translation().z() << " " - << convertRadToDeg(angle0to2pi::make0To2pi(it->phi())) << "\n"; + << " " << it->type() << " " << it->translation().z() << " " << convertRadToDeg(makempiToppi(it->phi())) + << "\n"; } edm::LogVerbatim("DD4hep_MTDNumbering") << "GeometricTimingDet order after sorting \n" << after.str(); #endif diff --git a/RecoMTD/DetLayers/test/TestBTLNavigation.cc b/RecoMTD/DetLayers/test/TestBTLNavigation.cc index d7d349535d244..4d37ce28ddb95 100644 --- a/RecoMTD/DetLayers/test/TestBTLNavigation.cc +++ b/RecoMTD/DetLayers/test/TestBTLNavigation.cc @@ -79,6 +79,7 @@ void TestBTLNavigation::analyze(edm::StreamID, edm::Event const&, edm::EventSetu << layer->basicComponents().size(); unsigned int irodInd(0); + unsigned int imodInd(0); for (const auto& irod : layer->rods()) { irodInd++; LogVerbatim("MTDLayerDumpFull") << std::fixed << "\nTray " << std::setw(4) << irodInd << "\n" @@ -97,7 +98,6 @@ void TestBTLNavigation::analyze(edm::StreamID, edm::Event const&, edm::EventSetu << fround(irod->specificSurface().bounds().thickness(), 2) << " normal phi = " << fround(irod->specificSurface().normalVector().phi(), 2) << std::endl; - unsigned int imodInd(0); for (const auto& imod : irod->basicComponents()) { imodInd++; BTLDetId modId(imod->geographicalId().rawId()); @@ -121,50 +121,50 @@ void TestBTLNavigation::analyze(edm::StreamID, edm::Event const&, edm::EventSetu } for (int iside = -1; iside <= 1; iside += 2) { size_t idetNew = topo.product()->phishiftBTL(modId.rawId(), iside); - if (idetNew > irod->basicComponents().size()) { + if (idetNew >= layer->basicComponents().size()) { LogVerbatim("MTDLayerDumpFull") << "...............phishift= " << std::fixed << std::setw(2) << iside << " out of range"; LogVerbatim("MTDLayerDump") << "...............phishift= " << std::fixed << std::setw(2) << iside << " out of range"; } else { - BTLDetId newId(irod->basicComponents()[idetNew]->geographicalId().rawId()); - auto newTopoId = topo.product()->btlIndex(newId.rawId()); + BTLDetId newId(layer->basicComponents()[idetNew]->geographicalId().rawId()); + auto const& newTopoId = topo.product()->btlIndex(newId.rawId()); LogVerbatim("MTDLayerDumpFull") << std::fixed << "...............phishift= " << " iphi/ieta = " << std::setw(4) << newTopoId.first << " / " << std::setw(4) << newTopoId.second - << std::setw(2) << iside << " side = " << std::setw(4) << newId.mtdSide() << " RU = " << std::setw(4) + << std::setw(4) << iside << " side = " << std::setw(4) << newId.mtdSide() << " RU = " << std::setw(4) << newId.runit() << " mod = " << std::setw(4) << newId.module() - << " pos = " << fvecround(irod->basicComponents()[idetNew]->position(), 4); + << " pos = " << fvecround(layer->basicComponents()[idetNew]->position(), 4); LogVerbatim("MTDLayerDump") << std::fixed << "...............phishift= " << " iphi/ieta = " << std::setw(4) << newTopoId.first << " / " << std::setw(4) - << newTopoId.second << std::setw(2) << iside << " side = " << std::setw(4) + << newTopoId.second << std::setw(4) << iside << " side = " << std::setw(4) << newId.mtdSide() << " RU = " << std::setw(4) << newId.runit() << " mod = " << std::setw(4) << newId.module() - << " pos = " << fvecround(irod->basicComponents()[idetNew]->position(), 2); + << " pos = " << fvecround(layer->basicComponents()[idetNew]->position(), 2); } } for (int iside = -1; iside <= 1; iside += 2) { auto idetNew = topo.product()->etashiftBTL(modId, iside); - if (idetNew > irod->basicComponents().size()) { + if (idetNew >= layer->basicComponents().size()) { LogVerbatim("MTDLayerDumpFull") << "...............etashift= " << std::fixed << std::setw(2) << iside << " out of range"; LogVerbatim("MTDLayerDump") << "...............etashift= " << std::fixed << std::setw(2) << iside << " out of range"; } else { - BTLDetId newId(irod->basicComponents()[idetNew]->geographicalId().rawId()); + BTLDetId newId(layer->basicComponents()[idetNew]->geographicalId().rawId()); auto const& newTopoId = topo.product()->btlIndex(newId.rawId()); LogVerbatim("MTDLayerDumpFull") << std::fixed << "...............etashift= " << " iphi/ieta = " << std::setw(4) << newTopoId.first << " / " << std::setw(4) << newTopoId.second - << std::setw(2) << iside << " side = " << std::setw(4) << newId.mtdSide() << " RU = " << std::setw(4) + << std::setw(4) << iside << " side = " << std::setw(4) << newId.mtdSide() << " RU = " << std::setw(4) << newId.runit() << " mod = " << std::setw(4) << newId.module() - << " pos = " << fvecround(irod->basicComponents()[idetNew]->position(), 4); + << " pos = " << fvecround(layer->basicComponents()[idetNew]->position(), 4); LogVerbatim("MTDLayerDump") << std::fixed << "...............etashift= " << " iphi/ieta = " << std::setw(4) << newTopoId.first << " / " << std::setw(4) - << newTopoId.second << std::setw(2) << iside << " side = " << std::setw(4) + << newTopoId.second << std::setw(4) << iside << " side = " << std::setw(4) << newId.mtdSide() << " RU = " << std::setw(4) << newId.runit() << " mod = " << std::setw(4) << newId.module() - << " pos = " << fvecround(irod->basicComponents()[idetNew]->position(), 2); + << " pos = " << fvecround(layer->basicComponents()[idetNew]->position(), 2); } } } diff --git a/RecoMTD/DetLayers/test/mtd_cfg.py b/RecoMTD/DetLayers/test/mtd_cfg.py index 3880b14ad87ff..c4a36421478b0 100644 --- a/RecoMTD/DetLayers/test/mtd_cfg.py +++ b/RecoMTD/DetLayers/test/mtd_cfg.py @@ -62,6 +62,7 @@ process.Timing = cms.Service("Timing") process.prod = cms.EDAnalyzer("MTDRecoGeometryAnalyzer") -process.prod1 = cms.EDAnalyzer("TestETLNavigation") +process.prod1 = cms.EDAnalyzer("TestBTLNavigation") +process.prod2 = cms.EDAnalyzer("TestETLNavigation") -process.p1 = cms.Path(cms.wait(process.prod)+process.prod1) +process.p1 = cms.Path(cms.wait(process.prod)+cms.wait(process.prod1)+process.prod2) From 06d30e104bc56cf687bf9722599b95a364470199 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 10 Dec 2024 11:20:59 +0100 Subject: [PATCH 235/418] Revert "Move BTL phi order from 0 to 2pi to -pi to +pi" This reverts commit 387021ecc5f8f11faaed8451acd292b5130b9209. Temporarily silence BTL navigation test for backward compatibility --- .../plugins/CmsMTDConstruction.cc | 10 ++++++---- .../plugins/CmsMTDConstruction.h | 13 ------------- RecoMTD/DetLayers/test/mtd_cfg.py | 3 ++- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc index 2d575f9fa4f6e..12c61a3f9e09a 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc @@ -9,6 +9,8 @@ #include "DataFormats/ForwardDetId/interface/ETLDetId.h" #include "Geometry/MTDCommonData/interface/MTDBaseNumber.h" +#include "DataFormats/Math/interface/deltaPhi.h" + using angle_units::operators::convertRadToDeg; template @@ -37,14 +39,14 @@ bool CmsMTDConstruction::mtdOrderPhi(const GeometricTimingDet* a, template bool CmsMTDConstruction::btlOrderPhi(const GeometricTimingDet* a, const GeometricTimingDet* b) { - return static_cast(convertRadToDeg(makempiToppi(a->phi()))) < - static_cast(convertRadToDeg(makempiToppi(b->phi()))); + return static_cast(convertRadToDeg(angle0to2pi::make0To2pi(a->phi()))) < + static_cast(convertRadToDeg(angle0to2pi::make0To2pi(b->phi()))); } template bool CmsMTDConstruction::btlOrderZ(const GeometricTimingDet* a, const GeometricTimingDet* b) { - bool order = (static_cast(convertRadToDeg(makempiToppi(a->phi()))) == - static_cast(convertRadToDeg(makempiToppi(b->phi())))) && + bool order = (static_cast(convertRadToDeg(angle0to2pi::make0To2pi(a->phi()))) == + static_cast(convertRadToDeg(angle0to2pi::make0To2pi(b->phi())))) && (a->translation().z() < b->translation().z()); return order; } diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h index bdf80f618bce4..c1bb036a21d85 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h @@ -7,19 +7,6 @@ #include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" #include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h" -#include "DataFormats/Math/interface/deltaPhi.h" - -namespace { - - template - inline constexpr valType makempiToppi(valType angle) { - constexpr valType twoPi = 2. * M_PI; - constexpr valType epsilon = 1.e-13; - auto tmpphi = angle0to2pi::make0To2pi(angle); - return (tmpphi - M_PI > epsilon) ? tmpphi - twoPi : tmpphi; - } -} // namespace - /** * Adds GeometricTimingDets representing final modules to the previous level */ diff --git a/RecoMTD/DetLayers/test/mtd_cfg.py b/RecoMTD/DetLayers/test/mtd_cfg.py index c4a36421478b0..c384f5897e7b6 100644 --- a/RecoMTD/DetLayers/test/mtd_cfg.py +++ b/RecoMTD/DetLayers/test/mtd_cfg.py @@ -65,4 +65,5 @@ process.prod1 = cms.EDAnalyzer("TestBTLNavigation") process.prod2 = cms.EDAnalyzer("TestETLNavigation") -process.p1 = cms.Path(cms.wait(process.prod)+cms.wait(process.prod1)+process.prod2) +# process.p1 = cms.Path(cms.wait(process.prod)+cms.wait(process.prod1)+process.prod2) +process.p1 = cms.Path(cms.wait(process.prod)+process.prod2) From adae936c14ba451b2843b41f9615da4255975b94 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Tue, 10 Dec 2024 13:44:47 +0100 Subject: [PATCH 236/418] [UBSAN]Fix runtime error for invalid bool value assignment --- SimDataFormats/GeneratorProducts/src/HepMCProduct.cc | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/SimDataFormats/GeneratorProducts/src/HepMCProduct.cc b/SimDataFormats/GeneratorProducts/src/HepMCProduct.cc index 6a37507b265e0..2de4e471aeb86 100644 --- a/SimDataFormats/GeneratorProducts/src/HepMCProduct.cc +++ b/SimDataFormats/GeneratorProducts/src/HepMCProduct.cc @@ -36,7 +36,6 @@ void HepMCProduct::addHepMCData(HepMC::GenEvent* evt) { void HepMCProduct::applyVtxGen(HepMC::FourVector const& vtxShift) { //std::cout<< " applyVtxGen called " << isVtxGenApplied_ << endl; - //fTimeOffset = 0; if (isVtxGenApplied()) return; @@ -126,16 +125,14 @@ HepMCProduct::HepMCProduct(HepMCProduct const& other) : evt_(nullptr) { isVtxGenApplied_ = other.isVtxGenApplied_; isVtxBoostApplied_ = other.isVtxBoostApplied_; isPBoostApplied_ = other.isPBoostApplied_; - //fTimeOffset = other.fTimeOffset; } // swap void HepMCProduct::swap(HepMCProduct& other) { std::swap(evt_, other.evt_); - std::swap(isVtxGenApplied_, other.isVtxGenApplied_); - std::swap(isVtxBoostApplied_, other.isVtxBoostApplied_); - std::swap(isPBoostApplied_, other.isPBoostApplied_); - //std::swap(fTimeOffset, other.fTimeOffset); + isVtxGenApplied_ = other.isVtxGenApplied_; + isVtxBoostApplied_ = other.isVtxBoostApplied_; + isPBoostApplied_ = other.isPBoostApplied_; } // assignment: use copy/swap idiom for exception safety. From 4c7f02a1f569999e1185e2f58d1b53862e7615a7 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Sat, 7 Dec 2024 01:14:25 +0100 Subject: [PATCH 237/418] Add tests for edm::Wrapper using T{kUninitialized} --- DataFormats/Common/test/Wrapper_t.cpp | 23 ++++++------- .../TestObjects/interface/ToyProducts.h | 11 +++++++ DataFormats/TestObjects/src/classes_def.xml | 4 +++ FWCore/Integration/plugins/BuildFile.xml | 6 ++++ .../plugins/MaybeUninitializedIntAnalyzer.cc | 33 +++++++++++++++++++ .../plugins/MaybeUninitializedIntProducer.cc | 26 +++++++++++++++ FWCore/Integration/test/BuildFile.xml | 1 + ...stMaybeUninitializedIntProductPart1_cfg.py | 29 ++++++++++++++++ ...stMaybeUninitializedIntProductPart2_cfg.py | 23 +++++++++++++ 9 files changed, 145 insertions(+), 11 deletions(-) create mode 100644 FWCore/Integration/plugins/MaybeUninitializedIntAnalyzer.cc create mode 100644 FWCore/Integration/plugins/MaybeUninitializedIntProducer.cc create mode 100644 FWCore/Integration/test/testMaybeUninitializedIntProductPart1_cfg.py create mode 100644 FWCore/Integration/test/testMaybeUninitializedIntProductPart2_cfg.py diff --git a/DataFormats/Common/test/Wrapper_t.cpp b/DataFormats/Common/test/Wrapper_t.cpp index 53de087741a9b..68411bc0b1a2d 100644 --- a/DataFormats/Common/test/Wrapper_t.cpp +++ b/DataFormats/Common/test/Wrapper_t.cpp @@ -1,34 +1,32 @@ -/* - * CMSSW - * - */ - #include #include #include #include -#include "catch.hpp" + +#include #include "DataFormats/Common/interface/Wrapper.h" class CopyNoMove { public: - CopyNoMove() {} + CopyNoMove() = default; CopyNoMove(CopyNoMove const&) { /* std::cout << "copied\n"; */ } CopyNoMove& operator=(CopyNoMove const&) { /*std::cout << "assigned\n";*/ return *this; } - -private: }; class MoveNoCopy { public: - MoveNoCopy() {} + MoveNoCopy() = default; MoveNoCopy(MoveNoCopy const&) = delete; MoveNoCopy& operator=(MoveNoCopy const&) = delete; MoveNoCopy(MoveNoCopy&&) { /* std::cout << "moved\n";*/ } MoveNoCopy& operator=(MoveNoCopy&&) { /* std::cout << "moved\n";*/ return *this; } +}; -private: +class NoDefaultCtor { +public: + NoDefaultCtor() = delete; + NoDefaultCtor(edm::Uninitialized) {} }; TEST_CASE("test Wrapper", "[Wrapper]") { @@ -44,4 +42,7 @@ TEST_CASE("test Wrapper", "[Wrapper]") { edm::Wrapper> wrap3(std::move(thing3)); REQUIRE(wrap3->size() == 10); REQUIRE(thing3.get() == 0); + + auto thing4 = std::make_unique(edm::kUninitialized); + edm::Wrapper wrap4(std::move(thing4)); } diff --git a/DataFormats/TestObjects/interface/ToyProducts.h b/DataFormats/TestObjects/interface/ToyProducts.h index 3c57475997fd8..084b15751c52a 100644 --- a/DataFormats/TestObjects/interface/ToyProducts.h +++ b/DataFormats/TestObjects/interface/ToyProducts.h @@ -12,6 +12,7 @@ Toy EDProducts for testing purposes only. #include "DataFormats/Common/interface/DetSetVectorNew.h" #include "DataFormats/Common/interface/OwnVector.h" #include "DataFormats/Common/interface/SortedCollection.h" +#include "DataFormats/Common/interface/Uninitialized.h" #include "FWCore/Utilities/interface/typedefs.h" #include @@ -48,6 +49,16 @@ namespace edmtest { cms_int32_t value; }; + struct MaybeUninitializedIntProduct { + explicit MaybeUninitializedIntProduct(edm::Uninitialized) {} + explicit MaybeUninitializedIntProduct(int i) : value(i) {} + ~MaybeUninitializedIntProduct() {} + + bool operator==(MaybeUninitializedIntProduct const& rhs) const { return value == rhs.value; } + + cms_int32_t value; + }; + struct UInt64Product { explicit UInt64Product(unsigned long long i = 0) : value(i) {} ~UInt64Product() {} diff --git a/DataFormats/TestObjects/src/classes_def.xml b/DataFormats/TestObjects/src/classes_def.xml index b1841449036b8..c963193dd8ada 100644 --- a/DataFormats/TestObjects/src/classes_def.xml +++ b/DataFormats/TestObjects/src/classes_def.xml @@ -6,6 +6,9 @@ + + + @@ -85,6 +88,7 @@ + diff --git a/FWCore/Integration/plugins/BuildFile.xml b/FWCore/Integration/plugins/BuildFile.xml index 070c0298a1b5a..086c34c78f92e 100644 --- a/FWCore/Integration/plugins/BuildFile.xml +++ b/FWCore/Integration/plugins/BuildFile.xml @@ -75,6 +75,12 @@ + + + + + + diff --git a/FWCore/Integration/plugins/MaybeUninitializedIntAnalyzer.cc b/FWCore/Integration/plugins/MaybeUninitializedIntAnalyzer.cc new file mode 100644 index 0000000000000..e7f53982bd16d --- /dev/null +++ b/FWCore/Integration/plugins/MaybeUninitializedIntAnalyzer.cc @@ -0,0 +1,33 @@ +#include "DataFormats/TestObjects/interface/ToyProducts.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/global/EDAnalyzer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "FWCore/Utilities/interface/InputTag.h" + +namespace edmtest { + + class MaybeUninitializedIntAnalyzer : public edm::global::EDAnalyzer<> { + public: + MaybeUninitializedIntAnalyzer(edm::ParameterSet const& config) + : value_{config.getParameter("value")}, + token_{consumes(config.getParameter("source"))} {} + + void analyze(edm::StreamID, edm::Event const& event, edm::EventSetup const&) const final { + MaybeUninitializedIntProduct const& product = event.get(token_); + if (product.value != value_) { + throw cms::Exception("Inconsistent Data", "MaybeUninitializedIntAnalyzer::analyze") + << "Found value " << product.value << " while expecting value " << value_; + } + } + + private: + const cms_int32_t value_; + const edm::EDGetTokenT token_; + }; + +} // namespace edmtest + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(edmtest::MaybeUninitializedIntAnalyzer); diff --git a/FWCore/Integration/plugins/MaybeUninitializedIntProducer.cc b/FWCore/Integration/plugins/MaybeUninitializedIntProducer.cc new file mode 100644 index 0000000000000..1533d0e598c42 --- /dev/null +++ b/FWCore/Integration/plugins/MaybeUninitializedIntProducer.cc @@ -0,0 +1,26 @@ +#include "DataFormats/TestObjects/interface/ToyProducts.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/EDPutToken.h" + +namespace edmtest { + + class MaybeUninitializedIntProducer : public edm::global::EDProducer<> { + public: + MaybeUninitializedIntProducer(edm::ParameterSet const& config) + : value_{config.getParameter("value")}, token_{produces()} {} + + void produce(edm::StreamID, edm::Event& event, edm::EventSetup const&) const final { + event.emplace(token_, value_); + } + + private: + const cms_int32_t value_; + const edm::EDPutTokenT token_; + }; + +} // namespace edmtest + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(edmtest::MaybeUninitializedIntProducer); diff --git a/FWCore/Integration/test/BuildFile.xml b/FWCore/Integration/test/BuildFile.xml index 6b0c0eb407ac7..be14c0cc7421f 100644 --- a/FWCore/Integration/test/BuildFile.xml +++ b/FWCore/Integration/test/BuildFile.xml @@ -220,4 +220,5 @@ + diff --git a/FWCore/Integration/test/testMaybeUninitializedIntProductPart1_cfg.py b/FWCore/Integration/test/testMaybeUninitializedIntProductPart1_cfg.py new file mode 100644 index 0000000000000..bf4d46bb3a0b3 --- /dev/null +++ b/FWCore/Integration/test/testMaybeUninitializedIntProductPart1_cfg.py @@ -0,0 +1,29 @@ +#! /usr/bin/env cmsRun + +# This configuration is designed to be run as the first in a series of two cmsRun processes. +# It produces a collection of edmtest::MaybeUninitializedIntProduct and stores them to a ROOT file, +# to test that edm::Wrapper can be used to read and write objects without a default constructor. + +import FWCore.ParameterSet.Config as cms + +process = cms.Process("Part1") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = 1 + +process.source = cms.Source("EmptySource") +process.maxEvents.input = 10 + +process.prod = cms.EDProducer("edmtest::MaybeUninitializedIntProducer", + value = cms.int32(42) +) + +process.out = cms.OutputModule("PoolOutputModule", + fileName = cms.untracked.string('testMaybeUninitializedIntProduct.root'), + outputCommands = cms.untracked.vstring( + 'keep *_prod_*_*' + ) +) + +process.path = cms.Path(process.prod) +process.endp = cms.EndPath(process.out) diff --git a/FWCore/Integration/test/testMaybeUninitializedIntProductPart2_cfg.py b/FWCore/Integration/test/testMaybeUninitializedIntProductPart2_cfg.py new file mode 100644 index 0000000000000..ee9337f3215ff --- /dev/null +++ b/FWCore/Integration/test/testMaybeUninitializedIntProductPart2_cfg.py @@ -0,0 +1,23 @@ +#! /usr/bin/env cmsRun + +# This configuration is designed to be run as the second in a series of two cmsRun processes. +# It reads a collection of edmtest::MaybeUninitializedIntProduct from a ROOT file and check their values, +# to test that edm::Wrapper can be used to read and write objects without a default constructor. + +import FWCore.ParameterSet.Config as cms + +process = cms.Process("Part2") + +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = 1 + +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring('file:testMaybeUninitializedIntProduct.root') +) + +process.read = cms.EDAnalyzer("edmtest::MaybeUninitializedIntAnalyzer", + source = cms.InputTag("prod"), + value = cms.int32(42) +) + +process.path = cms.Path(process.read) From 74c7d614738c308087e92bd1e9eac456a310901f Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Sat, 7 Dec 2024 16:07:31 +0100 Subject: [PATCH 238/418] Let DeviceProduct use the constructor T{kUninitialized} Let DeviceProduct use a special constructor T{kUninitialized} instead of the default constructor T{}, if it is available. --- DataFormats/Common/interface/DeviceProduct.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/DataFormats/Common/interface/DeviceProduct.h b/DataFormats/Common/interface/DeviceProduct.h index 926d7ad16e262..932d74eca6b26 100644 --- a/DataFormats/Common/interface/DeviceProduct.h +++ b/DataFormats/Common/interface/DeviceProduct.h @@ -4,6 +4,8 @@ #include #include +#include "DataFormats/Common/interface/Uninitialized.h" + namespace edm { class DeviceProductBase { public: @@ -45,7 +47,13 @@ namespace edm { template class DeviceProduct : public DeviceProductBase { public: - DeviceProduct() = default; + DeviceProduct() + requires(requires { T(); }) + = default; + + explicit DeviceProduct(edm::Uninitialized) + requires(requires { T(edm::kUninitialized); }) + : data_{edm::kUninitialized} {} template explicit DeviceProduct(std::shared_ptr metadata, Args&&... args) From 4c8434cf1594cdc109b4b5c5cd78eefece651d29 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Thu, 5 Dec 2024 10:06:36 +0100 Subject: [PATCH 239/418] Remove the default constructor from PortableCollection Remove the default constructor from PortableCollection, PortableObject and related types, and introduce the special constructor taking kUninitialized. --- .../Portable/interface/PortableDeviceCollection.h | 11 ++++++++--- .../Portable/interface/PortableDeviceObject.h | 5 ++++- .../Portable/interface/PortableHostCollection.h | 11 ++++++++--- .../Portable/interface/PortableHostObject.h | 5 ++++- .../interface/SiPixelClustersDevice.h | 9 ++++++--- .../interface/SiPixelClustersHost.h | 6 ++++-- .../interface/SiPixelDigiErrorsDevice.h | 5 ++++- .../interface/SiPixelDigiErrorsHost.h | 4 +++- .../SiPixelDigiSoA/interface/SiPixelDigisDevice.h | 4 +++- .../SiPixelDigiSoA/interface/SiPixelDigisHost.h | 4 +++- DataFormats/TrackSoA/interface/TracksDevice.h | 12 +++++++++--- DataFormats/TrackSoA/interface/TracksHost.h | 14 ++++++++++---- .../interface/TrackingRecHitsDevice.h | 4 +++- .../interface/TrackingRecHitsHost.h | 4 +++- 14 files changed, 72 insertions(+), 26 deletions(-) diff --git a/DataFormats/Portable/interface/PortableDeviceCollection.h b/DataFormats/Portable/interface/PortableDeviceCollection.h index 4634374cc2d22..8bbb98920db0d 100644 --- a/DataFormats/Portable/interface/PortableDeviceCollection.h +++ b/DataFormats/Portable/interface/PortableDeviceCollection.h @@ -7,9 +7,10 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" +#include "DataFormats/Portable/interface/PortableCollectionCommon.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "HeterogeneousCore/AlpakaInterface/interface/memory.h" -#include "DataFormats/Portable/interface/PortableCollectionCommon.h" // generic SoA-based product in device memory template >> @@ -24,7 +25,9 @@ class PortableDeviceCollection { using Buffer = cms::alpakatools::device_buffer; using ConstBuffer = cms::alpakatools::const_device_buffer; - PortableDeviceCollection() = default; + PortableDeviceCollection() = delete; + + explicit PortableDeviceCollection(edm::Uninitialized) noexcept {} PortableDeviceCollection(int32_t elements, TDev const& device) : buffer_{cms::alpakatools::make_device_buffer(device, Layout::computeDataSize(elements))}, @@ -144,7 +147,9 @@ class PortableDeviceMultiCollection { } public: - PortableDeviceMultiCollection() = default; + PortableDeviceMultiCollection() = delete; + + explicit PortableDeviceMultiCollection(edm::Uninitialized) noexcept {}; PortableDeviceMultiCollection(int32_t elements, TDev const& device) : buffer_{cms::alpakatools::make_device_buffer(device, Layout<>::computeDataSize(elements))}, diff --git a/DataFormats/Portable/interface/PortableDeviceObject.h b/DataFormats/Portable/interface/PortableDeviceObject.h index 9ae0dd529713b..a5ff924574ab4 100644 --- a/DataFormats/Portable/interface/PortableDeviceObject.h +++ b/DataFormats/Portable/interface/PortableDeviceObject.h @@ -7,6 +7,7 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "HeterogeneousCore/AlpakaInterface/interface/memory.h" @@ -21,7 +22,9 @@ class PortableDeviceObject { using Buffer = cms::alpakatools::device_buffer; using ConstBuffer = cms::alpakatools::const_device_buffer; - PortableDeviceObject() = default; + PortableDeviceObject() = delete; + + PortableDeviceObject(edm::Uninitialized) {} PortableDeviceObject(TDev const& device) // allocate global device memory diff --git a/DataFormats/Portable/interface/PortableHostCollection.h b/DataFormats/Portable/interface/PortableHostCollection.h index 647ddb8648281..581fe23d78988 100644 --- a/DataFormats/Portable/interface/PortableHostCollection.h +++ b/DataFormats/Portable/interface/PortableHostCollection.h @@ -6,10 +6,11 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" +#include "DataFormats/Portable/interface/PortableCollectionCommon.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "HeterogeneousCore/AlpakaInterface/interface/host.h" #include "HeterogeneousCore/AlpakaInterface/interface/memory.h" -#include "DataFormats/Portable/interface/PortableCollectionCommon.h" // generic SoA-based product in host memory template @@ -21,7 +22,9 @@ class PortableHostCollection { using Buffer = cms::alpakatools::host_buffer; using ConstBuffer = cms::alpakatools::const_host_buffer; - PortableHostCollection() = default; + PortableHostCollection() = delete; + + explicit PortableHostCollection(edm::Uninitialized) noexcept {}; PortableHostCollection(int32_t elements, alpaka_common::DevHost const& host) // allocate pageable host memory @@ -154,7 +157,9 @@ class PortableHostMultiCollection { } public: - PortableHostMultiCollection() = default; + PortableHostMultiCollection() = delete; + + explicit PortableHostMultiCollection(edm::Uninitialized) noexcept {}; PortableHostMultiCollection(int32_t elements, alpaka_common::DevHost const& host) // allocate pageable host memory diff --git a/DataFormats/Portable/interface/PortableHostObject.h b/DataFormats/Portable/interface/PortableHostObject.h index e120101fc1795..b2f84b38be2dc 100644 --- a/DataFormats/Portable/interface/PortableHostObject.h +++ b/DataFormats/Portable/interface/PortableHostObject.h @@ -7,6 +7,7 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "HeterogeneousCore/AlpakaInterface/interface/host.h" #include "HeterogeneousCore/AlpakaInterface/interface/memory.h" @@ -19,7 +20,9 @@ class PortableHostObject { using Buffer = cms::alpakatools::host_buffer; using ConstBuffer = cms::alpakatools::const_host_buffer; - PortableHostObject() = default; + PortableHostObject() = delete; + + PortableHostObject(edm::Uninitialized) noexcept {} PortableHostObject(alpaka_common::DevHost const& host) // allocate pageable host memory diff --git a/DataFormats/SiPixelClusterSoA/interface/SiPixelClustersDevice.h b/DataFormats/SiPixelClusterSoA/interface/SiPixelClustersDevice.h index 2593475bf5c3a..b613a736bc3a8 100644 --- a/DataFormats/SiPixelClusterSoA/interface/SiPixelClustersDevice.h +++ b/DataFormats/SiPixelClusterSoA/interface/SiPixelClustersDevice.h @@ -2,17 +2,20 @@ #define DataFormats_SiPixelClusterSoA_interface_SiPixelClustersDevice_h #include + #include -#include "HeterogeneousCore/AlpakaInterface/interface/config.h" -#include "DataFormats/SiPixelClusterSoA/interface/SiPixelClustersHost.h" + +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableDeviceCollection.h" +#include "DataFormats/SiPixelClusterSoA/interface/SiPixelClustersHost.h" #include "DataFormats/SiPixelClusterSoA/interface/SiPixelClustersSoA.h" #include "HeterogeneousCore/AlpakaInterface/interface/CopyToHost.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" template class SiPixelClustersDevice : public PortableDeviceCollection { public: - SiPixelClustersDevice() = default; + SiPixelClustersDevice(edm::Uninitialized) : PortableDeviceCollection{edm::kUninitialized} {} template explicit SiPixelClustersDevice(size_t maxModules, TQueue queue) diff --git a/DataFormats/SiPixelClusterSoA/interface/SiPixelClustersHost.h b/DataFormats/SiPixelClusterSoA/interface/SiPixelClustersHost.h index eb086160a6188..287c4b3d5319e 100644 --- a/DataFormats/SiPixelClusterSoA/interface/SiPixelClustersHost.h +++ b/DataFormats/SiPixelClusterSoA/interface/SiPixelClustersHost.h @@ -2,16 +2,18 @@ #define DataFormats_SiPixelClusterSoA_interface_SiPixelClustersHost_h #include -#include "HeterogeneousCore/AlpakaInterface/interface/config.h" + +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableHostCollection.h" #include "DataFormats/SiPixelClusterSoA/interface/SiPixelClustersSoA.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" // TODO: The class is created via inheritance of the PortableCollection. // This is generally discouraged, and should be done via composition. // See: https://github.com/cms-sw/cmssw/pull/40465#discussion_r1067364306 class SiPixelClustersHost : public PortableHostCollection { public: - SiPixelClustersHost() = default; + SiPixelClustersHost(edm::Uninitialized) : PortableHostCollection{edm::kUninitialized} {} template explicit SiPixelClustersHost(size_t maxModules, TQueue queue) diff --git a/DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsDevice.h b/DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsDevice.h index 36c7d0be7e88a..fa87863dc7b16 100644 --- a/DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsDevice.h +++ b/DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsDevice.h @@ -5,6 +5,7 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableDeviceCollection.h" #include "DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsSoA.h" #include "DataFormats/SiPixelRawData/interface/SiPixelErrorCompact.h" @@ -14,7 +15,9 @@ template class SiPixelDigiErrorsDevice : public PortableDeviceCollection { public: - SiPixelDigiErrorsDevice() = default; + SiPixelDigiErrorsDevice(edm::Uninitialized) + : PortableDeviceCollection{edm::kUninitialized} {} + template explicit SiPixelDigiErrorsDevice(size_t maxFedWords, TQueue queue) : PortableDeviceCollection(maxFedWords, queue), maxFedWords_(maxFedWords) {} diff --git a/DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsHost.h b/DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsHost.h index ac706dea4b544..c8974156d29a3 100644 --- a/DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsHost.h +++ b/DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsHost.h @@ -5,6 +5,7 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableHostCollection.h" #include "DataFormats/SiPixelDigiSoA/interface/SiPixelDigiErrorsSoA.h" #include "DataFormats/SiPixelRawData/interface/SiPixelErrorCompact.h" @@ -13,7 +14,8 @@ class SiPixelDigiErrorsHost : public PortableHostCollection { public: - SiPixelDigiErrorsHost() = default; + SiPixelDigiErrorsHost(edm::Uninitialized) : PortableHostCollection{edm::kUninitialized} {} + template explicit SiPixelDigiErrorsHost(int maxFedWords, TQueue queue) : PortableHostCollection(maxFedWords, queue), maxFedWords_(maxFedWords) {} diff --git a/DataFormats/SiPixelDigiSoA/interface/SiPixelDigisDevice.h b/DataFormats/SiPixelDigiSoA/interface/SiPixelDigisDevice.h index da0914511c99b..081a8875051b6 100644 --- a/DataFormats/SiPixelDigiSoA/interface/SiPixelDigisDevice.h +++ b/DataFormats/SiPixelDigiSoA/interface/SiPixelDigisDevice.h @@ -5,6 +5,7 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableDeviceCollection.h" #include "DataFormats/SiPixelDigiSoA/interface/SiPixelDigisSoA.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" @@ -12,7 +13,8 @@ template class SiPixelDigisDevice : public PortableDeviceCollection { public: - SiPixelDigisDevice() = default; + SiPixelDigisDevice(edm::Uninitialized) : PortableDeviceCollection{edm::kUninitialized} {} + template explicit SiPixelDigisDevice(size_t maxFedWords, TQueue queue) : PortableDeviceCollection(maxFedWords + 1, queue) {} diff --git a/DataFormats/SiPixelDigiSoA/interface/SiPixelDigisHost.h b/DataFormats/SiPixelDigiSoA/interface/SiPixelDigisHost.h index 69633db9db28b..99b498fc5fe14 100644 --- a/DataFormats/SiPixelDigiSoA/interface/SiPixelDigisHost.h +++ b/DataFormats/SiPixelDigiSoA/interface/SiPixelDigisHost.h @@ -1,6 +1,7 @@ #ifndef DataFormats_SiPixelDigiSoA_interface_SiPixelDigisHost_h #define DataFormats_SiPixelDigiSoA_interface_SiPixelDigisHost_h +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableHostCollection.h" #include "DataFormats/SiPixelDigiSoA/interface/SiPixelDigisSoA.h" @@ -9,7 +10,8 @@ // See: https://github.com/cms-sw/cmssw/pull/40465#discussion_r1067364306 class SiPixelDigisHost : public PortableHostCollection { public: - SiPixelDigisHost() = default; + SiPixelDigisHost(edm::Uninitialized) : PortableHostCollection{edm::kUninitialized} {} + template explicit SiPixelDigisHost(size_t maxFedWords, TQueue queue) : PortableHostCollection(maxFedWords + 1, queue) {} diff --git a/DataFormats/TrackSoA/interface/TracksDevice.h b/DataFormats/TrackSoA/interface/TracksDevice.h index dd2b25c8794be..7358859b8e397 100644 --- a/DataFormats/TrackSoA/interface/TracksDevice.h +++ b/DataFormats/TrackSoA/interface/TracksDevice.h @@ -2,10 +2,13 @@ #define DataFormats_Track_interface_TracksDevice_h #include + #include -#include "DataFormats/TrackSoA/interface/TracksSoA.h" -#include "DataFormats/TrackSoA/interface/TrackDefinitions.h" + +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableDeviceCollection.h" +#include "DataFormats/TrackSoA/interface/TrackDefinitions.h" +#include "DataFormats/TrackSoA/interface/TracksSoA.h" // TODO: The class is created via inheritance of the PortableCollection. // This is generally discouraged, and should be done via composition. @@ -14,7 +17,10 @@ template class TracksDevice : public PortableDeviceCollection, TDev> { public: static constexpr int32_t S = TrackerTraits::maxNumberOfTuples; //TODO: this could be made configurable at runtime - TracksDevice() = default; // necessary for ROOT dictionaries + + TracksDevice(edm::Uninitialized) + : PortableDeviceCollection, TDev>{edm::kUninitialized} { + } // necessary for ROOT dictionaries using PortableDeviceCollection, TDev>::view; using PortableDeviceCollection, TDev>::const_view; diff --git a/DataFormats/TrackSoA/interface/TracksHost.h b/DataFormats/TrackSoA/interface/TracksHost.h index a8f459eac066c..69b500b9672cd 100644 --- a/DataFormats/TrackSoA/interface/TracksHost.h +++ b/DataFormats/TrackSoA/interface/TracksHost.h @@ -2,11 +2,14 @@ #define DataFormats_Track_TracksHost_H #include + #include -#include "Geometry/CommonTopologies/interface/SimplePixelTopology.h" -#include "DataFormats/TrackSoA/interface/TracksSoA.h" -#include "DataFormats/TrackSoA/interface/TrackDefinitions.h" + +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableHostCollection.h" +#include "DataFormats/TrackSoA/interface/TrackDefinitions.h" +#include "DataFormats/TrackSoA/interface/TracksSoA.h" +#include "Geometry/CommonTopologies/interface/SimplePixelTopology.h" // TODO: The class is created via inheritance of the PortableHostCollection. // This is generally discouraged, and should be done via composition. @@ -15,7 +18,10 @@ template class TracksHost : public PortableHostCollection> { public: static constexpr int32_t S = TrackerTraits::maxNumberOfTuples; //TODO: this could be made configurable at runtime - TracksHost() = default; // Needed for the dictionary; not sure if line above is needed anymore + + TracksHost(edm::Uninitialized) + : PortableHostCollection>{edm::kUninitialized} { + } // necessary for ROOT dictionaries using PortableHostCollection>::view; using PortableHostCollection>::const_view; diff --git a/DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsDevice.h b/DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsDevice.h index e5b59e03d6ad7..885aba8f106a5 100644 --- a/DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsDevice.h +++ b/DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsDevice.h @@ -5,6 +5,7 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableDeviceCollection.h" #include "DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h" #include "DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsSoA.h" @@ -19,7 +20,8 @@ class TrackingRecHitDevice : public PortableDeviceCollection, TDev>::const_view; using PortableDeviceCollection, TDev>::buffer; - TrackingRecHitDevice() = default; + TrackingRecHitDevice(edm::Uninitialized) + : PortableDeviceCollection, TDev>{edm::kUninitialized} {} // Constructor which specifies the SoA size, number of BPIX1 hits, and the modules entry points template diff --git a/DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h b/DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h index e7212ce9a6252..1480236f9517b 100644 --- a/DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h +++ b/DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsHost.h @@ -5,6 +5,7 @@ #include +#include "DataFormats/Common/interface/Uninitialized.h" #include "DataFormats/Portable/interface/PortableHostCollection.h" #include "DataFormats/TrackingRecHitSoA/interface/TrackingRecHitsSoA.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" @@ -19,7 +20,8 @@ class TrackingRecHitHost : public PortableHostCollection>::const_view; using PortableHostCollection>::buffer; - TrackingRecHitHost() = default; + TrackingRecHitHost(edm::Uninitialized) + : PortableHostCollection>{edm::kUninitialized} {} // Constructor which specifies only the SoA size, to be used when copying the results from the device to the host template From 4193a383af0209d053b2c96b822b7b9ae5a192df Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 10 Dec 2024 21:59:27 +0100 Subject: [PATCH 240/418] Remove obsolete v1 BTL geometry from constructions --- .../interface/MTDTopology.h | 4 + .../plugins/CmsMTDConstruction.cc | 95 ++++--------------- .../plugins/CmsMTDConstruction.h | 1 - .../plugins/DDCmsMTDConstruction.cc | 66 +++---------- .../src/BTLDetLayerGeometryBuilder.cc | 78 ++++----------- 5 files changed, 57 insertions(+), 187 deletions(-) diff --git a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h index c82293f865561..4ea6d97362571 100644 --- a/Geometry/MTDGeometryBuilder/interface/MTDTopology.h +++ b/Geometry/MTDGeometryBuilder/interface/MTDTopology.h @@ -40,6 +40,10 @@ class MTDTopology { int getMTDTopologyMode() const { return mtdTopologyMode_; } + uint32_t btlRods() const { return btlVals_.nBTLphi_; } + uint32_t btlModulesPerRod() const { return btlVals_.nBTLeta_; } + uint32_t btlModules() const { return btlVals_.nBTLmodules_; } + // BTL topology navigation is based on a predefined order of dets in MTDGeometry, mapped onto phi/eta grid std::pair btlIndex(const uint32_t detId) const; diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc index 12c61a3f9e09a..7d2f1342651b5 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc @@ -57,48 +57,20 @@ void CmsMTDConstruction::buildBTLModule(DDFilteredView& fv, Geom GeometricTimingDet* det = new GeometricTimingDet(&fv, theCmsMTDStringToEnum.type(nodeName.substr(0, CmsMTDStringToEnum::kModStrLen))); - if (isBTLV2(fv)) { - auto& gh = fv.geoHistory(); - - baseNumber_.reset(); - baseNumber_.setSize(gh.size()); - - for (uint i = gh.size(); i-- > 0;) { - baseNumber_.addLevel(gh[i].logicalPart().name().name(), gh[i].copyno()); -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("CmsMTDConstruction") << gh[i].logicalPart().name().name() << " " << gh[i].copyno(); -#endif - } - - det->setGeographicalID(BTLDetId(btlScheme_.getUnitID(baseNumber_))); - - } else { - const auto& copyNumbers = fv.copyNumbers(); - auto module_number = copyNumbers[copyNumbers.size() - 2]; - - constexpr char positive[] = "PositiveZ"; - constexpr char negative[] = "NegativeZ"; + auto& gh = fv.geoHistory(); - const std::string& modname(fv.name()); - size_t delim1 = modname.find("BModule"); - size_t delim2 = modname.find("Layer"); - module_number += atoi(modname.substr(delim1 + CmsMTDStringToEnum::kModStrLen, delim2).c_str()) - 1; + baseNumber_.reset(); + baseNumber_.setSize(gh.size()); + for (uint i = gh.size(); i-- > 0;) { + baseNumber_.addLevel(gh[i].logicalPart().name().name(), gh[i].copyno()); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("CmsMTDConstruction") - << "BTLModule = " << modname << " " << copyNumbers[copyNumbers.size() - 3] << " " << module_number; + edm::LogVerbatim("CmsMTDConstruction") << gh[i].logicalPart().name().name() << " " << gh[i].copyno(); #endif - - if (modname.find(positive) != std::string::npos) { - det->setGeographicalID(BTLDetId(1, copyNumbers[copyNumbers.size() - 3], module_number, 0, 1)); - } else if (modname.find(negative) != std::string::npos) { - det->setGeographicalID(BTLDetId(0, copyNumbers[copyNumbers.size() - 3], module_number, 0, 1)); - } else { - throw cms::Exception("CmsMTDConstruction::buildBTLModule") - << "BTL Module " << module_number << " is neither positive nor negative in Z!"; - } } + det->setGeographicalID(BTLDetId(btlScheme_.getUnitID(baseNumber_))); + mother->addComponent(det); } @@ -108,48 +80,20 @@ void CmsMTDConstruction::buildBTLModule(cms::DDFilteredView GeometricTimingDet* det = new GeometricTimingDet(&fv, theCmsMTDStringToEnum.type(nodeName.substr(0, CmsMTDStringToEnum::kModStrLen))); - if (isBTLV2(fv)) { - baseNumber_.reset(); - baseNumber_.setSize(fv.copyNos().size()); - - for (uint i = 0; i < fv.copyNos().size(); i++) { - std::string_view name((fv.geoHistory()[i])->GetName()); - size_t ipos = name.rfind('_'); - baseNumber_.addLevel(name.substr(0, ipos), fv.copyNos()[i]); -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("CmsMTDConstruction") << name.substr(0, ipos) << " " << fv.copyNos()[i]; -#endif - } - - det->setGeographicalID(BTLDetId(btlScheme_.getUnitID(baseNumber_))); - - } else { - const auto& copyNumbers = fv.copyNumbers(); - auto module_number = copyNumbers[1]; - - constexpr char positive[] = "PositiveZ"; - constexpr char negative[] = "NegativeZ"; - - const std::string modname(fv.name()); - size_t delim1 = modname.find("BModule"); - size_t delim2 = modname.find("Layer"); - module_number += atoi(modname.substr(delim1 + CmsMTDStringToEnum::kModStrLen, delim2).c_str()) - 1; + baseNumber_.reset(); + baseNumber_.setSize(fv.copyNos().size()); + for (uint i = 0; i < fv.copyNos().size(); i++) { + std::string_view name((fv.geoHistory()[i])->GetName()); + size_t ipos = name.rfind('_'); + baseNumber_.addLevel(name.substr(0, ipos), fv.copyNos()[i]); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("MTDNumbering") << fv.path() << "\nBTLModule = " << modname << " " << copyNumbers[2] << " " - << module_number; + edm::LogVerbatim("CmsMTDConstruction") << name.substr(0, ipos) << " " << fv.copyNos()[i]; #endif - - if (modname.find(positive) != std::string::npos) { - det->setGeographicalID(BTLDetId(1, copyNumbers[2], module_number, 0, 1)); - } else if (modname.find(negative) != std::string::npos) { - det->setGeographicalID(BTLDetId(0, copyNumbers[2], module_number, 0, 1)); - } else { - throw cms::Exception("CmsMTDConstruction::buildBTLModule") - << "BTL Module " << module_number << " is neither positive nor negative in Z!"; - } } + det->setGeographicalID(BTLDetId(btlScheme_.getUnitID(baseNumber_))); + mother->addComponent(det); } @@ -245,11 +189,6 @@ GeometricTimingDet* CmsMTDConstruction::buildLayer(FilteredView& f return layer; } -template -bool CmsMTDConstruction::isBTLV2(FilteredView& fv) { - return (fv.name().substr(0, 9) == "BTLModule"); -} - template bool CmsMTDConstruction::isETLpreV8(FilteredView& fv) { return (fv.name().find("EModule") != std::string::npos); diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h index c1bb036a21d85..d9e322e849507 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h @@ -30,7 +30,6 @@ class CmsMTDConstruction { void baseNumberFromHistory(const DDGeoHistory& gh); - bool isBTLV2(FilteredView&); bool isETLpreV8(FilteredView&); protected: diff --git a/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc b/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc index da2ecf9378929..475de8f8ab1e4 100644 --- a/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc +++ b/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc @@ -72,8 +72,6 @@ std::unique_ptr DDCmsMTDConstruction::construct(const DDComp DDFilteredView fv(cpv, filter); CmsMTDStringToEnum theCmsMTDStringToEnum; - // temporary workaround to distinguish BTL scenarios ordering without introducing a dependency on MTDTopologyMode - auto isBTLV2 = false; // temporary workaround to distinguish ETL scenarios ordering without introducing a dependency on MTDTopologyMode const bool prev8(fv.name().find("EModule") != std::string::npos); @@ -136,12 +134,7 @@ std::unique_ptr DDCmsMTDConstruction::construct(const DDComp // the level chosen for old corresponds to wafers for D50 and previous scenarios // if ((thisNode == GeometricTimingDet::BTLModule) && limit == 0) { - if (theCmsMTDConstruction.isBTLV2(fv)) { - limit = num; - isBTLV2 = true; - } else { - limit = num + 1; - } + limit = num; } else if ((thisNode == ETLEndComponent) && limit == 0) { limit = num; } @@ -174,26 +167,15 @@ std::unique_ptr DDCmsMTDConstruction::construct(const DDComp edm::LogVerbatim("MTDNumbering") << "GeometricTimingDet order before sorting \n" << before.str(); #endif - if (!isBTLV2) { - for (size_t index = 0; index < layer.size(); index++) { - GeometricTimingDet::ConstGeometricTimingDetContainer& icomp = layer[index]->components(); + for (size_t index = 0; index < layer.size(); index++) { + GeometricTimingDet::ConstGeometricTimingDetContainer& icomp = layer[index]->components(); + if (index > 0) { std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderZ); std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderRR); - if (index > 0) { - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderPhi); - } - } - } else { - for (size_t index = 0; index < layer.size(); index++) { - GeometricTimingDet::ConstGeometricTimingDetContainer& icomp = layer[index]->components(); - if (index > 0) { - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderZ); - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderRR); - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderPhi); - } else { - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::btlOrderPhi); - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::btlOrderZ); - } + std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderPhi); + } else { + std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::btlOrderPhi); + std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::btlOrderZ); } } @@ -276,8 +258,6 @@ std::unique_ptr DDCmsMTDConstruction::construct(const cms::D CmsMTDStringToEnum theCmsMTDStringToEnum; CmsMTDConstruction theCmsMTDConstruction; - // temporary workaround to distinguish BTL scenarios ordering without introducing a dependency on MTDTopologyMode - auto isBTLV2 = false; // temporary workaround to distinguish ETL scenarios ordering without introducing a dependency on MTDTopologyMode const bool prev8(fv.name().find("EModule") != std::string::npos); @@ -319,11 +299,6 @@ std::unique_ptr DDCmsMTDConstruction::construct(const cms::D #ifdef EDM_ML_DEBUG edm::LogVerbatim("DD4hep_MTDNumbering") << "Registered in GeometricTimingDet as type " << thisNode; #endif - if (isBTLV2 == false) { - if (theCmsMTDConstruction.isBTLV2(fv)) { - isBTLV2 = true; - } - } theCmsMTDConstruction.buildBTLModule(fv, layer.back()); } else if (thisNode == ETLEndComponent) { #ifdef EDM_ML_DEBUG @@ -346,26 +321,15 @@ std::unique_ptr DDCmsMTDConstruction::construct(const cms::D edm::LogVerbatim("DD4hep_MTDNumbering") << "GeometricTimingDet order before sorting \n" << before.str(); #endif - if (!isBTLV2) { - for (size_t index = 0; index < layer.size(); index++) { - GeometricTimingDet::ConstGeometricTimingDetContainer& icomp = layer[index]->components(); + for (size_t index = 0; index < layer.size(); index++) { + GeometricTimingDet::ConstGeometricTimingDetContainer& icomp = layer[index]->components(); + if (index > 0) { std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderZ); std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderRR); - if (index > 0) { - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderPhi); - } - } - } else { - for (size_t index = 0; index < layer.size(); index++) { - GeometricTimingDet::ConstGeometricTimingDetContainer& icomp = layer[index]->components(); - if (index > 0) { - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderZ); - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderRR); - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderPhi); - } else { - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::btlOrderPhi); - std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::btlOrderZ); - } + std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::mtdOrderPhi); + } else { + std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::btlOrderPhi); + std::stable_sort(icomp.begin(), icomp.end(), CmsMTDConstruction::btlOrderZ); } } diff --git a/RecoMTD/DetLayers/src/BTLDetLayerGeometryBuilder.cc b/RecoMTD/DetLayers/src/BTLDetLayerGeometryBuilder.cc index a814be8b2ad48..34017c356e341 100644 --- a/RecoMTD/DetLayers/src/BTLDetLayerGeometryBuilder.cc +++ b/RecoMTD/DetLayers/src/BTLDetLayerGeometryBuilder.cc @@ -6,7 +6,6 @@ #include #include #include -#include #include #include @@ -27,65 +26,30 @@ vector BTLDetLayerGeometryBuilder::buildLayers(const MTDGeometry& geo vector btlDetTrays; - const int mtdTopologyMode = topo.getMTDTopologyMode(); - BTLDetId::CrysLayout btlL = MTDTopologyMode::crysLayoutFromTopoMode(mtdTopologyMode); - - if (btlL != BTLDetId::CrysLayout::v2 && btlL != BTLDetId::CrysLayout::v3) { - for (unsigned tray = 1; tray <= BTLDetId::HALF_ROD; ++tray) { - vector geomDets; - for (unsigned module = 1; module <= BTLDetId::kModulesPerRODBarPhiFlat; ++module) { - for (unsigned side = 0; side <= 1; ++side) { - const GeomDet* geomDet = geo.idToDet(BTLDetId(side, tray, module, 0, 1)); - if (geomDet != nullptr) { - geomDets.push_back(geomDet); - LogTrace("MTDDetLayers") << "get BTL module " << std::hex << BTLDetId(side, tray, module, 0, 1).rawId() - << std::dec << " at R=" << geomDet->position().perp() - << ", phi=" << geomDet->position().phi(); - } - } - } - - if (!geomDets.empty()) { - precomputed_value_sort(geomDets.begin(), geomDets.end(), geomsort::DetZ()); - btlDetTrays.push_back(new MTDDetTray(geomDets)); - LogTrace("MTDDetLayers") << " New BTLDetTray with " << geomDets.size() - << " modules at R=" << btlDetTrays.back()->position().perp() - << ", phi=" << btlDetTrays.back()->position().phi(); - } + vector geomDets; + + // logical tracking trays are now rows along z of modules, 3 per each mechanical tray, running from -z to z + // MTDGeometry is already built with the proper ordering, it is enough to exploit that + geomDets.reserve(topo.btlModulesPerRod()); + + uint32_t index(0); + for (const auto& det : geo.detsBTL()) { + index++; + geomDets.emplace_back(det); + if (index == topo.btlModulesPerRod()) { + btlDetTrays.emplace_back(new MTDDetTray(geomDets)); + LogTrace("MTDDetLayers") << " New BTLDetTray with " << geomDets.size() + << " modules at R=" << btlDetTrays.back()->position().perp() + << ", phi=" << btlDetTrays.back()->position().phi(); + index = 0; + geomDets.clear(); } - - precomputed_value_sort(btlDetTrays.begin(), btlDetTrays.end(), geomsort::ExtractPhi()); - result.push_back(new MTDTrayBarrelLayer(btlDetTrays)); - LogTrace("MTDDetLayers") << "BTLDetLayerGeometryBuilder: new MTDTrayBarrelLayer with " << btlDetTrays.size() - << " rods, at R " << result.back()->specificSurface().radius(); - } else { - vector geomDets; - - // logical tracking trays are now rows along z of modules, 3 per each mechanical tray, running from -z to z - // MTDGeometry is already built with the proper ordering, it is enough to exploit that - const uint32_t modulesPerDetTray = - 2 * BTLDetId::kRUPerTypeV2 * BTLDetId::kCrystalTypes * BTLDetId::kModulesPerRUV2 / BTLDetId::kModulesPerTrkV2; - geomDets.reserve(modulesPerDetTray); - - uint32_t index(0); - for (const auto& det : geo.detsBTL()) { - index++; - geomDets.emplace_back(det); - if (index == modulesPerDetTray) { - btlDetTrays.emplace_back(new MTDDetTray(geomDets)); - LogTrace("MTDDetLayers") << " New BTLDetTray with " << geomDets.size() - << " modules at R=" << btlDetTrays.back()->position().perp() - << ", phi=" << btlDetTrays.back()->position().phi(); - index = 0; - geomDets.clear(); - } - } - - result.emplace_back(new MTDTrayBarrelLayer(btlDetTrays)); - LogTrace("MTDDetLayers") << "BTLDetLayerGeometryBuilder: new MTDTrayBarrelLayer with " << btlDetTrays.size() - << " rods, at R " << result.back()->specificSurface().radius(); } + result.emplace_back(new MTDTrayBarrelLayer(btlDetTrays)); + LogTrace("MTDDetLayers") << "BTLDetLayerGeometryBuilder: new MTDTrayBarrelLayer with " << btlDetTrays.size() + << " rods, at R " << result.back()->specificSurface().radius(); + for (vector::const_iterator it = result.begin(); it != result.end(); it++) detlayers.push_back((DetLayer*)(*it)); From cbaa4665b5c451dcdd7d60e6013ca022ce836167 Mon Sep 17 00:00:00 2001 From: Adriano Di Florio Date: Wed, 11 Dec 2024 11:12:05 +0100 Subject: [PATCH 241/418] 2023 RelVal Inputs --- Configuration/PyReleaseValidation/python/relval_steps.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 37f9f5153c5e6..5884a86631c9f 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -4417,6 +4417,7 @@ def gen2024HiMix(fragment,howMuch): defaultDataSets['2022']='CMSSW_14_0_18-140X_mcRun3_2022_realistic_v12_STD_noPU_2022_reMC-v' defaultDataSets['2022Design']='CMSSW_12_5_0_pre4-124X_mcRun3_2022_design_v7_design_BS2022-v' defaultDataSets['2022FS']='CMSSW_14_0_18-140X_mcRun3_2022_realistic_v12_2022_FastSim_Run3_FastSim-v' +defaultDataSets['2023']='CMSSW_13_0_10-130X_mcRun3_2023_realistic_withEarly2023BS_v1_2023-v' defaultDataSets['2023FS']='CMSSW_13_0_11-130X_mcRun3_2023_realistic_withEarly2023BS_v1_FastSim-v' defaultDataSets['2024']='CMSSW_14_1_0_pre7-140X_mcRun3_2024_realistic_v21_STD_RegeneratedGS_2024_noPU-v' defaultDataSets['2025']='CMSSW_14_1_0_pre7-140X_mcRun3_2024_realistic_v21_STD_RegeneratedGS_2024_noPU-v' From d881ffc743eaa78452248c997642f2f9e47d1b8c Mon Sep 17 00:00:00 2001 From: Ram Krishna Dewanjee Date: Wed, 11 Dec 2024 12:32:39 +0100 Subject: [PATCH 242/418] Added E-Tau Trigger path files --- .../hltHpsPFTau30LooseTauWPDeepTau_cfi.py | 14 + .../hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py | 5 + ...oseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py | 610 ++++++++++++++++++ 3 files changed, 629 insertions(+) create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltHpsPFTau30LooseTauWPDeepTau_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltHpsPFTau30LooseTauWPDeepTau_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHpsPFTau30LooseTauWPDeepTau_cfi.py new file mode 100644 index 0000000000000..e84dbfd99daae --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltHpsPFTau30LooseTauWPDeepTau_cfi.py @@ -0,0 +1,14 @@ +import FWCore.ParameterSet.Config as cms + +hltHpsPFTau30LooseTauWPDeepTau = cms.EDFilter("HLT1PFTau", + MaxEta = cms.double(2.1), + MaxMass = cms.double(-1.0), + MinE = cms.double(-1.0), + MinEta = cms.double(-1.0), + MinMass = cms.double(-1.0), + MinN = cms.int32(1), + MinPt = cms.double(30.0), + inputTag = cms.InputTag("hltHpsSelectedPFTauLooseTauWPDeepTau"), + saveTags = cms.bool(True), + triggerType = cms.int32(84) +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py new file mode 100644 index 0000000000000..8208b61e03cd1 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +hltPuppiTauTkIsoEle4522L1TkFilter = cms.EDFilter("PathStatusFilter", + logicalExpression = cms.string('pPuppiTauTkIsoEle45_22') +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py new file mode 100644 index 0000000000000..5329b9c26e5c1 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py @@ -0,0 +1,610 @@ +import FWCore.ParameterSet.Config as cms + +from ..sequences.HLTBeginSequence_cfi import * +from ..sequences.HLTDoFullUnpackingEgammaEcalL1SeededSequence_cfi import * +from ..sequences.HLTPFClusteringForEgammaL1SeededSequence_cfi import * +from ..sequences.HLTHgcalTiclPFClusteringForEgammaL1SeededSequence_cfi import * +from ..sequences.HLTEGammaDoLocalHcalSequence_cfi import * +from ..sequences.HLTFastJetForEgammaSequence_cfi import * +from ..sequences.HLTPFHcalClusteringForEgammaSequence_cfi import * +from ..sequences.HLTElePixelMatchL1SeededSequence_cfi import * +from ..sequences.HLTGsfElectronL1SeededSequence_cfi import * +from ..sequences.HLTAK4PFJetsReconstruction_cfi import * +from ..sequences.HLTPFTauHPS_cfi import * +from ..sequences.HLTHPSDeepTauPFTauSequence_cfi import * + +#from ..sequences.RawToDigiSequence_cfi import * ## CHANGED TO FILE BELOW +from ..sequences.HLTRawToDigiSequence_cfi import * + +#from ..sequences.hgcalLocalRecoSequence_cfi import * ## CHANGED TO FILE BELOW +from ..sequences.HLTHgcalLocalRecoSequence_cfi import * + +#from ..sequences.localrecoSequence_cfi import * ## CHANGED TO FILE BELOW +from ..sequences.HLTLocalrecoSequence_cfi import * + +from ..sequences.HLTTrackingV61Sequence_cfi import * +from ..sequences.HLTMuonsSequence_cfi import * +from ..sequences.HLTParticleFlowSequence_cfi import * +from ..sequences.HLTEndSequence_cfi import * +from ..modules.hltPuppiTauTkIsoEle4522L1TkFilter_cfi import * +from ..modules.hltEgammaCandidatesL1Seeded_cfi import * +from ..modules.hltEgammaCandidatesWrapperL1Seeded_cfi import * +from ..modules.hltEgammaClusterShapeL1Seeded_cfi import * +from ..modules.hltEG30EtL1SeededFilter_cfi import * +from ..modules.hltEle32WPTightClusterShapeL1SeededFilter_cfi import hltEle32WPTightClusterShapeL1SeededFilter as _hltEle32WPTightClusterShapeL1SeededFilter +from ..modules.hltEgammaHGCALIDVarsL1Seeded_cfi import * +from ..modules.hltEle32WPTightClusterShapeSigmavvL1SeededFilter_cfi import hltEle32WPTightClusterShapeSigmavvL1SeededFilter as _hltEle32WPTightClusterShapeSigmavvL1SeededFilter +from ..modules.hltEle32WPTightClusterShapeSigmawwL1SeededFilter_cfi import hltEle32WPTightClusterShapeSigmawwL1SeededFilter as _hltEle32WPTightClusterShapeSigmawwL1SeededFilter +from ..modules.hltEle32WPTightHgcalHEL1SeededFilter_cfi import hltEle32WPTightHgcalHEL1SeededFilter as _hltEle32WPTightHgcalHEL1SeededFilter +from ..modules.hltEgammaHoverEL1Seeded_cfi import * +from ..modules.hltEle32WPTightHEL1SeededFilter_cfi import hltEle32WPTightHEL1SeededFilter as _hltEle32WPTightHEL1SeededFilter +from ..modules.hltEgammaEcalPFClusterIsoL1Seeded_cfi import * +from ..modules.hltEle32WPTightEcalIsoL1SeededFilter_cfi import hltEle32WPTightEcalIsoL1SeededFilter as _hltEle32WPTightEcalIsoL1SeededFilter +from ..modules.hltEgammaHGCalLayerClusterIsoL1Seeded_cfi import * +from ..modules.hltEle32WPTightHgcalIsoL1SeededFilter_cfi import hltEle32WPTightHgcalIsoL1SeededFilter as _hltEle32WPTightHgcalIsoL1SeededFilter +from ..modules.hltEgammaHcalPFClusterIsoL1Seeded_cfi import * +from ..modules.hltEle32WPTightHcalIsoL1SeededFilter_cfi import hltEle32WPTightHcalIsoL1SeededFilter as _hltEle32WPTightHcalIsoL1SeededFilter +from ..modules.hltEle32WPTightPixelMatchL1SeededFilter_cfi import hltEle32WPTightPixelMatchL1SeededFilter as _hltEle32WPTightPixelMatchL1SeededFilter +from ..modules.hltEle32WPTightPMS2L1SeededFilter_cfi import hltEle32WPTightPMS2L1SeededFilter as _hltEle32WPTightPMS2L1SeededFilter +from ..modules.hltEle32WPTightGsfOneOEMinusOneOPL1SeededFilter_cfi import hltEle32WPTightGsfOneOEMinusOneOPL1SeededFilter as _hltEle32WPTightGsfOneOEMinusOneOPL1SeededFilter +from ..modules.hltEle32WPTightGsfDetaL1SeededFilter_cfi import hltEle32WPTightGsfDetaL1SeededFilter as _hltEle32WPTightGsfDetaL1SeededFilter +from ..modules.hltEle32WPTightGsfDphiL1SeededFilter_cfi import hltEle32WPTightGsfDphiL1SeededFilter as _hltEle32WPTightGsfDphiL1SeededFilter +from ..modules.hltEle32WPTightBestGsfNLayerITL1SeededFilter_cfi import hltEle32WPTightBestGsfNLayerITL1SeededFilter as _hltEle32WPTightBestGsfNLayerITL1SeededFilter +from ..modules.hltEle32WPTightBestGsfChi2L1SeededFilter_cfi import hltEle32WPTightBestGsfChi2L1SeededFilter as _hltEle32WPTightBestGsfChi2L1SeededFilter +from ..modules.hltEgammaEleL1TrkIsoL1Seeded_cfi import * +from ..modules.hltEle32WPTightGsfTrackIsoFromL1TracksL1SeededFilter_cfi import hltEle32WPTightGsfTrackIsoFromL1TracksL1SeededFilter as _hltEle32WPTightGsfTrackIsoFromL1TracksL1SeededFilter +from ..modules.hltEgammaEleGsfTrackIsoV6L1Seeded_cfi import * +from ..modules.hltEle32WPTightGsfTrackIsoL1SeededFilter_cfi import hltEle32WPTightGsfTrackIsoL1SeededFilter as _hltEle32WPTightGsfTrackIsoL1SeededFilter +from ..modules.hltAK4PFJetsForTaus_cfi import * +from ..modules.hltHpsSelectedPFTauLooseTauWPDeepTau_cfi import * +from ..modules.hltHpsPFTau30LooseTauWPDeepTau_cfi import * ## NEW (with threshold different from youngwan) +from ..modules.hltAK4PFJets_cfi import * + + + + +#hltEG30EtL1SeededFilter = _hltEG32EtL1SeededFilter.clone( +# etcutEB = cms.double(30.0), +# etcutEE = cms.double(30.0), +# inputTag = cms.InputTag("hltEgammaCandidatesWrapperL1Seeded"), +# l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), +# ncandcut = cms.int32(1), +# saveTags = cms.bool(True) +#) + +hltEle30WPTightClusterShapeL1SeededFilter = _hltEle32WPTightClusterShapeL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag('hltEG30EtL1SeededFilter'), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0), + thrOverEEE = cms.vdouble(0), + thrRegularEB = cms.vdouble(0.013), + thrRegularEE = cms.vdouble(0.013), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaClusterShapeL1Seeded","sigmaIEtaIEta5x5") +) + +hltEle30WPTightClusterShapeSigmavvL1SeededFilter = _hltEle32WPTightClusterShapeSigmavvL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightClusterShapeL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0.0008), + thrOverEEE = cms.vdouble(0.0008), + thrRegularEB = cms.vdouble(0.7225), + thrRegularEE = cms.vdouble(0.7225), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","sigma2vv") +) + +hltEle30WPTightClusterShapeSigmawwL1SeededFilter = _hltEle32WPTightClusterShapeSigmawwL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightClusterShapeSigmavvL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0.04), + thrOverEEE = cms.vdouble(0.04), + thrRegularEB = cms.vdouble(72.25), + thrRegularEE = cms.vdouble(72.25), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","sigma2ww") +) + + +hltEle30WPTightHgcalHEL1SeededFilter = _hltEle32WPTightHgcalHEL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightClusterShapeSigmawwL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.15), + thrOverEEE2 = cms.vdouble(0.15), + thrRegularEB1 = cms.vdouble(9999.0), + thrRegularEB2 = cms.vdouble(9999.0), + thrRegularEE1 = cms.vdouble(5.0), + thrRegularEE2 = cms.vdouble(5.0), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","hForHOverE") +) + +hltEle30WPTightHEL1SeededFilter = _hltEle32WPTightHEL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightHgcalHEL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.1, 0.1, 0.3, 0.5), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.175), + thrOverEEB2 = cms.vdouble(0.175), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(0.0), + thrRegularEB2 = cms.vdouble(0.0), + thrRegularEE1 = cms.vdouble(9999.0), + thrRegularEE2 = cms.vdouble(9999.0), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaHoverEL1Seeded") +) + +hltEle30WPTightEcalIsoL1SeededFilter = _hltEle32WPTightEcalIsoL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightHEL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.2, 0.2, 0.25, 0.3), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.02), + thrOverEEB2 = cms.vdouble(0.02), + thrOverEEE1 = cms.vdouble(0.02), + thrOverEEE2 = cms.vdouble(0.02), + thrRegularEB1 = cms.vdouble(9.0), + thrRegularEB2 = cms.vdouble(9.0), + thrRegularEE1 = cms.vdouble(9.0), + thrRegularEE2 = cms.vdouble(9.0), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaEcalPFClusterIsoL1Seeded") +) + +hltEle30WPTightHgcalIsoL1SeededFilter = _hltEle32WPTightHgcalIsoL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.0), + candTag = cms.InputTag("hltEle30WPTightEcalIsoL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.05), + thrOverEEB2 = cms.vdouble(0.05), + thrOverEEE1 = cms.vdouble(0.05), + thrOverEEE2 = cms.vdouble(0.05), + thrRegularEB1 = cms.vdouble(150), + thrRegularEB2 = cms.vdouble(150), + thrRegularEE1 = cms.vdouble(150), + thrRegularEE2 = cms.vdouble(350), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaHGCalLayerClusterIsoL1Seeded") +) + +hltEle30WPTightHcalIsoL1SeededFilter = _hltEle32WPTightHcalIsoL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.0), + candTag = cms.InputTag("hltEle30WPTightHgcalIsoL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.2, 0.2, 0.4, 0.5), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.02), + thrOverEEB2 = cms.vdouble(0.02), + thrOverEEE1 = cms.vdouble(0.02), + thrOverEEE2 = cms.vdouble(0.02), + thrRegularEB1 = cms.vdouble(19), + thrRegularEB2 = cms.vdouble(19), + thrRegularEE1 = cms.vdouble(19), + thrRegularEE2 = cms.vdouble(19), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaHcalPFClusterIsoL1Seeded") +) + + +hltEle30WPTightPixelMatchL1SeededFilter = _hltEle32WPTightPixelMatchL1SeededFilter.clone( + candTag = cms.InputTag("hltEle30WPTightHcalIsoL1SeededFilter"), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + l1PixelSeedsTag = cms.InputTag("hltEgammaElectronPixelSeedsL1Seeded"), + ncandcut = cms.int32(1), + npixelmatchcut = cms.double(1.0), + pixelVeto = cms.bool(False), + s2_threshold = cms.double(0.4), + s_a_phi1B = cms.double(0.0069), + s_a_phi1F = cms.double(0.0076), + s_a_phi1I = cms.double(0.0088), + s_a_phi2B = cms.double(0.00037), + s_a_phi2F = cms.double(0.00906), + s_a_phi2I = cms.double(0.0007), + s_a_rF = cms.double(0.04), + s_a_rI = cms.double(0.027), + s_a_zB = cms.double(0.012), + saveTags = cms.bool(True), + tanhSO10BarrelThres = cms.double(0.35), + tanhSO10ForwardThres = cms.double(1.0), + tanhSO10InterThres = cms.double(1.0), + useS = cms.bool(False) +) + +hltEle30WPTightPMS2L1SeededFilter = _hltEle32WPTightPMS2L1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightPixelMatchL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0), + thrOverEEE = cms.vdouble(0), + thrRegularEB = cms.vdouble(55.0), + thrRegularEE = cms.vdouble(75.0), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaPixelMatchVarsL1Seeded","s2") +) + + +hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter = _hltEle32WPTightGsfOneOEMinusOneOPL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightPMS2L1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(0.8), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(0.04), + thrRegularEB2 = cms.vdouble(0.08), + thrRegularEE1 = cms.vdouble(0.04), + thrRegularEE2 = cms.vdouble(0.04), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","OneOESuperMinusOneOP") +) + +hltEle30WPTightGsfDetaL1SeededFilter = _hltEle32WPTightGsfDetaL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(0.8), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(0.003), + thrRegularEB2 = cms.vdouble(0.009), + thrRegularEE1 = cms.vdouble(0.004), + thrRegularEE2 = cms.vdouble(0.004), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","DetaSeed") +) + +hltEle30WPTightGsfDphiL1SeededFilter = _hltEle32WPTightGsfDphiL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightGsfDetaL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(0.8), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(0.02), + thrRegularEB2 = cms.vdouble(0.09), + thrRegularEE1 = cms.vdouble(0.04), + thrRegularEE2 = cms.vdouble(0.04), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","Dphi") +) + +hltEle30WPTightBestGsfNLayerITL1SeededFilter = _hltEle32WPTightBestGsfNLayerITL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightGsfDphiL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(False), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0), + thrOverEEE = cms.vdouble(0), + thrRegularEB = cms.vdouble(3), + thrRegularEE = cms.vdouble(3), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaBestGsfTrackVarsL1Seeded","NLayerIT") +) + +hltEle30WPTightBestGsfChi2L1SeededFilter = _hltEle32WPTightBestGsfChi2L1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightBestGsfNLayerITL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0), + thrOverEEE = cms.vdouble(0), + thrRegularEB = cms.vdouble(50.0), + thrRegularEE = cms.vdouble(50.0), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaBestGsfTrackVarsL1Seeded","Chi2") +) + +hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter = _hltEle32WPTightGsfTrackIsoFromL1TracksL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.0), + candTag = cms.InputTag("hltEle30WPTightBestGsfChi2L1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(0.8), + etaBoundaryEE12 = cms.double(2.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(5.5), + thrRegularEB2 = cms.vdouble(8.0), + thrRegularEE1 = cms.vdouble(5.5), + thrRegularEE2 = cms.vdouble(5.5), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaEleL1TrkIsoL1Seeded") +) + +hltEle30WPTightGsfTrackIsoL1SeededFilter = _hltEle32WPTightGsfTrackIsoL1SeededFilter.clone( + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.029, 0.111, 0.114, 0.032), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(2.5), + thrRegularEB2 = cms.vdouble(2.5), + thrRegularEE1 = cms.vdouble(2.2), + thrRegularEE2 = cms.vdouble(2.2), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaEleGsfTrackIsoV6L1Seeded") +) + + +HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1 = cms.Path( + HLTBeginSequence + + hltPuppiTauTkIsoEle4522L1TkFilter + + + #RawToDigiSequence + + HLTRawToDigiSequence + + + #hgcalLocalRecoSequence + + HLTHgcalLocalRecoSequence + + + #localrecoSequence + + HLTLocalrecoSequence + + + HLTDoFullUnpackingEgammaEcalL1SeededSequence + + HLTPFClusteringForEgammaL1SeededSequence + + HLTHgcalTiclPFClusteringForEgammaL1SeededSequence + + hltEgammaCandidatesL1Seeded + + hltEgammaCandidatesWrapperL1Seeded + + hltEG30EtL1SeededFilter + + hltEgammaClusterShapeL1Seeded + + hltEle30WPTightClusterShapeL1SeededFilter + + hltEgammaHGCALIDVarsL1Seeded + + hltEle30WPTightClusterShapeSigmavvL1SeededFilter + + hltEle30WPTightClusterShapeSigmawwL1SeededFilter + + hltEle30WPTightHgcalHEL1SeededFilter + + HLTEGammaDoLocalHcalSequence + + HLTFastJetForEgammaSequence + + hltEgammaHoverEL1Seeded + + hltEle30WPTightHEL1SeededFilter + + hltEgammaEcalPFClusterIsoL1Seeded + + hltEle30WPTightEcalIsoL1SeededFilter + + hltEgammaHGCalLayerClusterIsoL1Seeded + + hltEle30WPTightHgcalIsoL1SeededFilter + + HLTPFHcalClusteringForEgammaSequence + + hltEgammaHcalPFClusterIsoL1Seeded + + hltEle30WPTightHcalIsoL1SeededFilter + + HLTElePixelMatchL1SeededSequence + + hltEle30WPTightPixelMatchL1SeededFilter + + hltEle30WPTightPMS2L1SeededFilter + + HLTGsfElectronL1SeededSequence + + hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter + + hltEle30WPTightGsfDetaL1SeededFilter + + hltEle30WPTightGsfDphiL1SeededFilter + + hltEle30WPTightBestGsfNLayerITL1SeededFilter + + hltEle30WPTightBestGsfChi2L1SeededFilter + + hltEgammaEleL1TrkIsoL1Seeded + + hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter + + HLTTrackingV61Sequence + + hltEgammaEleGsfTrackIsoV6L1Seeded + + hltEle30WPTightGsfTrackIsoL1SeededFilter + + HLTMuonsSequence + + HLTParticleFlowSequence + + HLTAK4PFJetsReconstruction + + hltAK4PFJetsForTaus + + HLTPFTauHPS + + HLTHPSDeepTauPFTauSequence + + hltHpsSelectedPFTauLooseTauWPDeepTau + + hltHpsPFTau30LooseTauWPDeepTau + + HLTEndSequence +) From 4245ed3bbb14c68c2f5ea1d26ee8e8224c724cd5 Mon Sep 17 00:00:00 2001 From: Patin Inkaew Date: Wed, 11 Dec 2024 15:06:23 +0100 Subject: [PATCH 243/418] add SimpleCandidateCollectionFlatTableProducer --- PhysicsTools/NanoAOD/plugins/SimpleFlatTableProducerPlugins.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/PhysicsTools/NanoAOD/plugins/SimpleFlatTableProducerPlugins.cc b/PhysicsTools/NanoAOD/plugins/SimpleFlatTableProducerPlugins.cc index c3c3b1e769575..aa12667124e13 100644 --- a/PhysicsTools/NanoAOD/plugins/SimpleFlatTableProducerPlugins.cc +++ b/PhysicsTools/NanoAOD/plugins/SimpleFlatTableProducerPlugins.cc @@ -3,6 +3,8 @@ #include "DataFormats/Candidate/interface/Candidate.h" typedef SimpleFlatTableProducer SimpleCandidateFlatTableProducer; +typedef SimpleCollectionFlatTableProducer SimpleCandidateCollectionFlatTableProducer; + #include "DataFormats/TrackReco/interface/Track.h" typedef SimpleFlatTableProducer SimpleTrackFlatTableProducer; @@ -50,6 +52,7 @@ typedef EventSingletonSimpleFlatTableProducer SimpleBeamspotFlat #include "FWCore/Framework/interface/MakerMacros.h" DEFINE_FWK_MODULE(SimpleCandidateFlatTableProducer); +DEFINE_FWK_MODULE(SimpleCandidateCollectionFlatTableProducer); DEFINE_FWK_MODULE(SimpleTrackFlatTableProducer); DEFINE_FWK_MODULE(SimpleSuperclusterFlatTableProducer); DEFINE_FWK_MODULE(SimplePFJetFlatTableProducer); From dd23ea9120921e09615c92ea08bd5de0c36b457b Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 10 Dec 2024 08:57:53 +0100 Subject: [PATCH 244/418] fetch HLT ESproducers directly from the HLT menu --- ...LCARECOPromptCalibProdSiPixelAliHLT_cff.py | 80 +------------------ .../python/HLTModulesIncludes_cff.py | 5 ++ 2 files changed, 7 insertions(+), 78 deletions(-) create mode 100644 Alignment/CommonAlignmentProducer/python/HLTModulesIncludes_cff.py diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py index 4f9000ffd88d9..a5dbfab1d52e2 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOPromptCalibProdSiPixelAliHLT_cff.py @@ -51,84 +51,8 @@ # In the following use # TrackRefitter (normal tracks), TrackRefitterP5 (cosmics) or TrackRefitterBHM (beam halo) -from RecoLocalTracker.SiStripRecHitConverter.StripCPEESProducer_cfi import stripCPEESProducer -hltESPStripCPEfromTrackAngle = stripCPEESProducer.clone( - ComponentType = "StripCPEfromTrackAngle" , - ComponentName = "hltESPStripCPEfromTrackAngle", - parameters = cms.PSet( - mLC_P2 = cms.double(0.3), - mLC_P1 = cms.double(0.618), - mLC_P0 = cms.double(-0.326), -# useLegacyError = cms.bool( True ), # 50ns menu -# maxChgOneMIP = cms.double( -6000.0 ), # 50ns menu - useLegacyError = cms.bool(False) , # 25ns menu - maxChgOneMIP = cms.double(6000.0) , #25ns menu - mTEC_P1 = cms.double( 0.471 ), - mTEC_P0 = cms.double( -1.885 ), - mTOB_P0 = cms.double( -1.026 ), - mTOB_P1 = cms.double( 0.253 ), - mTIB_P0 = cms.double( -0.742 ), - mTIB_P1 = cms.double( 0.202 ), - mTID_P0 = cms.double( -1.427 ), - mTID_P1 = cms.double( 0.433 ) - ) -) - -hltESPPixelCPEGeneric = cms.ESProducer( - "PixelCPEGenericESProducer", - LoadTemplatesFromDB = cms.bool( True ), - Alpha2Order = cms.bool( True ), - ClusterProbComputationFlag = cms.int32( 0 ), - useLAWidthFromDB = cms.bool( False ), - lAOffset = cms.double( 0.0 ), - lAWidthBPix = cms.double( 0.0 ), - lAWidthFPix = cms.double( 0.0 ), - doLorentzFromAlignment = cms.bool( False ), - useLAFromDB = cms.bool( True ), - xerr_barrel_l1 = cms.vdouble( 0.00115, 0.0012, 8.8E-4 ), - yerr_barrel_l1 = cms.vdouble( 0.00375, 0.0023, 0.0025, 0.0025, 0.0023, 0.0023, 0.0021, 0.0021, 0.0024 ), - xerr_barrel_ln = cms.vdouble( 0.00115, 0.0012, 8.8E-4 ), - yerr_barrel_ln = cms.vdouble( 0.00375, 0.0023, 0.0025, 0.0025, 0.0023, 0.0023, 0.0021, 0.0021, 0.0024 ), - xerr_endcap = cms.vdouble( 0.002, 0.002 ), - yerr_endcap = cms.vdouble( 0.0021 ), - xerr_barrel_l1_def = cms.double( 0.0103 ), - yerr_barrel_l1_def = cms.double( 0.0021 ), - xerr_barrel_ln_def = cms.double( 0.0103 ), - yerr_barrel_ln_def = cms.double( 0.0021 ), - xerr_endcap_def = cms.double( 0.002 ), - yerr_endcap_def = cms.double( 7.5E-4 ), - eff_charge_cut_highX = cms.double( 1.0 ), - eff_charge_cut_highY = cms.double( 1.0 ), - eff_charge_cut_lowX = cms.double( 0.0 ), - eff_charge_cut_lowY = cms.double( 0.0 ), - size_cutX = cms.double( 3.0 ), - size_cutY = cms.double( 3.0 ), - EdgeClusterErrorX = cms.double( 50.0 ), - EdgeClusterErrorY = cms.double( 85.0 ), - inflate_errors = cms.bool( False ), - inflate_all_errors_no_trk_angle = cms.bool( False ), - NoTemplateErrorsWhenNoTrkAngles = cms.bool( False ), - UseErrorsFromTemplates = cms.bool( True ), - TruncatePixelCharge = cms.bool( True ), - IrradiationBiasCorrection = cms.bool( True ), - DoCosmics = cms.bool( False ), - isPhase2 = cms.bool( False ), - SmallPitch = cms.bool( False ), - ComponentName = cms.string( "hltESPPixelCPEGeneric" ), - MagneticFieldRecord = cms.ESInputTag( "","" ), - appendToDataLabel = cms.string( "" ) -) - -hltESPTTRHBWithTrackAngle = cms.ESProducer( - "TkTransientTrackingRecHitBuilderESProducer", - ComponentName = cms.string( "hltESPTTRHBWithTrackAngle" ), - ComputeCoarseLocalPositionFromDisk = cms.bool( False ), - StripCPE = cms.string( "hltESPStripCPEfromTrackAngle" ), - PixelCPE = cms.string( "hltESPPixelCPEGeneric" ), - Matcher = cms.string( "StandardMatcher" ), - Phase2StripCPE = cms.string( "" ), - appendToDataLabel = cms.string( "" ) -) +# Ingredient: import HLT CPE ESProducers directly to avoid going out of synch +from Alignment.CommonAlignmentProducer.HLTModulesIncludes_cff import hltESPStripCPEfromTrackAngle, hltESPPixelCPEGeneric, hltESPTTRHBWithTrackAngle SiPixelAliTrackRefitterHLT0 = TrackRefitter.clone( src = 'SiPixelAliLooseSelectorHLT', #'ALCARECOTkAlMinBias'#'ALCARECOTkAlCosmicsCTF0T' #'ALCARECOTkAlMuonIsolated' diff --git a/Alignment/CommonAlignmentProducer/python/HLTModulesIncludes_cff.py b/Alignment/CommonAlignmentProducer/python/HLTModulesIncludes_cff.py new file mode 100644 index 0000000000000..b2f3c2ba39a53 --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/HLTModulesIncludes_cff.py @@ -0,0 +1,5 @@ +from HLTrigger.Configuration.HLT_FULL_cff import fragment + +hltESPStripCPEfromTrackAngle = fragment.hltESPStripCPEfromTrackAngle +hltESPPixelCPEGeneric = fragment.hltESPPixelCPEGeneric +hltESPTTRHBWithTrackAngle = fragment.hltESPTTRHBWithTrackAngle From daea152844e156e1b506f8a3076e676aaa25855f Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 11 Dec 2024 16:21:49 +0100 Subject: [PATCH 245/418] add SiPixelAli HG Combined workflows to testPCLAlCaHarvesting --- .../TkAlCaRecoProducers/test/parseFwkJobReport.py | 4 +++- .../TkAlCaRecoProducers/test/testAlCaHarvesting.sh | 5 +++-- .../test/testPCLAlCaHarvesting.py | 13 +++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py b/Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py index 87913bf47d566..e7dce6acc9364 100644 --- a/Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py +++ b/Calibration/TkAlCaRecoProducers/test/parseFwkJobReport.py @@ -18,7 +18,9 @@ 'SiStripLA_pcl', 'SiPixelAli_pcl', # Alignment 'SiPixelAliHG_pcl', - 'SiPixelAliHGCombined_pcl'] + 'SiPixelAliHGCombined_pcl', + 'SiPixelAliHLTHGCombined_pcl' + ] TARGET_DQM_FILES=1 TARGET_DQM_FILENAME='./DQM_V0001_R000325022__Express__PCLTest__ALCAPROMPT.root' TARGET_DB_FILES=len(TARGET_LIST_OF_TAGS) diff --git a/Calibration/TkAlCaRecoProducers/test/testAlCaHarvesting.sh b/Calibration/TkAlCaRecoProducers/test/testAlCaHarvesting.sh index 5b0548e101026..4cb7ae39fbea8 100755 --- a/Calibration/TkAlCaRecoProducers/test/testAlCaHarvesting.sh +++ b/Calibration/TkAlCaRecoProducers/test/testAlCaHarvesting.sh @@ -9,8 +9,9 @@ function cleanTheHouse { rm -fr HGalignment } -echo "TESTING Calibration/TkAlCaRecoProducers ..." +echo "========== Starting Calibration/TkAlCaRecoProducers Test ==========" cmsRun -e -j testPCLAlCaHarvesting.xml ${SCRAM_TEST_PATH}/testPCLAlCaHarvesting.py || die "Failure running testPCLAlCaHarvesting.py" $? cleanTheHouse -echo "PARSING Framework Job Report ..." +echo "" # Adding a blank line for better readability +echo "========== Parsing Framework Job Report ==========" python3 ${SCRAM_TEST_PATH}/parseFwkJobReport.py diff --git a/Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py b/Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py index a969800b1d6c5..3676345fb73a1 100644 --- a/Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py +++ b/Calibration/TkAlCaRecoProducers/test/testPCLAlCaHarvesting.py @@ -83,6 +83,7 @@ def findRunStopTime(run_number): process.PoolDBOutputService.toPut.append(process.ALCAHARVESTSiPixelAli_dbOutput) process.PoolDBOutputService.toPut.append(process.ALCAHARVESTSiPixelAliHG_dbOutput) process.PoolDBOutputService.toPut.append(process.ALCAHARVESTSiPixelAliHGCombined_dbOutput) +process.PoolDBOutputService.toPut.append(process.ALCAHARVESTSiPixelAliHLTHGCombined_dbOutput) process.PoolDBOutputService.toPut.append(process.ALCAHARVESTSiPixelLA_dbOutput) process.PoolDBOutputService.toPut.append(process.ALCAHARVESTSiPixelLAMCS_dbOutput) process.PoolDBOutputService.toPut.append(process.ALCAHARVESTSiStripLA_dbOutput) @@ -107,6 +108,7 @@ def findRunStopTime(run_number): process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVESTSiPixelAli_metadata) process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVESTSiPixelAliHG_metadata) process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVESTSiPixelAliHGCombined_metadata) +process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVESTSiPixelAliHLTHGCombined_metadata ) process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVESTSiPixelLA_metadata) process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVESTSiPixelLAMCS_metadata) process.pclMetadataWriter.recordsToMap.append(process.ALCAHARVESTSiStripLA_metadata) @@ -146,6 +148,16 @@ def findRunStopTime(run_number): process.SiPixelAliMilleFileExtractorHG.outputBinaryFile = cms.string('') process.SiPixelAliPedeAlignmentProducerHG.algoConfig.mergeBinaryFiles=[] +process.SiPixelAliHGCombined = cms.Path(process.ALCAHARVESTSiPixelAliHGCombined) +process.SiPixelAliMilleFileExtractorHGMinBias.outputBinaryFile = cms.string('') +process.SiPixelAliMilleFileExtractorHGZMuMu.outputBinaryFile = cms.string('') +process.SiPixelAliPedeAlignmentProducerHGCombined.algoConfig.mergeBinaryFiles=[] + +process.SiPixelAliHLTHGCombined = cms.Path(process.ALCAHARVESTSiPixelAliHLTHGCombined) +process.SiPixelAliMilleFileExtractorHLTHGMinBias.outputBinaryFile = cms.string('') +process.SiPixelAliMilleFileExtractorHLTHGZMuMu.outputBinaryFile = cms.string('') +process.SiPixelAliPedeAlignmentProducerHLTHGCombined.algoConfig.mergeBinaryFiles=[] + process.SiPixelLA = cms.Path(process.ALCAHARVESTSiPixelLorentzAngle) process.SiPixelLAMCS = cms.Path(process.ALCAHARVESTSiPixelLorentzAngleMCS) process.SiPixelQuality = cms.Path(process.ALCAHARVESTSiPixelQuality) @@ -166,6 +178,7 @@ def findRunStopTime(run_number): process.SiPixelAli, process.SiPixelAliHG, process.SiPixelAliHGCombined, + process.SiPixelAliHLTHGCombined, process.SiPixelLA, process.SiPixelLAMCS, process.SiStripLA, From 581a19f552d4d649f82d328e37aae691cfcd2564 Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 11 Dec 2024 16:49:45 +0100 Subject: [PATCH 246/418] add json files for HG combined SiPixel @ HLT worfklow and update DropBoxMetaData writer and reader configurations --- .../data/SiPixelAliHLTHGCombRcd_prep.json | 9 ++++ .../data/SiPixelAliHLTHGCombRcd_prod.json | 9 ++++ .../Common/test/DropBoxMetadataReader.py | 46 +++++++++---------- .../Common/test/ProduceDropBoxMetadata.py | 10 ++++ 4 files changed, 51 insertions(+), 23 deletions(-) create mode 100644 CondFormats/Common/data/SiPixelAliHLTHGCombRcd_prep.json create mode 100644 CondFormats/Common/data/SiPixelAliHLTHGCombRcd_prod.json diff --git a/CondFormats/Common/data/SiPixelAliHLTHGCombRcd_prep.json b/CondFormats/Common/data/SiPixelAliHLTHGCombRcd_prep.json new file mode 100644 index 0000000000000..17899b6dd3ae1 --- /dev/null +++ b/CondFormats/Common/data/SiPixelAliHLTHGCombRcd_prep.json @@ -0,0 +1,9 @@ +{ + "destinationDatabase": "oracle://cms_orcoff_prep/CMS_CONDITIONS", + "destinationTags": { + "SiPixelAliHLTHGCombined_PCL_v0_hlt": {} + }, + "inputTag": "SiPixelAliHLTHGCombined_pcl", + "since": null, + "userText": "T0 PCL Upload for SiPixel HG Combined (MiBias + Z->mm) Ali. for High Level Trigger (prep)" +} diff --git a/CondFormats/Common/data/SiPixelAliHLTHGCombRcd_prod.json b/CondFormats/Common/data/SiPixelAliHLTHGCombRcd_prod.json new file mode 100644 index 0000000000000..09067c8931973 --- /dev/null +++ b/CondFormats/Common/data/SiPixelAliHLTHGCombRcd_prod.json @@ -0,0 +1,9 @@ +{ + "destinationDatabase": "oracle://cms_orcon_prod/CMS_CONDITIONS", + "destinationTags": { + "SiPixelAliHLTHGCombined_PCL_v0_hlt": {} + }, + "inputTag": "SiPixelAliHLTHGCombined_pcl", + "since": null, + "userText": "T0 PCL Upload for SiPixel HG Combined (MinBias + Z->mm) Ali. for High Level Trigger (prod)" +} diff --git a/CondFormats/Common/test/DropBoxMetadataReader.py b/CondFormats/Common/test/DropBoxMetadataReader.py index 487ecec1bbd0a..0e4ccaa1341ef 100644 --- a/CondFormats/Common/test/DropBoxMetadataReader.py +++ b/CondFormats/Common/test/DropBoxMetadataReader.py @@ -29,29 +29,29 @@ # toRead lists of record names to be sought inside the DropBoxMetadataRcd payload avaialble to the ProduceDropBoxMetadata; # for instance, if write is True, you're reading back the metadata you've just entered in the payload from the .json files toRead = cms.untracked.vstring( - 'BeamSpotObjectsRcdByRun', - 'BeamSpotObjectsRcdByLumi', - 'BeamSpotObjectsRcdHPByLumi', - 'BeamSpotObjectsRcdHPByRun', - 'SiStripBadStripRcd', - 'SiStripBadStripFromHitEffRcd', - 'SiStripApvGainRcd', - 'TrackerAlignmentRcd', - 'TrackerAlignmentHGRcd', - 'TrackerAlignmentHGCombinedRcd', - 'SiStripApvGainRcdAAG', - 'EcalPedestalsRcd', - "LumiCorrectionsRcd", - "SiPixelQualityFromDbRcd_prompt", - "SiPixelQualityFromDbRcd_stuckTBM", - "SiPixelQualityFromDbRcd_other", - "SiPixelLorentzAngleRcd", - "SiPixelLorentzAngleRcdMCS", - "CTPPSRPAlignmentCorrectionsDataRcd", - "PPSTimingCalibrationRcd_HPTDC", - "PPSTimingCalibrationRcd_SAMPIC", - "SiStripLorentzAngleRcd", - ) # same strings as fType + "BeamSpotObjectsRcdByRun", + "BeamSpotObjectsRcdByLumi", + "BeamSpotObjectsRcdHPByLumi", + "BeamSpotObjectsRcdHPByRun", + "SiStripBadStripRcd", + "SiStripBadStripFromHitEffRcd", + "SiStripApvGainRcd", + "TrackerAlignmentRcd", + "TrackerAlignmentHGRcd", + "TrackerAlignmentHGCombinedRcd", + "TrackerAlignmentHLTHGCombinedRcd", + "SiStripApvGainRcdAAG", + "EcalPedestalsRcd", + "LumiCorrectionsRcd", + "SiPixelQualityFromDbRcd_prompt", + "SiPixelQualityFromDbRcd_stuckTBM", + "SiPixelQualityFromDbRcd_other", + "SiPixelLorentzAngleRcd", + "SiPixelLorentzAngleRcdMCS", + "CTPPSRPAlignmentCorrectionsDataRcd", + "PPSTimingCalibrationRcd_HPTDC", + "PPSTimingCalibrationRcd_SAMPIC", + "SiStripLorentzAngleRcd") # same strings as fType ) process.p = cms.Path(process.myReader) diff --git a/CondFormats/Common/test/ProduceDropBoxMetadata.py b/CondFormats/Common/test/ProduceDropBoxMetadata.py index b55ae1b275136..04c2db0130d44 100644 --- a/CondFormats/Common/test/ProduceDropBoxMetadata.py +++ b/CondFormats/Common/test/ProduceDropBoxMetadata.py @@ -73,6 +73,10 @@ def encodeJsonInString(filename): SiPixelAliHGCombRcd_prod_str = encodeJsonInString("SiPixelAliHGCombRcd_prod.json") SiPixelAliHGCombRcd_prep_str = encodeJsonInString("SiPixelAliHGCombRcd_prep.json") +#SiPixelAliHLTHGComb +SiPixelAliHLTHGCombRcd_prod_str = encodeJsonInString("SiPixelAliHLTHGCombRcd_prod.json") +SiPixelAliHLTHGCombRcd_prep_str = encodeJsonInString("SiPixelAliHLTHGCombRcd_prep.json") + #EcalPedestalsRcd EcalPedestalsRcd_prod_str = encodeJsonInString("EcalPedestal_prod.json") EcalPedestalsRcd_prep_str = encodeJsonInString("EcalPedestal_prep.json") @@ -184,6 +188,12 @@ def encodeJsonInString(filename): prodMetaData = cms.untracked.string(SiPixelAliHGCombRcd_prod_str), prepMetaData = cms.untracked.string(SiPixelAliHGCombRcd_prep_str), ), + cms.PSet(record = cms.untracked.string('TrackerAlignmentHLTHGCombinedRcd'), + Source = cms.untracked.string("AlcaHarvesting"), + FileClass = cms.untracked.string("ALCA"), + prodMetaData = cms.untracked.string(SiPixelAliHLTHGCombRcd_prod_str), + prepMetaData = cms.untracked.string(SiPixelAliHLTHGCombRcd_prep_str), + ), cms.PSet(record = cms.untracked.string('SiStripApvGainRcdAAG'), Source = cms.untracked.string("AlcaHarvesting"), FileClass = cms.untracked.string("ALCA"), From f00a113a07e3b3c09ca140c8919dda99ac38df03 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Wed, 11 Dec 2024 16:50:40 -0600 Subject: [PATCH 247/418] Fixed memory leak in RegionalMuonGMTUnpacker --- .../RegionalMuonGMTUnpacker.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/RegionalMuonGMTUnpacker.cc b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/RegionalMuonGMTUnpacker.cc index 6251276b417a2..46d956f27eed1 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/RegionalMuonGMTUnpacker.cc +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/RegionalMuonGMTUnpacker.cc @@ -34,18 +34,14 @@ namespace l1t { unsigned int linkId = blockId / 2; int processor; RegionalMuonCandBxCollection* regionalMuonCollection; - RegionalMuonShowerBxCollection* regionalMuonShowerCollection; + RegionalMuonShowerBxCollection* regionalMuonShowerCollection = nullptr; tftype trackFinder; if (linkId > 47 && linkId < 60) { regionalMuonCollection = static_cast(coll)->getRegionalMuonCandsBMTF(); - regionalMuonShowerCollection = - new RegionalMuonShowerBxCollection(); // To avoid warning re uninitialised collection trackFinder = tftype::bmtf; processor = linkId - 48; } else if (linkId > 41 && linkId < 66) { regionalMuonCollection = static_cast(coll)->getRegionalMuonCandsOMTF(); - regionalMuonShowerCollection = - new RegionalMuonShowerBxCollection(); // To avoid warning re uninitialised collection if (linkId < 48) { trackFinder = tftype::omtf_pos; processor = linkId - 42; @@ -68,8 +64,9 @@ namespace l1t { return false; } regionalMuonCollection->setBXRange(firstBX, lastBX); - regionalMuonShowerCollection->setBXRange(firstBX, lastBX); - + if (regionalMuonShowerCollection) { + regionalMuonShowerCollection->setBXRange(firstBX, lastBX); + } LogDebug("L1T") << "nBX = " << nBX << " first BX = " << firstBX << " lastBX = " << lastBX; // Get the BX blocks and unpack them @@ -127,7 +124,8 @@ namespace l1t { // Fill RegionalMuonShower objects. For this we need to look at all six words together. RegionalMuonShower muShower; if (RegionalMuonRawDigiTranslator::fillRegionalMuonShower( - muShower, bxPayload, processor, trackFinder, useEmtfNominalTightShowers_, useEmtfLooseShowers_)) { + muShower, bxPayload, processor, trackFinder, useEmtfNominalTightShowers_, useEmtfLooseShowers_) and + regionalMuonShowerCollection) { regionalMuonShowerCollection->push_back(bx, muShower); } } else { From ba6317db8603a92a333ff626f4919c5344e09430 Mon Sep 17 00:00:00 2001 From: Ram Krishna Dewanjee Date: Thu, 12 Dec 2024 07:16:04 +0100 Subject: [PATCH 248/418] Added the E-Tau trigger in the HLT_75e33_cff.py file --- HLTrigger/Configuration/python/HLT_75e33_cff.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HLTrigger/Configuration/python/HLT_75e33_cff.py b/HLTrigger/Configuration/python/HLT_75e33_cff.py index b5f5d2d9e100f..52a8ab596f10e 100644 --- a/HLTrigger/Configuration/python/HLT_75e33_cff.py +++ b/HLTrigger/Configuration/python/HLT_75e33_cff.py @@ -111,6 +111,7 @@ fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Ele26_WP70_Unseeded_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Ele32_WPTight_L1Seeded_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Ele32_WPTight_Unseeded_cfi") +fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_IsoMu24_FromL1TkMuon_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi") @@ -404,7 +405,7 @@ fragment.HLT_DoubleMediumChargedIsoPFTauHPS40_eta2p1, fragment.HLT_DoubleMediumDeepTauPFTauHPS35_eta2p1, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1, - + fragment.HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1, ### Removed temporarily until final decision on L1T tau Phase-2 #fragment.L1T_DoubleNNTau52, #fragment.L1T_SingleNNTau150, From d20d9a4afd7a354240ecade177dc23f8f03c77c8 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Thu, 12 Dec 2024 09:33:51 +0100 Subject: [PATCH 249/418] Fix for importing ClassesDefXmlUtils --- FWCore/Reflection/scripts/edmCheckClassVersion | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/FWCore/Reflection/scripts/edmCheckClassVersion b/FWCore/Reflection/scripts/edmCheckClassVersion index ecd795cabbbac..7f59f06278582 100755 --- a/FWCore/Reflection/scripts/edmCheckClassVersion +++ b/FWCore/Reflection/scripts/edmCheckClassVersion @@ -1,7 +1,12 @@ #! /usr/bin/env python3 import sys -import FWCore.Reflection.ClassesDefXmlUtils as ClassesDefUtils +try: + import FWCore.Reflection.ClassesDefXmlUtils as ClassesDefUtils +except: + import os + sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),"python")) + import ClassesDefXmlUtils as ClassesDefUtils # recursively check the base classes for a class pointer # as building the streamer will crash if base classes are From 8ce9261d29007711515881c4b5dd53827fd1a184 Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 9 Aug 2024 10:32:25 +0200 Subject: [PATCH 250/418] add stub of DeDxCalibration Payload Inspector --- .../PhysicsToolsPlugins/plugins/BuildFile.xml | 5 + .../DeDxCalibration_PayloadInspector.cc | 201 ++++++++++++++++++ .../PhysicsToolsPlugins/test/BuildFile.xml | 3 + .../test_DeDxCalibration_PayloadInspector.cpp | 42 ++++ .../test_DeDxCalibration_PayloadInspector.sh | 41 ++++ 5 files changed, 292 insertions(+) create mode 100644 CondCore/PhysicsToolsPlugins/plugins/DeDxCalibration_PayloadInspector.cc create mode 100644 CondCore/PhysicsToolsPlugins/test/test_DeDxCalibration_PayloadInspector.cpp create mode 100755 CondCore/PhysicsToolsPlugins/test/test_DeDxCalibration_PayloadInspector.sh diff --git a/CondCore/PhysicsToolsPlugins/plugins/BuildFile.xml b/CondCore/PhysicsToolsPlugins/plugins/BuildFile.xml index 4890b7e065317..28811a5498b6a 100644 --- a/CondCore/PhysicsToolsPlugins/plugins/BuildFile.xml +++ b/CondCore/PhysicsToolsPlugins/plugins/BuildFile.xml @@ -8,3 +8,8 @@ + + + + + diff --git a/CondCore/PhysicsToolsPlugins/plugins/DeDxCalibration_PayloadInspector.cc b/CondCore/PhysicsToolsPlugins/plugins/DeDxCalibration_PayloadInspector.cc new file mode 100644 index 0000000000000..f7b3f77ad006c --- /dev/null +++ b/CondCore/PhysicsToolsPlugins/plugins/DeDxCalibration_PayloadInspector.cc @@ -0,0 +1,201 @@ +#include "CondCore/CondDB/interface/Time.h" +#include "CondCore/Utilities/interface/PayloadInspector.h" +#include "CondCore/Utilities/interface/PayloadInspectorModule.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +// the data format of the condition to be inspected +#include "CondFormats/PhysicsToolsObjects/interface/DeDxCalibration.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +// include ROOT +#include "TCanvas.h" +#include "TF1.h" +#include "TH1F.h" +#include "TH2F.h" +#include "TLatex.h" +#include "TLegend.h" +#include "TLine.h" +#include "TPad.h" +#include "TPave.h" +#include "TPaveStats.h" +#include "TStyle.h" + +namespace { + + using namespace cond::payloadInspector; + + /************************************************ + DeDxCalibration Payload Inspector of 1 IOV + *************************************************/ + class DeDxCalibrationTest : public Histogram1D { + public: + DeDxCalibrationTest() + : Histogram1D("Test DeDxCalibration", "Test DeDxCalibration", 1, 0.0, 1.0) {} + + bool fill() override { + auto tag = PlotBase::getTag<0>(); + for (auto const& iov : tag.iovs) { + std::shared_ptr payload = Base::fetchPayload(std::get<1>(iov)); + if (payload.get()) { + const auto& thresholds = payload->thr(); + const auto& alphas = payload->alpha(); + const auto& sigmas = payload->sigma(); + + assert(thresholds.size() == alphas.size()); + assert(alphas.size() == sigmas.size()); + + for (unsigned int i = 0; i < thresholds.size(); i++) { + std::cout << "threshold:" << thresholds[i] << " alpha: " << alphas[i] << " sigma: " << sigmas[i] + << std::endl; + } + } + } + return true; + } + }; + + // Inspector to show the values of thresholds, alphas, sigmas, and gains in DeDxCalibration + class DeDxCalibrationInspector : public PlotImage { + public: + DeDxCalibrationInspector() : PlotImage("DeDxCalibration Inspector") {} + + bool fill() override { + gStyle->SetPalette(1); + gStyle->SetOptStat(0); + + auto tag = PlotBase::getTag<0>(); + auto iov = tag.iovs.front(); + + std::shared_ptr payload = fetchPayload(std::get<1>(iov)); + + if (payload.get()) { + const std::vector& thr = payload->thr(); + const std::vector& alpha = payload->alpha(); + const std::vector& sigma = payload->sigma(); + + // Ensure that thr, alpha, sigma have the same size + assert(thr.size() == alpha.size()); + assert(alpha.size() == sigma.size()); + + // Create a 2D histogram + int nBinsX = 3; // For thr, alpha, sigma, gain + int nBinsY = thr.size(); // Number of elements in the vectors + + TH2D h2("h2", "DeDxCalibration Values;Variable Type;Value", nBinsX, 0, nBinsX, nBinsY, 0, nBinsY); + + // Label the x-axis with the variable names + h2.GetXaxis()->SetBinLabel(1, "Threshold"); + h2.GetXaxis()->SetBinLabel(2, "#alpha"); + h2.GetXaxis()->SetBinLabel(3, "#sigma"); + + // Fill the histogram + for (size_t i = 0; i < thr.size(); ++i) { + h2.Fill(0.5, i, thr[i]); + h2.Fill(1.5, i, alpha[i]); + h2.Fill(2.5, i, sigma[i]); + } + + // Draw the histogram on a canvas + TCanvas canvas("Canvas", "DeDxCalibration Values", 1200, 800); + canvas.cd(); + h2.Draw("COLZ TEXT"); + + std::string fileName(m_imageFileName); + canvas.SaveAs(fileName.c_str()); + + return true; + } else { + return false; + } + } + }; + + class DeDxCalibrationPlot : public cond::payloadInspector::PlotImage { + public: + DeDxCalibrationPlot() + : cond::payloadInspector::PlotImage( + "DeDxCalibration Thresholds, Alphas, Sigmas, and Gains") {} + + bool fill() override { + gStyle->SetPalette(1); + gStyle->SetOptStat(0); + + auto tag = PlotBase::getTag<0>(); + auto iov = tag.iovs.front(); + + std::shared_ptr payload = fetchPayload(std::get<1>(iov)); + + if (!payload) { + return false; + } + + // Prepare canvas + TCanvas canvas("DeDxCalibration", "DeDxCalibration", 1200, 800); + canvas.Divide(2, 2); + + // Extract data + const auto& thresholds = payload->thr(); + const auto& alphas = payload->alpha(); + const auto& sigmas = payload->sigma(); + const auto& gains = payload->gain(); + + // 1. Plot thresholds + canvas.cd(1); + auto h_thr = new TH1F("Thresholds", "Thresholds;Index;Value", thresholds.size(), 0, thresholds.size()); + for (size_t i = 0; i < thresholds.size(); ++i) { + h_thr->SetBinContent(i + 1, thresholds[i]); + } + h_thr->SetFillColor(kBlue); + h_thr->Draw(); + + // 2. Plot alphas + canvas.cd(2); + auto h_alpha = new TH1F("Alphas", "Alphas;Index;Value", alphas.size(), 0, alphas.size()); + for (size_t i = 0; i < alphas.size(); ++i) { + h_alpha->SetBinContent(i + 1, alphas[i]); + } + h_alpha->SetFillColor(kGreen); + h_alpha->Draw(); + + // 3. Plot sigmas + canvas.cd(3); + auto h_sigma = new TH1F("Sigmas", "Sigmas;Index;Value", sigmas.size(), 0, sigmas.size()); + for (size_t i = 0; i < sigmas.size(); ++i) { + h_sigma->SetBinContent(i + 1, sigmas[i]); + } + h_sigma->SetFillColor(kRed); + h_sigma->Draw(); + + // 4. Plot aggregated gain values + canvas.cd(4); + const int numBins = 100; // Set number of bins for aggregated gain + auto h_gain = new TH1F("Gains", "Aggregated Gains;Gain Range;Count", numBins, 0, 1.0); // Adjust range if needed + for (const auto& [chip, gain] : gains) { + h_gain->Fill(gain); + } + h_gain->SetFillColor(kYellow); + h_gain->Draw(); + + // Save the canvas to a file + std::string fileName(m_imageFileName); + canvas.SaveAs(fileName.c_str()); + + return true; + } + }; +} // namespace + +// Register the classes as boost python plugin +PAYLOAD_INSPECTOR_MODULE(DeDxCalibration) { + PAYLOAD_INSPECTOR_CLASS(DeDxCalibrationTest); + PAYLOAD_INSPECTOR_CLASS(DeDxCalibrationInspector); + PAYLOAD_INSPECTOR_CLASS(DeDxCalibrationPlot); +} diff --git a/CondCore/PhysicsToolsPlugins/test/BuildFile.xml b/CondCore/PhysicsToolsPlugins/test/BuildFile.xml index c7ce5c2850696..6ff3c67898d1d 100644 --- a/CondCore/PhysicsToolsPlugins/test/BuildFile.xml +++ b/CondCore/PhysicsToolsPlugins/test/BuildFile.xml @@ -4,3 +4,6 @@ + + + diff --git a/CondCore/PhysicsToolsPlugins/test/test_DeDxCalibration_PayloadInspector.cpp b/CondCore/PhysicsToolsPlugins/test/test_DeDxCalibration_PayloadInspector.cpp new file mode 100644 index 0000000000000..7fb1ef024fc84 --- /dev/null +++ b/CondCore/PhysicsToolsPlugins/test/test_DeDxCalibration_PayloadInspector.cpp @@ -0,0 +1,42 @@ +#include +#include +#include "CondCore/Utilities/interface/PayloadInspector.h" +#include "CondCore/PhysicsToolsPlugins/plugins/DeDxCalibration_PayloadInspector.cc" + +#include "FWCore/PluginManager/interface/PluginManager.h" +#include "FWCore/PluginManager/interface/standard.h" +#include "FWCore/ServiceRegistry/interface/ServiceRegistry.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +int main(int argc, char** argv) { + Py_Initialize(); + edmplugin::PluginManager::Config config; + edmplugin::PluginManager::configure(edmplugin::standard::config()); + + std::vector psets; + edm::ParameterSet pSet; + pSet.addParameter("@service_type", std::string("SiteLocalConfigService")); + psets.push_back(pSet); + edm::ServiceToken servToken(edm::ServiceRegistry::createSet(psets)); + edm::ServiceRegistry::Operate operate(servToken); + + std::string connectionString("frontier://FrontierProd/CMS_CONDITIONS"); + + std::string tag = "DeDxCalibration_HI_2024_v2"; + cond::Time_t start = static_cast(1); + cond::Time_t end = static_cast(1); + + edm::LogPrint("test_DeDxCalibration_PayloadInspector") << "## test Inspector" << std::endl; + + DeDxCalibrationInspector histo1; + histo1.process(connectionString, PI::mk_input(tag, start, start)); + edm::LogPrint("test_DeDxCalibration_PayloadInspector") << histo1.data() << std::endl; + + edm::LogPrint("test_DeDxCalibration_PayloadInspector") << "## test Plot" << std::endl; + + DeDxCalibrationPlot histo2; + histo2.process(connectionString, PI::mk_input(tag, start, end)); + edm::LogPrint("test_DeDxCalibration_PayloadInspector") << histo2.data() << std::endl; + + Py_Finalize(); +} diff --git a/CondCore/PhysicsToolsPlugins/test/test_DeDxCalibration_PayloadInspector.sh b/CondCore/PhysicsToolsPlugins/test/test_DeDxCalibration_PayloadInspector.sh new file mode 100755 index 0000000000000..a9ea8208c6083 --- /dev/null +++ b/CondCore/PhysicsToolsPlugins/test/test_DeDxCalibration_PayloadInspector.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# Save current working dir so img can be outputted there later +W_DIR=$(pwd); +# Set SCRAM architecture var +SCRAM_ARCH=slc7_amd64_gcc900; +export SCRAM_ARCH; +source /afs/cern.ch/cms/cmsset_default.sh; +eval `scram run -sh`; + +mkdir -p $W_DIR/plots + +getPayloadData.py \ + --plugin pluginDeDxCalibration_PayloadInspector \ + --plot plot_DeDxCalibrationTest \ + --tag DeDxCalibration_HI_2024_v1 \ + --time_type Run \ + --iovs '{"start_iov": "1", "end_iov": "1"}' \ + --db Prod \ + --test + +getPayloadData.py \ + --plugin pluginDeDxCalibration_PayloadInspector \ + --plot plot_DeDxCalibrationInspector \ + --tag DeDxCalibration_HI_2024_v2 \ + --time_type Run \ + --iovs '{"start_iov": "1", "end_iov": "1"}' \ + --db Prod \ + --test + +mv *.png $W_DIR/plots/Inspector.png + +getPayloadData.py \ + --plugin pluginDeDxCalibration_PayloadInspector \ + --plot plot_DeDxCalibrationPlot \ + --tag DeDxCalibration_HI_2024_v2 \ + --time_type Run \ + --iovs '{"start_iov": "1", "end_iov": "1"}' \ + --db Prod \ + --test + +mv *.png $W_DIR/plots/Plot.png From 0b2c9252b57b37a40a6b946da9a83d0848bd1399 Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 2 Dec 2024 17:41:45 +0100 Subject: [PATCH 251/418] HLT menu development for 14_2_X (branch for 15_0_X) Migrate all sub-tables to CMSSW_14_2_0 template, remove customisation for 14_2_X and update get*HLT.sh scripts These updates correspond to the first batch of changes accumulated in the 14_2_X release cycle targeting the 2025 HLT menus This update includes the integration of the following JIRA tickets: - [CMSHLT-3402](https://its.cern.ch/jira/browse/CMSHLT-3402) [DQM,BTV] Product to be added in EventContent to solve empty online DQM plots: BTV - [CMSHLT-3403](https://its.cern.ch/jira/browse/CMSHLT-3403) [TRK,AlCa] Request to add HLT_IsoMu24_* and HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_* to hltDatasetHLTMonitor - [CMSHLT-3405](https://its.cern.ch/jira/browse/CMSHLT-3405) [TSG] Backport of latest online updates to TrackerVR menu - [CMSHLT-3406](https://its.cern.ch/jira/browse/CMSHLT-3406) [TSG,DQM] Remove unneeded output collections from hltOutputDQMGPUvsCPU - [CMSHLT-3407](https://its.cern.ch/jira/browse/CMSHLT-3407) [HIN] Removal of HLT_PPRefDmesonTrackingGlobal_Dpt* and HLT_HICsAK4PFJet* triggers from the combined table --- .../Configuration/python/HLT_2024v14_cff.py | 24 +- .../Configuration/python/HLT_FULL_cff.py | 4372 ++-------------- .../Configuration/python/HLT_Fake1_cff.py | 6 +- .../Configuration/python/HLT_Fake2_cff.py | 6 +- .../Configuration/python/HLT_Fake_cff.py | 6 +- .../Configuration/python/HLT_GRun_cff.py | 47 +- .../Configuration/python/HLT_HIon_cff.py | 45 +- .../Configuration/python/HLT_PIon_cff.py | 6 +- .../Configuration/python/HLT_PRef_cff.py | 13 +- .../Configuration/python/HLT_Special_cff.py | 194 +- .../python/HLTrigger_Datasets_GRun_cff.py | 2 +- .../python/HLTrigger_Datasets_HIon_cff.py | 2 +- .../python/HLTrigger_Datasets_PIon_cff.py | 2 +- .../python/HLTrigger_Datasets_PRef_cff.py | 2 +- .../python/HLTrigger_Datasets_Special_cff.py | 122 +- .../python/customizeHLTforCMSSW.py | 18 - HLTrigger/Configuration/tables/GRun.txt | 3 + HLTrigger/Configuration/tables/Special.txt | 10 + HLTrigger/Configuration/tables/makeSubTables | 4 +- .../Configuration/tables/online_Special.txt | 10 + .../Configuration/tables/online_TrackerVR.txt | 16 +- .../Configuration/tables/online_grun.txt | 3 + .../Configuration/test/OnLine_HLT_2024v14.py | 24 +- .../Configuration/test/OnLine_HLT_FULL.py | 4525 ++--------------- .../Configuration/test/OnLine_HLT_Fake.py | 6 +- .../Configuration/test/OnLine_HLT_Fake1.py | 6 +- .../Configuration/test/OnLine_HLT_Fake2.py | 6 +- .../Configuration/test/OnLine_HLT_GRun.py | 56 +- .../Configuration/test/OnLine_HLT_HIon.py | 45 +- .../Configuration/test/OnLine_HLT_PIon.py | 7 +- .../Configuration/test/OnLine_HLT_PRef.py | 22 +- .../Configuration/test/OnLine_HLT_Special.py | 347 +- HLTrigger/Configuration/test/getFrozenHLT.sh | 8 +- HLTrigger/Configuration/test/getHLT.sh | 2 +- 34 files changed, 1809 insertions(+), 8158 deletions(-) diff --git a/HLTrigger/Configuration/python/HLT_2024v14_cff.py b/HLTrigger/Configuration/python/HLT_2024v14_cff.py index 2ef29dc8d6ce2..19e5caa23f4da 100644 --- a/HLTrigger/Configuration/python/HLT_2024v14_cff.py +++ b/HLTrigger/Configuration/python/HLT_2024v14_cff.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /frozen/2024/2e34/v1.4/CMSSW_14_1_X/HLT --cff --data --type 2024v14 +# hltGetConfiguration /frozen/2024/2e34/v1.4/CMSSW_14_2_X/HLT --cff --data --type 2024v14 -# /frozen/2024/2e34/v1.4/CMSSW_14_1_X/HLT/V6 (CMSSW_14_1_1) +# /frozen/2024/2e34/v1.4/CMSSW_14_2_X/HLT/V3 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/frozen/2024/2e34/v1.4/CMSSW_14_1_X/HLT/V6") + tableName = cms.string("/frozen/2024/2e34/v1.4/CMSSW_14_2_X/HLT/V3") ) fragment.HLTIter4PSetTrajectoryBuilderIT = cms.PSet( @@ -8371,6 +8371,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -8949,6 +8950,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -9750,6 +9752,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -11782,6 +11785,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -12317,6 +12321,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter3IterL3FromL1MuonPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -13118,6 +13123,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -16691,7 +16697,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombinedUnseeded = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeedsUnseeded = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedUnseeded" ), @@ -20610,7 +20617,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombined = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeeds = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombined" ), @@ -70621,6 +70629,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PixelLessHitDoubletsForGlbDisplacedMuons = cms.EDProducer( "HitPairEDProducer", @@ -70862,6 +70871,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PixelLessHitDoubletsForDisplacedTkMuons = cms.EDProducer( "HitPairEDProducer", @@ -72276,6 +72286,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PFlowPixelLessHitDoubletsForTau = cms.EDProducer( "HitPairEDProducer", @@ -75330,6 +75341,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter1PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -75630,6 +75642,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter2PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -76549,6 +76562,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PFlowPixelLessHitDoublets = cms.EDProducer( "HitPairEDProducer", diff --git a/HLTrigger/Configuration/python/HLT_FULL_cff.py b/HLTrigger/Configuration/python/HLT_FULL_cff.py index e5568afb2126d..f45271fefb9b7 100644 --- a/HLTrigger/Configuration/python/HLT_FULL_cff.py +++ b/HLTrigger/Configuration/python/HLT_FULL_cff.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/HLT --cff --data --type FULL +# hltGetConfiguration /dev/CMSSW_14_2_0/HLT --cff --data --type FULL -# /dev/CMSSW_14_1_0/HLT/V79 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/HLT/V15 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/HLT/V79") + tableName = cms.string("/dev/CMSSW_14_2_0/HLT/V15") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1694,6 +1694,22 @@ 'SpecialZeroBias17' ), PhysicsSpecialZeroBias9 = cms.vstring( 'SpecialZeroBias18', 'SpecialZeroBias19' ), + PhysicsVRRandom0 = cms.vstring( 'VRRandom0', + 'VRRandom1' ), + PhysicsVRRandom1 = cms.vstring( 'VRRandom2', + 'VRRandom3' ), + PhysicsVRRandom2 = cms.vstring( 'VRRandom4', + 'VRRandom5' ), + PhysicsVRRandom3 = cms.vstring( 'VRRandom6', + 'VRRandom7' ), + PhysicsVRRandom4 = cms.vstring( 'VRRandom8', + 'VRRandom9' ), + PhysicsVRRandom5 = cms.vstring( 'VRRandom10', + 'VRRandom11' ), + PhysicsVRRandom6 = cms.vstring( 'VRRandom12', + 'VRRandom13' ), + PhysicsVRRandom7 = cms.vstring( 'VRRandom14', + 'VRRandom15' ), PhysicsZeroBias0 = cms.vstring( 'EphemeralZeroBias0', 'EphemeralZeroBias1' ), PhysicsZeroBias1 = cms.vstring( 'EphemeralZeroBias2', @@ -2176,16 +2192,14 @@ HIDQMGPUvsCPU = cms.vstring( 'DQM_HIEcalReconstruction_v10', 'DQM_HIHcalReconstruction_v8', 'DQM_HIPixelReconstruction_v12' ), - HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ), + HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ), HIEmptyBX = cms.vstring( 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1UnpairedBunchBptxMinus_v14', 'HLT_HIL1UnpairedBunchBptxPlus_v14' ), HIEphemeralHLTPhysics = cms.vstring( 'HLT_HIEphemeralPhysics_v5' ), HIEphemeralZeroBias0 = cms.vstring( 'HLT_HIEphemeralZeroBias_v5' ), HIEphemeralZeroBias1 = cms.vstring( 'HLT_HIEphemeralZeroBias_v5' ), - HIEventDisplay = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', + HIEventDisplay = cms.vstring( 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', 'HLT_HIDoubleEle15GsfMass50_v14', 'HLT_HIDoubleGEDPhoton20_v7', 'HLT_HIL1SingleMu5_SingleEG20Gsf_v7', @@ -2195,10 +2209,8 @@ 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', 'HLT_HIMinimumBiasHF1AND_copy_v6' ), - HIExpressAlignment = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ), + HIExpressAlignment = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ), HIExpressPhysics = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', - 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', 'HLT_HIL1NotBptxOR_v14', @@ -2220,7 +2232,6 @@ 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14', 'HLT_HIZeroBias_v14' ), HIExpressPhysicsRawPrime = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', - 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', 'HLT_HIL1NotBptxOR_v14', @@ -5058,7 +5069,6 @@ 'HLT_HIMinimumBiasHF1AND_v7' ), HIOnlineMonitor = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', 'HLT_HIHcalNZS_v14', @@ -5081,15 +5091,7 @@ 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14', 'HLT_HIZeroBias_v14' ), - HIPhysicsRawPrime0 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime0 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5190,15 +5192,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime1 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime1 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5299,15 +5293,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime10 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime10 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5408,15 +5394,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime11 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime11 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5517,15 +5495,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime12 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime12 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5626,15 +5596,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime13 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime13 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5735,15 +5697,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime14 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime14 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5844,15 +5798,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime15 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime15 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5953,15 +5899,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime16 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime16 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6062,15 +6000,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime17 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime17 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6171,15 +6101,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime18 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime18 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6280,15 +6202,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime19 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime19 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6389,15 +6303,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime2 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime2 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6498,15 +6404,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime20 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime20 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6607,15 +6505,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime21 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime21 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6716,15 +6606,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime22 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime22 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6825,15 +6707,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime23 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime23 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6934,15 +6808,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime24 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime24 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7043,15 +6909,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime25 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime25 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7152,15 +7010,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime26 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime26 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7261,15 +7111,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime27 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime27 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7370,15 +7212,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime28 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime28 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7479,15 +7313,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime29 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime29 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7588,15 +7414,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime3 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime3 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7697,15 +7515,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime30 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime30 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7806,15 +7616,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime31 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime31 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7915,15 +7717,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime32 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime32 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8024,15 +7818,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime33 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime33 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8133,15 +7919,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime34 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime34 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8242,15 +8020,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime35 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime35 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8351,15 +8121,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime36 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime36 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8460,15 +8222,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime37 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime37 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8569,15 +8323,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime38 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime38 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8678,15 +8424,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime39 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime39 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8787,15 +8525,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime4 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime4 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8896,15 +8626,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime40 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime40 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9005,15 +8727,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime41 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime41 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9114,15 +8828,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime42 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime42 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9223,15 +8929,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime43 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime43 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9332,15 +9030,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime44 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime44 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9441,15 +9131,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime45 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime45 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9550,15 +9232,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime46 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime46 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9659,15 +9333,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime47 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime47 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9768,15 +9434,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime48 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime48 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9877,15 +9535,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime49 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime49 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9986,15 +9636,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime5 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime5 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10095,15 +9737,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime50 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime50 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10204,15 +9838,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime51 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime51 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10313,15 +9939,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime52 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime52 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10422,15 +10040,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime53 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime53 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10531,15 +10141,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime54 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime54 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10640,15 +10242,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime55 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime55 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10749,15 +10343,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime56 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime56 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10858,15 +10444,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime57 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime57 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10967,15 +10545,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime58 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime58 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11076,15 +10646,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime59 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime59 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11185,15 +10747,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime6 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime6 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11294,15 +10848,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime7 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime7 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11403,15 +10949,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime8 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime8 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11512,15 +11050,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime9 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime9 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11633,11 +11163,14 @@ 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v23', 'HLT_HT550_DisplacedDijet60_Inclusive_v23', + 'HLT_IsoMu24_HLTTracking_v1', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12', 'HLT_L1SingleMuCosmics_CosmicTracking_v1', 'HLT_L1SingleMuCosmics_PointingCosmicTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1', 'HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13', @@ -13008,10 +12541,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -13059,10 +12588,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -13110,10 +12635,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -13161,10 +12682,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -13212,10 +12729,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -14858,6 +14371,22 @@ 'HLT_HcalCalibration_v6' ), TestEnablesEcalHcalDQM = cms.vstring( 'HLT_EcalCalibration_v4', 'HLT_HcalCalibration_v6' ), + VRRandom0 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom1 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom10 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom11 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom12 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom13 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom14 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom15 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom2 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom3 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom4 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom5 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom6 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom7 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom8 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom9 = cms.vstring( 'HLT_Random_HighRate_v1' ), ZeroBias = cms.vstring( 'HLT_Random_v3', 'HLT_ZeroBias_Alignment_v8', 'HLT_ZeroBias_FirstBXAfterTrain_v10', @@ -19403,6 +18932,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -19981,6 +19511,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -20782,6 +20313,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -22814,6 +22346,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -23349,6 +22882,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter3IterL3FromL1MuonPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -24150,6 +23684,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -25865,6 +25400,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksPPOnAASoA" ) @@ -25938,6 +25474,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksPPOnAASoASerialSync" ) @@ -28063,7 +27600,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombinedUnseeded = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeedsUnseeded = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedUnseeded" ), @@ -31977,7 +31515,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombined = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeeds = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombined" ), @@ -42565,6 +42104,10 @@ DepTag = cms.VInputTag( 'hltMuonTkRelIsolationCut0p14Map' ), IsolatorPSet = cms.PSet( ) ) +fragment.hltPreIsoMu24HLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreIsoMu24eta2p1 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -44373,6 +43916,10 @@ MinPixHitsForDZ = cms.int32( 0 ), checkSC = cms.bool( False ) ) +fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZHLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZ = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -44554,6 +44101,10 @@ propagatorAny = cms.ESInputTag( "","SteppingHelixPropagatorAny" ), propagatorOpposite = cms.ESInputTag( "","hltESPSteppingHelixPropagatorOpposite" ) ) +fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8HLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8CaloJet30 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -81988,6 +81539,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PixelLessHitDoubletsForGlbDisplacedMuons = cms.EDProducer( "HitPairEDProducer", @@ -82229,6 +81781,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PixelLessHitDoubletsForDisplacedTkMuons = cms.EDProducer( "HitPairEDProducer", @@ -83643,6 +83196,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PFlowPixelLessHitDoubletsForTau = cms.EDProducer( "HitPairEDProducer", @@ -86697,6 +86251,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter1PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -86997,6 +86552,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter2PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -87916,6 +87472,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PFlowPixelLessHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -96487,6 +96044,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter0PixelHitDoubletsPreSplittingPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -96640,7 +96198,12 @@ forceYError = cms.double( 150.0 ), fractionalWidth = cms.double( 0.4 ), chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) + centralMIPCharge = cms.double( 26000.0 ), + expSizeXAtLorentzAngleIncidence = cms.double( 1.5 ), + expSizeXDeltaPerTanAlpha = cms.double( 0.0 ), + expSizeYAtNormalIncidence = cms.double( 1.3 ), + tanLorentzAngle = cms.double( 0.0 ), + tanLorentzAngleBarrelLayer1 = cms.double( 0.0 ) ) fragment.hltSiPixelClustersCacheAfterSplittingPPOnAA = cms.EDProducer( "SiPixelClusterShapeCacheProducer", src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), @@ -96740,6 +96303,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter0PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -96971,6 +96535,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter1PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -97302,6 +96867,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter2PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -97537,6 +97103,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -98820,295 +98387,6 @@ MaxEta = cms.double( 5.1 ), MinN = cms.int32( 1 ) ) -fragment.hltL1sSingleJet44BptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet44_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPreHICsAK4PFJet60Eta1p5 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltSinglePuAK4CaloJet60Eta1p5 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 60.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets60 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet60Eta1p5" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -fragment.hltSingleCsPFJet60Eta1p5 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets60" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 60.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -fragment.hltPreHICsAK4PFJet60Eta2p1 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltSinglePuAK4CaloJet60Eta2p1 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 60.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets60Eta2p1 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet60Eta2p1" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -fragment.hltSingleCsPFJet60Eta2p1 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets60Eta2p1" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 60.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -fragment.hltPreHICsAK4PFJet80Eta1p5 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltSinglePuAK4CaloJet70Eta1p5 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 70.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets70 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet70Eta1p5" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -fragment.hltSingleCsPFJet80Eta1p5 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets70" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 80.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -fragment.hltPreHICsAK4PFJet80Eta2p1 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltSinglePuAK4CaloJet70Eta2p1 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 70.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets70Eta2p1 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet70Eta2p1" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -fragment.hltSingleCsPFJet80Eta2p1 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets70Eta2p1" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 80.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -fragment.hltPreHICsAK4PFJet100Eta1p5 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltSinglePuAK4CaloJet80Eta1p5 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 80.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets80 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet80Eta1p5" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -fragment.hltSingleCsPFJet100Eta1p5 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets80" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 100.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -fragment.hltPreHICsAK4PFJet100Eta1p5Beamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltPreHICsAK4PFJet100Eta2p1 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltSinglePuAK4CaloJet80Eta2p1 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 80.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets80Eta2p1 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet80Eta2p1" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -fragment.hltSingleCsPFJet100Eta2p1 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets80Eta2p1" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 100.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -fragment.hltPreHICsAK4PFJet120Eta1p5 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltSinglePuAK4CaloJet90Eta1p5 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 90.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets90 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet90Eta1p5" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -fragment.hltSingleCsPFJet120Eta1p5 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets90" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 120.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -fragment.hltPreHICsAK4PFJet120Eta2p1 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltSinglePuAK4CaloJet90Eta2p1 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 90.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets90Eta2p1 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet90Eta2p1" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -fragment.hltSingleCsPFJet120Eta2p1 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets90Eta2p1" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 120.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) fragment.hltL1sL1SingleEG7BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_SingleEG7_BptxAND" ), @@ -100352,7 +99630,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombinedPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsPPOnAA','hltElePixelSeedsTripletsPPOnAA' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsPPOnAA','hltElePixelSeedsTripletsPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeedsPPOnAA = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedPPOnAA" ), @@ -102492,6 +101771,7 @@ MaxNumberOfPixelClusters = cms.uint32( 10000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( True ) ) fragment.hltPixelTracksHitDoubletsLowPtForUPCPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -106723,6 +106003,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter0PixelHitDoubletsPreSplittingPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -106876,7 +106157,12 @@ forceYError = cms.double( 150.0 ), fractionalWidth = cms.double( 0.4 ), chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) + centralMIPCharge = cms.double( 26000.0 ), + expSizeXAtLorentzAngleIncidence = cms.double( 1.5 ), + expSizeXDeltaPerTanAlpha = cms.double( 0.0 ), + expSizeYAtNormalIncidence = cms.double( 1.3 ), + tanLorentzAngle = cms.double( 0.0 ), + tanLorentzAngleBarrelLayer1 = cms.double( 0.0 ) ) fragment.hltSiPixelClustersCacheAfterSplittingPPOnAAForDmeson = cms.EDProducer( "SiPixelClusterShapeCacheProducer", src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), @@ -106949,6 +106235,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter0PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -107180,6 +106467,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter1PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -107384,6 +106672,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter2PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -107586,6 +106875,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter3PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -107783,6 +107073,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter7MixedHitDoubletsAPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -107925,7 +107216,8 @@ ) ) fragment.hltFullIter7MixedSeedsPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPOnAA','hltFullIter7MixedSeedsBPPOnAA' ) + seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPOnAA','hltFullIter7MixedSeedsBPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltFullIter7CkfTrackCandidatesPPOnAA = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -108126,6 +107418,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter8PixelLessHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -108339,6 +107632,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter9TobTecHitDoubletsTriplPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -108525,7 +107819,8 @@ ) ) fragment.hltFullIter9TobTecSeedsPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPOnAA','hltFullIter9TobTecSeedsPairPPOnAA' ) + seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPOnAA','hltFullIter9TobTecSeedsPairPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltFullIter9CkfTrackCandidatesPPOnAA = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -113111,9 +112406,9 @@ MaxEta = cms.double( -1.0 ), MaxTimeSpread = cms.double( -1.0 ) ) -fragment.hltL1sSingleJet24 = cms.EDFilter( "HLTL1TSeed", +fragment.hltL1sZDC1nAsymXORSingleJet8 = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp3_AsymXOR" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -113124,3040 +112419,124 @@ L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -fragment.hltPrePPRefDmesonTrackingGlobalDpt25 = cms.EDFilter( "HLTPrescaler", +fragment.hltPrePPRefUPCSingleJet8ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltSiPixelClustersCache = cms.EDProducer( "SiPixelClusterShapeCacheProducer", - src = cms.InputTag( "hltSiPixelClusters" ), - onDemand = cms.bool( False ) +fragment.hltL1sZDC1nAsymXORSingleJet12 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -fragment.hltFullIter0PixelQuadrupletsPreSplittingPPRefForDmeson = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3+BPix4', - 'BPix1+BPix2+BPix3+FPix1_pos', - 'BPix1+BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos+FPix2_pos', - 'BPix1+BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHits" ), - hitErrorRZ = cms.double( 0.006 ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHits" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) +fragment.hltPrePPRefUPCSingleJet12ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltFullIter0PixelTrackingRegionsPreSplittingPPRefForDmeson = cms.EDProducer( "GlobalTrackingRegionFromBeamSpotEDProducer", - RegionPSet = cms.PSet( - nSigmaZ = cms.double( 4.0 ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - ptMin = cms.double( 0.5 ), - originHalfLength = cms.double( 0.0 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) +fragment.hltL1sZDC1nAsymXORSingleJet16 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -fragment.hltFullIter0PixelClusterCheckPreSplittingPPRefForDmeson = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltHITrackingSiStripRawToClustersFacilityZeroSuppression" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) +fragment.hltPrePPRefUPCSingleJet16ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltFullIter0PixelHitDoubletsPreSplittingPPRefForDmeson = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter0PixelQuadrupletsPreSplittingPPRefForDmeson" ), - trackingRegions = cms.InputTag( "hltFullIter0PixelTrackingRegionsPreSplittingPPRefForDmeson" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter0PixelClusterCheckPreSplittingPPRefForDmeson" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1, 2 ) +fragment.hltL1sZDC1nAsymXORSingleJet20 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -fragment.hltFullIter0PixelHitQuadrupletsPreSplittingPPRefForDmeson = cms.EDProducer( "CAHitQuadrupletEDProducer", - doublets = cms.InputTag( "hltFullIter0PixelHitDoubletsPreSplittingPPRefForDmeson" ), - extraHitRPhitolerance = cms.double( 0.032 ), - fitFastCircle = cms.bool( True ), - fitFastCircleChi2Cut = cms.bool( True ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.0012 ), - CAPhiCut = cms.double( 0.2 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.0 ), - maxChi2 = cms.PSet( - value2 = cms.double( 50.0 ), - value1 = cms.double( 200.0 ), - pt1 = cms.double( 0.7 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCache" ) - ) +fragment.hltPrePPRefUPCSingleJet20ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltFullIter0PixelSeedsPreSplittingPPRefForDmeson = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter0PixelHitQuadrupletsPreSplittingPPRefForDmeson" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( False ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCache" ) - ) +fragment.hltL1sZDC1nAsymXORSingleJet24 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -fragment.hltFullIter0CkfTrackCandidatesPreSplittingPPRefForDmeson = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltMeasurementTrackerEvent" ), - src = cms.InputTag( "hltFullIter0PixelSeedsPreSplittingPPRefForDmeson" ), - clustersToSkip = cms.InputTag( "" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetInitialStepTrajectoryBuilderPreSplittingForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) +fragment.hltPrePPRefUPCSingleJet24ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltFullIter0CtfWithMaterialTracksPreSplittingPPRefForDmeson = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter0CkfTrackCandidatesPreSplittingPPRefForDmeson" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "initialStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "" ) +fragment.hltL1sZDC1nAsymXORSingleJet28 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -fragment.hltFullIter0PrimaryVerticesPreSplittingPPRefForDmeson = cms.EDProducer( "PrimaryVertexProducer", - vertexCollections = cms.VPSet( - cms.PSet( chi2cutoff = cms.double( 2.5 ), - label = cms.string( "" ), - useBeamConstraint = cms.bool( False ), - minNdof = cms.double( 0.0 ), - maxDistanceToBeam = cms.double( 1.0 ), - algorithm = cms.string( "AdaptiveVertexFitter" ) - ) - ), - verbose = cms.untracked.bool( False ), - TkFilterParameters = cms.PSet( - maxEta = cms.double( 2.4 ), - minPt = cms.double( 0.0 ), - minSiliconLayersWithHits = cms.int32( 5 ), - minPixelLayersWithHits = cms.int32( 2 ), - maxNormalizedChi2 = cms.double( 20.0 ), - trackQuality = cms.string( "any" ), - algorithm = cms.string( "filter" ), - maxD0Significance = cms.double( 5.0 ) - ), - beamSpotLabel = cms.InputTag( "hltOnlineBeamSpot" ), - TrackLabel = cms.InputTag( "hltFullIter0CtfWithMaterialTracksPreSplittingPPRefForDmeson" ), - TrackTimeResosLabel = cms.InputTag( "dummy_default" ), - TrackTimesLabel = cms.InputTag( "dummy_default" ), - trackMTDTimeQualityVMapTag = cms.InputTag( "dummy_default" ), - TkClusParameters = cms.PSet( - algorithm = cms.string( "gap" ), - TkGapClusParameters = cms.PSet( zSeparation = cms.double( 1.0 ) ) - ), - isRecoveryIteration = cms.bool( False ), - recoveryVtxCollection = cms.InputTag( "" ), - useMVACut = cms.bool( False ), - minTrackTimeQuality = cms.double( 0.8 ) +fragment.hltPrePPRefUPCSingleJet28ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltSiPixelClustersAfterSplittingPPRefForDmeson = cms.EDProducer( "JetCoreClusterSplitter", - pixelClusters = cms.InputTag( "hltSiPixelClusters" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPreSplittingPPRefForDmeson" ), - pixelCPE = cms.string( "hltESPPixelCPEGeneric" ), - verbose = cms.bool( False ), - ptMin = cms.double( 200.0 ), - cores = cms.InputTag( "hltJetsForCoreTracking" ), - chargeFractionMin = cms.double( 2.0 ), - deltaRmax = cms.double( 0.05 ), - forceXError = cms.double( 100.0 ), - forceYError = cms.double( 150.0 ), - fractionalWidth = cms.double( 0.4 ), - chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) +fragment.hltL1sZDC1nORSingleJet8 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_OR OR L1_SingleJet8_ZDC1n_Bkp1_OR OR L1_SingleJet8_ZDC1n_Bkp2_OR OR L1_SingleJet8_ZDC1n_Bkp3_OR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -fragment.hltSiPixelClustersCacheAfterSplittingPPRefForDmeson = cms.EDProducer( "SiPixelClusterShapeCacheProducer", - src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - onDemand = cms.bool( False ) +fragment.hltPrePPRefUPCSingleJet8ZDC1nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -fragment.hltSiPixelRecHitsAfterSplittingPPRefForDmeson = cms.EDProducer( "SiPixelRecHitConverter", - src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - CPE = cms.string( "hltESPPixelCPEGeneric" ), - VerboseLevel = cms.untracked.int32( 0 ) -) -fragment.hltAfterSplittingMeasureTrackerEventForDmeson = cms.EDProducer( "MeasurementTrackerEventProducer", - measurementTracker = cms.string( "hltESPMeasurementTracker" ), - skipClusters = cms.InputTag( "" ), - pixelClusterProducer = cms.string( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusterProducer = cms.string( "hltSiStripRawToClustersFacility" ), - Phase2TrackerCluster1DProducer = cms.string( "" ), - vectorHits = cms.InputTag( "" ), - vectorHitsRej = cms.InputTag( "" ), - inactivePixelDetectorLabels = cms.VInputTag( ), - badPixelFEDChannelCollectionLabels = cms.VInputTag( ), - pixelCablingMapLabel = cms.string( "" ), - inactiveStripDetectorLabels = cms.VInputTag( 'hltSiStripExcludedFEDListProducer' ), - switchOffPixelsIfEmpty = cms.bool( True ) -) -fragment.hltSiStripMatchedRecHitsFullPPRef = cms.EDProducer( "SiStripRecHitConverter", - ClusterProducer = cms.InputTag( "hltSiStripRawToClustersFacility" ), - rphiRecHits = cms.string( "rphiRecHit" ), - stereoRecHits = cms.string( "stereoRecHit" ), - matchedRecHits = cms.string( "matchedRecHit" ), - useSiStripQuality = cms.bool( False ), - MaskBadAPVFibers = cms.bool( False ), - doMatching = cms.bool( True ), - StripCPE = cms.ESInputTag( "hltESPStripCPEfromTrackAngle","hltESPStripCPEfromTrackAngle" ), - Matcher = cms.ESInputTag( "SiStripRecHitMatcherESProducer","StandardMatcher" ), - siStripQualityLabel = cms.ESInputTag( "","" ) -) -fragment.hltFullIter0PixelQuadrupletsPPRefForDmeson = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3+BPix4', - 'BPix1+BPix2+BPix3+FPix1_pos', - 'BPix1+BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos+FPix2_pos', - 'BPix1+BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter0PixelTrackingRegionsPPRefForDmeson = cms.EDProducer( "GlobalTrackingRegionFromBeamSpotEDProducer", - RegionPSet = cms.PSet( - nSigmaZ = cms.double( 4.0 ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - ptMin = cms.double( 0.5 ), - originHalfLength = cms.double( 0.0 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -fragment.hltFullIter0PixelClusterCheckPPRefForDmeson = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter0PixelHitDoubletsPPRefForDmeson = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter0PixelQuadrupletsPPRefForDmeson" ), - trackingRegions = cms.InputTag( "hltFullIter0PixelTrackingRegionsPPRefForDmeson" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter0PixelClusterCheckPPRefForDmeson" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1, 2 ) -) -fragment.hltFullIter0PixelHitQuadrupletsPPRefForDmeson = cms.EDProducer( "CAHitQuadrupletEDProducer", - doublets = cms.InputTag( "hltFullIter0PixelHitDoubletsPPRefForDmeson" ), - extraHitRPhitolerance = cms.double( 0.032 ), - fitFastCircle = cms.bool( True ), - fitFastCircleChi2Cut = cms.bool( True ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.0012 ), - CAPhiCut = cms.double( 0.2 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.0 ), - maxChi2 = cms.PSet( - value2 = cms.double( 50.0 ), - value1 = cms.double( 200.0 ), - pt1 = cms.double( 0.7 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter0PixelSeedsPPRefForDmeson = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter0PixelHitQuadrupletsPPRefForDmeson" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( False ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter0CkfTrackCandidatesPPRefForDmeson = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - src = cms.InputTag( "hltFullIter0PixelSeedsPPRefForDmeson" ), - clustersToSkip = cms.InputTag( "" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetInitialStepTrajectoryBuilderForDmesonPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 500000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter0CtfWithMaterialTracksPPRefForDmeson = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter0CkfTrackCandidatesPPRefForDmeson" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "initialStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "" ) -) -fragment.hltFullIter0PrimaryVerticesPPRefForDmeson = cms.EDProducer( "PrimaryVertexProducer", - vertexCollections = cms.VPSet( - cms.PSet( chi2cutoff = cms.double( 2.5 ), - label = cms.string( "" ), - useBeamConstraint = cms.bool( False ), - minNdof = cms.double( 0.0 ), - maxDistanceToBeam = cms.double( 1.0 ), - algorithm = cms.string( "AdaptiveVertexFitter" ) - ) - ), - verbose = cms.untracked.bool( False ), - TkFilterParameters = cms.PSet( - maxEta = cms.double( 2.4 ), - minPt = cms.double( 0.0 ), - minSiliconLayersWithHits = cms.int32( 5 ), - minPixelLayersWithHits = cms.int32( 2 ), - maxNormalizedChi2 = cms.double( 20.0 ), - trackQuality = cms.string( "any" ), - algorithm = cms.string( "filter" ), - maxD0Significance = cms.double( 5.0 ) - ), - beamSpotLabel = cms.InputTag( "hltOnlineBeamSpot" ), - TrackLabel = cms.InputTag( "hltFullIter0CtfWithMaterialTracksPPRefForDmeson" ), - TrackTimeResosLabel = cms.InputTag( "dummy_default" ), - TrackTimesLabel = cms.InputTag( "dummy_default" ), - trackMTDTimeQualityVMapTag = cms.InputTag( "dummy_default" ), - TkClusParameters = cms.PSet( - algorithm = cms.string( "gap" ), - TkGapClusParameters = cms.PSet( zSeparation = cms.double( 1.0 ) ) - ), - isRecoveryIteration = cms.bool( False ), - recoveryVtxCollection = cms.InputTag( "" ), - useMVACut = cms.bool( False ), - minTrackTimeQuality = cms.double( 0.8 ) -) -fragment.hltFullIter0TrackDNNClassifierPPRefForDmeson = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter0CtfWithMaterialTracksPPRefForDmeson" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.35, 0.1, 0.28 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter0HighPurityTracksPPRefForDmeson = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter0CtfWithMaterialTracksPPRefForDmeson" ), - originalMVAVals = cms.InputTag( 'hltFullIter0TrackDNNClassifierPPRefForDmeson','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter0TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter1ClustersRefRemovalPPRefForDmeson = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter0HighPurityTracksPPRefForDmeson" ), - trackClassifier = cms.InputTag( 'hltFullIter0TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter1MaskedMeasurementTrackerEventPPRefForDmeson = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ) -) -fragment.hltFullIter1PixelQuadrupletsPPRefForDmeson = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3+BPix4', - 'BPix1+BPix2+BPix3+FPix1_pos', - 'BPix1+BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos+FPix2_pos', - 'BPix1+BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter1PixelTrackingRegionsPPRefForDmeson = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 4.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 0.5 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.15 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -fragment.hltFullIter1PixelClusterCheckPPRefForDmeson = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter1PixelHitDoubletsPPRefForDmeson = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter1PixelQuadrupletsPPRefForDmeson" ), - trackingRegions = cms.InputTag( "hltFullIter1PixelTrackingRegionsPPRefForDmeson" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter1PixelClusterCheckPPRefForDmeson" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1, 2 ) -) -fragment.hltFullIter1PixelHitQuadrupletsPPRefForDmeson = cms.EDProducer( "CAHitQuadrupletEDProducer", - doublets = cms.InputTag( "hltFullIter1PixelHitDoubletsPPRefForDmeson" ), - extraHitRPhitolerance = cms.double( 0.032 ), - fitFastCircle = cms.bool( True ), - fitFastCircleChi2Cut = cms.bool( True ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.0017 ), - CAPhiCut = cms.double( 0.3 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.0 ), - maxChi2 = cms.PSet( - value2 = cms.double( 150.0 ), - value1 = cms.double( 1000.0 ), - pt1 = cms.double( 0.7 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter1PixelSeedsPPRefForDmeson = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter1PixelHitQuadrupletsPPRefForDmeson" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) -) -fragment.hltFullIter1CkfTrackCandidatesPPRefForDmeson = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter1MaskedMeasurementTrackerEventPPRefForDmeson" ), - src = cms.InputTag( "hltFullIter1PixelSeedsPPRefForDmeson" ), - clustersToSkip = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetLowPtQuadStepTrajectoryBuilderForDmesonPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPLowPtQuadStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter1CtfWithMaterialTracksPPRefForDmeson = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter1CkfTrackCandidatesPPRefForDmeson" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "lowPtQuadStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter1MaskedMeasurementTrackerEventPPRefForDmeson" ) -) -fragment.hltFullIter1TrackDNNClassifierPPRefForDmeson = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter1CtfWithMaterialTracksPPRefForDmeson" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.33, 0.13, 0.35 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter1HighPurityTracksPPRefForDmeson = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter1CtfWithMaterialTracksPPRefForDmeson" ), - originalMVAVals = cms.InputTag( 'hltFullIter1TrackDNNClassifierPPRefForDmeson','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter1TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter2ClustersRefRemovalPPRefForDmeson = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter1HighPurityTracksPPRefForDmeson" ), - trackClassifier = cms.InputTag( 'hltFullIter1TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter2MaskedMeasurementTrackerEventPPRefForDmeson = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ) -) -fragment.hltFullIter2PixelTripletsPPRefForDmeson = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix1+BPix3+BPix4', - 'BPix1+BPix2+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos', - 'BPix1+BPix2+FPix1_neg', - 'BPix1+BPix3+FPix1_pos', - 'BPix1+BPix3+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos', - 'BPix1+FPix1_neg+FPix2_neg', - 'BPix1+BPix2+FPix2_pos', - 'BPix1+BPix2+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg', - 'BPix1+FPix2_pos+FPix3_pos', - 'BPix1+FPix2_neg+FPix3_neg', - 'BPix1+FPix1_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter2PixelTrackingRegionsPPRefForDmeson = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 4.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 0.2 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.55 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -fragment.hltFullIter2PixelClusterCheckPPRefForDmeson = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter2PixelHitDoubletsPPRefForDmeson = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter2PixelTripletsPPRefForDmeson" ), - trackingRegions = cms.InputTag( "hltFullIter2PixelTrackingRegionsPPRefForDmeson" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter2PixelClusterCheckPPRefForDmeson" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1 ) -) -fragment.hltFullIter2PixelHitTripletsPPRefForDmeson = cms.EDProducer( "CAHitTripletEDProducer", - doublets = cms.InputTag( "hltFullIter2PixelHitDoubletsPPRefForDmeson" ), - extraHitRPhitolerance = cms.double( 0.032 ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.004 ), - CAPhiCut = cms.double( 0.07 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.3 ), - maxChi2 = cms.PSet( - value2 = cms.double( 6.0 ), - value1 = cms.double( 100.0 ), - pt1 = cms.double( 0.8 ), - enabled = cms.bool( True ), - pt2 = cms.double( 8.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter2PixelSeedsPPRefForDmeson = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter2PixelHitTripletsPPRefForDmeson" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) -) -fragment.hltFullIter2CkfTrackCandidatesPPRefForDmeson = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter2MaskedMeasurementTrackerEventPPRefForDmeson" ), - src = cms.InputTag( "hltFullIter2PixelSeedsPPRefForDmeson" ), - clustersToSkip = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetHighPtTripletStepTrajectoryBuilderForDmesonPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter2CtfWithMaterialTracksPPRefForDmeson = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter2CkfTrackCandidatesPPRefForDmeson" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "highPtTripletStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter2MaskedMeasurementTrackerEventPPRefForDmeson" ) -) -fragment.hltFullIter2TrackDNNClassifierPPRefForDmeson = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter2CtfWithMaterialTracksPPRefForDmeson" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( 0.47, 0.55, 0.62 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter2HighPurityTracksPPRefForDmeson = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter2CtfWithMaterialTracksPPRefForDmeson" ), - originalMVAVals = cms.InputTag( 'hltFullIter2TrackDNNClassifierPPRefForDmeson','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter2TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter3ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter2HighPurityTracksPPRefForDmeson" ), - trackClassifier = cms.InputTag( 'hltFullIter2TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter3MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ) -) -fragment.hltFullIter3PixelTripletsPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix1+BPix3+BPix4', - 'BPix1+BPix2+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos', - 'BPix1+BPix2+FPix1_neg', - 'BPix1+BPix3+FPix1_pos', - 'BPix1+BPix3+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos', - 'BPix1+FPix1_neg+FPix2_neg', - 'BPix1+BPix2+FPix2_pos', - 'BPix1+BPix2+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg', - 'BPix1+FPix2_pos+FPix3_pos', - 'BPix1+FPix2_neg+FPix3_neg', - 'BPix1+FPix1_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter3PixelTrackingRegionsPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( False ), - nSigmaZ = cms.double( 4.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 0.2 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.2 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -fragment.hltFullIter3PixelClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter3PixelHitDoubletsPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter3PixelTripletsPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter3PixelTrackingRegionsPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter3PixelClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1 ) -) -fragment.hltFullIter3PixelHitTripletsPPRef = cms.EDProducer( "CAHitTripletEDProducer", - doublets = cms.InputTag( "hltFullIter3PixelHitDoubletsPPRef" ), - extraHitRPhitolerance = cms.double( 0.032 ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.002 ), - CAPhiCut = cms.double( 0.05 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.3 ), - maxChi2 = cms.PSet( - value2 = cms.double( 8.0 ), - value1 = cms.double( 70.0 ), - pt1 = cms.double( 0.8 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter3PixelSeedsPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter3PixelHitTripletsPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) -) -fragment.hltFullIter3CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter3MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter3PixelSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetLowPtTripletStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPLowPtTripletStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter3CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter3CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "lowPtTripletStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter3MaskedMeasurementTrackerEventPPRef" ) -) -fragment.hltFullIter3TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter3CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.23, 0.15, 0.41 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter3HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter3CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter3TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter3TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter4ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter3HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter3TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter4MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ) -) -fragment.hltFullIter4PixelQuadrupletsPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3+BPix4', - 'BPix1+BPix2+BPix3+FPix1_pos', - 'BPix1+BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos+FPix2_pos', - 'BPix1+BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter4PixelTrackingRegionsPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 1.0 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 1.5 ), - originRadius = cms.double( 1.0 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -fragment.hltFullIter4PixelClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( True ), - MaxNumberOfStripClusters = cms.uint32( 500000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 150000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter4PixelHitDoubletsPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter4PixelQuadrupletsPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter4PixelTrackingRegionsPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter4PixelClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1, 2 ) -) -fragment.hltFullIter4PixelHitQuadrupletsPPRef = cms.EDProducer( "CAHitQuadrupletEDProducer", - doublets = cms.InputTag( "hltFullIter4PixelHitDoubletsPPRef" ), - extraHitRPhitolerance = cms.double( 0.032 ), - fitFastCircle = cms.bool( True ), - fitFastCircleChi2Cut = cms.bool( True ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.0011 ), - CAPhiCut = cms.double( 0.0 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.0 ), - maxChi2 = cms.PSet( - value2 = cms.double( 100.0 ), - value1 = cms.double( 500.0 ), - pt1 = cms.double( 0.8 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter4PixelSeedsPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter4PixelHitQuadrupletsPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( False ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter4CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter4MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter4PixelSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetDetachedQuadStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPDetachedQuadStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter4CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter4CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "detachedQuadStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter4MaskedMeasurementTrackerEventPPRef" ) -) -fragment.hltFullIter4TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter4CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.66, -0.15, 0.46 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter4HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter4CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter4TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter4TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter5ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter4HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter4TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter5MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ) -) -fragment.hltFullIter5PixelTripletsPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter5PixelTrackingRegionsPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 0.5 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.25 ), - originRadius = cms.double( 1.5 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -fragment.hltFullIter5PixelClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( True ), - MaxNumberOfStripClusters = cms.uint32( 500000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 150000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter5PixelHitDoubletsPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter5PixelTripletsPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter5PixelTrackingRegionsPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter5PixelClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1 ) -) -fragment.hltFullIter5PixelHitTripletsPPRef = cms.EDProducer( "CAHitTripletEDProducer", - doublets = cms.InputTag( "hltFullIter5PixelHitDoubletsPPRef" ), - extraHitRPhitolerance = cms.double( 0.032 ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.001 ), - CAPhiCut = cms.double( 0.0 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.2 ), - maxChi2 = cms.PSet( - value2 = cms.double( 10.0 ), - value1 = cms.double( 300.0 ), - pt1 = cms.double( 0.8 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) -) -fragment.hltFullIter5PixelSeedsPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter5PixelHitTripletsPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( False ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter5CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter5MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter5PixelSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetDetachedTripletStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPDetachedTripletStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter5CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter5CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "detachedTripletStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter5MaskedMeasurementTrackerEventPPRef" ) -) -fragment.hltFullIter5TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter5CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.42, 0.16, 0.78 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter5HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter5CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter5TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter5TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter6ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter5HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter5TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "tight" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter6MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ) -) -fragment.hltFullIter6PixelClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( True ), - MaxNumberOfStripClusters = cms.uint32( 500000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 150000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter6PixelTrackingRegionSeedLayersBPPRef = cms.EDProducer( "PixelInactiveAreaTrackingRegionsSeedingLayersProducer", - RegionPSet = cms.PSet( - deltaEta_Cand = cms.double( -1.0 ), - vertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - zErrorBeamSpot = cms.double( 24.2 ), - extraPhi = cms.double( 0.0 ), - extraEta = cms.double( 0.0 ), - seedingMode = cms.string( "Global" ), - maxNVertices = cms.int32( 5 ), - nSigmaZVertex = cms.double( 3.0 ), - nSigmaZBeamSpot = cms.double( 4.0 ), - ptMin = cms.double( 5.0 ), - input = cms.InputTag( "" ), - operationMode = cms.string( "VerticesFixed" ), - searchOpt = cms.bool( False ), - whereToUseMeasurementTracker = cms.string( "Never" ), - deltaPhi_Cand = cms.double( -1.0 ), - originRadius = cms.double( 0.015 ), - measurementTrackerName = cms.InputTag( "" ), - precise = cms.bool( True ), - zErrorVertex = cms.double( 0.3 ) - ), - inactivePixelDetectorLabels = cms.VInputTag( 'hltSiPixelDigiErrors' ), - badPixelFEDChannelCollectionLabels = cms.VInputTag( 'hltSiPixelDigiErrors' ), - ignoreSingleFPixPanelModules = cms.bool( True ), - debug = cms.untracked.bool( False ), - createPlottingFiles = cms.untracked.bool( False ), - layerList = cms.vstring( 'BPix1+BPix2', - 'BPix1+BPix3', - 'BPix1+BPix4', - 'BPix2+BPix3', - 'BPix2+BPix4', - 'BPix3+BPix4', - 'BPix1+FPix1_pos', - 'BPix1+FPix1_neg', - 'BPix1+FPix2_pos', - 'BPix1+FPix2_neg', - 'BPix1+FPix3_pos', - 'BPix1+FPix3_neg', - 'BPix2+FPix1_pos', - 'BPix2+FPix1_neg', - 'BPix2+FPix2_pos', - 'BPix2+FPix2_neg', - 'BPix3+FPix1_pos', - 'BPix3+FPix1_neg', - 'FPix1_pos+FPix2_pos', - 'FPix1_neg+FPix2_neg', - 'FPix1_pos+FPix3_pos', - 'FPix1_neg+FPix3_neg', - 'FPix2_pos+FPix3_pos', - 'FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter6PixelHitDoubletsBPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "" ), - trackingRegions = cms.InputTag( "" ), - trackingRegionsSeedingLayers = cms.InputTag( "hltFullIter6PixelTrackingRegionSeedLayersBPPRef" ), - clusterCheck = cms.InputTag( "hltFullIter6PixelClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( False ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -fragment.hltFullIter6PixelSeedsBPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter6PixelHitDoubletsBPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( False ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( True ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter6CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter6MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter6PixelSeedsBPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetPixelPairStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 500000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter6CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter6CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "pixelPairStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter6MaskedMeasurementTrackerEventPPRef" ) -) -fragment.hltFullIter6TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter6CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.31, -0.13, 0.13 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter6HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter6CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter6TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter6TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter7ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter6HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter6TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter7MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ) -) -fragment.hltFullIter7MixedLayersAPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 1 ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 1 ) - ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter7MixedTrackingRegionsAPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 3.75 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.4 ), - originRadius = cms.double( 1.5 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( True ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter7MixedClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter7MixedHitDoubletsAPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter7MixedLayersAPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter7MixedTrackingRegionsAPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter7MixedClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -fragment.hltFullIter7MixedHitTripletsAPPRef = cms.EDProducer( "PixelTripletLargeTipEDProducer", - doublets = cms.InputTag( "hltFullIter7MixedHitDoubletsAPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitTriplets = cms.bool( False ), - maxElement = cms.uint32( 1000000 ), - extraHitRPhitolerance = cms.double( 0.0 ), - extraHitRZtolerance = cms.double( 0.0 ), - useMultScattering = cms.bool( True ), - useBending = cms.bool( True ), - useFixedPreFiltering = cms.bool( False ), - phiPreFiltering = cms.double( 0.3 ) -) -fragment.hltFullIter7MixedSeedsAPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter7MixedHitTripletsAPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPMixedStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter7MixedLayersBPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix3+BPix4+TIB1' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ) - ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter7MixedTrackingRegionsBPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 2.5 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.6 ), - originRadius = cms.double( 1.5 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( True ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter7MixedHitDoubletsBPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter7MixedLayersBPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter7MixedTrackingRegionsBPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter7MixedClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -fragment.hltFullIter7MixedHitTripletsBPPRef = cms.EDProducer( "PixelTripletLargeTipEDProducer", - doublets = cms.InputTag( "hltFullIter7MixedHitDoubletsBPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitTriplets = cms.bool( False ), - maxElement = cms.uint32( 1000000 ), - extraHitRPhitolerance = cms.double( 0.0 ), - extraHitRZtolerance = cms.double( 0.0 ), - useMultScattering = cms.bool( True ), - useBending = cms.bool( True ), - useFixedPreFiltering = cms.bool( False ), - phiPreFiltering = cms.double( 0.3 ) -) -fragment.hltFullIter7MixedSeedsBPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter7MixedHitTripletsBPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPMixedStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter7MixedSeedsPPRef = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPRef','hltFullIter7MixedSeedsBPPRef' ) -) -fragment.hltFullIter7CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( False ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter7MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter7MixedSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMixedTripletStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPMixedTripletStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter7CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter7CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "mixedTripletStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter7MaskedMeasurementTrackerEventPPRef" ) -) -fragment.hltFullIter7TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter7CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.86, -0.68, -0.43 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter7HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter7CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter7TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter7TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter8ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter7HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter7TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter8MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ) -) -fragment.hltFullIter8PixelLessLayersPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'TIB1+TIB2+MTIB3', - 'TIB1+TIB2+MTIB4', - 'TIB1+TIB2+MTID1_pos', - 'TIB1+TIB2+MTID1_neg', - 'TID1_pos+TID2_pos+TID3_pos', - 'TID1_neg+TID2_neg+TID3_neg', - 'TID1_pos+TID2_pos+MTID3_pos', - 'TID1_neg+TID2_neg+MTID3_neg', - 'TID1_pos+TID2_pos+MTEC1_pos', - 'TID1_neg+TID2_neg+MTEC1_neg', - 'TID2_pos+TID3_pos+TEC1_pos', - 'TID2_neg+TID3_neg+TEC1_neg', - 'TID2_pos+TID3_pos+MTEC1_pos', - 'TID2_neg+TID3_neg+MTEC1_neg', - 'TEC1_pos+TEC2_pos+TEC3_pos', - 'TEC1_neg+TEC2_neg+TEC3_neg', - 'TEC1_pos+TEC2_pos+MTEC3_pos', - 'TEC1_neg+TEC2_neg+MTEC3_neg', - 'TEC1_pos+TEC2_pos+TEC4_pos', - 'TEC1_neg+TEC2_neg+TEC4_neg', - 'TEC1_pos+TEC2_pos+MTEC4_pos', - 'TEC1_neg+TEC2_neg+MTEC4_neg', - 'TEC2_pos+TEC3_pos+TEC4_pos', - 'TEC2_neg+TEC3_neg+TEC4_neg', - 'TEC2_pos+TEC3_pos+MTEC4_pos', - 'TEC2_neg+TEC3_neg+MTEC4_neg', - 'TEC2_pos+TEC3_pos+TEC5_pos', - 'TEC2_neg+TEC3_neg+TEC5_neg', - 'TEC2_pos+TEC3_pos+TEC6_pos', - 'TEC2_neg+TEC3_neg+TEC6_neg', - 'TEC3_pos+TEC4_pos+TEC5_pos', - 'TEC3_neg+TEC4_neg+TEC5_neg', - 'TEC3_pos+TEC4_pos+MTEC5_pos', - 'TEC3_neg+TEC4_neg+MTEC5_neg', - 'TEC3_pos+TEC5_pos+TEC6_pos', - 'TEC3_neg+TEC5_neg+TEC6_neg', - 'TEC4_pos+TEC5_pos+TEC6_pos', - 'TEC4_neg+TEC5_neg+TEC6_neg' ), - BPix = cms.PSet( ), - FPix = cms.PSet( ), - TIB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ) - ), - TID = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 3 ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 3 ) - ), - TOB = cms.PSet( ), - TEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 1 ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 2 ) - ), - MTIB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ), - MTID = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 3 ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 3 ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 3 ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 3 ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ) -) -fragment.hltFullIter8PixelLessTrackingRegionsPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 3.0 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.4 ), - originRadius = cms.double( 1.0 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( False ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter8PixelLessClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter8PixelLessHitDoubletsPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter8PixelLessLayersPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter8PixelLessTrackingRegionsPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter8PixelLessClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -fragment.hltFullIter8PixelLessHitTripletsPPRef = cms.EDProducer( "MultiHitFromChi2EDProducer", - doublets = cms.InputTag( "hltFullIter8PixelLessHitDoubletsPPRef" ), - maxElement = cms.uint32( 1000000 ), - useFixedPreFiltering = cms.bool( False ), - phiPreFiltering = cms.double( 0.3 ), - extraHitRPhitolerance = cms.double( 0.0 ), - extraHitRZtolerance = cms.double( 0.0 ), - extraZKDBox = cms.double( 0.2 ), - extraRKDBox = cms.double( 0.2 ), - extraPhiKDBox = cms.double( 0.005 ), - fnSigmaRZ = cms.double( 2.0 ), - refitHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - maxChi2 = cms.double( 5.0 ), - chi2VsPtCut = cms.bool( True ), - pt_interv = cms.vdouble( 0.4, 0.7, 1.0, 2.0 ), - chi2_cuts = cms.vdouble( 3.0, 4.0, 5.0, 5.0 ), - detIdsToDebug = cms.vint32( 0, 0, 0 ) -) -fragment.hltFullIter8PixelLessSeedsPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter8PixelLessHitTripletsPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - mode = cms.string( "and" ), - comparitors = cms.VPSet( - cms.PSet( FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPPixelLessStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ), - cms.PSet( subclusterCutSN = cms.double( 12.0 ), - trimMaxADC = cms.double( 30.0 ), - seedCutMIPs = cms.double( 0.35 ), - subclusterCutMIPs = cms.double( 0.45 ), - subclusterWindow = cms.double( 0.7 ), - maxNSat = cms.uint32( 3 ), - trimMaxFracNeigh = cms.double( 0.25 ), - FilterAtHelixStage = cms.bool( False ), - maxTrimmedSizeDiffNeg = cms.double( 1.0 ), - seedCutSN = cms.double( 7.0 ), - ComponentName = cms.string( "StripSubClusterShapeSeedFilter" ), - maxTrimmedSizeDiffPos = cms.double( 0.7 ), - trimMaxFracTotal = cms.double( 0.15 ), - layerMask = cms.PSet( ) - ) - ), - ComponentName = cms.string( "CombinedSeedComparitor" ) - ) -) -fragment.hltFullIter8CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( False ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter8MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter8PixelLessSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetPixelLessStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPPixelLessStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 500000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter8CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter8CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( True ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "pixelLessStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter8MaskedMeasurementTrackerEventPPRef" ) -) -fragment.hltFullIter8TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter8CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.82, -0.61, -0.16 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter8HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter8CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter8TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter8TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullIter9ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter8HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter8TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -fragment.hltFullIter9MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ) -) -fragment.hltFullIter9TobTecLayersTriplPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'TOB1+TOB2+MTOB3', - 'TOB1+TOB2+MTOB4', - 'TOB1+TOB2+MTEC1_pos', - 'TOB1+TOB2+MTEC1_neg' ), - BPix = cms.PSet( ), - FPix = cms.PSet( ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ) - ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ), - MTEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 6 ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 7 ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ) -) -fragment.hltFullIter9TobTecTrackingRegionsTriplPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 5.0 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.55 ), - originRadius = cms.double( 3.5 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( False ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter9TobTecClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -fragment.hltFullIter9TobTecHitDoubletsTriplPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter9TobTecLayersTriplPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter9TobTecTrackingRegionsTriplPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter9TobTecClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -fragment.hltFullIter9TobTecHitTripletsTriplPPRef = cms.EDProducer( "MultiHitFromChi2EDProducer", - doublets = cms.InputTag( "hltFullIter9TobTecHitDoubletsTriplPPRef" ), - maxElement = cms.uint32( 1000000 ), - useFixedPreFiltering = cms.bool( False ), - phiPreFiltering = cms.double( 0.3 ), - extraHitRPhitolerance = cms.double( 0.0 ), - extraHitRZtolerance = cms.double( 0.0 ), - extraZKDBox = cms.double( 0.2 ), - extraRKDBox = cms.double( 0.2 ), - extraPhiKDBox = cms.double( 0.01 ), - fnSigmaRZ = cms.double( 2.0 ), - refitHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - maxChi2 = cms.double( 5.0 ), - chi2VsPtCut = cms.bool( True ), - pt_interv = cms.vdouble( 0.4, 0.7, 1.0, 2.0 ), - chi2_cuts = cms.vdouble( 3.0, 4.0, 5.0, 5.0 ), - detIdsToDebug = cms.vint32( 0, 0, 0 ) -) -fragment.hltFullIter9TobTecSeedsTriplPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter9TobTecHitTripletsTriplPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - mode = cms.string( "and" ), - comparitors = cms.VPSet( - cms.PSet( FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPTobTecStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ), - cms.PSet( subclusterCutSN = cms.double( 12.0 ), - trimMaxADC = cms.double( 30.0 ), - seedCutMIPs = cms.double( 0.35 ), - subclusterCutMIPs = cms.double( 0.45 ), - subclusterWindow = cms.double( 0.7 ), - maxNSat = cms.uint32( 3 ), - trimMaxFracNeigh = cms.double( 0.25 ), - FilterAtHelixStage = cms.bool( False ), - maxTrimmedSizeDiffNeg = cms.double( 1.0 ), - seedCutSN = cms.double( 7.0 ), - ComponentName = cms.string( "StripSubClusterShapeSeedFilter" ), - maxTrimmedSizeDiffPos = cms.double( 0.7 ), - trimMaxFracTotal = cms.double( 0.15 ), - layerMask = cms.PSet( ) - ) - ), - ComponentName = cms.string( "CombinedSeedComparitor" ) - ) -) -fragment.hltFullIter9TobTecLayersPairPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'TOB1+TEC1_pos', - 'TOB1+TEC1_neg', - 'TEC1_pos+TEC2_pos', - 'TEC1_neg+TEC2_neg', - 'TEC2_pos+TEC3_pos', - 'TEC2_neg+TEC3_neg', - 'TEC3_pos+TEC4_pos', - 'TEC3_neg+TEC4_neg', - 'TEC4_pos+TEC5_pos', - 'TEC4_neg+TEC5_neg', - 'TEC5_pos+TEC6_pos', - 'TEC5_neg+TEC6_neg', - 'TEC6_pos+TEC7_pos', - 'TEC6_neg+TEC7_neg' ), - BPix = cms.PSet( ), - FPix = cms.PSet( ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ) - ), - TEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 5 ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 5 ) - ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter9TobTecTrackingRegionsPairPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 7.5 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.6 ), - originRadius = cms.double( 6.0 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( False ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -fragment.hltFullIter9TobTecHitDoubletsPairPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter9TobTecLayersPairPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter9TobTecTrackingRegionsPairPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter9TobTecClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -fragment.hltFullIter9TobTecSeedsPairPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter9TobTecHitDoubletsPairPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - mode = cms.string( "and" ), - comparitors = cms.VPSet( - cms.PSet( FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPTobTecStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ), - cms.PSet( subclusterCutSN = cms.double( 12.0 ), - trimMaxADC = cms.double( 30.0 ), - seedCutMIPs = cms.double( 0.35 ), - subclusterCutMIPs = cms.double( 0.45 ), - subclusterWindow = cms.double( 0.7 ), - maxNSat = cms.uint32( 3 ), - trimMaxFracNeigh = cms.double( 0.25 ), - FilterAtHelixStage = cms.bool( False ), - maxTrimmedSizeDiffNeg = cms.double( 1.0 ), - seedCutSN = cms.double( 7.0 ), - ComponentName = cms.string( "StripSubClusterShapeSeedFilter" ), - maxTrimmedSizeDiffPos = cms.double( 0.7 ), - trimMaxFracTotal = cms.double( 0.15 ), - layerMask = cms.PSet( ) - ) - ), - ComponentName = cms.string( "CombinedSeedComparitor" ) - ) -) -fragment.hltFullIter9TobTecSeedsPPRef = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPRef','hltFullIter9TobTecSeedsPairPPRef' ) -) -fragment.hltFullIter9CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter9MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter9TobTecSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetTobTecStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTobTecStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 500000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -fragment.hltFullIter9CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter9CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPTobTecStepFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( True ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "tobTecStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter9MaskedMeasurementTrackerEventPPRef" ) -) -fragment.hltFullIter9TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter9CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.76, -0.65, -0.55 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIter10JetCoreLayersPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix1+BPix3+BPix4', - 'BPix1+BPix2+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos', - 'BPix1+BPix2+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos', - 'BPix1+FPix1_neg+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg', - 'BPix1+BPix2+TIB1', - 'BPix1+BPix3+TIB1', - 'BPix1+BPix4+TIB1', - 'BPix2+BPix3+TIB1', - 'BPix2+BPix4+TIB1', - 'BPix3+BPix4+TIB1' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ), - hitErrorRZ = cms.double( 0.006 ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) - ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -fragment.hltFullIter10JetCoreRegionSeedsPPRef = cms.EDProducer( "SeedGeneratorFromRegionHitsEDProducer", - OrderedHitsFactoryPSet = cms.PSet( - maxElement = cms.uint32( 0 ), - ComponentName = cms.string( "StandardHitTripletGenerator" ), - SeedingLayers = cms.InputTag( "hltFullIter10JetCoreLayersPPRef" ), - LayerSrc = cms.InputTag( "hltFullIter10JetCoreLayersPPRef" ), - GeneratorPSet = cms.PSet( - maxElement = cms.uint32( 0 ), - useBending = cms.bool( True ), - useFixedPreFiltering = cms.bool( False ), - ComponentName = cms.string( "PixelTripletHLTGenerator" ), - useMultScattering = cms.bool( True ), - phiPreFiltering = cms.double( 0.3 ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ), - extraHitRPhitolerance = cms.double( 0.032 ), - extraHitRZtolerance = cms.double( 0.037 ) - ) - ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ), - RegionFactoryPSet = cms.PSet( - ComponentName = cms.string( "CandidateSeededTrackingRegionsProducer" ), - RegionPSet = cms.PSet( - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - ptMin = cms.double( 10.0 ), - originRadius = cms.double( 0.2 ), - originHalfLength = cms.double( 0.2 ), - deltaPhiRegion = cms.double( 0.2 ), - measurementTrackerName = cms.string( "" ), - zVertex = cms.double( 5.0 ), - deltaEtaRegion = cms.double( 0.2 ), - rVertex = cms.double( 5.0 ), - useFakeVertices = cms.bool( False ), - JetSrc = cms.InputTag( "hltJetsForCoreTracking" ), - vertexSrc = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - howToUseMeasurementTracker = cms.string( "Never" ), - zErrorVetex = cms.double( 0.1 ), - nSigmaZVertex = cms.double( 3.0 ), - nSigmaZBeamSpot = cms.double( -1.0 ), - zErrorBeamSpot = cms.double( 15.0 ), - deltaEta = cms.double( 0.2 ), - deltaPhi = cms.double( 0.2 ), - vertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - maxNRegions = cms.int32( 3 ), - searchOpt = cms.bool( False ), - whereToUseMeasurementTracker = cms.string( "Never" ), - input = cms.InputTag( "hltJetsForCoreTracking" ), - maxNVertices = cms.int32( 1 ), - mode = cms.string( "VerticesFixed" ) - ), - CollectionsPSet = cms.PSet( - recoL2MuonsCollection = cms.InputTag( "" ), - recoTrackMuonsCollection = cms.InputTag( "" ), - recoMuonsCollection = cms.InputTag( "" ) - ), - RegionInJetsCheckPSet = cms.PSet( - recoCaloJetsCollection = cms.InputTag( "hltJetsForCoreTracking" ), - deltaRExclusionSize = cms.double( 0.3 ), - jetsPtMin = cms.double( 5.0 ), - doJetsExclusionCheck = cms.bool( True ) - ), - ToolsPSet = cms.PSet( - regionBase = cms.string( "seedOnJets" ), - thePropagatorName = cms.string( "AnalyticalPropagator" ) - ) - ), - SeedCreatorPSet = cms.PSet( - ComponentName = cms.string( "SeedFromConsecutiveHitsCreator" ), - forceKinematicWithRegionDirection = cms.bool( True ), - magneticField = cms.string( "ParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - MinOneOverPtError = cms.double( 1.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - maxseeds = cms.int32( 10000 ) - ), - ClusterCheckPSet = cms.PSet( - MaxNumberOfPixelClusters = cms.uint32( 150000 ), - cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - doClusterCheck = cms.bool( True ), - ClusterCollectionLabel = cms.InputTag( "hltMeasurementTrackerEvent" ), - MaxNumberOfStripClusters = cms.uint32( 500000 ) - ) -) -fragment.hltFullIter10CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( False ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - src = cms.InputTag( "hltFullIter10JetCoreRegionSeedsPPRef" ), - clustersToSkip = cms.InputTag( "" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetJetCoreStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 4 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 10000 ) -) -fragment.hltFullIter10CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter10CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "jetCoreRegionalStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "" ) -) -fragment.hltFullIter10TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter10CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.62, -0.49, -0.02 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -fragment.hltFullIterativeTrackingMergedPPRefForDmeson = cms.EDProducer( "TrackCollectionMerger", - trackProducers = cms.VInputTag( 'hltFullIter0CtfWithMaterialTracksPPRefForDmeson','hltFullIter1CtfWithMaterialTracksPPRefForDmeson','hltFullIter2CtfWithMaterialTracksPPRefForDmeson','hltFullIter3CtfWithMaterialTracksPPRef','hltFullIter4CtfWithMaterialTracksPPRef','hltFullIter5CtfWithMaterialTracksPPRef','hltFullIter6CtfWithMaterialTracksPPRef','hltFullIter7CtfWithMaterialTracksPPRef','hltFullIter8CtfWithMaterialTracksPPRef','hltFullIter9CtfWithMaterialTracksPPRef','hltFullIter10CtfWithMaterialTracksPPRef' ), - inputClassifiers = cms.vstring( 'hltFullIter0TrackDNNClassifierPPRefForDmeson', - 'hltFullIter1TrackDNNClassifierPPRefForDmeson', - 'hltFullIter2TrackDNNClassifierPPRefForDmeson', - 'hltFullIter3TrackDNNClassifierPPRef', - 'hltFullIter4TrackDNNClassifierPPRef', - 'hltFullIter5TrackDNNClassifierPPRef', - 'hltFullIter6TrackDNNClassifierPPRef', - 'hltFullIter7TrackDNNClassifierPPRef', - 'hltFullIter8TrackDNNClassifierPPRef', - 'hltFullIter9TrackDNNClassifierPPRef', - 'hltFullIter10TrackDNNClassifierPPRef' ), - trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), - shareFrac = cms.double( 0.19 ), - foundHitBonus = cms.double( 10.0 ), - lostHitPenalty = cms.double( 5.0 ), - minShareHits = cms.uint32( 2 ), - allowFirstHitShare = cms.bool( True ), - enableMerging = cms.bool( True ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullOnlinePrimaryVerticesPPRefForDmeson = cms.EDProducer( "PrimaryVertexProducer", - vertexCollections = cms.VPSet( - cms.PSet( chi2cutoff = cms.double( 3.0 ), - label = cms.string( "" ), - useBeamConstraint = cms.bool( False ), - minNdof = cms.double( 0.0 ), - maxDistanceToBeam = cms.double( 1.0 ), - algorithm = cms.string( "AdaptiveVertexFitter" ) - ), - cms.PSet( chi2cutoff = cms.double( 3.0 ), - label = cms.string( "WithBS" ), - useBeamConstraint = cms.bool( False ), - minNdof = cms.double( 0.0 ), - maxDistanceToBeam = cms.double( 1.0 ), - algorithm = cms.string( "AdaptiveVertexFitter" ) - ) - ), - verbose = cms.untracked.bool( False ), - TkFilterParameters = cms.PSet( - maxEta = cms.double( 2.4 ), - minPt = cms.double( 0.0 ), - minSiliconLayersWithHits = cms.int32( 5 ), - minPixelLayersWithHits = cms.int32( 2 ), - maxNormalizedChi2 = cms.double( 20.0 ), - trackQuality = cms.string( "any" ), - algorithm = cms.string( "filter" ), - maxD0Significance = cms.double( 5.0 ) - ), - beamSpotLabel = cms.InputTag( "hltOnlineBeamSpot" ), - TrackLabel = cms.InputTag( "hltFullIterativeTrackingMergedPPRefForDmeson" ), - TrackTimeResosLabel = cms.InputTag( "dummy_default" ), - TrackTimesLabel = cms.InputTag( "dummy_default" ), - trackMTDTimeQualityVMapTag = cms.InputTag( "dummy_default" ), - TkClusParameters = cms.PSet( - algorithm = cms.string( "gap" ), - TkGapClusParameters = cms.PSet( zSeparation = cms.double( 1.0 ) ) - ), - isRecoveryIteration = cms.bool( False ), - recoveryVtxCollection = cms.InputTag( "" ), - useMVACut = cms.bool( False ), - minTrackTimeQuality = cms.double( 0.8 ) -) -fragment.hltGoodHighPurityFullTracksForDmesonPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIterativeTrackingMergedPPRefForDmeson" ), - originalMVAVals = cms.InputTag( 'hltFullIterativeTrackingMergedPPRefForDmeson','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIterativeTrackingMergedPPRefForDmeson','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -fragment.hltFullCandsPPRef = cms.EDProducer( "ConcreteChargedCandidateProducer", - src = cms.InputTag( "hltGoodHighPurityFullTracksForDmesonPPRef" ), - particleType = cms.string( "pi+" ) -) -fragment.hltFullTrackFilterForDmesonPPRef = cms.EDFilter( "HLTSingleVertexPixelTrackFilter", - saveTags = cms.bool( False ), - vertexCollection = cms.InputTag( "hltFullOnlinePrimaryVerticesPPRefForDmeson" ), - trackCollection = cms.InputTag( "hltFullCandsPPRef" ), - MinPt = cms.double( 0.0 ), - MaxPt = cms.double( 10000.0 ), - MaxEta = cms.double( 9999.0 ), - MaxVz = cms.double( 9999.0 ), - MinTrks = cms.int32( 0 ), - MinSep = cms.double( 999.0 ) -) -fragment.hltTkTkVtxForDmesonDpt25PPRef = cms.EDProducer( "HLTDisplacedtktkVtxProducer", - Src = cms.InputTag( "hltFullCandsPPRef" ), - PreviousCandTag = cms.InputTag( "hltFullTrackFilterForDmesonPPRef" ), - MaxEta = cms.double( 2.0 ), - MinPt = cms.double( 6.0 ), - MinPtPair = cms.double( 25.0 ), - MinInvMass = cms.double( 1.47 ), - MaxInvMass = cms.double( 2.27 ), - massParticle1 = cms.double( 0.1396 ), - massParticle2 = cms.double( 0.4937 ), - ChargeOpt = cms.int32( -1 ), - triggerTypeDaughters = cms.int32( 91 ) -) -fragment.hltTkTkFilterForDmesonDpt25PPRef = cms.EDFilter( "HLTDisplacedtktkFilter", - saveTags = cms.bool( True ), - FastAccept = cms.bool( False ), - MinLxySignificance = cms.double( 1.0 ), - MaxLxySignificance = cms.double( 0.0 ), - MaxNormalisedChi2 = cms.double( 999.0 ), - MinVtxProbability = cms.double( 0.0 ), - MinCosinePointingAngle = cms.double( 0.8 ), - triggerTypeDaughters = cms.int32( 91 ), - DisplacedVertexTag = cms.InputTag( "hltTkTkVtxForDmesonDpt25PPRef" ), - BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), - TrackTag = cms.InputTag( "hltFullCandsPPRef" ) -) -fragment.hltPrePPRefDmesonTrackingGlobalDpt35 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltTkTkVtxForDmesonDpt35PPRef = cms.EDProducer( "HLTDisplacedtktkVtxProducer", - Src = cms.InputTag( "hltFullCandsPPRef" ), - PreviousCandTag = cms.InputTag( "hltFullTrackFilterForDmesonPPRef" ), - MaxEta = cms.double( 2.0 ), - MinPt = cms.double( 6.0 ), - MinPtPair = cms.double( 35.0 ), - MinInvMass = cms.double( 1.47 ), - MaxInvMass = cms.double( 2.27 ), - massParticle1 = cms.double( 0.1396 ), - massParticle2 = cms.double( 0.4937 ), - ChargeOpt = cms.int32( -1 ), - triggerTypeDaughters = cms.int32( 91 ) -) -fragment.hltTkTkFilterForDmesonDpt35PPRef = cms.EDFilter( "HLTDisplacedtktkFilter", - saveTags = cms.bool( True ), - FastAccept = cms.bool( False ), - MinLxySignificance = cms.double( 1.0 ), - MaxLxySignificance = cms.double( 0.0 ), - MaxNormalisedChi2 = cms.double( 999.0 ), - MinVtxProbability = cms.double( 0.0 ), - MinCosinePointingAngle = cms.double( 0.8 ), - triggerTypeDaughters = cms.int32( 91 ), - DisplacedVertexTag = cms.InputTag( "hltTkTkVtxForDmesonDpt35PPRef" ), - BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), - TrackTag = cms.InputTag( "hltFullCandsPPRef" ) -) -fragment.hltL1sSingleJet44 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet44" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPrePPRefDmesonTrackingGlobalDpt45 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltTkTkVtxForDmesonDpt45PPRef = cms.EDProducer( "HLTDisplacedtktkVtxProducer", - Src = cms.InputTag( "hltFullCandsPPRef" ), - PreviousCandTag = cms.InputTag( "hltFullTrackFilterForDmesonPPRef" ), - MaxEta = cms.double( 2.0 ), - MinPt = cms.double( 6.0 ), - MinPtPair = cms.double( 45.0 ), - MinInvMass = cms.double( 1.47 ), - MaxInvMass = cms.double( 2.27 ), - massParticle1 = cms.double( 0.1396 ), - massParticle2 = cms.double( 0.4937 ), - ChargeOpt = cms.int32( -1 ), - triggerTypeDaughters = cms.int32( 91 ) -) -fragment.hltTkTkFilterForDmesonDpt45PPRef = cms.EDFilter( "HLTDisplacedtktkFilter", - saveTags = cms.bool( True ), - FastAccept = cms.bool( False ), - MinLxySignificance = cms.double( 1.0 ), - MaxLxySignificance = cms.double( 0.0 ), - MaxNormalisedChi2 = cms.double( 999.0 ), - MinVtxProbability = cms.double( 0.0 ), - MinCosinePointingAngle = cms.double( 0.8 ), - triggerTypeDaughters = cms.int32( 91 ), - DisplacedVertexTag = cms.InputTag( "hltTkTkVtxForDmesonDpt45PPRef" ), - BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), - TrackTag = cms.InputTag( "hltFullCandsPPRef" ) -) -fragment.hltPrePPRefDmesonTrackingGlobalDpt60 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltTkTkVtxForDmesonDpt60PPRef = cms.EDProducer( "HLTDisplacedtktkVtxProducer", - Src = cms.InputTag( "hltFullCandsPPRef" ), - PreviousCandTag = cms.InputTag( "hltFullTrackFilterForDmesonPPRef" ), - MaxEta = cms.double( 2.0 ), - MinPt = cms.double( 6.0 ), - MinPtPair = cms.double( 60.0 ), - MinInvMass = cms.double( 1.47 ), - MaxInvMass = cms.double( 2.27 ), - massParticle1 = cms.double( 0.1396 ), - massParticle2 = cms.double( 0.4937 ), - ChargeOpt = cms.int32( -1 ), - triggerTypeDaughters = cms.int32( 91 ) -) -fragment.hltTkTkFilterForDmesonDpt60PPRef = cms.EDFilter( "HLTDisplacedtktkFilter", - saveTags = cms.bool( True ), - FastAccept = cms.bool( False ), - MinLxySignificance = cms.double( 1.0 ), - MaxLxySignificance = cms.double( 0.0 ), - MaxNormalisedChi2 = cms.double( 999.0 ), - MinVtxProbability = cms.double( 0.0 ), - MinCosinePointingAngle = cms.double( 0.8 ), - triggerTypeDaughters = cms.int32( 91 ), - DisplacedVertexTag = cms.InputTag( "hltTkTkVtxForDmesonDpt60PPRef" ), - BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), - TrackTag = cms.InputTag( "hltFullCandsPPRef" ) -) -fragment.hltL1sZDC1nAsymXORSingleJet8 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPrePPRefUPCSingleJet8ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC1nAsymXORSingleJet12 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPrePPRefUPCSingleJet12ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC1nAsymXORSingleJet16 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPrePPRefUPCSingleJet16ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC1nAsymXORSingleJet20 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPrePPRefUPCSingleJet20ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC1nAsymXORSingleJet24 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPrePPRefUPCSingleJet24ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC1nAsymXORSingleJet28 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPrePPRefUPCSingleJet28ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC1nORSingleJet8 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_OR OR L1_SingleJet8_ZDC1n_Bkp1_OR OR L1_SingleJet8_ZDC1n_Bkp2_OR OR L1_SingleJet8_ZDC1n_Bkp3_OR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -fragment.hltPrePPRefUPCSingleJet8ZDC1nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -fragment.hltL1sZDC1nORSingleJet12 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_OR OR L1_SingleJet12_ZDC1n_Bkp1_OR OR L1_SingleJet12_ZDC1n_Bkp2_OR OR L1_SingleJet12_ZDC1n_Bkp3_OR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +fragment.hltL1sZDC1nORSingleJet12 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_OR OR L1_SingleJet12_ZDC1n_Bkp1_OR OR L1_SingleJet12_ZDC1n_Bkp2_OR OR L1_SingleJet12_ZDC1n_Bkp3_OR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) fragment.hltPrePPRefUPCSingleJet12ZDC1nOR = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -119460,6 +115839,22 @@ fragment.hltCombinatorialcosmicseedfinderP5 = cms.EDProducer( "CtfSpecialSeedGenerator", SeedMomentum = cms.double( 5.0 ), ErrorRescaling = cms.double( 50.0 ), + UseScintillatorsConstraint = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + SeedsFromPositiveY = cms.bool( True ), + SeedsFromNegativeY = cms.bool( False ), + CheckHitsAreOnDifferentLayers = cms.bool( False ), + SetMomentum = cms.bool( True ), + requireBOFF = cms.bool( True ), + maxSeeds = cms.int32( 10000 ), + doClusterCheck = cms.bool( True ), + MaxNumberOfStripClusters = cms.uint32( 300 ), + ClusterCollectionLabel = cms.InputTag( "hltFullSiStripRawToClustersFacility" ), + MaxNumberOfPixelClusters = cms.uint32( 1000 ), + PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), + cut = cms.string( "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), + DontCountDetsAboveNClusters = cms.uint32( 20 ), + Charges = cms.vint32( -1 ), RegionFactoryPSet = cms.PSet( RegionPSet = cms.PSet( ptMin = cms.double( 0.9 ), @@ -119473,7 +115868,20 @@ ), ComponentName = cms.string( "GlobalRegionProducer" ) ), - Charges = cms.vint32( -1 ), + UpperScintillatorParameters = cms.PSet( + WidthInX = cms.double( 100.0 ), + GlobalX = cms.double( 0.0 ), + GlobalY = cms.double( 300.0 ), + GlobalZ = cms.double( 50.0 ), + LenghtInZ = cms.double( 100.0 ) + ), + LowerScintillatorParameters = cms.PSet( + WidthInX = cms.double( 100.0 ), + GlobalX = cms.double( 0.0 ), + GlobalY = cms.double( -100.0 ), + GlobalZ = cms.double( 50.0 ), + LenghtInZ = cms.double( 100.0 ) + ), OrderedHitsFactoryPSets = cms.VPSet( cms.PSet( LayerSrc = cms.InputTag( "hltCombinatorialcosmicseedingtripletsP5" ), NavigationDirection = cms.string( "outsideIn" ), @@ -119505,40 +115913,11 @@ PropagationDirection = cms.string( "alongMomentum" ), ComponentName = cms.string( "GenericPairGenerator" ) ) - ), - UseScintillatorsConstraint = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - SeedsFromPositiveY = cms.bool( True ), - SeedsFromNegativeY = cms.bool( False ), - doClusterCheck = cms.bool( True ), - ClusterCollectionLabel = cms.InputTag( "hltFullSiStripRawToClustersFacility" ), - MaxNumberOfStripClusters = cms.uint32( 300 ), - MaxNumberOfPixelClusters = cms.uint32( 1000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), - CheckHitsAreOnDifferentLayers = cms.bool( False ), - SetMomentum = cms.bool( True ), - requireBOFF = cms.bool( True ), - maxSeeds = cms.int32( 10000 ), - DontCountDetsAboveNClusters = cms.untracked.uint32( 20 ), - UpperScintillatorParameters = cms.PSet( - WidthInX = cms.double( 100.0 ), - GlobalX = cms.double( 0.0 ), - GlobalY = cms.double( 300.0 ), - GlobalZ = cms.double( 50.0 ), - LenghtInZ = cms.double( 100.0 ) - ), - LowerScintillatorParameters = cms.PSet( - WidthInX = cms.double( 100.0 ), - GlobalX = cms.double( 0.0 ), - GlobalY = cms.double( -100.0 ), - GlobalZ = cms.double( 50.0 ), - LenghtInZ = cms.double( 100.0 ) ) ) fragment.hltCombinedP5SeedsForCTF = cms.EDProducer( "SeedCombiner", seedCollections = cms.VInputTag( 'hltCombinatorialcosmicseedfinderP5','hltSimpleCosmicBONSeeds' ), - PairCollection = cms.untracked.InputTag( "hltCombinatorialcosmicseedfinderP5" ), - TripletCollection = cms.untracked.InputTag( "hltSimpleCosmicBONSeeds" ) + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltCkfTrackCandidatesP5 = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -120382,8 +116761,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ) ) fragment.hltPreDatasetHIDQMOnlineBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120437,8 +116815,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14 / 15', - 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8 / 0', + triggerConditions = cms.vstring( 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8 / 0', 'HLT_HIDoubleEle15GsfMass50_v14', 'HLT_HIDoubleGEDPhoton20_v7 / 6', 'HLT_HIL1SingleMu5_SingleEG20Gsf_v7', @@ -120459,8 +116836,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ) ) fragment.hltPreDatasetHIExpressAlignment = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -120473,7 +116849,6 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', - 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIL1NotBptxOR_v14', @@ -120506,7 +116881,6 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', - 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIL1NotBptxOR_v14', @@ -120792,7 +117166,6 @@ throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 / 5', - 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIHcalNZS_v14 / 3', @@ -120852,15 +117225,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + triggerConditions = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -121012,11 +117377,14 @@ 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v23', 'HLT_HT550_DisplacedDijet60_Inclusive_v23', + 'HLT_IsoMu24_HLTTracking_v1', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12', 'HLT_L1SingleMuCosmics_CosmicTracking_v1', 'HLT_L1SingleMuCosmics_PointingCosmicTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1', 'HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13', @@ -122239,10 +118607,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -122711,6 +119075,78 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +fragment.hltDatasetVRRandom = cms.EDFilter( "TriggerResultsFilter", + usePathStatus = cms.bool( True ), + hltResults = cms.InputTag( "" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMaskAndPrescale = cms.bool( False ), + throw = cms.bool( True ), + triggerConditions = cms.vstring( 'HLT_Random_HighRate_v1' ) +) +fragment.hltPreDatasetVRRandom0 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom1 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 1 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom2 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 2 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom3 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 3 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom4 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 4 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 5 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom6 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 6 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom7 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 7 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom8 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 8 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom9 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 9 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom10 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 10 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom11 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 11 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom12 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 12 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom13 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 13 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom14 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 14 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom15 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 15 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltDatasetZeroBias = cms.EDFilter( "TriggerResultsFilter", usePathStatus = cms.bool( True ), hltResults = cms.InputTag( "" ), @@ -124019,24 +120455,6 @@ fragment.HLTHIGEDPhoton60PPRefSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEgammaCandidatesWrapper + fragment.hltEG60EtPPRefFilter + fragment.HLTDoLocalHcalWithTowerSequence + fragment.hltEgammaHoverE + fragment.hltEG60HoverELoosePPRefFilter ) fragment.HLTHIGEDPhoton60EBPPRefSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEgammaCandidatesWrapper + fragment.hltEG60EtEBPPRefFilter + fragment.HLTDoLocalHcalWithTowerSequence + fragment.hltEgammaHoverE + fragment.hltEG60HoverELooseEBPPRefFilter ) fragment.HLTDoubleGEDPhoton20PPRefSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEgammaCandidatesWrapper + fragment.hltDoubleEG20EtPPRefFilter + fragment.HLTDoLocalHcalWithTowerSequence + fragment.hltEgammaHoverE + fragment.hltDoubleEG20HoverELoosePPRefFilter ) -fragment.HLTDoLocalPixelSequenceForPFPPRefForDmeson = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.hltSiPixelClustersCache ) -fragment.HLTFullIterativeTrackingIteration0PreSplittingPPRefForDmeson = cms.Sequence( fragment.hltFullIter0PixelQuadrupletsPreSplittingPPRefForDmeson + fragment.hltFullIter0PixelTrackingRegionsPreSplittingPPRefForDmeson + fragment.hltFullIter0PixelClusterCheckPreSplittingPPRefForDmeson + fragment.hltFullIter0PixelHitDoubletsPreSplittingPPRefForDmeson + fragment.hltFullIter0PixelHitQuadrupletsPreSplittingPPRefForDmeson + fragment.hltFullIter0PixelSeedsPreSplittingPPRefForDmeson + fragment.hltFullIter0CkfTrackCandidatesPreSplittingPPRefForDmeson + fragment.hltFullIter0CtfWithMaterialTracksPreSplittingPPRefForDmeson + fragment.hltFullIter0PrimaryVerticesPreSplittingPPRefForDmeson ) -fragment.HLTDoLocalPixelSequenceAfterSplittingPPRefForDmeson = cms.Sequence( fragment.hltSiPixelClustersAfterSplittingPPRefForDmeson + fragment.hltSiPixelClustersCacheAfterSplittingPPRefForDmeson + fragment.hltSiPixelRecHitsAfterSplittingPPRefForDmeson ) -fragment.HLTDoLocalStripSequenceFullPPRefForDmeson = cms.Sequence( fragment.hltSiStripExcludedFEDListProducer + fragment.hltAfterSplittingMeasureTrackerEventForDmeson + fragment.hltSiStripMatchedRecHitsFullPPRef ) -fragment.HLTPixelClusterSplittingForPFPPRefForDmeson = cms.Sequence( fragment.hltJetsForCoreTracking + fragment.HLTDoLocalPixelSequenceForPFPPRefForDmeson + fragment.HLTDoLocalPixelSequence + fragment.HLTDoLocalStripSequence + fragment.HLTFullIterativeTrackingIteration0PreSplittingPPRefForDmeson + fragment.HLTDoLocalPixelSequenceAfterSplittingPPRefForDmeson + fragment.HLTDoLocalStripSequenceFullPPRefForDmeson ) -fragment.HLTFullIterativeTrackingIteration0PPRefForDmeson = cms.Sequence( fragment.hltFullIter0PixelQuadrupletsPPRefForDmeson + fragment.hltFullIter0PixelTrackingRegionsPPRefForDmeson + fragment.hltFullIter0PixelClusterCheckPPRefForDmeson + fragment.hltFullIter0PixelHitDoubletsPPRefForDmeson + fragment.hltFullIter0PixelHitQuadrupletsPPRefForDmeson + fragment.hltFullIter0PixelSeedsPPRefForDmeson + fragment.hltFullIter0CkfTrackCandidatesPPRefForDmeson + fragment.hltFullIter0CtfWithMaterialTracksPPRefForDmeson + fragment.hltFullIter0PrimaryVerticesPPRefForDmeson + fragment.hltFullIter0TrackDNNClassifierPPRefForDmeson + fragment.hltFullIter0HighPurityTracksPPRefForDmeson ) -fragment.HLTFullIterativeTrackingIteration1PPRefForDmeson = cms.Sequence( fragment.hltFullIter1ClustersRefRemovalPPRefForDmeson + fragment.hltFullIter1MaskedMeasurementTrackerEventPPRefForDmeson + fragment.hltFullIter1PixelQuadrupletsPPRefForDmeson + fragment.hltFullIter1PixelTrackingRegionsPPRefForDmeson + fragment.hltFullIter1PixelClusterCheckPPRefForDmeson + fragment.hltFullIter1PixelHitDoubletsPPRefForDmeson + fragment.hltFullIter1PixelHitQuadrupletsPPRefForDmeson + fragment.hltFullIter1PixelSeedsPPRefForDmeson + fragment.hltFullIter1CkfTrackCandidatesPPRefForDmeson + fragment.hltFullIter1CtfWithMaterialTracksPPRefForDmeson + fragment.hltFullIter1TrackDNNClassifierPPRefForDmeson + fragment.hltFullIter1HighPurityTracksPPRefForDmeson ) -fragment.HLTFullIterativeTrackingIteration2PPRefForDmeson = cms.Sequence( fragment.hltFullIter2ClustersRefRemovalPPRefForDmeson + fragment.hltFullIter2MaskedMeasurementTrackerEventPPRefForDmeson + fragment.hltFullIter2PixelTripletsPPRefForDmeson + fragment.hltFullIter2PixelTrackingRegionsPPRefForDmeson + fragment.hltFullIter2PixelClusterCheckPPRefForDmeson + fragment.hltFullIter2PixelHitDoubletsPPRefForDmeson + fragment.hltFullIter2PixelHitTripletsPPRefForDmeson + fragment.hltFullIter2PixelSeedsPPRefForDmeson + fragment.hltFullIter2CkfTrackCandidatesPPRefForDmeson + fragment.hltFullIter2CtfWithMaterialTracksPPRefForDmeson + fragment.hltFullIter2TrackDNNClassifierPPRefForDmeson + fragment.hltFullIter2HighPurityTracksPPRefForDmeson ) -fragment.HLTFullIterativeTrackingIteration3PPRef = cms.Sequence( fragment.hltFullIter3ClustersRefRemovalPPRef + fragment.hltFullIter3MaskedMeasurementTrackerEventPPRef + fragment.hltFullIter3PixelTripletsPPRef + fragment.hltFullIter3PixelTrackingRegionsPPRef + fragment.hltFullIter3PixelClusterCheckPPRef + fragment.hltFullIter3PixelHitDoubletsPPRef + fragment.hltFullIter3PixelHitTripletsPPRef + fragment.hltFullIter3PixelSeedsPPRef + fragment.hltFullIter3CkfTrackCandidatesPPRef + fragment.hltFullIter3CtfWithMaterialTracksPPRef + fragment.hltFullIter3TrackDNNClassifierPPRef + fragment.hltFullIter3HighPurityTracksPPRef ) -fragment.HLTFullIterativeTrackingIteration4PPRef = cms.Sequence( fragment.hltFullIter4ClustersRefRemovalPPRef + fragment.hltFullIter4MaskedMeasurementTrackerEventPPRef + fragment.hltFullIter4PixelQuadrupletsPPRef + fragment.hltFullIter4PixelTrackingRegionsPPRef + fragment.hltFullIter4PixelClusterCheckPPRef + fragment.hltFullIter4PixelHitDoubletsPPRef + fragment.hltFullIter4PixelHitQuadrupletsPPRef + fragment.hltFullIter4PixelSeedsPPRef + fragment.hltFullIter4CkfTrackCandidatesPPRef + fragment.hltFullIter4CtfWithMaterialTracksPPRef + fragment.hltFullIter4TrackDNNClassifierPPRef + fragment.hltFullIter4HighPurityTracksPPRef ) -fragment.HLTFullIterativeTrackingIteration5PPRef = cms.Sequence( fragment.hltFullIter5ClustersRefRemovalPPRef + fragment.hltFullIter5MaskedMeasurementTrackerEventPPRef + fragment.hltFullIter5PixelTripletsPPRef + fragment.hltFullIter5PixelTrackingRegionsPPRef + fragment.hltFullIter5PixelClusterCheckPPRef + fragment.hltFullIter5PixelHitDoubletsPPRef + fragment.hltFullIter5PixelHitTripletsPPRef + fragment.hltFullIter5PixelSeedsPPRef + fragment.hltFullIter5CkfTrackCandidatesPPRef + fragment.hltFullIter5CtfWithMaterialTracksPPRef + fragment.hltFullIter5TrackDNNClassifierPPRef + fragment.hltFullIter5HighPurityTracksPPRef ) -fragment.HLTFullIterativeTrackingIteration6PPRef = cms.Sequence( fragment.hltFullIter6ClustersRefRemovalPPRef + fragment.hltFullIter6MaskedMeasurementTrackerEventPPRef + fragment.hltFullIter6PixelClusterCheckPPRef + fragment.hltFullIter6PixelTrackingRegionSeedLayersBPPRef + fragment.hltFullIter6PixelHitDoubletsBPPRef + fragment.hltFullIter6PixelSeedsBPPRef + fragment.hltFullIter6CkfTrackCandidatesPPRef + fragment.hltFullIter6CtfWithMaterialTracksPPRef + fragment.hltFullIter6TrackDNNClassifierPPRef + fragment.hltFullIter6HighPurityTracksPPRef ) -fragment.HLTFullIterativeTrackingIteration7PPRef = cms.Sequence( fragment.hltFullIter7ClustersRefRemovalPPRef + fragment.hltFullIter7MaskedMeasurementTrackerEventPPRef + fragment.hltFullIter7MixedLayersAPPRef + fragment.hltFullIter7MixedTrackingRegionsAPPRef + fragment.hltFullIter7MixedClusterCheckPPRef + fragment.hltFullIter7MixedHitDoubletsAPPRef + fragment.hltFullIter7MixedHitTripletsAPPRef + fragment.hltFullIter7MixedSeedsAPPRef + fragment.hltFullIter7MixedLayersBPPRef + fragment.hltFullIter7MixedTrackingRegionsBPPRef + fragment.hltFullIter7MixedHitDoubletsBPPRef + fragment.hltFullIter7MixedHitTripletsBPPRef + fragment.hltFullIter7MixedSeedsBPPRef + fragment.hltFullIter7MixedSeedsPPRef + fragment.hltFullIter7CkfTrackCandidatesPPRef + fragment.hltFullIter7CtfWithMaterialTracksPPRef + fragment.hltFullIter7TrackDNNClassifierPPRef + fragment.hltFullIter7HighPurityTracksPPRef ) -fragment.HLTFullIterativeTrackingIteration8PPRef = cms.Sequence( fragment.hltFullIter8ClustersRefRemovalPPRef + fragment.hltFullIter8MaskedMeasurementTrackerEventPPRef + fragment.hltFullIter8PixelLessLayersPPRef + fragment.hltFullIter8PixelLessTrackingRegionsPPRef + fragment.hltFullIter8PixelLessClusterCheckPPRef + fragment.hltFullIter8PixelLessHitDoubletsPPRef + fragment.hltFullIter8PixelLessHitTripletsPPRef + fragment.hltFullIter8PixelLessSeedsPPRef + fragment.hltFullIter8CkfTrackCandidatesPPRef + fragment.hltFullIter8CtfWithMaterialTracksPPRef + fragment.hltFullIter8TrackDNNClassifierPPRef + fragment.hltFullIter8HighPurityTracksPPRef ) -fragment.HLTFullIterativeTrackingIteration9PPRef = cms.Sequence( fragment.hltFullIter9ClustersRefRemovalPPRef + fragment.hltFullIter9MaskedMeasurementTrackerEventPPRef + fragment.hltFullIter9TobTecLayersTriplPPRef + fragment.hltFullIter9TobTecTrackingRegionsTriplPPRef + fragment.hltFullIter9TobTecClusterCheckPPRef + fragment.hltFullIter9TobTecHitDoubletsTriplPPRef + fragment.hltFullIter9TobTecHitTripletsTriplPPRef + fragment.hltFullIter9TobTecSeedsTriplPPRef + fragment.hltFullIter9TobTecLayersPairPPRef + fragment.hltFullIter9TobTecTrackingRegionsPairPPRef + fragment.hltFullIter9TobTecHitDoubletsPairPPRef + fragment.hltFullIter9TobTecSeedsPairPPRef + fragment.hltFullIter9TobTecSeedsPPRef + fragment.hltFullIter9CkfTrackCandidatesPPRef + fragment.hltFullIter9CtfWithMaterialTracksPPRef + fragment.hltFullIter9TrackDNNClassifierPPRef ) -fragment.HLTFullIterativeTrackingIteration10PPRef = cms.Sequence( fragment.hltFullIter10JetCoreLayersPPRef + fragment.hltFullIter10JetCoreRegionSeedsPPRef + fragment.hltFullIter10CkfTrackCandidatesPPRef + fragment.hltFullIter10CtfWithMaterialTracksPPRef + fragment.hltFullIter10TrackDNNClassifierPPRef ) -fragment.HLTFullIterativeTrackingPPRefForDmeson = cms.Sequence( fragment.HLTFullIterativeTrackingIteration0PPRefForDmeson + fragment.HLTFullIterativeTrackingIteration1PPRefForDmeson + fragment.HLTFullIterativeTrackingIteration2PPRefForDmeson + fragment.HLTFullIterativeTrackingIteration3PPRef + fragment.HLTFullIterativeTrackingIteration4PPRef + fragment.HLTFullIterativeTrackingIteration5PPRef + fragment.HLTFullIterativeTrackingIteration6PPRef + fragment.HLTFullIterativeTrackingIteration7PPRef + fragment.HLTFullIterativeTrackingIteration8PPRef + fragment.HLTFullIterativeTrackingIteration9PPRef + fragment.HLTFullIterativeTrackingIteration10PPRef + fragment.hltFullIterativeTrackingMergedPPRefForDmeson ) -fragment.HLTFullTracksForDmesonPPRef = cms.Sequence( fragment.hltGoodHighPurityFullTracksForDmesonPPRef + fragment.hltFullCandsPPRef + fragment.hltFullTrackFilterForDmesonPPRef ) fragment.HLTNoPUSequence = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.HLTRecopixelvertexingSequence + fragment.hltSelectorJets20L1FastJetForNoPU + fragment.hltCaloJetFromPV ) fragment.HLTEgammaOpenSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEgammaClusterShape + fragment.hltEgammaR9ID + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEgammaEcalPFClusterIso + fragment.HLTPFHcalClustering + fragment.hltEgammaHcalPFClusterIso + fragment.HLTTrackReconstructionForIsoForPhotons + fragment.hltEgammaHollowTrackIso + fragment.HLTElePixelMatchSequence + fragment.HLTGsfElectronSequence + fragment.HLTTrackReconstructionForIsoElectronIter02 + fragment.hltEgammaEleGsfTrackIso ) fragment.HLTElePixelMatchUnseededSequenceForBParking = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.HLTDoLocalStripSequence + fragment.hltPixelLayerPairs + fragment.hltPixelLayerTriplets + fragment.hltEgammaHoverEUnseeded + fragment.hltEgammaSuperClustersToPixelMatchUnseeded + fragment.hltEleSeedsTrackingRegionsUnseeded + fragment.hltElePixelHitDoubletsUnseeded + fragment.hltElePixelHitDoubletsForTripletsUnseeded + fragment.hltElePixelHitTripletsUnseeded + fragment.hltElePixelSeedsDoubletsUnseeded + fragment.hltElePixelSeedsTripletsUnseeded + fragment.hltElePixelSeedsCombinedUnseeded + fragment.hltEgammaElectronPixelSeedsForBParkingUnseeded + fragment.hltEgammaPixelMatchVarsForBParkingUnseeded ) @@ -124195,6 +120613,7 @@ fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGor + fragment.hltPreEle32WPTightGsfL1DoubleEG + fragment.HLTEle32L1DoubleEGWPTightGsfSequence + fragment.HLTEndSequence ) fragment.HLT_IsoMu20_v27 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu18 + fragment.hltPreIsoMu20 + fragment.hltL1fL1sMu18L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sMu18L1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu18L1Filtered0) + fragment.hltL3fL1sMu18L1f0L2f10QL3Filtered20Q + fragment.HLTMu20IsolationSequence + fragment.hltL3crIsoL1sMu18L1f0L2f10QL3f20QL3trkIsoFiltered + fragment.HLTEndSequence ) fragment.HLT_IsoMu24_v25 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu22 + fragment.hltPreIsoMu24 + fragment.hltL1fL1sMu22L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sSingleMu22L1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu22L1Filtered0) + fragment.hltL3fL1sSingleMu22L1f0L2f10QL3Filtered24Q + fragment.HLTMu24IsolationSequence + fragment.hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered + fragment.HLTEndSequence ) +fragment.HLT_IsoMu24_HLTTracking_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu22 + fragment.hltPreIsoMu24HLTTracking + fragment.hltL1fL1sMu22L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sSingleMu22L1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu22L1Filtered0) + fragment.hltL3fL1sSingleMu22L1f0L2f10QL3Filtered24Q + fragment.HLTMu24IsolationSequence + fragment.hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered + fragment.HLTIterativeTrackingIter02 + fragment.HLTEndSequence ) fragment.HLT_IsoMu24_eta2p1_v27 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu22 + fragment.hltPreIsoMu24eta2p1 + fragment.hltL1fL1sMu22erL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sSingleMu22erL1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu22erL1Filtered0) + fragment.hltL3fL1sSingleMu22erL1f0L2f10QL3Filtered24Q + fragment.HLTMu24Eta2p1IsolationSequence + fragment.hltL3crIsoL1sSingleMu22erL1f0L2f10QL3f24QL3trkIsoFiltered + fragment.HLTEndSequence ) fragment.HLT_IsoMu27_v28 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu22or25 + fragment.hltPreIsoMu27 + fragment.hltL1fL1sMu22or25L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sMu22or25L1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu22or25L1Filtered0) + fragment.hltL3fL1sMu22Or25L1f0L2f10QL3Filtered27Q + fragment.HLTMu27IsolationSequence + fragment.hltL3crIsoL1sMu22Or25L1f0L2f10QL3f27QL3trkIsoFiltered + fragment.HLTEndSequence ) fragment.HLT_UncorrectedJetE30_NoBPTX_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sV0SingleJetC20NotBptxOR + fragment.hltPreUncorrectedJetE30NoBPTX + fragment.HLTStoppedHSCPLocalHcalReco + fragment.HLTStoppedHSCPJetSequence + fragment.hltStoppedHSCP1CaloJetEnergy30 + fragment.HLTEndSequence ) @@ -124220,11 +120639,13 @@ fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVL + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.HLTEndSequence ) fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu19TrkIsoVVLMu9TrkIsoVVL + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered9 + fragment.hltL3fL1DoubleMu155fFiltered19 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon199RelTrkIsoVVLFiltered + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZ + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.HLTEndSequence ) +fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZHLTTracking + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.HLTIterativeTrackingIter02 + fragment.HLTEndSequence ) fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZ + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered9 + fragment.hltL3fL1DoubleMu155fFiltered19 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon199RelTrkIsoVVLFiltered + fragment.hltDiMuon199RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8PFJet30 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleCaloJet10 + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets10 + fragment.hltSinglePFJet30 + fragment.HLTEndSequence ) fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZMass8 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered9 + fragment.hltL3fL1DoubleMu155fFiltered19 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon199RelTrkIsoVVLFiltered + fragment.hltDiMuon199RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon199Mass8Filtered + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass3p8Filtered + fragment.HLTEndSequence ) +fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8HLTTracking + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass3p8Filtered + fragment.HLTIterativeTrackingIter02 + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8CaloJet30 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleCaloJet30 + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8AK8PFJet30 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTAK8CaloJetsSequence + fragment.hltSingleCaloJet10AK8 + fragment.HLTAK8PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets10AK8 + fragment.hltSinglePFJet30AK8 + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8AK8CaloJet30 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTAK8CaloJetsSequence + fragment.hltSingleCaloJet30AK8 + fragment.HLTEndSequence ) @@ -124861,15 +121282,6 @@ fragment.HLT_HIPuAK4CaloJet80Fwd_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet64FwdBptxAND + fragment.hltPreHIPuAK4CaloJet80Fwd + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet80Fwd + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIPuAK4CaloJet100Fwd_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet64FwdBptxAND + fragment.hltPreHIPuAK4CaloJet100Fwd + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet100Fwd + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIPuAK4CaloJet120Fwd_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet64FwdBptxAND + fragment.hltPreHIPuAK4CaloJet120Fwd + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet120Fwd + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet60Eta1p5_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet44BptxAND + fragment.hltPreHICsAK4PFJet60Eta1p5 + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet60Eta1p5 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets60 + fragment.hltSingleCsPFJet60Eta1p5 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet60Eta2p1_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet44BptxAND + fragment.hltPreHICsAK4PFJet60Eta2p1 + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet60Eta2p1 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets60Eta2p1 + fragment.hltSingleCsPFJet60Eta2p1 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet80Eta1p5_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet60BptxAND + fragment.hltPreHICsAK4PFJet80Eta1p5 + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet70Eta1p5 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets70 + fragment.hltSingleCsPFJet80Eta1p5 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet80Eta2p1_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet60BptxAND + fragment.hltPreHICsAK4PFJet80Eta2p1 + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet70Eta2p1 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets70Eta2p1 + fragment.hltSingleCsPFJet80Eta2p1 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet100Eta1p5_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet60BptxAND + fragment.hltPreHICsAK4PFJet100Eta1p5 + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet80Eta1p5 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets80 + fragment.hltSingleCsPFJet100Eta1p5 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet60BptxAND + fragment.hltPreHICsAK4PFJet100Eta1p5Beamspot + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet80Eta1p5 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets80 + fragment.hltSingleCsPFJet100Eta1p5 + fragment.hltVerticesPFPPOnAA + fragment.hltVerticesPFSelectorPPOnAA + fragment.hltVerticesPFFilterPPOnAA + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.hltFEDSelectorOnlineMetaData + fragment.hltFEDSelectorTCDS + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet100Eta2p1_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet60BptxAND + fragment.hltPreHICsAK4PFJet100Eta2p1 + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet80Eta2p1 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets80Eta2p1 + fragment.hltSingleCsPFJet100Eta2p1 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet120Eta1p5_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet80BptxAND + fragment.hltPreHICsAK4PFJet120Eta1p5 + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet90Eta1p5 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets90 + fragment.hltSingleCsPFJet120Eta1p5 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) -fragment.HLT_HICsAK4PFJet120Eta2p1_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet80BptxAND + fragment.hltPreHICsAK4PFJet120Eta2p1 + fragment.HLTPuAK4CaloJetsSequence + fragment.hltSinglePuAK4CaloJet90Eta2p1 + fragment.HLTCsAK4PFJetsSequence + fragment.hltCsPFJetsCorrectedMatchedToPuCaloJets90Eta2p1 + fragment.hltSingleCsPFJet120Eta2p1 + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIGEDPhoton10_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1SingleEG7BptxAND + fragment.hltPreHIGEDPhoton10 + fragment.HLTHIGEDPhoton10PPOnAASequence + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIGEDPhoton10_EB_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1SingleEG7BptxAND + fragment.hltPreHIGEDPhoton10EB + fragment.HLTHIGEDPhoton10EBPPOnAASequence + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) fragment.HLT_HIGEDPhoton20_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sL1SingleEG7BptxAND + fragment.hltPreHIGEDPhoton20 + fragment.HLTHIGEDPhoton20PPOnAASequence + fragment.HLTDoHIStripZeroSuppressionAndRawPrime + fragment.HLTEndSequence ) @@ -125174,10 +121586,6 @@ fragment.HLT_PPRefCscCluster_Loose_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMuShowerOneNominal + fragment.hltPrePPRefCscClusterLoose + fragment.HLTMuonLocalRecoSequence + fragment.hltCSCrechitClusters + fragment.hltCscClusterLoosePPRef + fragment.HLTEndSequence ) fragment.HLT_PPRefCscCluster_Medium_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMuShowerOneNominal + fragment.hltPrePPRefCscClusterMedium + fragment.HLTMuonLocalRecoSequence + fragment.hltCSCrechitClusters + fragment.hltCscClusterMediumPPRef + fragment.HLTEndSequence ) fragment.HLT_PPRefCscCluster_Tight_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMuShowerOneNominal + fragment.hltPrePPRefCscClusterTight + fragment.HLTMuonLocalRecoSequence + fragment.hltCSCrechitClusters + fragment.hltCscClusterTightPPRef + fragment.HLTEndSequence ) -fragment.HLT_PPRefDmesonTrackingGlobal_Dpt25_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet24 + fragment.hltPrePPRefDmesonTrackingGlobalDpt25 + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTPixelClusterSplittingForPFPPRefForDmeson + fragment.HLTFullIterativeTrackingPPRefForDmeson + fragment.hltFullOnlinePrimaryVerticesPPRefForDmeson + fragment.HLTFullTracksForDmesonPPRef + fragment.hltTkTkVtxForDmesonDpt25PPRef + fragment.hltTkTkFilterForDmesonDpt25PPRef + fragment.HLTEndSequence ) -fragment.HLT_PPRefDmesonTrackingGlobal_Dpt35_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet35 + fragment.hltPrePPRefDmesonTrackingGlobalDpt35 + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTPixelClusterSplittingForPFPPRefForDmeson + fragment.HLTFullIterativeTrackingPPRefForDmeson + fragment.hltFullOnlinePrimaryVerticesPPRefForDmeson + fragment.HLTFullTracksForDmesonPPRef + fragment.hltTkTkVtxForDmesonDpt35PPRef + fragment.hltTkTkFilterForDmesonDpt35PPRef + fragment.HLTEndSequence ) -fragment.HLT_PPRefDmesonTrackingGlobal_Dpt45_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet44 + fragment.hltPrePPRefDmesonTrackingGlobalDpt45 + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTPixelClusterSplittingForPFPPRefForDmeson + fragment.HLTFullIterativeTrackingPPRefForDmeson + fragment.hltFullOnlinePrimaryVerticesPPRefForDmeson + fragment.HLTFullTracksForDmesonPPRef + fragment.hltTkTkVtxForDmesonDpt45PPRef + fragment.hltTkTkFilterForDmesonDpt45PPRef + fragment.HLTEndSequence ) -fragment.HLT_PPRefDmesonTrackingGlobal_Dpt60_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJet60 + fragment.hltPrePPRefDmesonTrackingGlobalDpt60 + fragment.HLTPuAK4CaloJetsSequence + fragment.HLTPixelClusterSplittingForPFPPRefForDmeson + fragment.HLTFullIterativeTrackingPPRefForDmeson + fragment.hltFullOnlinePrimaryVerticesPPRefForDmeson + fragment.HLTFullTracksForDmesonPPRef + fragment.hltTkTkVtxForDmesonDpt60PPRef + fragment.hltTkTkFilterForDmesonDpt60PPRef + fragment.HLTEndSequence ) fragment.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nAsymXORSingleJet8 + fragment.hltPrePPRefUPCSingleJet8ZDC1nAsymXOR + fragment.HLTEndSequence ) fragment.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nAsymXORSingleJet12 + fragment.hltPrePPRefUPCSingleJet12ZDC1nAsymXOR + fragment.HLTEndSequence ) fragment.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sZDC1nAsymXORSingleJet16 + fragment.hltPrePPRefUPCSingleJet16ZDC1nAsymXOR + fragment.HLTEndSequence ) @@ -125415,6 +121823,22 @@ fragment.Dataset_Tau = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetTau + fragment.hltPreDatasetTau ) fragment.Dataset_TestEnablesEcalHcal = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetTestEnablesEcalHcal + fragment.hltPreDatasetTestEnablesEcalHcal ) fragment.Dataset_TestEnablesEcalHcalDQM = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetTestEnablesEcalHcalDQM + fragment.hltPreDatasetTestEnablesEcalHcalDQM ) +fragment.Dataset_VRRandom0 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom0 ) +fragment.Dataset_VRRandom1 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom1 ) +fragment.Dataset_VRRandom2 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom2 ) +fragment.Dataset_VRRandom3 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom3 ) +fragment.Dataset_VRRandom4 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom4 ) +fragment.Dataset_VRRandom5 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom5 ) +fragment.Dataset_VRRandom6 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom6 ) +fragment.Dataset_VRRandom7 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom7 ) +fragment.Dataset_VRRandom8 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom8 ) +fragment.Dataset_VRRandom9 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom9 ) +fragment.Dataset_VRRandom10 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom10 ) +fragment.Dataset_VRRandom11 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom11 ) +fragment.Dataset_VRRandom12 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom12 ) +fragment.Dataset_VRRandom13 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom13 ) +fragment.Dataset_VRRandom14 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom14 ) +fragment.Dataset_VRRandom15 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom15 ) fragment.Dataset_ZeroBias = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetZeroBias + fragment.hltPreDatasetZeroBias ) fragment.ScoutingPFOutput = cms.FinalPath( ) fragment.Dataset_SpecialRandom0 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetSpecialRandom + fragment.hltPreDatasetSpecialRandom0 ) @@ -125592,7 +122016,7 @@ fragment.Dataset_HIPhysicsRawPrime59 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetHIPhysicsRawPrime + fragment.hltPreDatasetHIPhysicsRawPrime59 ) -fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_EcalPhiSymForHI_v12, fragment.AlCa_EcalEtaEBonly_v25, fragment.AlCa_EcalEtaEEonly_v25, fragment.AlCa_EcalPi0EBonly_v25, fragment.AlCa_EcalPi0EEonly_v25, fragment.AlCa_EcalEtaEBonlyForHI_v13, fragment.AlCa_EcalEtaEEonlyForHI_v13, fragment.AlCa_EcalPi0EBonlyForHI_v13, fragment.AlCa_EcalPi0EEonlyForHI_v13, fragment.AlCa_HIEcalEtaEBonly_v12, fragment.AlCa_HIEcalEtaEEonly_v12, fragment.AlCa_HIEcalPi0EBonly_v12, fragment.AlCa_HIEcalPi0EEonly_v12, fragment.AlCa_RPCMuonNormalisation_v23, fragment.AlCa_RPCMuonNormalisationForHI_v11, fragment.AlCa_HIRPCMuonNormalisation_v11, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.AlCa_PFJet40_v32, fragment.AlCa_PFJet40_CPUOnly_v11, fragment.AlCa_AK8PFJet40_v27, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DQM_HIPixelReconstruction_v12, fragment.DQM_HIEcalReconstruction_v10, fragment.DQM_HIHcalReconstruction_v8, fragment.DQM_Random_v1, fragment.DQM_ZeroBias_v3, fragment.DST_ZeroBias_v11, fragment.DST_Physics_v16, fragment.DST_PFScouting_DoubleMuon_v6, fragment.DST_PFScouting_DoubleEG_v6, fragment.DST_PFScouting_JetHT_v6, fragment.DST_PFScouting_AXOVLoose_v4, fragment.DST_PFScouting_AXOLoose_v4, fragment.DST_PFScouting_AXONominal_v6, fragment.DST_PFScouting_AXOTight_v6, fragment.DST_PFScouting_AXOVTight_v4, fragment.DST_PFScouting_CICADAVLoose_v2, fragment.DST_PFScouting_CICADALoose_v2, fragment.DST_PFScouting_CICADAMedium_v2, fragment.DST_PFScouting_CICADATight_v2, fragment.DST_PFScouting_CICADAVTight_v2, fragment.DST_PFScouting_SingleMuon_v6, fragment.DST_PFScouting_SinglePhotonEB_v3, fragment.DST_PFScouting_ZeroBias_v4, fragment.HLT_EphemeralPhysics_v9, fragment.HLT_EphemeralZeroBias_v9, fragment.HLT_HIEphemeralPhysics_v5, fragment.HLT_HIEphemeralZeroBias_v5, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Alignment_v8, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_IsolatedBunches_v12, fragment.HLT_ZeroBias_FirstBXAfterTrain_v10, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_ZeroBias_FirstCollisionInTrain_v11, fragment.HLT_ZeroBias_LastCollisionInTrain_v10, fragment.HLT_HT300_Beamspot_v23, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_PFJet40_GPUvsCPU_v7, fragment.HLT_AK8PFJet380_SoftDropMass30_v6, fragment.HLT_AK8PFJet400_SoftDropMass30_v6, fragment.HLT_AK8PFJet425_SoftDropMass30_v6, fragment.HLT_AK8PFJet450_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, fragment.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, fragment.HLT_CaloJet500_NoJetID_v22, fragment.HLT_CaloJet550_NoJetID_v17, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, fragment.HLT_DoubleEle25_CaloIdL_MW_v15, fragment.HLT_DoubleEle27_CaloIdL_MW_v15, fragment.HLT_DoubleEle33_CaloIdL_MW_v28, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v17, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v17, fragment.HLT_Mu37_TkMu27_v17, fragment.HLT_DoubleMu4_3_Bs_v27, fragment.HLT_DoubleMu4_3_Jpsi_v27, fragment.HLT_DoubleMu4_3_LowMass_v13, fragment.HLT_DoubleMu4_LowMass_Displaced_v13, fragment.HLT_Mu0_L1DoubleMu_v13, fragment.HLT_Mu4_L1DoubleMu_v13, fragment.HLT_DoubleMu2_Jpsi_LowPt_v6, fragment.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu3_Trk_Tau3mu_v24, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v27, fragment.HLT_Mu3_PFJet40_v28, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v22, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v22, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v13, fragment.HLT_Mu0_Barrel_v6, fragment.HLT_Mu0_Barrel_L1HP6_v3, fragment.HLT_Mu0_Barrel_L1HP7_v3, fragment.HLT_Mu0_Barrel_L1HP8_v4, fragment.HLT_Mu0_Barrel_L1HP9_v4, fragment.HLT_Mu0_Barrel_L1HP10_v6, fragment.HLT_Mu0_Barrel_L1HP11_v6, fragment.HLT_Mu0_Barrel_L1HP6_IP6_v3, fragment.HLT_Mu6_Barrel_L1HP7_IP6_v3, fragment.HLT_Mu7_Barrel_L1HP8_IP6_v4, fragment.HLT_Mu8_Barrel_L1HP9_IP6_v4, fragment.HLT_Mu9_Barrel_L1HP10_IP6_v6, fragment.HLT_Mu10_Barrel_L1HP11_IP6_v6, fragment.HLT_DoublePhoton33_CaloIdL_v17, fragment.HLT_DoublePhoton70_v17, fragment.HLT_DoublePhoton85_v25, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, fragment.HLT_Ele30_WPTight_Gsf_v11, fragment.HLT_Ele32_WPTight_Gsf_v25, fragment.HLT_Ele35_WPTight_Gsf_v19, fragment.HLT_Ele38_WPTight_Gsf_v19, fragment.HLT_Ele40_WPTight_Gsf_v19, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, fragment.HLT_IsoMu20_v27, fragment.HLT_IsoMu24_v25, fragment.HLT_IsoMu24_eta2p1_v27, fragment.HLT_IsoMu27_v28, fragment.HLT_UncorrectedJetE30_NoBPTX_v14, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v14, fragment.HLT_L1SingleMuCosmics_v8, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v15, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, fragment.HLT_L2Mu23NoVtx_2Cha_v10, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, fragment.HLT_DoubleL2Mu50_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, fragment.HLT_Mu30_TkMu0_Psi_v13, fragment.HLT_Mu30_TkMu0_Upsilon_v13, fragment.HLT_Mu25_TkMu0_Phi_v20, fragment.HLT_Mu15_v15, fragment.HLT_Mu20_v24, fragment.HLT_Mu27_v25, fragment.HLT_Mu50_v25, fragment.HLT_Mu55_v15, fragment.HLT_CascadeMu100_v13, fragment.HLT_HighPtTkMu100_v12, fragment.HLT_DiPFJetAve40_v26, fragment.HLT_DiPFJetAve60_v26, fragment.HLT_DiPFJetAve80_v26, fragment.HLT_DiPFJetAve140_v25, fragment.HLT_DiPFJetAve200_v25, fragment.HLT_DiPFJetAve260_v26, fragment.HLT_DiPFJetAve320_v26, fragment.HLT_DiPFJetAve400_v26, fragment.HLT_DiPFJetAve500_v26, fragment.HLT_DiPFJetAve60_HFJEC_v27, fragment.HLT_DiPFJetAve80_HFJEC_v29, fragment.HLT_DiPFJetAve100_HFJEC_v29, fragment.HLT_DiPFJetAve160_HFJEC_v28, fragment.HLT_DiPFJetAve220_HFJEC_v28, fragment.HLT_DiPFJetAve260_HFJEC_v11, fragment.HLT_DiPFJetAve300_HFJEC_v28, fragment.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, fragment.HLT_AK8PFJet40_v28, fragment.HLT_AK8PFJet60_v27, fragment.HLT_AK8PFJet80_v28, fragment.HLT_AK8PFJet140_v27, fragment.HLT_AK8PFJet200_v27, fragment.HLT_AK8PFJet260_v28, fragment.HLT_AK8PFJet320_v28, fragment.HLT_AK8PFJet400_v28, fragment.HLT_AK8PFJet450_v28, fragment.HLT_AK8PFJet500_v28, fragment.HLT_AK8PFJet550_v23, fragment.HLT_PFJet40_v33, fragment.HLT_PFJet60_v33, fragment.HLT_PFJet80_v33, fragment.HLT_PFJet110_v12, fragment.HLT_PFJet140_v31, fragment.HLT_PFJet200_v31, fragment.HLT_PFJet260_v32, fragment.HLT_PFJet320_v32, fragment.HLT_PFJet400_v32, fragment.HLT_PFJet450_v33, fragment.HLT_PFJet500_v33, fragment.HLT_PFJet550_v23, fragment.HLT_PFJetFwd40_v31, fragment.HLT_PFJetFwd60_v31, fragment.HLT_PFJetFwd80_v30, fragment.HLT_PFJetFwd140_v30, fragment.HLT_PFJetFwd200_v30, fragment.HLT_PFJetFwd260_v31, fragment.HLT_PFJetFwd320_v31, fragment.HLT_PFJetFwd400_v31, fragment.HLT_PFJetFwd450_v31, fragment.HLT_PFJetFwd500_v31, fragment.HLT_AK8PFJetFwd40_v27, fragment.HLT_AK8PFJetFwd60_v26, fragment.HLT_AK8PFJetFwd80_v26, fragment.HLT_AK8PFJetFwd140_v26, fragment.HLT_AK8PFJetFwd200_v26, fragment.HLT_AK8PFJetFwd260_v27, fragment.HLT_AK8PFJetFwd320_v27, fragment.HLT_AK8PFJetFwd400_v27, fragment.HLT_AK8PFJetFwd450_v27, fragment.HLT_AK8PFJetFwd500_v27, fragment.HLT_PFHT180_v29, fragment.HLT_PFHT250_v29, fragment.HLT_PFHT370_v29, fragment.HLT_PFHT430_v29, fragment.HLT_PFHT510_v29, fragment.HLT_PFHT590_v29, fragment.HLT_PFHT680_v29, fragment.HLT_PFHT780_v29, fragment.HLT_PFHT890_v29, fragment.HLT_PFHT1050_v30, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, fragment.HLT_PFMET120_PFMHT120_IDTight_v32, fragment.HLT_PFMET130_PFMHT130_IDTight_v32, fragment.HLT_PFMET140_PFMHT140_IDTight_v32, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, fragment.HLT_L1ETMHadSeeds_v10, fragment.HLT_CaloMHT90_v14, fragment.HLT_CaloMET90_NotCleaned_v14, fragment.HLT_CaloMET350_NotCleaned_v14, fragment.HLT_PFMET200_NotCleaned_v21, fragment.HLT_PFMET250_NotCleaned_v21, fragment.HLT_PFMET300_NotCleaned_v21, fragment.HLT_PFMET200_BeamHaloCleaned_v21, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, fragment.HLT_MET105_IsoTrk50_v19, fragment.HLT_MET120_IsoTrk50_v19, fragment.HLT_Mu12eta2p3_v13, fragment.HLT_Mu12eta2p3_PFJet40_v13, fragment.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Photon300_NoHE_v23, fragment.HLT_Mu8_TrkIsoVVL_v24, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, fragment.HLT_Mu17_TrkIsoVVL_v25, fragment.HLT_Mu19_TrkIsoVVL_v16, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v24, fragment.HLT_BTagMu_AK4Jet300_Mu5_v24, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v21, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, fragment.HLT_BTagMu_AK8Jet300_Mu5_v24, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, fragment.HLT_Photon33_v15, fragment.HLT_Photon50_v23, fragment.HLT_Photon75_v23, fragment.HLT_Photon90_v23, fragment.HLT_Photon120_v23, fragment.HLT_Photon150_v17, fragment.HLT_Photon175_v25, fragment.HLT_Photon200_v24, fragment.HLT_Photon45EB_v3, fragment.HLT_Photon40EB_v3, fragment.HLT_Photon50EB_v4, fragment.HLT_Photon30EB_TightID_TightIso_v12, fragment.HLT_Photon40EB_TightID_TightIso_v3, fragment.HLT_Photon45EB_TightID_TightIso_v3, fragment.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_v8, fragment.HLT_Photon55EB_TightID_TightIso_v4, fragment.HLT_Photon75EB_TightID_TightIso_v8, fragment.HLT_Photon90EB_TightID_TightIso_v8, fragment.HLT_Photon110EB_TightID_TightIso_v12, fragment.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon100EBHE10_v12, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v25, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, fragment.HLT_DiphotonMVA14p25_Mass90_v3, fragment.HLT_DiphotonMVA14p25_Tight_Mass90_v3, fragment.HLT_Photon35_TwoProngs35_v13, fragment.HLT_IsoMu24_TwoProngs35_v13, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_v20, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v20, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v17, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v19, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v20, fragment.HLT_Dimuon0_LowMass_v20, fragment.HLT_Dimuon0_LowMass_L1_4_v20, fragment.HLT_Dimuon0_LowMass_L1_TM530_v18, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, fragment.HLT_TripleMu_10_5_5_DZ_v22, fragment.HLT_TripleMu_12_10_5_v22, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, fragment.HLT_DoubleMu4_3_LowMass_SS_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v19, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v19, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, fragment.HLT_DoubleMu4_JpsiTrk_Bc_v12, fragment.HLT_DoubleMu43NoFiltersNoVtx_v14, fragment.HLT_DoubleMu48NoFiltersNoVtx_v14, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, fragment.HLT_Ele28_HighEta_SC20_Mass55_v23, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, fragment.HLT_Ele15_IsoVVVL_PFHT450_v28, fragment.HLT_Ele50_IsoVVVL_PFHT450_v28, fragment.HLT_Ele15_IsoVVVL_PFHT600_v32, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, fragment.HLT_Mu15_IsoVVVL_PFHT450_v27, fragment.HLT_Mu50_IsoVVVL_PFHT450_v27, fragment.HLT_Mu15_IsoVVVL_PFHT600_v31, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, fragment.HLT_Dimuon10_Upsilon_y1p4_v13, fragment.HLT_Dimuon12_Upsilon_y1p4_v14, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, fragment.HLT_Dimuon25_Jpsi_v26, fragment.HLT_Dimuon14_PsiPrime_v25, fragment.HLT_Dimuon14_PsiPrime_noCorrL1_v17, fragment.HLT_Dimuon18_PsiPrime_v26, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v18, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v18, fragment.HLT_Dimuon24_Phi_noCorrL1_v18, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v18, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, fragment.HLT_DoubleIsoMu20_eta2p1_v19, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, fragment.HLT_Mu8_v24, fragment.HLT_Mu17_v25, fragment.HLT_Mu19_v16, fragment.HLT_Mu17_Photon30_IsoCaloId_v18, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, fragment.HLT_PFHT400_SixPFJet32_v21, fragment.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, fragment.HLT_PFHT450_SixPFJet36_v20, fragment.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, fragment.HLT_PFHT350_v31, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, fragment.HLT_ECALHT800_v20, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, fragment.HLT_Photon20_HoverELoose_v20, fragment.HLT_Photon30_HoverELoose_v20, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, fragment.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, fragment.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, fragment.HLT_Mu18_Mu9_SameSign_v16, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, fragment.HLT_QuadPFJet103_88_75_15_v17, fragment.HLT_QuadPFJet105_88_76_15_v17, fragment.HLT_QuadPFJet111_90_80_15_v17, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, fragment.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, fragment.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, fragment.HLT_PFHT250_QuadPFJet25_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, fragment.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, fragment.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, fragment.HLT_QuadPFJet100_88_70_30_v10, fragment.HLT_QuadPFJet105_88_75_30_v9, fragment.HLT_QuadPFJet111_90_80_30_v9, fragment.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, fragment.HLT_AK8PFJet220_SoftDropMass40_v13, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_v13, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_Nch45_v6, fragment.HLT_AK8PFJet275_Nch40_v6, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, fragment.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, fragment.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, fragment.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu10NoVtx_2Cha_v9, fragment.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L3Mu10NoVtx_v10, fragment.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, fragment.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, fragment.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, fragment.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, fragment.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, fragment.HLT_L1Mu6HT240_v9, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, fragment.HLT_HT350_v7, fragment.HLT_HT425_v19, fragment.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v23, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v23, fragment.HLT_CaloMET60_DTCluster50_v11, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v11, fragment.HLT_L1MET_DTCluster50_v11, fragment.HLT_L1MET_DTClusterNoMB1S50_v11, fragment.HLT_CscCluster_Loose_v10, fragment.HLT_CscCluster_Medium_v10, fragment.HLT_CscCluster_Tight_v10, fragment.HLT_CscCluster50_Photon20Unseeded_v4, fragment.HLT_CscCluster50_Photon30Unseeded_v4, fragment.HLT_CscCluster100_Ele5_v4, fragment.HLT_CscCluster100_Mu5_v6, fragment.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, fragment.HLT_DoubleCscCluster75_v7, fragment.HLT_IsoTrk200_L1SingleMuShower_v4, fragment.HLT_IsoTrk400_L1SingleMuShower_v4, fragment.HLT_DoubleCscCluster100_v7, fragment.HLT_L1CSCShower_DTCluster50_v10, fragment.HLT_L1CSCShower_DTCluster75_v10, fragment.HLT_PFMET105_IsoTrk50_v13, fragment.HLT_L1SingleLLPJet_v7, fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, fragment.HLT_DiPhoton10Time1ns_v10, fragment.HLT_DiPhoton10Time1p2ns_v10, fragment.HLT_DiPhoton10Time1p4ns_v10, fragment.HLT_DiPhoton10Time1p6ns_v10, fragment.HLT_DiPhoton10Time1p8ns_v10, fragment.HLT_DiPhoton10Time2ns_v10, fragment.HLT_DiPhoton10_CaloIdL_v10, fragment.HLT_DoubleEle6p5_eta1p22_mMax6_v10, fragment.HLT_DoubleEle8_eta1p22_mMax6_v10, fragment.HLT_DoubleEle10_eta1p22_mMax6_v10, fragment.HLT_SingleEle8_v9, fragment.HLT_SingleEle8_SingleEGL1_v9, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Mu50_L1SingleMuShower_v11, fragment.HLT_IsoMu24_OneProng32_v9, fragment.HLT_Photon32_OneProng32_M50To105_v10, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1050_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1200_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_PFJet200_TimeLtNeg2p5ns_v10, fragment.HLT_PFJet200_TimeGt2p5ns_v10, fragment.HLT_Photon50_TimeLtNeg2p5ns_v7, fragment.HLT_Photon50_TimeGt2p5ns_v7, fragment.HLT_PPSMaxTracksPerArm1_v9, fragment.HLT_PPSMaxTracksPerRP4_v9, fragment.HLT_PPSRandom_v1, fragment.HLT_HIL1NotBptxOR_v14, fragment.HLT_HIL1UnpairedBunchBptxPlus_v14, fragment.HLT_HIL1UnpairedBunchBptxMinus_v14, fragment.HLT_HIPhysics_v14, fragment.HLT_HIPhysicsForZS_v14, fragment.HLT_HIRandom_v7, fragment.HLT_HIRandom_HighRate_v3, fragment.HLT_HIHcalNZS_v14, fragment.HLT_HIHcalPhiSym_v14, fragment.HLT_HIZeroBias_v14, fragment.HLT_HIZeroBias_HighRate_v7, fragment.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, fragment.HLT_HIZeroBias_HighRateRAW_v4, fragment.HLT_HIMinimumBiasHF1AND_v7, fragment.HLT_HIMinimumBiasHF1AND_copy_v6, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, fragment.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1, fragment.HLT_HIL1Centrality30_50_v7, fragment.HLT_HIL1_UCC_0_0p5_v7, fragment.HLT_HIL1_UCC_0_1_v7, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet80Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet100Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet120Eta2p1_v7, fragment.HLT_HIPuAK4CaloJet120Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet40Fwd_v7, fragment.HLT_HIPuAK4CaloJet60Fwd_v7, fragment.HLT_HIPuAK4CaloJet80Fwd_v7, fragment.HLT_HIPuAK4CaloJet100Fwd_v7, fragment.HLT_HIPuAK4CaloJet120Fwd_v7, fragment.HLT_HICsAK4PFJet60Eta1p5_v14, fragment.HLT_HICsAK4PFJet60Eta2p1_v7, fragment.HLT_HICsAK4PFJet80Eta1p5_v14, fragment.HLT_HICsAK4PFJet80Eta2p1_v7, fragment.HLT_HICsAK4PFJet100Eta1p5_v14, fragment.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8, fragment.HLT_HICsAK4PFJet100Eta2p1_v7, fragment.HLT_HICsAK4PFJet120Eta1p5_v14, fragment.HLT_HICsAK4PFJet120Eta2p1_v7, fragment.HLT_HIGEDPhoton10_v14, fragment.HLT_HIGEDPhoton10_EB_v14, fragment.HLT_HIGEDPhoton20_v14, fragment.HLT_HIGEDPhoton20_EB_v14, fragment.HLT_HIGEDPhoton30_v14, fragment.HLT_HIGEDPhoton30_EB_v14, fragment.HLT_HIGEDPhoton40_v14, fragment.HLT_HIGEDPhoton40_EB_v14, fragment.HLT_HIGEDPhoton50_v14, fragment.HLT_HIGEDPhoton50_EB_v14, fragment.HLT_HIGEDPhoton60_v14, fragment.HLT_HIGEDPhoton60_EB_v14, fragment.HLT_HIDoubleGEDPhoton20_v7, fragment.HLT_HIEle10Gsf_v14, fragment.HLT_HIEle15Gsf_v14, fragment.HLT_HIEle20Gsf_v14, fragment.HLT_HIEle30Gsf_v14, fragment.HLT_HIEle40Gsf_v14, fragment.HLT_HIEle50Gsf_v14, fragment.HLT_HIEle15Ele10Gsf_v14, fragment.HLT_HIEle15Ele10GsfMass50_v14, fragment.HLT_HIDoubleEle10Gsf_v14, fragment.HLT_HIDoubleEle10GsfMass50_v14, fragment.HLT_HIDoubleEle15Gsf_v14, fragment.HLT_HIDoubleEle15GsfMass50_v14, fragment.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_NotMBHF2_v5, fragment.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, fragment.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, fragment.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_Random_HighRate_v1, fragment.HLT_HIUPC_HFafterglowCombined_v1, fragment.HLT_HIL1SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality40to100_v1, fragment.HLT_HIL1SingleMu0_v7, fragment.HLT_HIL1SingleMu0_Open_v7, fragment.HLT_HIL1SingleMu0_Cosmic_v7, fragment.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, fragment.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, fragment.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, fragment.HLT_HIL2DoubleMuOpen_SS_v1, fragment.HLT_HIL2DoubleMuOpen_OS_v1, fragment.HLT_HIL1DoubleMu0_v7, fragment.HLT_HIL2DoubleMu0_SQ_v1, fragment.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, fragment.HLT_HIL1DoubleMu0_SQ_v7, fragment.HLT_HIL2SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality40to100_v1, fragment.HLT_HIL2SingleMu3_Open_v7, fragment.HLT_HIL2SingleMu5_v7, fragment.HLT_HIL2SingleMu7_v7, fragment.HLT_HIL2SingleMu12_v1, fragment.HLT_HIL2DoubleMu0_Open_v7, fragment.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu3_M7to15_Open_v7, fragment.HLT_HIL3SingleMu3_Open_v7, fragment.HLT_HIL3SingleMu5_v7, fragment.HLT_HIL3SingleMu7_v7, fragment.HLT_HIL3SingleMu12_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3DoubleMu0_M0toInf_Open_v7, fragment.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, fragment.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu2_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, fragment.HLT_HICscCluster_Loose_v7, fragment.HLT_HICscCluster_Medium_v7, fragment.HLT_HICscCluster_Tight_v7, fragment.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, fragment.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, fragment.HLT_HIL1NotBptxORForPPRef_v9, fragment.HLT_HIHT80_Beamspot_ppRef5TeV_v15, fragment.HLT_PPRefZeroBias_v6, fragment.HLT_AK4CaloJet40_v6, fragment.HLT_AK4CaloJet60_v6, fragment.HLT_AK4CaloJet70_v6, fragment.HLT_AK4CaloJet80_v6, fragment.HLT_AK4CaloJet100_v6, fragment.HLT_AK4CaloJet120_v6, fragment.HLT_AK4CaloJetFwd40_v6, fragment.HLT_AK4CaloJetFwd60_v6, fragment.HLT_AK4CaloJetFwd70_v6, fragment.HLT_AK4CaloJetFwd80_v6, fragment.HLT_AK4CaloJetFwd100_v6, fragment.HLT_AK4CaloJetFwd120_v6, fragment.HLT_AK4PFJet40_v8, fragment.HLT_AK4PFJet60_v8, fragment.HLT_AK4PFJet80_v8, fragment.HLT_AK4PFJet100_v8, fragment.HLT_AK4PFJet120_v8, fragment.HLT_AK4PFJetFwd40_v8, fragment.HLT_AK4PFJetFwd60_v8, fragment.HLT_AK4PFJetFwd80_v8, fragment.HLT_AK4PFJetFwd100_v8, fragment.HLT_AK4PFJetFwd120_v8, fragment.HLT_PPRefDoubleEle10Gsf_v6, fragment.HLT_PPRefDoubleEle10GsfMass50_v6, fragment.HLT_PPRefDoubleEle15Gsf_v6, fragment.HLT_PPRefDoubleEle15GsfMass50_v6, fragment.HLT_PPRefEle15Ele10Gsf_v6, fragment.HLT_PPRefEle15Ele10GsfMass50_v6, fragment.HLT_PPRefEle10Gsf_v6, fragment.HLT_PPRefEle15Gsf_v6, fragment.HLT_PPRefEle20Gsf_v7, fragment.HLT_PPRefEle30Gsf_v7, fragment.HLT_PPRefEle40Gsf_v6, fragment.HLT_PPRefEle50Gsf_v6, fragment.HLT_PPRefGEDPhoton10_v6, fragment.HLT_PPRefGEDPhoton10_EB_v6, fragment.HLT_PPRefGEDPhoton20_v6, fragment.HLT_PPRefGEDPhoton20_EB_v6, fragment.HLT_PPRefGEDPhoton30_v6, fragment.HLT_PPRefGEDPhoton30_EB_v6, fragment.HLT_PPRefGEDPhoton40_v6, fragment.HLT_PPRefGEDPhoton40_EB_v6, fragment.HLT_PPRefGEDPhoton50_v6, fragment.HLT_PPRefGEDPhoton50_EB_v6, fragment.HLT_PPRefGEDPhoton60_v6, fragment.HLT_PPRefGEDPhoton60_EB_v6, fragment.HLT_PPRefDoubleGEDPhoton20_v1, fragment.HLT_PPRefL1DoubleMu0_v6, fragment.HLT_PPRefL1DoubleMu0_SQ_v1, fragment.HLT_PPRefL1DoubleMu0_Open_v6, fragment.HLT_PPRefL1DoubleMu2_v1, fragment.HLT_PPRefL1DoubleMu2_SQ_v1, fragment.HLT_PPRefL1SingleMu0_Cosmics_v6, fragment.HLT_PPRefL1SingleMu7_v6, fragment.HLT_PPRefL1SingleMu12_v6, fragment.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, fragment.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, fragment.HLT_PPRefL2DoubleMu0_v6, fragment.HLT_PPRefL2DoubleMu0_Open_v6, fragment.HLT_PPRefL2SingleMu7_v6, fragment.HLT_PPRefL2SingleMu12_v6, fragment.HLT_PPRefL2SingleMu15_v6, fragment.HLT_PPRefL2SingleMu20_v6, fragment.HLT_PPRefL3DoubleMu0_v8, fragment.HLT_PPRefL3DoubleMu0_Open_v8, fragment.HLT_PPRefL3SingleMu3_v8, fragment.HLT_PPRefL3SingleMu5_v8, fragment.HLT_PPRefL3SingleMu7_v8, fragment.HLT_PPRefL3SingleMu12_v8, fragment.HLT_PPRefL3SingleMu15_v8, fragment.HLT_PPRefL3SingleMu20_v8, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, fragment.HLT_PPRefCscCluster_Loose_v6, fragment.HLT_PPRefCscCluster_Medium_v6, fragment.HLT_PPRefCscCluster_Tight_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt25_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt35_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt45_v6, fragment.HLT_PPRefDmesonTrackingGlobal_Dpt60_v6, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, fragment.HLT_PPRefUPC_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_ZDC1nOR_v1, fragment.HLT_PPRefZeroBias_FirstCollisionInTrain_v1, fragment.MC_ReducedIterativeTracking_v22, fragment.MC_AK4CaloJets_v19, fragment.MC_AK4CaloJetsFromPV_v18, fragment.MC_CaloHT_v18, fragment.MC_AK8CaloHT_v18, fragment.MC_CaloMHT_v18, fragment.MC_AK4PFJets_v29, fragment.MC_PFHT_v28, fragment.MC_AK8PFJets_v29, fragment.MC_AK8PFHT_v28, fragment.MC_CaloMET_v18, fragment.MC_CaloMET_JetIdCleaned_v19, fragment.MC_PFMET_v29, fragment.MC_PFMHT_v28, fragment.MC_AK4PFJetPNet_v5, fragment.MC_AK8PFJetPNet_v5, fragment.MC_Egamma_Open_v8, fragment.MC_Egamma_Open_Unseeded_v8, fragment.MC_Ele5_WPTight_Gsf_v18, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, fragment.MC_DoubleEle5_CaloIdL_MW_v26, fragment.MC_IsoMu_v27, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v23, fragment.MC_DoubleMuNoFiltersNoVtx_v17, fragment.MC_PFScouting_v6, fragment.HLT_SpecialHLTPhysics_v7, fragment.AlCa_LumiPixelsCounts_RandomHighRate_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, fragment.HLT_L1AXOVTight_v4, fragment.HLT_L1SingleMuOpen_v6, fragment.HLT_L1SingleMuOpen_DT_v6, fragment.HLT_L1SingleMu3_v5, fragment.HLT_L1SingleMu5_v5, fragment.HLT_L1SingleMu7_v5, fragment.HLT_L1DoubleMu0_v5, fragment.HLT_L1SingleJet8erHE_v5, fragment.HLT_L1SingleJet10erHE_v5, fragment.HLT_L1SingleJet12erHE_v5, fragment.HLT_L1SingleJet35_v5, fragment.HLT_L1SingleJet200_v5, fragment.HLT_L1SingleEG8er2p5_v4, fragment.HLT_L1SingleEG10er2p5_v4, fragment.HLT_L1SingleEG15er2p5_v4, fragment.HLT_L1SingleEG26er2p5_v4, fragment.HLT_L1SingleEG28er2p5_v4, fragment.HLT_L1SingleEG28er2p1_v4, fragment.HLT_L1SingleEG28er1p5_v4, fragment.HLT_L1SingleEG34er2p5_v4, fragment.HLT_L1SingleEG36er2p5_v4, fragment.HLT_L1SingleEG38er2p5_v4, fragment.HLT_L1SingleEG40er2p5_v4, fragment.HLT_L1SingleEG42er2p5_v4, fragment.HLT_L1SingleEG45er2p5_v4, fragment.HLT_L1SingleEG50_v4, fragment.HLT_L1SingleJet60_v4, fragment.HLT_L1SingleJet90_v4, fragment.HLT_L1SingleJet120_v4, fragment.HLT_L1SingleJet180_v4, fragment.HLT_L1HTT120er_v4, fragment.HLT_L1HTT160er_v4, fragment.HLT_L1HTT200er_v4, fragment.HLT_L1HTT255er_v4, fragment.HLT_L1HTT280er_v4, fragment.HLT_L1HTT320er_v4, fragment.HLT_L1HTT360er_v4, fragment.HLT_L1HTT400er_v4, fragment.HLT_L1HTT450er_v4, fragment.HLT_L1ETM120_v4, fragment.HLT_L1ETM150_v4, fragment.HLT_L1EXT_HCAL_LaserMon1_v5, fragment.HLT_L1EXT_HCAL_LaserMon4_v5, fragment.HLT_CscCluster_Cosmic_v4, fragment.HLT_HT60_Beamspot_v22, fragment.HLT_HT300_Beamspot_PixelClusters_WP2_v7, fragment.HLT_PixelClusters_WP2_v4, fragment.HLT_PixelClusters_WP1_v4, fragment.HLT_BptxOR_v6, fragment.HLT_L1SingleMuCosmics_EMTF_v4, fragment.HLT_L1SingleMuCosmics_CosmicTracking_v1, fragment.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, fragment.HLT_L1FatEvents_v5, fragment.HLT_Random_HighRate_v1, fragment.HLT_ZeroBias_HighRate_v4, fragment.HLT_ZeroBias_Gated_v4, fragment.HLT_SpecialZeroBias_v6, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLowPtJet, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate0, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate1, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate2, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate3, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate4, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate5, fragment.Dataset_AlCaLumiPixelsCountsGated, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPSExpress, fragment.Dataset_AlCaPPSPrompt, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DQMPPSRandom, fragment.Dataset_DisplacedJet, fragment.Dataset_EGamma0, fragment.Dataset_EGamma1, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressCosmics, fragment.Dataset_ExpressPhysics, fragment.Dataset_HIDQMGPUvsCPU, fragment.Dataset_HIDQMOnlineBeamspot, fragment.Dataset_HIEmptyBX, fragment.Dataset_HIEphemeralHLTPhysics, fragment.Dataset_HIEphemeralZeroBias0, fragment.Dataset_HIEphemeralZeroBias1, fragment.Dataset_HIEventDisplay, fragment.Dataset_HIExpressAlignment, fragment.Dataset_HIExpressPhysics, fragment.Dataset_HIExpressPhysicsRawPrime, fragment.Dataset_HIForward0, fragment.Dataset_HIForward1, fragment.Dataset_HIForward2, fragment.Dataset_HIForward3, fragment.Dataset_HIForward4, fragment.Dataset_HIForward5, fragment.Dataset_HIForward6, fragment.Dataset_HIForward7, fragment.Dataset_HIForward8, fragment.Dataset_HIForward9, fragment.Dataset_HIForward10, fragment.Dataset_HIForward11, fragment.Dataset_HIForward12, fragment.Dataset_HIForward13, fragment.Dataset_HIForward14, fragment.Dataset_HIForward15, fragment.Dataset_HIForward16, fragment.Dataset_HIForward17, fragment.Dataset_HIForward18, fragment.Dataset_HIForward19, fragment.Dataset_HIHLTPhysics, fragment.Dataset_HIHcalNZS, fragment.Dataset_HIOnlineMonitor, fragment.Dataset_HIMinimumBias0, fragment.Dataset_HIMinimumBias1, fragment.Dataset_HIMinimumBias2, fragment.Dataset_HIMinimumBias3, fragment.Dataset_HIPhysicsRawPrime0, fragment.Dataset_HITrackerNZS, fragment.Dataset_HIZeroBias0, fragment.Dataset_HIZeroBias1, fragment.Dataset_HIZeroBias2, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_JetMET0, fragment.Dataset_JetMET1, fragment.Dataset_L1Accept, fragment.Dataset_MinimumBias, fragment.Dataset_MonteCarlo, fragment.Dataset_Muon0, fragment.Dataset_Muon1, fragment.Dataset_MuonEG, fragment.Dataset_MuonShower, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_PPRefDoubleMuon0, fragment.Dataset_PPRefDoubleMuon1, fragment.Dataset_PPRefDoubleMuon2, fragment.Dataset_PPRefDoubleMuon3, fragment.Dataset_PPRefHardProbes0, fragment.Dataset_PPRefSingleMuon0, fragment.Dataset_PPRefZeroBiasPlusForward0, fragment.Dataset_ParkingDoubleMuonLowMass0, fragment.Dataset_ParkingDoubleMuonLowMass1, fragment.Dataset_ParkingDoubleMuonLowMass2, fragment.Dataset_ParkingDoubleMuonLowMass3, fragment.Dataset_ParkingDoubleMuonLowMass4, fragment.Dataset_ParkingDoubleMuonLowMass5, fragment.Dataset_ParkingDoubleMuonLowMass6, fragment.Dataset_ParkingDoubleMuonLowMass7, fragment.Dataset_ParkingHH, fragment.Dataset_ParkingLLP, fragment.Dataset_ParkingSingleMuon0, fragment.Dataset_ParkingVBF0, fragment.Dataset_ParkingVBF1, fragment.Dataset_ParkingVBF2, fragment.Dataset_ParkingVBF3, fragment.Dataset_ParkingVBF4, fragment.Dataset_ParkingVBF5, fragment.Dataset_ParkingVBF6, fragment.Dataset_ParkingVBF7, fragment.Dataset_RPCMonitor, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.ScoutingPFOutput, fragment.Dataset_SpecialRandom0, fragment.Dataset_SpecialRandom1, fragment.Dataset_SpecialRandom2, fragment.Dataset_SpecialRandom3, fragment.Dataset_SpecialRandom4, fragment.Dataset_SpecialRandom5, fragment.Dataset_SpecialRandom6, fragment.Dataset_SpecialRandom7, fragment.Dataset_SpecialRandom8, fragment.Dataset_SpecialRandom9, fragment.Dataset_SpecialRandom10, fragment.Dataset_SpecialRandom11, fragment.Dataset_SpecialRandom12, fragment.Dataset_SpecialRandom13, fragment.Dataset_SpecialRandom14, fragment.Dataset_SpecialRandom15, fragment.Dataset_SpecialRandom16, fragment.Dataset_SpecialRandom17, fragment.Dataset_SpecialRandom18, fragment.Dataset_SpecialRandom19, fragment.Dataset_SpecialZeroBias0, fragment.Dataset_SpecialZeroBias1, fragment.Dataset_SpecialZeroBias2, fragment.Dataset_SpecialZeroBias3, fragment.Dataset_SpecialZeroBias4, fragment.Dataset_SpecialZeroBias5, fragment.Dataset_SpecialZeroBias6, fragment.Dataset_SpecialZeroBias7, fragment.Dataset_SpecialZeroBias8, fragment.Dataset_SpecialZeroBias9, fragment.Dataset_SpecialZeroBias10, fragment.Dataset_SpecialZeroBias11, fragment.Dataset_SpecialZeroBias12, fragment.Dataset_SpecialZeroBias13, fragment.Dataset_SpecialZeroBias14, fragment.Dataset_SpecialZeroBias15, fragment.Dataset_SpecialZeroBias16, fragment.Dataset_SpecialZeroBias17, fragment.Dataset_SpecialZeroBias18, fragment.Dataset_SpecialZeroBias19, fragment.Dataset_SpecialZeroBias20, fragment.Dataset_SpecialZeroBias21, fragment.Dataset_SpecialZeroBias22, fragment.Dataset_SpecialZeroBias23, fragment.Dataset_SpecialZeroBias24, fragment.Dataset_SpecialZeroBias25, fragment.Dataset_SpecialZeroBias26, fragment.Dataset_SpecialZeroBias27, fragment.Dataset_SpecialZeroBias28, fragment.Dataset_SpecialZeroBias29, fragment.Dataset_SpecialZeroBias30, fragment.Dataset_SpecialZeroBias31, fragment.Dataset_SpecialHLTPhysics0, fragment.Dataset_SpecialHLTPhysics1, fragment.Dataset_SpecialHLTPhysics2, fragment.Dataset_SpecialHLTPhysics3, fragment.Dataset_SpecialHLTPhysics4, fragment.Dataset_SpecialHLTPhysics5, fragment.Dataset_SpecialHLTPhysics6, fragment.Dataset_SpecialHLTPhysics7, fragment.Dataset_SpecialHLTPhysics8, fragment.Dataset_SpecialHLTPhysics9, fragment.Dataset_SpecialHLTPhysics10, fragment.Dataset_SpecialHLTPhysics11, fragment.Dataset_SpecialHLTPhysics12, fragment.Dataset_SpecialHLTPhysics13, fragment.Dataset_SpecialHLTPhysics14, fragment.Dataset_SpecialHLTPhysics15, fragment.Dataset_SpecialHLTPhysics16, fragment.Dataset_SpecialHLTPhysics17, fragment.Dataset_SpecialHLTPhysics18, fragment.Dataset_SpecialHLTPhysics19, fragment.Dataset_ParkingSingleMuon1, fragment.Dataset_ParkingSingleMuon2, fragment.Dataset_ParkingSingleMuon3, fragment.Dataset_ParkingSingleMuon4, fragment.Dataset_ParkingSingleMuon5, fragment.Dataset_ParkingSingleMuon6, fragment.Dataset_ParkingSingleMuon7, fragment.Dataset_ParkingSingleMuon8, fragment.Dataset_ParkingSingleMuon9, fragment.Dataset_ParkingSingleMuon10, fragment.Dataset_ParkingSingleMuon11, fragment.Dataset_PPRefZeroBiasPlusForward1, fragment.Dataset_PPRefZeroBiasPlusForward2, fragment.Dataset_PPRefZeroBiasPlusForward3, fragment.Dataset_PPRefZeroBiasPlusForward4, fragment.Dataset_PPRefZeroBiasPlusForward5, fragment.Dataset_PPRefZeroBiasPlusForward6, fragment.Dataset_PPRefZeroBiasPlusForward7, fragment.Dataset_PPRefZeroBiasPlusForward8, fragment.Dataset_PPRefZeroBiasPlusForward9, fragment.Dataset_PPRefZeroBiasPlusForward10, fragment.Dataset_PPRefZeroBiasPlusForward11, fragment.Dataset_PPRefZeroBiasPlusForward12, fragment.Dataset_PPRefZeroBiasPlusForward13, fragment.Dataset_PPRefZeroBiasPlusForward14, fragment.Dataset_PPRefZeroBiasPlusForward15, fragment.Dataset_PPRefZeroBiasPlusForward16, fragment.Dataset_PPRefZeroBiasPlusForward17, fragment.Dataset_PPRefZeroBiasPlusForward18, fragment.Dataset_PPRefZeroBiasPlusForward19, fragment.Dataset_PPRefZeroBiasPlusForward20, fragment.Dataset_PPRefZeroBiasPlusForward21, fragment.Dataset_PPRefZeroBiasPlusForward22, fragment.Dataset_PPRefZeroBiasPlusForward23, fragment.Dataset_PPRefZeroBiasPlusForward24, fragment.Dataset_PPRefSingleMuon1, fragment.Dataset_PPRefSingleMuon2, fragment.Dataset_PPRefSingleMuon3, fragment.Dataset_PPRefHardProbes1, fragment.Dataset_PPRefHardProbes2, fragment.Dataset_PPRefHardProbes3, fragment.Dataset_PPRefHardProbes4, fragment.Dataset_HIPhysicsRawPrime1, fragment.Dataset_HIPhysicsRawPrime2, fragment.Dataset_HIPhysicsRawPrime3, fragment.Dataset_HIPhysicsRawPrime4, fragment.Dataset_HIPhysicsRawPrime5, fragment.Dataset_HIPhysicsRawPrime6, fragment.Dataset_HIPhysicsRawPrime7, fragment.Dataset_HIPhysicsRawPrime8, fragment.Dataset_HIPhysicsRawPrime9, fragment.Dataset_HIPhysicsRawPrime10, fragment.Dataset_HIPhysicsRawPrime11, fragment.Dataset_HIPhysicsRawPrime12, fragment.Dataset_HIPhysicsRawPrime13, fragment.Dataset_HIPhysicsRawPrime14, fragment.Dataset_HIPhysicsRawPrime15, fragment.Dataset_HIPhysicsRawPrime16, fragment.Dataset_HIPhysicsRawPrime17, fragment.Dataset_HIPhysicsRawPrime18, fragment.Dataset_HIPhysicsRawPrime19, fragment.Dataset_HIPhysicsRawPrime20, fragment.Dataset_HIPhysicsRawPrime21, fragment.Dataset_HIPhysicsRawPrime22, fragment.Dataset_HIPhysicsRawPrime23, fragment.Dataset_HIPhysicsRawPrime24, fragment.Dataset_HIPhysicsRawPrime25, fragment.Dataset_HIPhysicsRawPrime26, fragment.Dataset_HIPhysicsRawPrime27, fragment.Dataset_HIPhysicsRawPrime28, fragment.Dataset_HIPhysicsRawPrime29, fragment.Dataset_HIPhysicsRawPrime30, fragment.Dataset_HIPhysicsRawPrime31, fragment.Dataset_HIPhysicsRawPrime32, fragment.Dataset_HIPhysicsRawPrime33, fragment.Dataset_HIPhysicsRawPrime34, fragment.Dataset_HIPhysicsRawPrime35, fragment.Dataset_HIPhysicsRawPrime36, fragment.Dataset_HIPhysicsRawPrime37, fragment.Dataset_HIPhysicsRawPrime38, fragment.Dataset_HIPhysicsRawPrime39, fragment.Dataset_HIPhysicsRawPrime40, fragment.Dataset_HIPhysicsRawPrime41, fragment.Dataset_HIPhysicsRawPrime42, fragment.Dataset_HIPhysicsRawPrime43, fragment.Dataset_HIPhysicsRawPrime44, fragment.Dataset_HIPhysicsRawPrime45, fragment.Dataset_HIPhysicsRawPrime46, fragment.Dataset_HIPhysicsRawPrime47, fragment.Dataset_HIPhysicsRawPrime48, fragment.Dataset_HIPhysicsRawPrime49, fragment.Dataset_HIPhysicsRawPrime50, fragment.Dataset_HIPhysicsRawPrime51, fragment.Dataset_HIPhysicsRawPrime52, fragment.Dataset_HIPhysicsRawPrime53, fragment.Dataset_HIPhysicsRawPrime54, fragment.Dataset_HIPhysicsRawPrime55, fragment.Dataset_HIPhysicsRawPrime56, fragment.Dataset_HIPhysicsRawPrime57, fragment.Dataset_HIPhysicsRawPrime58, fragment.Dataset_HIPhysicsRawPrime59, )) +fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_EcalPhiSymForHI_v12, fragment.AlCa_EcalEtaEBonly_v25, fragment.AlCa_EcalEtaEEonly_v25, fragment.AlCa_EcalPi0EBonly_v25, fragment.AlCa_EcalPi0EEonly_v25, fragment.AlCa_EcalEtaEBonlyForHI_v13, fragment.AlCa_EcalEtaEEonlyForHI_v13, fragment.AlCa_EcalPi0EBonlyForHI_v13, fragment.AlCa_EcalPi0EEonlyForHI_v13, fragment.AlCa_HIEcalEtaEBonly_v12, fragment.AlCa_HIEcalEtaEEonly_v12, fragment.AlCa_HIEcalPi0EBonly_v12, fragment.AlCa_HIEcalPi0EEonly_v12, fragment.AlCa_RPCMuonNormalisation_v23, fragment.AlCa_RPCMuonNormalisationForHI_v11, fragment.AlCa_HIRPCMuonNormalisation_v11, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.AlCa_PFJet40_v32, fragment.AlCa_PFJet40_CPUOnly_v11, fragment.AlCa_AK8PFJet40_v27, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DQM_HIPixelReconstruction_v12, fragment.DQM_HIEcalReconstruction_v10, fragment.DQM_HIHcalReconstruction_v8, fragment.DQM_Random_v1, fragment.DQM_ZeroBias_v3, fragment.DST_ZeroBias_v11, fragment.DST_Physics_v16, fragment.DST_PFScouting_DoubleMuon_v6, fragment.DST_PFScouting_DoubleEG_v6, fragment.DST_PFScouting_JetHT_v6, fragment.DST_PFScouting_AXOVLoose_v4, fragment.DST_PFScouting_AXOLoose_v4, fragment.DST_PFScouting_AXONominal_v6, fragment.DST_PFScouting_AXOTight_v6, fragment.DST_PFScouting_AXOVTight_v4, fragment.DST_PFScouting_CICADAVLoose_v2, fragment.DST_PFScouting_CICADALoose_v2, fragment.DST_PFScouting_CICADAMedium_v2, fragment.DST_PFScouting_CICADATight_v2, fragment.DST_PFScouting_CICADAVTight_v2, fragment.DST_PFScouting_SingleMuon_v6, fragment.DST_PFScouting_SinglePhotonEB_v3, fragment.DST_PFScouting_ZeroBias_v4, fragment.HLT_EphemeralPhysics_v9, fragment.HLT_EphemeralZeroBias_v9, fragment.HLT_HIEphemeralPhysics_v5, fragment.HLT_HIEphemeralZeroBias_v5, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Alignment_v8, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_IsolatedBunches_v12, fragment.HLT_ZeroBias_FirstBXAfterTrain_v10, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_ZeroBias_FirstCollisionInTrain_v11, fragment.HLT_ZeroBias_LastCollisionInTrain_v10, fragment.HLT_HT300_Beamspot_v23, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_PFJet40_GPUvsCPU_v7, fragment.HLT_AK8PFJet380_SoftDropMass30_v6, fragment.HLT_AK8PFJet400_SoftDropMass30_v6, fragment.HLT_AK8PFJet425_SoftDropMass30_v6, fragment.HLT_AK8PFJet450_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, fragment.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, fragment.HLT_CaloJet500_NoJetID_v22, fragment.HLT_CaloJet550_NoJetID_v17, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, fragment.HLT_DoubleEle25_CaloIdL_MW_v15, fragment.HLT_DoubleEle27_CaloIdL_MW_v15, fragment.HLT_DoubleEle33_CaloIdL_MW_v28, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v17, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v17, fragment.HLT_Mu37_TkMu27_v17, fragment.HLT_DoubleMu4_3_Bs_v27, fragment.HLT_DoubleMu4_3_Jpsi_v27, fragment.HLT_DoubleMu4_3_LowMass_v13, fragment.HLT_DoubleMu4_LowMass_Displaced_v13, fragment.HLT_Mu0_L1DoubleMu_v13, fragment.HLT_Mu4_L1DoubleMu_v13, fragment.HLT_DoubleMu2_Jpsi_LowPt_v6, fragment.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu3_Trk_Tau3mu_v24, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v27, fragment.HLT_Mu3_PFJet40_v28, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v22, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v22, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v13, fragment.HLT_Mu0_Barrel_v6, fragment.HLT_Mu0_Barrel_L1HP6_v3, fragment.HLT_Mu0_Barrel_L1HP7_v3, fragment.HLT_Mu0_Barrel_L1HP8_v4, fragment.HLT_Mu0_Barrel_L1HP9_v4, fragment.HLT_Mu0_Barrel_L1HP10_v6, fragment.HLT_Mu0_Barrel_L1HP11_v6, fragment.HLT_Mu0_Barrel_L1HP6_IP6_v3, fragment.HLT_Mu6_Barrel_L1HP7_IP6_v3, fragment.HLT_Mu7_Barrel_L1HP8_IP6_v4, fragment.HLT_Mu8_Barrel_L1HP9_IP6_v4, fragment.HLT_Mu9_Barrel_L1HP10_IP6_v6, fragment.HLT_Mu10_Barrel_L1HP11_IP6_v6, fragment.HLT_DoublePhoton33_CaloIdL_v17, fragment.HLT_DoublePhoton70_v17, fragment.HLT_DoublePhoton85_v25, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, fragment.HLT_Ele30_WPTight_Gsf_v11, fragment.HLT_Ele32_WPTight_Gsf_v25, fragment.HLT_Ele35_WPTight_Gsf_v19, fragment.HLT_Ele38_WPTight_Gsf_v19, fragment.HLT_Ele40_WPTight_Gsf_v19, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, fragment.HLT_IsoMu20_v27, fragment.HLT_IsoMu24_v25, fragment.HLT_IsoMu24_HLTTracking_v1, fragment.HLT_IsoMu24_eta2p1_v27, fragment.HLT_IsoMu27_v28, fragment.HLT_UncorrectedJetE30_NoBPTX_v14, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v14, fragment.HLT_L1SingleMuCosmics_v8, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v15, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, fragment.HLT_L2Mu23NoVtx_2Cha_v10, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, fragment.HLT_DoubleL2Mu50_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, fragment.HLT_Mu30_TkMu0_Psi_v13, fragment.HLT_Mu30_TkMu0_Upsilon_v13, fragment.HLT_Mu25_TkMu0_Phi_v20, fragment.HLT_Mu15_v15, fragment.HLT_Mu20_v24, fragment.HLT_Mu27_v25, fragment.HLT_Mu50_v25, fragment.HLT_Mu55_v15, fragment.HLT_CascadeMu100_v13, fragment.HLT_HighPtTkMu100_v12, fragment.HLT_DiPFJetAve40_v26, fragment.HLT_DiPFJetAve60_v26, fragment.HLT_DiPFJetAve80_v26, fragment.HLT_DiPFJetAve140_v25, fragment.HLT_DiPFJetAve200_v25, fragment.HLT_DiPFJetAve260_v26, fragment.HLT_DiPFJetAve320_v26, fragment.HLT_DiPFJetAve400_v26, fragment.HLT_DiPFJetAve500_v26, fragment.HLT_DiPFJetAve60_HFJEC_v27, fragment.HLT_DiPFJetAve80_HFJEC_v29, fragment.HLT_DiPFJetAve100_HFJEC_v29, fragment.HLT_DiPFJetAve160_HFJEC_v28, fragment.HLT_DiPFJetAve220_HFJEC_v28, fragment.HLT_DiPFJetAve260_HFJEC_v11, fragment.HLT_DiPFJetAve300_HFJEC_v28, fragment.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, fragment.HLT_AK8PFJet40_v28, fragment.HLT_AK8PFJet60_v27, fragment.HLT_AK8PFJet80_v28, fragment.HLT_AK8PFJet140_v27, fragment.HLT_AK8PFJet200_v27, fragment.HLT_AK8PFJet260_v28, fragment.HLT_AK8PFJet320_v28, fragment.HLT_AK8PFJet400_v28, fragment.HLT_AK8PFJet450_v28, fragment.HLT_AK8PFJet500_v28, fragment.HLT_AK8PFJet550_v23, fragment.HLT_PFJet40_v33, fragment.HLT_PFJet60_v33, fragment.HLT_PFJet80_v33, fragment.HLT_PFJet110_v12, fragment.HLT_PFJet140_v31, fragment.HLT_PFJet200_v31, fragment.HLT_PFJet260_v32, fragment.HLT_PFJet320_v32, fragment.HLT_PFJet400_v32, fragment.HLT_PFJet450_v33, fragment.HLT_PFJet500_v33, fragment.HLT_PFJet550_v23, fragment.HLT_PFJetFwd40_v31, fragment.HLT_PFJetFwd60_v31, fragment.HLT_PFJetFwd80_v30, fragment.HLT_PFJetFwd140_v30, fragment.HLT_PFJetFwd200_v30, fragment.HLT_PFJetFwd260_v31, fragment.HLT_PFJetFwd320_v31, fragment.HLT_PFJetFwd400_v31, fragment.HLT_PFJetFwd450_v31, fragment.HLT_PFJetFwd500_v31, fragment.HLT_AK8PFJetFwd40_v27, fragment.HLT_AK8PFJetFwd60_v26, fragment.HLT_AK8PFJetFwd80_v26, fragment.HLT_AK8PFJetFwd140_v26, fragment.HLT_AK8PFJetFwd200_v26, fragment.HLT_AK8PFJetFwd260_v27, fragment.HLT_AK8PFJetFwd320_v27, fragment.HLT_AK8PFJetFwd400_v27, fragment.HLT_AK8PFJetFwd450_v27, fragment.HLT_AK8PFJetFwd500_v27, fragment.HLT_PFHT180_v29, fragment.HLT_PFHT250_v29, fragment.HLT_PFHT370_v29, fragment.HLT_PFHT430_v29, fragment.HLT_PFHT510_v29, fragment.HLT_PFHT590_v29, fragment.HLT_PFHT680_v29, fragment.HLT_PFHT780_v29, fragment.HLT_PFHT890_v29, fragment.HLT_PFHT1050_v30, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, fragment.HLT_PFMET120_PFMHT120_IDTight_v32, fragment.HLT_PFMET130_PFMHT130_IDTight_v32, fragment.HLT_PFMET140_PFMHT140_IDTight_v32, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, fragment.HLT_L1ETMHadSeeds_v10, fragment.HLT_CaloMHT90_v14, fragment.HLT_CaloMET90_NotCleaned_v14, fragment.HLT_CaloMET350_NotCleaned_v14, fragment.HLT_PFMET200_NotCleaned_v21, fragment.HLT_PFMET250_NotCleaned_v21, fragment.HLT_PFMET300_NotCleaned_v21, fragment.HLT_PFMET200_BeamHaloCleaned_v21, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, fragment.HLT_MET105_IsoTrk50_v19, fragment.HLT_MET120_IsoTrk50_v19, fragment.HLT_Mu12eta2p3_v13, fragment.HLT_Mu12eta2p3_PFJet40_v13, fragment.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Photon300_NoHE_v23, fragment.HLT_Mu8_TrkIsoVVL_v24, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, fragment.HLT_Mu17_TrkIsoVVL_v25, fragment.HLT_Mu19_TrkIsoVVL_v16, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v24, fragment.HLT_BTagMu_AK4Jet300_Mu5_v24, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v21, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, fragment.HLT_BTagMu_AK8Jet300_Mu5_v24, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, fragment.HLT_Photon33_v15, fragment.HLT_Photon50_v23, fragment.HLT_Photon75_v23, fragment.HLT_Photon90_v23, fragment.HLT_Photon120_v23, fragment.HLT_Photon150_v17, fragment.HLT_Photon175_v25, fragment.HLT_Photon200_v24, fragment.HLT_Photon45EB_v3, fragment.HLT_Photon40EB_v3, fragment.HLT_Photon50EB_v4, fragment.HLT_Photon30EB_TightID_TightIso_v12, fragment.HLT_Photon40EB_TightID_TightIso_v3, fragment.HLT_Photon45EB_TightID_TightIso_v3, fragment.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_v8, fragment.HLT_Photon55EB_TightID_TightIso_v4, fragment.HLT_Photon75EB_TightID_TightIso_v8, fragment.HLT_Photon90EB_TightID_TightIso_v8, fragment.HLT_Photon110EB_TightID_TightIso_v12, fragment.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon100EBHE10_v12, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v25, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, fragment.HLT_DiphotonMVA14p25_Mass90_v3, fragment.HLT_DiphotonMVA14p25_Tight_Mass90_v3, fragment.HLT_Photon35_TwoProngs35_v13, fragment.HLT_IsoMu24_TwoProngs35_v13, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_v20, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v20, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v17, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v19, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v20, fragment.HLT_Dimuon0_LowMass_v20, fragment.HLT_Dimuon0_LowMass_L1_4_v20, fragment.HLT_Dimuon0_LowMass_L1_TM530_v18, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, fragment.HLT_TripleMu_10_5_5_DZ_v22, fragment.HLT_TripleMu_12_10_5_v22, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, fragment.HLT_DoubleMu4_3_LowMass_SS_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v19, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v19, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, fragment.HLT_DoubleMu4_JpsiTrk_Bc_v12, fragment.HLT_DoubleMu43NoFiltersNoVtx_v14, fragment.HLT_DoubleMu48NoFiltersNoVtx_v14, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, fragment.HLT_Ele28_HighEta_SC20_Mass55_v23, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, fragment.HLT_Ele15_IsoVVVL_PFHT450_v28, fragment.HLT_Ele50_IsoVVVL_PFHT450_v28, fragment.HLT_Ele15_IsoVVVL_PFHT600_v32, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, fragment.HLT_Mu15_IsoVVVL_PFHT450_v27, fragment.HLT_Mu50_IsoVVVL_PFHT450_v27, fragment.HLT_Mu15_IsoVVVL_PFHT600_v31, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, fragment.HLT_Dimuon10_Upsilon_y1p4_v13, fragment.HLT_Dimuon12_Upsilon_y1p4_v14, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, fragment.HLT_Dimuon25_Jpsi_v26, fragment.HLT_Dimuon14_PsiPrime_v25, fragment.HLT_Dimuon14_PsiPrime_noCorrL1_v17, fragment.HLT_Dimuon18_PsiPrime_v26, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v18, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v18, fragment.HLT_Dimuon24_Phi_noCorrL1_v18, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v18, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, fragment.HLT_DoubleIsoMu20_eta2p1_v19, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, fragment.HLT_Mu8_v24, fragment.HLT_Mu17_v25, fragment.HLT_Mu19_v16, fragment.HLT_Mu17_Photon30_IsoCaloId_v18, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, fragment.HLT_PFHT400_SixPFJet32_v21, fragment.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, fragment.HLT_PFHT450_SixPFJet36_v20, fragment.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, fragment.HLT_PFHT350_v31, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, fragment.HLT_ECALHT800_v20, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, fragment.HLT_Photon20_HoverELoose_v20, fragment.HLT_Photon30_HoverELoose_v20, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, fragment.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, fragment.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, fragment.HLT_Mu18_Mu9_SameSign_v16, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, fragment.HLT_QuadPFJet103_88_75_15_v17, fragment.HLT_QuadPFJet105_88_76_15_v17, fragment.HLT_QuadPFJet111_90_80_15_v17, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, fragment.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, fragment.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, fragment.HLT_PFHT250_QuadPFJet25_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, fragment.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, fragment.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, fragment.HLT_QuadPFJet100_88_70_30_v10, fragment.HLT_QuadPFJet105_88_75_30_v9, fragment.HLT_QuadPFJet111_90_80_30_v9, fragment.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, fragment.HLT_AK8PFJet220_SoftDropMass40_v13, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_v13, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_Nch45_v6, fragment.HLT_AK8PFJet275_Nch40_v6, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, fragment.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, fragment.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, fragment.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu10NoVtx_2Cha_v9, fragment.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L3Mu10NoVtx_v10, fragment.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, fragment.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, fragment.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, fragment.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, fragment.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, fragment.HLT_L1Mu6HT240_v9, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, fragment.HLT_HT350_v7, fragment.HLT_HT425_v19, fragment.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v23, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v23, fragment.HLT_CaloMET60_DTCluster50_v11, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v11, fragment.HLT_L1MET_DTCluster50_v11, fragment.HLT_L1MET_DTClusterNoMB1S50_v11, fragment.HLT_CscCluster_Loose_v10, fragment.HLT_CscCluster_Medium_v10, fragment.HLT_CscCluster_Tight_v10, fragment.HLT_CscCluster50_Photon20Unseeded_v4, fragment.HLT_CscCluster50_Photon30Unseeded_v4, fragment.HLT_CscCluster100_Ele5_v4, fragment.HLT_CscCluster100_Mu5_v6, fragment.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, fragment.HLT_DoubleCscCluster75_v7, fragment.HLT_IsoTrk200_L1SingleMuShower_v4, fragment.HLT_IsoTrk400_L1SingleMuShower_v4, fragment.HLT_DoubleCscCluster100_v7, fragment.HLT_L1CSCShower_DTCluster50_v10, fragment.HLT_L1CSCShower_DTCluster75_v10, fragment.HLT_PFMET105_IsoTrk50_v13, fragment.HLT_L1SingleLLPJet_v7, fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, fragment.HLT_DiPhoton10Time1ns_v10, fragment.HLT_DiPhoton10Time1p2ns_v10, fragment.HLT_DiPhoton10Time1p4ns_v10, fragment.HLT_DiPhoton10Time1p6ns_v10, fragment.HLT_DiPhoton10Time1p8ns_v10, fragment.HLT_DiPhoton10Time2ns_v10, fragment.HLT_DiPhoton10_CaloIdL_v10, fragment.HLT_DoubleEle6p5_eta1p22_mMax6_v10, fragment.HLT_DoubleEle8_eta1p22_mMax6_v10, fragment.HLT_DoubleEle10_eta1p22_mMax6_v10, fragment.HLT_SingleEle8_v9, fragment.HLT_SingleEle8_SingleEGL1_v9, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Mu50_L1SingleMuShower_v11, fragment.HLT_IsoMu24_OneProng32_v9, fragment.HLT_Photon32_OneProng32_M50To105_v10, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1050_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1200_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_PFJet200_TimeLtNeg2p5ns_v10, fragment.HLT_PFJet200_TimeGt2p5ns_v10, fragment.HLT_Photon50_TimeLtNeg2p5ns_v7, fragment.HLT_Photon50_TimeGt2p5ns_v7, fragment.HLT_PPSMaxTracksPerArm1_v9, fragment.HLT_PPSMaxTracksPerRP4_v9, fragment.HLT_PPSRandom_v1, fragment.HLT_HIL1NotBptxOR_v14, fragment.HLT_HIL1UnpairedBunchBptxPlus_v14, fragment.HLT_HIL1UnpairedBunchBptxMinus_v14, fragment.HLT_HIPhysics_v14, fragment.HLT_HIPhysicsForZS_v14, fragment.HLT_HIRandom_v7, fragment.HLT_HIRandom_HighRate_v3, fragment.HLT_HIHcalNZS_v14, fragment.HLT_HIHcalPhiSym_v14, fragment.HLT_HIZeroBias_v14, fragment.HLT_HIZeroBias_HighRate_v7, fragment.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, fragment.HLT_HIZeroBias_HighRateRAW_v4, fragment.HLT_HIMinimumBiasHF1AND_v7, fragment.HLT_HIMinimumBiasHF1AND_copy_v6, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, fragment.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, fragment.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, fragment.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1, fragment.HLT_HIL1Centrality30_50_v7, fragment.HLT_HIL1_UCC_0_0p5_v7, fragment.HLT_HIL1_UCC_0_1_v7, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, fragment.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, fragment.HLT_HIPuAK4CaloJet80Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet100Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet120Eta2p1_v7, fragment.HLT_HIPuAK4CaloJet120Eta5p1_v14, fragment.HLT_HIPuAK4CaloJet40Fwd_v7, fragment.HLT_HIPuAK4CaloJet60Fwd_v7, fragment.HLT_HIPuAK4CaloJet80Fwd_v7, fragment.HLT_HIPuAK4CaloJet100Fwd_v7, fragment.HLT_HIPuAK4CaloJet120Fwd_v7, fragment.HLT_HIGEDPhoton10_v14, fragment.HLT_HIGEDPhoton10_EB_v14, fragment.HLT_HIGEDPhoton20_v14, fragment.HLT_HIGEDPhoton20_EB_v14, fragment.HLT_HIGEDPhoton30_v14, fragment.HLT_HIGEDPhoton30_EB_v14, fragment.HLT_HIGEDPhoton40_v14, fragment.HLT_HIGEDPhoton40_EB_v14, fragment.HLT_HIGEDPhoton50_v14, fragment.HLT_HIGEDPhoton50_EB_v14, fragment.HLT_HIGEDPhoton60_v14, fragment.HLT_HIGEDPhoton60_EB_v14, fragment.HLT_HIDoubleGEDPhoton20_v7, fragment.HLT_HIEle10Gsf_v14, fragment.HLT_HIEle15Gsf_v14, fragment.HLT_HIEle20Gsf_v14, fragment.HLT_HIEle30Gsf_v14, fragment.HLT_HIEle40Gsf_v14, fragment.HLT_HIEle50Gsf_v14, fragment.HLT_HIEle15Ele10Gsf_v14, fragment.HLT_HIEle15Ele10GsfMass50_v14, fragment.HLT_HIDoubleEle10Gsf_v14, fragment.HLT_HIDoubleEle10GsfMass50_v14, fragment.HLT_HIDoubleEle15Gsf_v14, fragment.HLT_HIDoubleEle15GsfMass50_v14, fragment.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_NotMBHF2_v5, fragment.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, fragment.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, fragment.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, fragment.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, fragment.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, fragment.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, fragment.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, fragment.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, fragment.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, fragment.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, fragment.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, fragment.HLT_HIUPC_Random_HighRate_v1, fragment.HLT_HIUPC_HFafterglowCombined_v1, fragment.HLT_HIL1SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality30to100_v1, fragment.HLT_HIL1SingleMu0_Centrality40to100_v1, fragment.HLT_HIL1SingleMu0_v7, fragment.HLT_HIL1SingleMu0_Open_v7, fragment.HLT_HIL1SingleMu0_Cosmic_v7, fragment.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, fragment.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, fragment.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, fragment.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, fragment.HLT_HIL2DoubleMuOpen_SS_v1, fragment.HLT_HIL2DoubleMuOpen_OS_v1, fragment.HLT_HIL1DoubleMu0_v7, fragment.HLT_HIL2DoubleMu0_SQ_v1, fragment.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, fragment.HLT_HIL1DoubleMu0_SQ_v7, fragment.HLT_HIL2SingleMuOpen_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality30to100_v1, fragment.HLT_HIL2SingleMu0_Centrality40to100_v1, fragment.HLT_HIL2SingleMu3_Open_v7, fragment.HLT_HIL2SingleMu5_v7, fragment.HLT_HIL2SingleMu7_v7, fragment.HLT_HIL2SingleMu12_v1, fragment.HLT_HIL2DoubleMu0_Open_v7, fragment.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, fragment.HLT_HIL2DoubleMu3_M7to15_Open_v7, fragment.HLT_HIL3SingleMu3_Open_v7, fragment.HLT_HIL3SingleMu5_v7, fragment.HLT_HIL3SingleMu7_v7, fragment.HLT_HIL3SingleMu12_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, fragment.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, fragment.HLT_HIL3DoubleMu0_M0toInf_Open_v7, fragment.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu0_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, fragment.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, fragment.HLT_HIL3DoubleMu2_M7to15_Open_v7, fragment.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, fragment.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, fragment.HLT_HICscCluster_Loose_v7, fragment.HLT_HICscCluster_Medium_v7, fragment.HLT_HICscCluster_Tight_v7, fragment.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, fragment.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, fragment.HLT_HIL1NotBptxORForPPRef_v9, fragment.HLT_HIHT80_Beamspot_ppRef5TeV_v15, fragment.HLT_PPRefZeroBias_v6, fragment.HLT_AK4CaloJet40_v6, fragment.HLT_AK4CaloJet60_v6, fragment.HLT_AK4CaloJet70_v6, fragment.HLT_AK4CaloJet80_v6, fragment.HLT_AK4CaloJet100_v6, fragment.HLT_AK4CaloJet120_v6, fragment.HLT_AK4CaloJetFwd40_v6, fragment.HLT_AK4CaloJetFwd60_v6, fragment.HLT_AK4CaloJetFwd70_v6, fragment.HLT_AK4CaloJetFwd80_v6, fragment.HLT_AK4CaloJetFwd100_v6, fragment.HLT_AK4CaloJetFwd120_v6, fragment.HLT_AK4PFJet40_v8, fragment.HLT_AK4PFJet60_v8, fragment.HLT_AK4PFJet80_v8, fragment.HLT_AK4PFJet100_v8, fragment.HLT_AK4PFJet120_v8, fragment.HLT_AK4PFJetFwd40_v8, fragment.HLT_AK4PFJetFwd60_v8, fragment.HLT_AK4PFJetFwd80_v8, fragment.HLT_AK4PFJetFwd100_v8, fragment.HLT_AK4PFJetFwd120_v8, fragment.HLT_PPRefDoubleEle10Gsf_v6, fragment.HLT_PPRefDoubleEle10GsfMass50_v6, fragment.HLT_PPRefDoubleEle15Gsf_v6, fragment.HLT_PPRefDoubleEle15GsfMass50_v6, fragment.HLT_PPRefEle15Ele10Gsf_v6, fragment.HLT_PPRefEle15Ele10GsfMass50_v6, fragment.HLT_PPRefEle10Gsf_v6, fragment.HLT_PPRefEle15Gsf_v6, fragment.HLT_PPRefEle20Gsf_v7, fragment.HLT_PPRefEle30Gsf_v7, fragment.HLT_PPRefEle40Gsf_v6, fragment.HLT_PPRefEle50Gsf_v6, fragment.HLT_PPRefGEDPhoton10_v6, fragment.HLT_PPRefGEDPhoton10_EB_v6, fragment.HLT_PPRefGEDPhoton20_v6, fragment.HLT_PPRefGEDPhoton20_EB_v6, fragment.HLT_PPRefGEDPhoton30_v6, fragment.HLT_PPRefGEDPhoton30_EB_v6, fragment.HLT_PPRefGEDPhoton40_v6, fragment.HLT_PPRefGEDPhoton40_EB_v6, fragment.HLT_PPRefGEDPhoton50_v6, fragment.HLT_PPRefGEDPhoton50_EB_v6, fragment.HLT_PPRefGEDPhoton60_v6, fragment.HLT_PPRefGEDPhoton60_EB_v6, fragment.HLT_PPRefDoubleGEDPhoton20_v1, fragment.HLT_PPRefL1DoubleMu0_v6, fragment.HLT_PPRefL1DoubleMu0_SQ_v1, fragment.HLT_PPRefL1DoubleMu0_Open_v6, fragment.HLT_PPRefL1DoubleMu2_v1, fragment.HLT_PPRefL1DoubleMu2_SQ_v1, fragment.HLT_PPRefL1SingleMu0_Cosmics_v6, fragment.HLT_PPRefL1SingleMu7_v6, fragment.HLT_PPRefL1SingleMu12_v6, fragment.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, fragment.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, fragment.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, fragment.HLT_PPRefL2DoubleMu0_v6, fragment.HLT_PPRefL2DoubleMu0_Open_v6, fragment.HLT_PPRefL2SingleMu7_v6, fragment.HLT_PPRefL2SingleMu12_v6, fragment.HLT_PPRefL2SingleMu15_v6, fragment.HLT_PPRefL2SingleMu20_v6, fragment.HLT_PPRefL3DoubleMu0_v8, fragment.HLT_PPRefL3DoubleMu0_Open_v8, fragment.HLT_PPRefL3SingleMu3_v8, fragment.HLT_PPRefL3SingleMu5_v8, fragment.HLT_PPRefL3SingleMu7_v8, fragment.HLT_PPRefL3SingleMu12_v8, fragment.HLT_PPRefL3SingleMu15_v8, fragment.HLT_PPRefL3SingleMu20_v8, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, fragment.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, fragment.HLT_PPRefCscCluster_Loose_v6, fragment.HLT_PPRefCscCluster_Medium_v6, fragment.HLT_PPRefCscCluster_Tight_v6, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, fragment.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, fragment.HLT_PPRefUPC_ZDC1nAsymXOR_v1, fragment.HLT_PPRefUPC_ZDC1nOR_v1, fragment.HLT_PPRefZeroBias_FirstCollisionInTrain_v1, fragment.MC_ReducedIterativeTracking_v22, fragment.MC_AK4CaloJets_v19, fragment.MC_AK4CaloJetsFromPV_v18, fragment.MC_CaloHT_v18, fragment.MC_AK8CaloHT_v18, fragment.MC_CaloMHT_v18, fragment.MC_AK4PFJets_v29, fragment.MC_PFHT_v28, fragment.MC_AK8PFJets_v29, fragment.MC_AK8PFHT_v28, fragment.MC_CaloMET_v18, fragment.MC_CaloMET_JetIdCleaned_v19, fragment.MC_PFMET_v29, fragment.MC_PFMHT_v28, fragment.MC_AK4PFJetPNet_v5, fragment.MC_AK8PFJetPNet_v5, fragment.MC_Egamma_Open_v8, fragment.MC_Egamma_Open_Unseeded_v8, fragment.MC_Ele5_WPTight_Gsf_v18, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, fragment.MC_DoubleEle5_CaloIdL_MW_v26, fragment.MC_IsoMu_v27, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v23, fragment.MC_DoubleMuNoFiltersNoVtx_v17, fragment.MC_PFScouting_v6, fragment.HLT_SpecialHLTPhysics_v7, fragment.AlCa_LumiPixelsCounts_RandomHighRate_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, fragment.HLT_L1AXOVTight_v4, fragment.HLT_L1SingleMuOpen_v6, fragment.HLT_L1SingleMuOpen_DT_v6, fragment.HLT_L1SingleMu3_v5, fragment.HLT_L1SingleMu5_v5, fragment.HLT_L1SingleMu7_v5, fragment.HLT_L1DoubleMu0_v5, fragment.HLT_L1SingleJet8erHE_v5, fragment.HLT_L1SingleJet10erHE_v5, fragment.HLT_L1SingleJet12erHE_v5, fragment.HLT_L1SingleJet35_v5, fragment.HLT_L1SingleJet200_v5, fragment.HLT_L1SingleEG8er2p5_v4, fragment.HLT_L1SingleEG10er2p5_v4, fragment.HLT_L1SingleEG15er2p5_v4, fragment.HLT_L1SingleEG26er2p5_v4, fragment.HLT_L1SingleEG28er2p5_v4, fragment.HLT_L1SingleEG28er2p1_v4, fragment.HLT_L1SingleEG28er1p5_v4, fragment.HLT_L1SingleEG34er2p5_v4, fragment.HLT_L1SingleEG36er2p5_v4, fragment.HLT_L1SingleEG38er2p5_v4, fragment.HLT_L1SingleEG40er2p5_v4, fragment.HLT_L1SingleEG42er2p5_v4, fragment.HLT_L1SingleEG45er2p5_v4, fragment.HLT_L1SingleEG50_v4, fragment.HLT_L1SingleJet60_v4, fragment.HLT_L1SingleJet90_v4, fragment.HLT_L1SingleJet120_v4, fragment.HLT_L1SingleJet180_v4, fragment.HLT_L1HTT120er_v4, fragment.HLT_L1HTT160er_v4, fragment.HLT_L1HTT200er_v4, fragment.HLT_L1HTT255er_v4, fragment.HLT_L1HTT280er_v4, fragment.HLT_L1HTT320er_v4, fragment.HLT_L1HTT360er_v4, fragment.HLT_L1HTT400er_v4, fragment.HLT_L1HTT450er_v4, fragment.HLT_L1ETM120_v4, fragment.HLT_L1ETM150_v4, fragment.HLT_L1EXT_HCAL_LaserMon1_v5, fragment.HLT_L1EXT_HCAL_LaserMon4_v5, fragment.HLT_CscCluster_Cosmic_v4, fragment.HLT_HT60_Beamspot_v22, fragment.HLT_HT300_Beamspot_PixelClusters_WP2_v7, fragment.HLT_PixelClusters_WP2_v4, fragment.HLT_PixelClusters_WP1_v4, fragment.HLT_BptxOR_v6, fragment.HLT_L1SingleMuCosmics_EMTF_v4, fragment.HLT_L1SingleMuCosmics_CosmicTracking_v1, fragment.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, fragment.HLT_L1FatEvents_v5, fragment.HLT_Random_HighRate_v1, fragment.HLT_ZeroBias_HighRate_v4, fragment.HLT_ZeroBias_Gated_v4, fragment.HLT_SpecialZeroBias_v6, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLowPtJet, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate0, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate1, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate2, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate3, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate4, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate5, fragment.Dataset_AlCaLumiPixelsCountsGated, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPSExpress, fragment.Dataset_AlCaPPSPrompt, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DQMPPSRandom, fragment.Dataset_DisplacedJet, fragment.Dataset_EGamma0, fragment.Dataset_EGamma1, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressCosmics, fragment.Dataset_ExpressPhysics, fragment.Dataset_HIDQMGPUvsCPU, fragment.Dataset_HIDQMOnlineBeamspot, fragment.Dataset_HIEmptyBX, fragment.Dataset_HIEphemeralHLTPhysics, fragment.Dataset_HIEphemeralZeroBias0, fragment.Dataset_HIEphemeralZeroBias1, fragment.Dataset_HIEventDisplay, fragment.Dataset_HIExpressAlignment, fragment.Dataset_HIExpressPhysics, fragment.Dataset_HIExpressPhysicsRawPrime, fragment.Dataset_HIForward0, fragment.Dataset_HIForward1, fragment.Dataset_HIForward2, fragment.Dataset_HIForward3, fragment.Dataset_HIForward4, fragment.Dataset_HIForward5, fragment.Dataset_HIForward6, fragment.Dataset_HIForward7, fragment.Dataset_HIForward8, fragment.Dataset_HIForward9, fragment.Dataset_HIForward10, fragment.Dataset_HIForward11, fragment.Dataset_HIForward12, fragment.Dataset_HIForward13, fragment.Dataset_HIForward14, fragment.Dataset_HIForward15, fragment.Dataset_HIForward16, fragment.Dataset_HIForward17, fragment.Dataset_HIForward18, fragment.Dataset_HIForward19, fragment.Dataset_HIHLTPhysics, fragment.Dataset_HIHcalNZS, fragment.Dataset_HIOnlineMonitor, fragment.Dataset_HIMinimumBias0, fragment.Dataset_HIMinimumBias1, fragment.Dataset_HIMinimumBias2, fragment.Dataset_HIMinimumBias3, fragment.Dataset_HIPhysicsRawPrime0, fragment.Dataset_HITrackerNZS, fragment.Dataset_HIZeroBias0, fragment.Dataset_HIZeroBias1, fragment.Dataset_HIZeroBias2, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_JetMET0, fragment.Dataset_JetMET1, fragment.Dataset_L1Accept, fragment.Dataset_MinimumBias, fragment.Dataset_MonteCarlo, fragment.Dataset_Muon0, fragment.Dataset_Muon1, fragment.Dataset_MuonEG, fragment.Dataset_MuonShower, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_PPRefDoubleMuon0, fragment.Dataset_PPRefDoubleMuon1, fragment.Dataset_PPRefDoubleMuon2, fragment.Dataset_PPRefDoubleMuon3, fragment.Dataset_PPRefHardProbes0, fragment.Dataset_PPRefSingleMuon0, fragment.Dataset_PPRefZeroBiasPlusForward0, fragment.Dataset_ParkingDoubleMuonLowMass0, fragment.Dataset_ParkingDoubleMuonLowMass1, fragment.Dataset_ParkingDoubleMuonLowMass2, fragment.Dataset_ParkingDoubleMuonLowMass3, fragment.Dataset_ParkingDoubleMuonLowMass4, fragment.Dataset_ParkingDoubleMuonLowMass5, fragment.Dataset_ParkingDoubleMuonLowMass6, fragment.Dataset_ParkingDoubleMuonLowMass7, fragment.Dataset_ParkingHH, fragment.Dataset_ParkingLLP, fragment.Dataset_ParkingSingleMuon0, fragment.Dataset_ParkingVBF0, fragment.Dataset_ParkingVBF1, fragment.Dataset_ParkingVBF2, fragment.Dataset_ParkingVBF3, fragment.Dataset_ParkingVBF4, fragment.Dataset_ParkingVBF5, fragment.Dataset_ParkingVBF6, fragment.Dataset_ParkingVBF7, fragment.Dataset_RPCMonitor, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_VRRandom0, fragment.Dataset_VRRandom1, fragment.Dataset_VRRandom2, fragment.Dataset_VRRandom3, fragment.Dataset_VRRandom4, fragment.Dataset_VRRandom5, fragment.Dataset_VRRandom6, fragment.Dataset_VRRandom7, fragment.Dataset_VRRandom8, fragment.Dataset_VRRandom9, fragment.Dataset_VRRandom10, fragment.Dataset_VRRandom11, fragment.Dataset_VRRandom12, fragment.Dataset_VRRandom13, fragment.Dataset_VRRandom14, fragment.Dataset_VRRandom15, fragment.Dataset_ZeroBias, fragment.ScoutingPFOutput, fragment.Dataset_SpecialRandom0, fragment.Dataset_SpecialRandom1, fragment.Dataset_SpecialRandom2, fragment.Dataset_SpecialRandom3, fragment.Dataset_SpecialRandom4, fragment.Dataset_SpecialRandom5, fragment.Dataset_SpecialRandom6, fragment.Dataset_SpecialRandom7, fragment.Dataset_SpecialRandom8, fragment.Dataset_SpecialRandom9, fragment.Dataset_SpecialRandom10, fragment.Dataset_SpecialRandom11, fragment.Dataset_SpecialRandom12, fragment.Dataset_SpecialRandom13, fragment.Dataset_SpecialRandom14, fragment.Dataset_SpecialRandom15, fragment.Dataset_SpecialRandom16, fragment.Dataset_SpecialRandom17, fragment.Dataset_SpecialRandom18, fragment.Dataset_SpecialRandom19, fragment.Dataset_SpecialZeroBias0, fragment.Dataset_SpecialZeroBias1, fragment.Dataset_SpecialZeroBias2, fragment.Dataset_SpecialZeroBias3, fragment.Dataset_SpecialZeroBias4, fragment.Dataset_SpecialZeroBias5, fragment.Dataset_SpecialZeroBias6, fragment.Dataset_SpecialZeroBias7, fragment.Dataset_SpecialZeroBias8, fragment.Dataset_SpecialZeroBias9, fragment.Dataset_SpecialZeroBias10, fragment.Dataset_SpecialZeroBias11, fragment.Dataset_SpecialZeroBias12, fragment.Dataset_SpecialZeroBias13, fragment.Dataset_SpecialZeroBias14, fragment.Dataset_SpecialZeroBias15, fragment.Dataset_SpecialZeroBias16, fragment.Dataset_SpecialZeroBias17, fragment.Dataset_SpecialZeroBias18, fragment.Dataset_SpecialZeroBias19, fragment.Dataset_SpecialZeroBias20, fragment.Dataset_SpecialZeroBias21, fragment.Dataset_SpecialZeroBias22, fragment.Dataset_SpecialZeroBias23, fragment.Dataset_SpecialZeroBias24, fragment.Dataset_SpecialZeroBias25, fragment.Dataset_SpecialZeroBias26, fragment.Dataset_SpecialZeroBias27, fragment.Dataset_SpecialZeroBias28, fragment.Dataset_SpecialZeroBias29, fragment.Dataset_SpecialZeroBias30, fragment.Dataset_SpecialZeroBias31, fragment.Dataset_SpecialHLTPhysics0, fragment.Dataset_SpecialHLTPhysics1, fragment.Dataset_SpecialHLTPhysics2, fragment.Dataset_SpecialHLTPhysics3, fragment.Dataset_SpecialHLTPhysics4, fragment.Dataset_SpecialHLTPhysics5, fragment.Dataset_SpecialHLTPhysics6, fragment.Dataset_SpecialHLTPhysics7, fragment.Dataset_SpecialHLTPhysics8, fragment.Dataset_SpecialHLTPhysics9, fragment.Dataset_SpecialHLTPhysics10, fragment.Dataset_SpecialHLTPhysics11, fragment.Dataset_SpecialHLTPhysics12, fragment.Dataset_SpecialHLTPhysics13, fragment.Dataset_SpecialHLTPhysics14, fragment.Dataset_SpecialHLTPhysics15, fragment.Dataset_SpecialHLTPhysics16, fragment.Dataset_SpecialHLTPhysics17, fragment.Dataset_SpecialHLTPhysics18, fragment.Dataset_SpecialHLTPhysics19, fragment.Dataset_ParkingSingleMuon1, fragment.Dataset_ParkingSingleMuon2, fragment.Dataset_ParkingSingleMuon3, fragment.Dataset_ParkingSingleMuon4, fragment.Dataset_ParkingSingleMuon5, fragment.Dataset_ParkingSingleMuon6, fragment.Dataset_ParkingSingleMuon7, fragment.Dataset_ParkingSingleMuon8, fragment.Dataset_ParkingSingleMuon9, fragment.Dataset_ParkingSingleMuon10, fragment.Dataset_ParkingSingleMuon11, fragment.Dataset_PPRefZeroBiasPlusForward1, fragment.Dataset_PPRefZeroBiasPlusForward2, fragment.Dataset_PPRefZeroBiasPlusForward3, fragment.Dataset_PPRefZeroBiasPlusForward4, fragment.Dataset_PPRefZeroBiasPlusForward5, fragment.Dataset_PPRefZeroBiasPlusForward6, fragment.Dataset_PPRefZeroBiasPlusForward7, fragment.Dataset_PPRefZeroBiasPlusForward8, fragment.Dataset_PPRefZeroBiasPlusForward9, fragment.Dataset_PPRefZeroBiasPlusForward10, fragment.Dataset_PPRefZeroBiasPlusForward11, fragment.Dataset_PPRefZeroBiasPlusForward12, fragment.Dataset_PPRefZeroBiasPlusForward13, fragment.Dataset_PPRefZeroBiasPlusForward14, fragment.Dataset_PPRefZeroBiasPlusForward15, fragment.Dataset_PPRefZeroBiasPlusForward16, fragment.Dataset_PPRefZeroBiasPlusForward17, fragment.Dataset_PPRefZeroBiasPlusForward18, fragment.Dataset_PPRefZeroBiasPlusForward19, fragment.Dataset_PPRefZeroBiasPlusForward20, fragment.Dataset_PPRefZeroBiasPlusForward21, fragment.Dataset_PPRefZeroBiasPlusForward22, fragment.Dataset_PPRefZeroBiasPlusForward23, fragment.Dataset_PPRefZeroBiasPlusForward24, fragment.Dataset_PPRefSingleMuon1, fragment.Dataset_PPRefSingleMuon2, fragment.Dataset_PPRefSingleMuon3, fragment.Dataset_PPRefHardProbes1, fragment.Dataset_PPRefHardProbes2, fragment.Dataset_PPRefHardProbes3, fragment.Dataset_PPRefHardProbes4, fragment.Dataset_HIPhysicsRawPrime1, fragment.Dataset_HIPhysicsRawPrime2, fragment.Dataset_HIPhysicsRawPrime3, fragment.Dataset_HIPhysicsRawPrime4, fragment.Dataset_HIPhysicsRawPrime5, fragment.Dataset_HIPhysicsRawPrime6, fragment.Dataset_HIPhysicsRawPrime7, fragment.Dataset_HIPhysicsRawPrime8, fragment.Dataset_HIPhysicsRawPrime9, fragment.Dataset_HIPhysicsRawPrime10, fragment.Dataset_HIPhysicsRawPrime11, fragment.Dataset_HIPhysicsRawPrime12, fragment.Dataset_HIPhysicsRawPrime13, fragment.Dataset_HIPhysicsRawPrime14, fragment.Dataset_HIPhysicsRawPrime15, fragment.Dataset_HIPhysicsRawPrime16, fragment.Dataset_HIPhysicsRawPrime17, fragment.Dataset_HIPhysicsRawPrime18, fragment.Dataset_HIPhysicsRawPrime19, fragment.Dataset_HIPhysicsRawPrime20, fragment.Dataset_HIPhysicsRawPrime21, fragment.Dataset_HIPhysicsRawPrime22, fragment.Dataset_HIPhysicsRawPrime23, fragment.Dataset_HIPhysicsRawPrime24, fragment.Dataset_HIPhysicsRawPrime25, fragment.Dataset_HIPhysicsRawPrime26, fragment.Dataset_HIPhysicsRawPrime27, fragment.Dataset_HIPhysicsRawPrime28, fragment.Dataset_HIPhysicsRawPrime29, fragment.Dataset_HIPhysicsRawPrime30, fragment.Dataset_HIPhysicsRawPrime31, fragment.Dataset_HIPhysicsRawPrime32, fragment.Dataset_HIPhysicsRawPrime33, fragment.Dataset_HIPhysicsRawPrime34, fragment.Dataset_HIPhysicsRawPrime35, fragment.Dataset_HIPhysicsRawPrime36, fragment.Dataset_HIPhysicsRawPrime37, fragment.Dataset_HIPhysicsRawPrime38, fragment.Dataset_HIPhysicsRawPrime39, fragment.Dataset_HIPhysicsRawPrime40, fragment.Dataset_HIPhysicsRawPrime41, fragment.Dataset_HIPhysicsRawPrime42, fragment.Dataset_HIPhysicsRawPrime43, fragment.Dataset_HIPhysicsRawPrime44, fragment.Dataset_HIPhysicsRawPrime45, fragment.Dataset_HIPhysicsRawPrime46, fragment.Dataset_HIPhysicsRawPrime47, fragment.Dataset_HIPhysicsRawPrime48, fragment.Dataset_HIPhysicsRawPrime49, fragment.Dataset_HIPhysicsRawPrime50, fragment.Dataset_HIPhysicsRawPrime51, fragment.Dataset_HIPhysicsRawPrime52, fragment.Dataset_HIPhysicsRawPrime53, fragment.Dataset_HIPhysicsRawPrime54, fragment.Dataset_HIPhysicsRawPrime55, fragment.Dataset_HIPhysicsRawPrime56, fragment.Dataset_HIPhysicsRawPrime57, fragment.Dataset_HIPhysicsRawPrime58, fragment.Dataset_HIPhysicsRawPrime59, )) # dummify hltGetConditions in cff's diff --git a/HLTrigger/Configuration/python/HLT_Fake1_cff.py b/HLTrigger/Configuration/python/HLT_Fake1_cff.py index 21c2608b33363..b497aa00b97c8 100644 --- a/HLTrigger/Configuration/python/HLT_Fake1_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake1_cff.py @@ -1,13 +1,13 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/Fake1 --cff --data --type Fake1 +# hltGetConfiguration /dev/CMSSW_14_2_0/Fake1 --cff --data --type Fake1 -# /dev/CMSSW_14_1_0/Fake1/V12 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/Fake1/V5 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Fake1/V12") + tableName = cms.string("/dev/CMSSW_14_2_0/Fake1/V5") ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/python/HLT_Fake2_cff.py b/HLTrigger/Configuration/python/HLT_Fake2_cff.py index 9a03544e0d111..9d69ca9df0965 100644 --- a/HLTrigger/Configuration/python/HLT_Fake2_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake2_cff.py @@ -1,13 +1,13 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/Fake2 --cff --data --type Fake2 +# hltGetConfiguration /dev/CMSSW_14_2_0/Fake2 --cff --data --type Fake2 -# /dev/CMSSW_14_1_0/Fake2/V12 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/Fake2/V5 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Fake2/V12") + tableName = cms.string("/dev/CMSSW_14_2_0/Fake2/V5") ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/python/HLT_Fake_cff.py b/HLTrigger/Configuration/python/HLT_Fake_cff.py index cc7f2ba430995..e73694ea54213 100644 --- a/HLTrigger/Configuration/python/HLT_Fake_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake_cff.py @@ -1,13 +1,13 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/Fake --cff --data --type Fake +# hltGetConfiguration /dev/CMSSW_14_2_0/Fake --cff --data --type Fake -# /dev/CMSSW_14_1_0/Fake/V12 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/Fake/V5 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Fake/V12") + tableName = cms.string("/dev/CMSSW_14_2_0/Fake/V5") ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/python/HLT_GRun_cff.py b/HLTrigger/Configuration/python/HLT_GRun_cff.py index 2109dd70b9fd2..f3db965b49b66 100644 --- a/HLTrigger/Configuration/python/HLT_GRun_cff.py +++ b/HLTrigger/Configuration/python/HLT_GRun_cff.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/GRun --cff --data --type GRun +# hltGetConfiguration /dev/CMSSW_14_2_0/GRun --cff --data --type GRun -# /dev/CMSSW_14_1_0/GRun/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/GRun/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/GRun/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/GRun/V10") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1859,9 +1859,12 @@ 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v23', 'HLT_HT550_DisplacedDijet60_Inclusive_v23', + 'HLT_IsoMu24_HLTTracking_v1', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1', 'HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13', @@ -8472,6 +8475,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -9050,6 +9054,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -9851,6 +9856,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -11883,6 +11889,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -12418,6 +12425,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter3IterL3FromL1MuonPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -13219,6 +13227,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -16792,7 +16801,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombinedUnseeded = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeedsUnseeded = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedUnseeded" ), @@ -20698,7 +20708,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombined = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeeds = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombined" ), @@ -31286,6 +31297,10 @@ DepTag = cms.VInputTag( 'hltMuonTkRelIsolationCut0p14Map' ), IsolatorPSet = cms.PSet( ) ) +fragment.hltPreIsoMu24HLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreIsoMu24eta2p1 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -33094,6 +33109,10 @@ MinPixHitsForDZ = cms.int32( 0 ), checkSC = cms.bool( False ) ) +fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZHLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZ = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -33275,6 +33294,10 @@ propagatorAny = cms.ESInputTag( "","SteppingHelixPropagatorAny" ), propagatorOpposite = cms.ESInputTag( "","hltESPSteppingHelixPropagatorOpposite" ) ) +fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8HLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8CaloJet30 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -70709,6 +70732,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PixelLessHitDoubletsForGlbDisplacedMuons = cms.EDProducer( "HitPairEDProducer", @@ -70950,6 +70974,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PixelLessHitDoubletsForDisplacedTkMuons = cms.EDProducer( "HitPairEDProducer", @@ -72364,6 +72389,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PFlowPixelLessHitDoubletsForTau = cms.EDProducer( "HitPairEDProducer", @@ -75418,6 +75444,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter1PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -75718,6 +75745,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter2PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -76637,6 +76665,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDisplacedhltIter4PFlowPixelLessHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -86104,9 +86133,12 @@ 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v23', 'HLT_HT550_DisplacedDijet60_Inclusive_v23', + 'HLT_IsoMu24_HLTTracking_v1', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1', 'HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13', @@ -88184,6 +88216,7 @@ fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGor + fragment.hltPreEle32WPTightGsfL1DoubleEG + fragment.HLTEle32L1DoubleEGWPTightGsfSequence + fragment.HLTEndSequence ) fragment.HLT_IsoMu20_v27 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu18 + fragment.hltPreIsoMu20 + fragment.hltL1fL1sMu18L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sMu18L1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu18L1Filtered0) + fragment.hltL3fL1sMu18L1f0L2f10QL3Filtered20Q + fragment.HLTMu20IsolationSequence + fragment.hltL3crIsoL1sMu18L1f0L2f10QL3f20QL3trkIsoFiltered + fragment.HLTEndSequence ) fragment.HLT_IsoMu24_v25 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu22 + fragment.hltPreIsoMu24 + fragment.hltL1fL1sMu22L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sSingleMu22L1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu22L1Filtered0) + fragment.hltL3fL1sSingleMu22L1f0L2f10QL3Filtered24Q + fragment.HLTMu24IsolationSequence + fragment.hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered + fragment.HLTEndSequence ) +fragment.HLT_IsoMu24_HLTTracking_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu22 + fragment.hltPreIsoMu24HLTTracking + fragment.hltL1fL1sMu22L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sSingleMu22L1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu22L1Filtered0) + fragment.hltL3fL1sSingleMu22L1f0L2f10QL3Filtered24Q + fragment.HLTMu24IsolationSequence + fragment.hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered + fragment.HLTIterativeTrackingIter02 + fragment.HLTEndSequence ) fragment.HLT_IsoMu24_eta2p1_v27 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu22 + fragment.hltPreIsoMu24eta2p1 + fragment.hltL1fL1sMu22erL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sSingleMu22erL1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu22erL1Filtered0) + fragment.hltL3fL1sSingleMu22erL1f0L2f10QL3Filtered24Q + fragment.HLTMu24Eta2p1IsolationSequence + fragment.hltL3crIsoL1sSingleMu22erL1f0L2f10QL3f24QL3trkIsoFiltered + fragment.HLTEndSequence ) fragment.HLT_IsoMu27_v28 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu22or25 + fragment.hltPreIsoMu27 + fragment.hltL1fL1sMu22or25L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sMu22or25L1f0L2Filtered10Q) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu22or25L1Filtered0) + fragment.hltL3fL1sMu22Or25L1f0L2f10QL3Filtered27Q + fragment.HLTMu27IsolationSequence + fragment.hltL3crIsoL1sMu22Or25L1f0L2f10QL3f27QL3trkIsoFiltered + fragment.HLTEndSequence ) fragment.HLT_UncorrectedJetE30_NoBPTX_v14 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sV0SingleJetC20NotBptxOR + fragment.hltPreUncorrectedJetE30NoBPTX + fragment.HLTStoppedHSCPLocalHcalReco + fragment.HLTStoppedHSCPJetSequence + fragment.hltStoppedHSCP1CaloJetEnergy30 + fragment.HLTEndSequence ) @@ -88209,11 +88242,13 @@ fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVL + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.HLTEndSequence ) fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu19TrkIsoVVLMu9TrkIsoVVL + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered9 + fragment.hltL3fL1DoubleMu155fFiltered19 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon199RelTrkIsoVVLFiltered + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZ + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.HLTEndSequence ) +fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZHLTTracking + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.HLTIterativeTrackingIter02 + fragment.HLTEndSequence ) fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZ + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered9 + fragment.hltL3fL1DoubleMu155fFiltered19 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon199RelTrkIsoVVLFiltered + fragment.hltDiMuon199RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8PFJet30 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleCaloJet10 + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets10 + fragment.hltSinglePFJet30 + fragment.HLTEndSequence ) fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZMass8 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered9 + fragment.hltL3fL1DoubleMu155fFiltered19 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon199RelTrkIsoVVLFiltered + fragment.hltDiMuon199RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon199Mass8Filtered + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass3p8Filtered + fragment.HLTEndSequence ) +fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8HLTTracking + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass3p8Filtered + fragment.HLTIterativeTrackingIter02 + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8CaloJet30 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleCaloJet30 + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8AK8PFJet30 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTAK8CaloJetsSequence + fragment.hltSingleCaloJet10AK8 + fragment.HLTAK8PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets10AK8 + fragment.hltSinglePFJet30AK8 + fragment.HLTEndSequence ) fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu125to157 + fragment.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8AK8CaloJet30 + fragment.hltL1fL1sDoubleMu155L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(fragment.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + fragment.hltL3fL1DoubleMu155fPreFiltered8 + fragment.hltL3fL1DoubleMu155fFiltered17 + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuon178RelTrkIsoVVLFiltered + fragment.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + fragment.hltDiMuon178Mass8Filtered + fragment.HLTAK8CaloJetsSequence + fragment.hltSingleCaloJet30AK8 + fragment.HLTEndSequence ) @@ -88928,7 +88963,7 @@ fragment.Dataset_ParkingSingleMuon11 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetParkingSingleMuon + fragment.hltPreDatasetParkingSingleMuon11 ) -fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_EcalEtaEBonly_v25, fragment.AlCa_EcalEtaEEonly_v25, fragment.AlCa_EcalPi0EBonly_v25, fragment.AlCa_EcalPi0EEonly_v25, fragment.AlCa_RPCMuonNormalisation_v23, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.AlCa_PFJet40_v32, fragment.AlCa_PFJet40_CPUOnly_v11, fragment.AlCa_AK8PFJet40_v27, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DST_ZeroBias_v11, fragment.DST_Physics_v16, fragment.DST_PFScouting_DoubleMuon_v6, fragment.DST_PFScouting_DoubleEG_v6, fragment.DST_PFScouting_JetHT_v6, fragment.DST_PFScouting_AXOVLoose_v4, fragment.DST_PFScouting_AXOLoose_v4, fragment.DST_PFScouting_AXONominal_v6, fragment.DST_PFScouting_AXOTight_v6, fragment.DST_PFScouting_AXOVTight_v4, fragment.DST_PFScouting_CICADAVLoose_v2, fragment.DST_PFScouting_CICADALoose_v2, fragment.DST_PFScouting_CICADAMedium_v2, fragment.DST_PFScouting_CICADATight_v2, fragment.DST_PFScouting_CICADAVTight_v2, fragment.DST_PFScouting_SingleMuon_v6, fragment.DST_PFScouting_SinglePhotonEB_v3, fragment.DST_PFScouting_ZeroBias_v4, fragment.HLT_EphemeralPhysics_v9, fragment.HLT_EphemeralZeroBias_v9, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Alignment_v8, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_IsolatedBunches_v12, fragment.HLT_ZeroBias_FirstBXAfterTrain_v10, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_ZeroBias_FirstCollisionInTrain_v11, fragment.HLT_ZeroBias_LastCollisionInTrain_v10, fragment.HLT_HT300_Beamspot_v23, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_PFJet40_GPUvsCPU_v7, fragment.HLT_AK8PFJet380_SoftDropMass30_v6, fragment.HLT_AK8PFJet400_SoftDropMass30_v6, fragment.HLT_AK8PFJet425_SoftDropMass30_v6, fragment.HLT_AK8PFJet450_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, fragment.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, fragment.HLT_CaloJet500_NoJetID_v22, fragment.HLT_CaloJet550_NoJetID_v17, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, fragment.HLT_DoubleEle25_CaloIdL_MW_v15, fragment.HLT_DoubleEle27_CaloIdL_MW_v15, fragment.HLT_DoubleEle33_CaloIdL_MW_v28, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v17, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v17, fragment.HLT_Mu37_TkMu27_v17, fragment.HLT_DoubleMu4_3_Bs_v27, fragment.HLT_DoubleMu4_3_Jpsi_v27, fragment.HLT_DoubleMu4_3_LowMass_v13, fragment.HLT_DoubleMu4_LowMass_Displaced_v13, fragment.HLT_Mu0_L1DoubleMu_v13, fragment.HLT_Mu4_L1DoubleMu_v13, fragment.HLT_DoubleMu2_Jpsi_LowPt_v6, fragment.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu3_Trk_Tau3mu_v24, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v27, fragment.HLT_Mu3_PFJet40_v28, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v22, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v22, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v13, fragment.HLT_Mu0_Barrel_v6, fragment.HLT_Mu0_Barrel_L1HP6_v3, fragment.HLT_Mu0_Barrel_L1HP7_v3, fragment.HLT_Mu0_Barrel_L1HP8_v4, fragment.HLT_Mu0_Barrel_L1HP9_v4, fragment.HLT_Mu0_Barrel_L1HP10_v6, fragment.HLT_Mu0_Barrel_L1HP11_v6, fragment.HLT_Mu0_Barrel_L1HP6_IP6_v3, fragment.HLT_Mu6_Barrel_L1HP7_IP6_v3, fragment.HLT_Mu7_Barrel_L1HP8_IP6_v4, fragment.HLT_Mu8_Barrel_L1HP9_IP6_v4, fragment.HLT_Mu9_Barrel_L1HP10_IP6_v6, fragment.HLT_Mu10_Barrel_L1HP11_IP6_v6, fragment.HLT_DoublePhoton33_CaloIdL_v17, fragment.HLT_DoublePhoton70_v17, fragment.HLT_DoublePhoton85_v25, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, fragment.HLT_Ele30_WPTight_Gsf_v11, fragment.HLT_Ele32_WPTight_Gsf_v25, fragment.HLT_Ele35_WPTight_Gsf_v19, fragment.HLT_Ele38_WPTight_Gsf_v19, fragment.HLT_Ele40_WPTight_Gsf_v19, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, fragment.HLT_IsoMu20_v27, fragment.HLT_IsoMu24_v25, fragment.HLT_IsoMu24_eta2p1_v27, fragment.HLT_IsoMu27_v28, fragment.HLT_UncorrectedJetE30_NoBPTX_v14, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v14, fragment.HLT_L1SingleMuCosmics_v8, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v15, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, fragment.HLT_L2Mu23NoVtx_2Cha_v10, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, fragment.HLT_DoubleL2Mu50_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, fragment.HLT_Mu30_TkMu0_Psi_v13, fragment.HLT_Mu30_TkMu0_Upsilon_v13, fragment.HLT_Mu25_TkMu0_Phi_v20, fragment.HLT_Mu15_v15, fragment.HLT_Mu20_v24, fragment.HLT_Mu27_v25, fragment.HLT_Mu50_v25, fragment.HLT_Mu55_v15, fragment.HLT_CascadeMu100_v13, fragment.HLT_HighPtTkMu100_v12, fragment.HLT_DiPFJetAve40_v26, fragment.HLT_DiPFJetAve60_v26, fragment.HLT_DiPFJetAve80_v26, fragment.HLT_DiPFJetAve140_v25, fragment.HLT_DiPFJetAve200_v25, fragment.HLT_DiPFJetAve260_v26, fragment.HLT_DiPFJetAve320_v26, fragment.HLT_DiPFJetAve400_v26, fragment.HLT_DiPFJetAve500_v26, fragment.HLT_DiPFJetAve60_HFJEC_v27, fragment.HLT_DiPFJetAve80_HFJEC_v29, fragment.HLT_DiPFJetAve100_HFJEC_v29, fragment.HLT_DiPFJetAve160_HFJEC_v28, fragment.HLT_DiPFJetAve220_HFJEC_v28, fragment.HLT_DiPFJetAve260_HFJEC_v11, fragment.HLT_DiPFJetAve300_HFJEC_v28, fragment.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, fragment.HLT_AK8PFJet40_v28, fragment.HLT_AK8PFJet60_v27, fragment.HLT_AK8PFJet80_v28, fragment.HLT_AK8PFJet140_v27, fragment.HLT_AK8PFJet200_v27, fragment.HLT_AK8PFJet260_v28, fragment.HLT_AK8PFJet320_v28, fragment.HLT_AK8PFJet400_v28, fragment.HLT_AK8PFJet450_v28, fragment.HLT_AK8PFJet500_v28, fragment.HLT_AK8PFJet550_v23, fragment.HLT_PFJet40_v33, fragment.HLT_PFJet60_v33, fragment.HLT_PFJet80_v33, fragment.HLT_PFJet110_v12, fragment.HLT_PFJet140_v31, fragment.HLT_PFJet200_v31, fragment.HLT_PFJet260_v32, fragment.HLT_PFJet320_v32, fragment.HLT_PFJet400_v32, fragment.HLT_PFJet450_v33, fragment.HLT_PFJet500_v33, fragment.HLT_PFJet550_v23, fragment.HLT_PFJetFwd40_v31, fragment.HLT_PFJetFwd60_v31, fragment.HLT_PFJetFwd80_v30, fragment.HLT_PFJetFwd140_v30, fragment.HLT_PFJetFwd200_v30, fragment.HLT_PFJetFwd260_v31, fragment.HLT_PFJetFwd320_v31, fragment.HLT_PFJetFwd400_v31, fragment.HLT_PFJetFwd450_v31, fragment.HLT_PFJetFwd500_v31, fragment.HLT_AK8PFJetFwd40_v27, fragment.HLT_AK8PFJetFwd60_v26, fragment.HLT_AK8PFJetFwd80_v26, fragment.HLT_AK8PFJetFwd140_v26, fragment.HLT_AK8PFJetFwd200_v26, fragment.HLT_AK8PFJetFwd260_v27, fragment.HLT_AK8PFJetFwd320_v27, fragment.HLT_AK8PFJetFwd400_v27, fragment.HLT_AK8PFJetFwd450_v27, fragment.HLT_AK8PFJetFwd500_v27, fragment.HLT_PFHT180_v29, fragment.HLT_PFHT250_v29, fragment.HLT_PFHT370_v29, fragment.HLT_PFHT430_v29, fragment.HLT_PFHT510_v29, fragment.HLT_PFHT590_v29, fragment.HLT_PFHT680_v29, fragment.HLT_PFHT780_v29, fragment.HLT_PFHT890_v29, fragment.HLT_PFHT1050_v30, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, fragment.HLT_PFMET120_PFMHT120_IDTight_v32, fragment.HLT_PFMET130_PFMHT130_IDTight_v32, fragment.HLT_PFMET140_PFMHT140_IDTight_v32, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, fragment.HLT_L1ETMHadSeeds_v10, fragment.HLT_CaloMHT90_v14, fragment.HLT_CaloMET90_NotCleaned_v14, fragment.HLT_CaloMET350_NotCleaned_v14, fragment.HLT_PFMET200_NotCleaned_v21, fragment.HLT_PFMET250_NotCleaned_v21, fragment.HLT_PFMET300_NotCleaned_v21, fragment.HLT_PFMET200_BeamHaloCleaned_v21, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, fragment.HLT_MET105_IsoTrk50_v19, fragment.HLT_MET120_IsoTrk50_v19, fragment.HLT_Mu12eta2p3_v13, fragment.HLT_Mu12eta2p3_PFJet40_v13, fragment.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Photon300_NoHE_v23, fragment.HLT_Mu8_TrkIsoVVL_v24, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, fragment.HLT_Mu17_TrkIsoVVL_v25, fragment.HLT_Mu19_TrkIsoVVL_v16, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v24, fragment.HLT_BTagMu_AK4Jet300_Mu5_v24, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v21, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, fragment.HLT_BTagMu_AK8Jet300_Mu5_v24, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, fragment.HLT_Photon33_v15, fragment.HLT_Photon50_v23, fragment.HLT_Photon75_v23, fragment.HLT_Photon90_v23, fragment.HLT_Photon120_v23, fragment.HLT_Photon150_v17, fragment.HLT_Photon175_v25, fragment.HLT_Photon200_v24, fragment.HLT_Photon45EB_v3, fragment.HLT_Photon40EB_v3, fragment.HLT_Photon50EB_v4, fragment.HLT_Photon30EB_TightID_TightIso_v12, fragment.HLT_Photon40EB_TightID_TightIso_v3, fragment.HLT_Photon45EB_TightID_TightIso_v3, fragment.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_v8, fragment.HLT_Photon55EB_TightID_TightIso_v4, fragment.HLT_Photon75EB_TightID_TightIso_v8, fragment.HLT_Photon90EB_TightID_TightIso_v8, fragment.HLT_Photon110EB_TightID_TightIso_v12, fragment.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon100EBHE10_v12, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v25, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, fragment.HLT_DiphotonMVA14p25_Mass90_v3, fragment.HLT_DiphotonMVA14p25_Tight_Mass90_v3, fragment.HLT_Photon35_TwoProngs35_v13, fragment.HLT_IsoMu24_TwoProngs35_v13, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_v20, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v20, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v17, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v19, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v20, fragment.HLT_Dimuon0_LowMass_v20, fragment.HLT_Dimuon0_LowMass_L1_4_v20, fragment.HLT_Dimuon0_LowMass_L1_TM530_v18, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, fragment.HLT_TripleMu_10_5_5_DZ_v22, fragment.HLT_TripleMu_12_10_5_v22, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, fragment.HLT_DoubleMu4_3_LowMass_SS_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v19, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v19, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, fragment.HLT_DoubleMu4_JpsiTrk_Bc_v12, fragment.HLT_DoubleMu43NoFiltersNoVtx_v14, fragment.HLT_DoubleMu48NoFiltersNoVtx_v14, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, fragment.HLT_Ele28_HighEta_SC20_Mass55_v23, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, fragment.HLT_Ele15_IsoVVVL_PFHT450_v28, fragment.HLT_Ele50_IsoVVVL_PFHT450_v28, fragment.HLT_Ele15_IsoVVVL_PFHT600_v32, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, fragment.HLT_Mu15_IsoVVVL_PFHT450_v27, fragment.HLT_Mu50_IsoVVVL_PFHT450_v27, fragment.HLT_Mu15_IsoVVVL_PFHT600_v31, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, fragment.HLT_Dimuon10_Upsilon_y1p4_v13, fragment.HLT_Dimuon12_Upsilon_y1p4_v14, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, fragment.HLT_Dimuon25_Jpsi_v26, fragment.HLT_Dimuon14_PsiPrime_v25, fragment.HLT_Dimuon14_PsiPrime_noCorrL1_v17, fragment.HLT_Dimuon18_PsiPrime_v26, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v18, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v18, fragment.HLT_Dimuon24_Phi_noCorrL1_v18, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v18, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, fragment.HLT_DoubleIsoMu20_eta2p1_v19, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, fragment.HLT_Mu8_v24, fragment.HLT_Mu17_v25, fragment.HLT_Mu19_v16, fragment.HLT_Mu17_Photon30_IsoCaloId_v18, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, fragment.HLT_PFHT400_SixPFJet32_v21, fragment.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, fragment.HLT_PFHT450_SixPFJet36_v20, fragment.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, fragment.HLT_PFHT350_v31, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, fragment.HLT_ECALHT800_v20, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, fragment.HLT_Photon20_HoverELoose_v20, fragment.HLT_Photon30_HoverELoose_v20, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, fragment.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, fragment.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, fragment.HLT_Mu18_Mu9_SameSign_v16, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, fragment.HLT_QuadPFJet103_88_75_15_v17, fragment.HLT_QuadPFJet105_88_76_15_v17, fragment.HLT_QuadPFJet111_90_80_15_v17, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, fragment.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, fragment.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, fragment.HLT_PFHT250_QuadPFJet25_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, fragment.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, fragment.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, fragment.HLT_QuadPFJet100_88_70_30_v10, fragment.HLT_QuadPFJet105_88_75_30_v9, fragment.HLT_QuadPFJet111_90_80_30_v9, fragment.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, fragment.HLT_AK8PFJet220_SoftDropMass40_v13, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_v13, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_Nch45_v6, fragment.HLT_AK8PFJet275_Nch40_v6, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, fragment.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, fragment.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, fragment.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu10NoVtx_2Cha_v9, fragment.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L3Mu10NoVtx_v10, fragment.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, fragment.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, fragment.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, fragment.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, fragment.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, fragment.HLT_L1Mu6HT240_v9, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, fragment.HLT_HT350_v7, fragment.HLT_HT425_v19, fragment.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v23, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v23, fragment.HLT_CaloMET60_DTCluster50_v11, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v11, fragment.HLT_L1MET_DTCluster50_v11, fragment.HLT_L1MET_DTClusterNoMB1S50_v11, fragment.HLT_CscCluster_Loose_v10, fragment.HLT_CscCluster_Medium_v10, fragment.HLT_CscCluster_Tight_v10, fragment.HLT_CscCluster50_Photon20Unseeded_v4, fragment.HLT_CscCluster50_Photon30Unseeded_v4, fragment.HLT_CscCluster100_Ele5_v4, fragment.HLT_CscCluster100_Mu5_v6, fragment.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, fragment.HLT_DoubleCscCluster75_v7, fragment.HLT_IsoTrk200_L1SingleMuShower_v4, fragment.HLT_IsoTrk400_L1SingleMuShower_v4, fragment.HLT_DoubleCscCluster100_v7, fragment.HLT_L1CSCShower_DTCluster50_v10, fragment.HLT_L1CSCShower_DTCluster75_v10, fragment.HLT_PFMET105_IsoTrk50_v13, fragment.HLT_L1SingleLLPJet_v7, fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, fragment.HLT_DiPhoton10Time1ns_v10, fragment.HLT_DiPhoton10Time1p2ns_v10, fragment.HLT_DiPhoton10Time1p4ns_v10, fragment.HLT_DiPhoton10Time1p6ns_v10, fragment.HLT_DiPhoton10Time1p8ns_v10, fragment.HLT_DiPhoton10Time2ns_v10, fragment.HLT_DiPhoton10_CaloIdL_v10, fragment.HLT_DoubleEle6p5_eta1p22_mMax6_v10, fragment.HLT_DoubleEle8_eta1p22_mMax6_v10, fragment.HLT_DoubleEle10_eta1p22_mMax6_v10, fragment.HLT_SingleEle8_v9, fragment.HLT_SingleEle8_SingleEGL1_v9, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Mu50_L1SingleMuShower_v11, fragment.HLT_IsoMu24_OneProng32_v9, fragment.HLT_Photon32_OneProng32_M50To105_v10, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1050_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1200_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_PFJet200_TimeLtNeg2p5ns_v10, fragment.HLT_PFJet200_TimeGt2p5ns_v10, fragment.HLT_Photon50_TimeLtNeg2p5ns_v7, fragment.HLT_Photon50_TimeGt2p5ns_v7, fragment.HLT_PPSMaxTracksPerArm1_v9, fragment.HLT_PPSMaxTracksPerRP4_v9, fragment.HLT_PPSRandom_v1, fragment.MC_ReducedIterativeTracking_v22, fragment.MC_AK4CaloJets_v19, fragment.MC_AK4CaloJetsFromPV_v18, fragment.MC_CaloHT_v18, fragment.MC_AK8CaloHT_v18, fragment.MC_CaloMHT_v18, fragment.MC_AK4PFJets_v29, fragment.MC_PFHT_v28, fragment.MC_AK8PFJets_v29, fragment.MC_AK8PFHT_v28, fragment.MC_CaloMET_v18, fragment.MC_CaloMET_JetIdCleaned_v19, fragment.MC_PFMET_v29, fragment.MC_PFMHT_v28, fragment.MC_AK4PFJetPNet_v5, fragment.MC_AK8PFJetPNet_v5, fragment.MC_Egamma_Open_v8, fragment.MC_Egamma_Open_Unseeded_v8, fragment.MC_Ele5_WPTight_Gsf_v18, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, fragment.MC_DoubleEle5_CaloIdL_MW_v26, fragment.MC_IsoMu_v27, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v23, fragment.MC_DoubleMuNoFiltersNoVtx_v17, fragment.MC_PFScouting_v6, fragment.HLT_L1AXOVTight_v4, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLowPtJet, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPSExpress, fragment.Dataset_AlCaPPSPrompt, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DQMPPSRandom, fragment.Dataset_DisplacedJet, fragment.Dataset_EGamma0, fragment.Dataset_EGamma1, fragment.Dataset_EcalLaser, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressPhysics, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_JetMET0, fragment.Dataset_JetMET1, fragment.Dataset_L1Accept, fragment.Dataset_MonteCarlo, fragment.Dataset_Muon0, fragment.Dataset_Muon1, fragment.Dataset_MuonEG, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_ParkingDoubleMuonLowMass0, fragment.Dataset_ParkingDoubleMuonLowMass1, fragment.Dataset_ParkingDoubleMuonLowMass2, fragment.Dataset_ParkingDoubleMuonLowMass3, fragment.Dataset_ParkingDoubleMuonLowMass4, fragment.Dataset_ParkingDoubleMuonLowMass5, fragment.Dataset_ParkingDoubleMuonLowMass6, fragment.Dataset_ParkingDoubleMuonLowMass7, fragment.Dataset_ParkingHH, fragment.Dataset_ParkingLLP, fragment.Dataset_ParkingSingleMuon0, fragment.Dataset_ParkingVBF0, fragment.Dataset_ParkingVBF1, fragment.Dataset_ParkingVBF2, fragment.Dataset_ParkingVBF3, fragment.Dataset_ParkingVBF4, fragment.Dataset_ParkingVBF5, fragment.Dataset_ParkingVBF6, fragment.Dataset_ParkingVBF7, fragment.Dataset_RPCMonitor, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.ScoutingPFOutput, fragment.Dataset_ParkingSingleMuon1, fragment.Dataset_ParkingSingleMuon2, fragment.Dataset_ParkingSingleMuon3, fragment.Dataset_ParkingSingleMuon4, fragment.Dataset_ParkingSingleMuon5, fragment.Dataset_ParkingSingleMuon6, fragment.Dataset_ParkingSingleMuon7, fragment.Dataset_ParkingSingleMuon8, fragment.Dataset_ParkingSingleMuon9, fragment.Dataset_ParkingSingleMuon10, fragment.Dataset_ParkingSingleMuon11, )) +fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_EcalEtaEBonly_v25, fragment.AlCa_EcalEtaEEonly_v25, fragment.AlCa_EcalPi0EBonly_v25, fragment.AlCa_EcalPi0EEonly_v25, fragment.AlCa_RPCMuonNormalisation_v23, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.AlCa_PFJet40_v32, fragment.AlCa_PFJet40_CPUOnly_v11, fragment.AlCa_AK8PFJet40_v27, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DST_ZeroBias_v11, fragment.DST_Physics_v16, fragment.DST_PFScouting_DoubleMuon_v6, fragment.DST_PFScouting_DoubleEG_v6, fragment.DST_PFScouting_JetHT_v6, fragment.DST_PFScouting_AXOVLoose_v4, fragment.DST_PFScouting_AXOLoose_v4, fragment.DST_PFScouting_AXONominal_v6, fragment.DST_PFScouting_AXOTight_v6, fragment.DST_PFScouting_AXOVTight_v4, fragment.DST_PFScouting_CICADAVLoose_v2, fragment.DST_PFScouting_CICADALoose_v2, fragment.DST_PFScouting_CICADAMedium_v2, fragment.DST_PFScouting_CICADATight_v2, fragment.DST_PFScouting_CICADAVTight_v2, fragment.DST_PFScouting_SingleMuon_v6, fragment.DST_PFScouting_SinglePhotonEB_v3, fragment.DST_PFScouting_ZeroBias_v4, fragment.HLT_EphemeralPhysics_v9, fragment.HLT_EphemeralZeroBias_v9, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Alignment_v8, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_IsolatedBunches_v12, fragment.HLT_ZeroBias_FirstBXAfterTrain_v10, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_ZeroBias_FirstCollisionInTrain_v11, fragment.HLT_ZeroBias_LastCollisionInTrain_v10, fragment.HLT_HT300_Beamspot_v23, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_PFJet40_GPUvsCPU_v7, fragment.HLT_AK8PFJet380_SoftDropMass30_v6, fragment.HLT_AK8PFJet400_SoftDropMass30_v6, fragment.HLT_AK8PFJet425_SoftDropMass30_v6, fragment.HLT_AK8PFJet450_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, fragment.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, fragment.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, fragment.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, fragment.HLT_CaloJet500_NoJetID_v22, fragment.HLT_CaloJet550_NoJetID_v17, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, fragment.HLT_DoubleEle25_CaloIdL_MW_v15, fragment.HLT_DoubleEle27_CaloIdL_MW_v15, fragment.HLT_DoubleEle33_CaloIdL_MW_v28, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v17, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v17, fragment.HLT_Mu37_TkMu27_v17, fragment.HLT_DoubleMu4_3_Bs_v27, fragment.HLT_DoubleMu4_3_Jpsi_v27, fragment.HLT_DoubleMu4_3_LowMass_v13, fragment.HLT_DoubleMu4_LowMass_Displaced_v13, fragment.HLT_Mu0_L1DoubleMu_v13, fragment.HLT_Mu4_L1DoubleMu_v13, fragment.HLT_DoubleMu2_Jpsi_LowPt_v6, fragment.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, fragment.HLT_DoubleMu3_Trk_Tau3mu_v24, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v27, fragment.HLT_Mu3_PFJet40_v28, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v22, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v22, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v13, fragment.HLT_Mu0_Barrel_v6, fragment.HLT_Mu0_Barrel_L1HP6_v3, fragment.HLT_Mu0_Barrel_L1HP7_v3, fragment.HLT_Mu0_Barrel_L1HP8_v4, fragment.HLT_Mu0_Barrel_L1HP9_v4, fragment.HLT_Mu0_Barrel_L1HP10_v6, fragment.HLT_Mu0_Barrel_L1HP11_v6, fragment.HLT_Mu0_Barrel_L1HP6_IP6_v3, fragment.HLT_Mu6_Barrel_L1HP7_IP6_v3, fragment.HLT_Mu7_Barrel_L1HP8_IP6_v4, fragment.HLT_Mu8_Barrel_L1HP9_IP6_v4, fragment.HLT_Mu9_Barrel_L1HP10_IP6_v6, fragment.HLT_Mu10_Barrel_L1HP11_IP6_v6, fragment.HLT_DoublePhoton33_CaloIdL_v17, fragment.HLT_DoublePhoton70_v17, fragment.HLT_DoublePhoton85_v25, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, fragment.HLT_Ele30_WPTight_Gsf_v11, fragment.HLT_Ele32_WPTight_Gsf_v25, fragment.HLT_Ele35_WPTight_Gsf_v19, fragment.HLT_Ele38_WPTight_Gsf_v19, fragment.HLT_Ele40_WPTight_Gsf_v19, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, fragment.HLT_IsoMu20_v27, fragment.HLT_IsoMu24_v25, fragment.HLT_IsoMu24_HLTTracking_v1, fragment.HLT_IsoMu24_eta2p1_v27, fragment.HLT_IsoMu27_v28, fragment.HLT_UncorrectedJetE30_NoBPTX_v14, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v14, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v14, fragment.HLT_L1SingleMuCosmics_v8, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v15, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, fragment.HLT_L2Mu23NoVtx_2Cha_v10, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, fragment.HLT_DoubleL2Mu50_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v11, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, fragment.HLT_Mu30_TkMu0_Psi_v13, fragment.HLT_Mu30_TkMu0_Upsilon_v13, fragment.HLT_Mu25_TkMu0_Phi_v20, fragment.HLT_Mu15_v15, fragment.HLT_Mu20_v24, fragment.HLT_Mu27_v25, fragment.HLT_Mu50_v25, fragment.HLT_Mu55_v15, fragment.HLT_CascadeMu100_v13, fragment.HLT_HighPtTkMu100_v12, fragment.HLT_DiPFJetAve40_v26, fragment.HLT_DiPFJetAve60_v26, fragment.HLT_DiPFJetAve80_v26, fragment.HLT_DiPFJetAve140_v25, fragment.HLT_DiPFJetAve200_v25, fragment.HLT_DiPFJetAve260_v26, fragment.HLT_DiPFJetAve320_v26, fragment.HLT_DiPFJetAve400_v26, fragment.HLT_DiPFJetAve500_v26, fragment.HLT_DiPFJetAve60_HFJEC_v27, fragment.HLT_DiPFJetAve80_HFJEC_v29, fragment.HLT_DiPFJetAve100_HFJEC_v29, fragment.HLT_DiPFJetAve160_HFJEC_v28, fragment.HLT_DiPFJetAve220_HFJEC_v28, fragment.HLT_DiPFJetAve260_HFJEC_v11, fragment.HLT_DiPFJetAve300_HFJEC_v28, fragment.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, fragment.HLT_AK8PFJet40_v28, fragment.HLT_AK8PFJet60_v27, fragment.HLT_AK8PFJet80_v28, fragment.HLT_AK8PFJet140_v27, fragment.HLT_AK8PFJet200_v27, fragment.HLT_AK8PFJet260_v28, fragment.HLT_AK8PFJet320_v28, fragment.HLT_AK8PFJet400_v28, fragment.HLT_AK8PFJet450_v28, fragment.HLT_AK8PFJet500_v28, fragment.HLT_AK8PFJet550_v23, fragment.HLT_PFJet40_v33, fragment.HLT_PFJet60_v33, fragment.HLT_PFJet80_v33, fragment.HLT_PFJet110_v12, fragment.HLT_PFJet140_v31, fragment.HLT_PFJet200_v31, fragment.HLT_PFJet260_v32, fragment.HLT_PFJet320_v32, fragment.HLT_PFJet400_v32, fragment.HLT_PFJet450_v33, fragment.HLT_PFJet500_v33, fragment.HLT_PFJet550_v23, fragment.HLT_PFJetFwd40_v31, fragment.HLT_PFJetFwd60_v31, fragment.HLT_PFJetFwd80_v30, fragment.HLT_PFJetFwd140_v30, fragment.HLT_PFJetFwd200_v30, fragment.HLT_PFJetFwd260_v31, fragment.HLT_PFJetFwd320_v31, fragment.HLT_PFJetFwd400_v31, fragment.HLT_PFJetFwd450_v31, fragment.HLT_PFJetFwd500_v31, fragment.HLT_AK8PFJetFwd40_v27, fragment.HLT_AK8PFJetFwd60_v26, fragment.HLT_AK8PFJetFwd80_v26, fragment.HLT_AK8PFJetFwd140_v26, fragment.HLT_AK8PFJetFwd200_v26, fragment.HLT_AK8PFJetFwd260_v27, fragment.HLT_AK8PFJetFwd320_v27, fragment.HLT_AK8PFJetFwd400_v27, fragment.HLT_AK8PFJetFwd450_v27, fragment.HLT_AK8PFJetFwd500_v27, fragment.HLT_PFHT180_v29, fragment.HLT_PFHT250_v29, fragment.HLT_PFHT370_v29, fragment.HLT_PFHT430_v29, fragment.HLT_PFHT510_v29, fragment.HLT_PFHT590_v29, fragment.HLT_PFHT680_v29, fragment.HLT_PFHT780_v29, fragment.HLT_PFHT890_v29, fragment.HLT_PFHT1050_v30, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, fragment.HLT_PFMET120_PFMHT120_IDTight_v32, fragment.HLT_PFMET130_PFMHT130_IDTight_v32, fragment.HLT_PFMET140_PFMHT140_IDTight_v32, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, fragment.HLT_L1ETMHadSeeds_v10, fragment.HLT_CaloMHT90_v14, fragment.HLT_CaloMET90_NotCleaned_v14, fragment.HLT_CaloMET350_NotCleaned_v14, fragment.HLT_PFMET200_NotCleaned_v21, fragment.HLT_PFMET250_NotCleaned_v21, fragment.HLT_PFMET300_NotCleaned_v21, fragment.HLT_PFMET200_BeamHaloCleaned_v21, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, fragment.HLT_MET105_IsoTrk50_v19, fragment.HLT_MET120_IsoTrk50_v19, fragment.HLT_Mu12eta2p3_v13, fragment.HLT_Mu12eta2p3_PFJet40_v13, fragment.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets40_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets100_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets200_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets350_PNetBTag_0p11_v6, fragment.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, fragment.HLT_Photon300_NoHE_v23, fragment.HLT_Mu8_TrkIsoVVL_v24, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, fragment.HLT_Mu17_TrkIsoVVL_v25, fragment.HLT_Mu19_TrkIsoVVL_v16, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v25, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v24, fragment.HLT_BTagMu_AK4Jet300_Mu5_v24, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v21, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, fragment.HLT_BTagMu_AK8Jet300_Mu5_v24, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, fragment.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, fragment.HLT_Photon33_v15, fragment.HLT_Photon50_v23, fragment.HLT_Photon75_v23, fragment.HLT_Photon90_v23, fragment.HLT_Photon120_v23, fragment.HLT_Photon150_v17, fragment.HLT_Photon175_v25, fragment.HLT_Photon200_v24, fragment.HLT_Photon45EB_v3, fragment.HLT_Photon40EB_v3, fragment.HLT_Photon50EB_v4, fragment.HLT_Photon30EB_TightID_TightIso_v12, fragment.HLT_Photon40EB_TightID_TightIso_v3, fragment.HLT_Photon45EB_TightID_TightIso_v3, fragment.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon50EB_TightID_TightIso_v8, fragment.HLT_Photon55EB_TightID_TightIso_v4, fragment.HLT_Photon75EB_TightID_TightIso_v8, fragment.HLT_Photon90EB_TightID_TightIso_v8, fragment.HLT_Photon110EB_TightID_TightIso_v12, fragment.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, fragment.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, fragment.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, fragment.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, fragment.HLT_Photon100EBHE10_v12, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v24, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v25, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, fragment.HLT_DiphotonMVA14p25_Mass90_v3, fragment.HLT_DiphotonMVA14p25_Tight_Mass90_v3, fragment.HLT_Photon35_TwoProngs35_v13, fragment.HLT_IsoMu24_TwoProngs35_v13, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, fragment.HLT_Dimuon0_Jpsi_v20, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v20, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v17, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v19, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v20, fragment.HLT_Dimuon0_LowMass_v20, fragment.HLT_Dimuon0_LowMass_L1_4_v20, fragment.HLT_Dimuon0_LowMass_L1_TM530_v18, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, fragment.HLT_TripleMu_10_5_5_DZ_v22, fragment.HLT_TripleMu_12_10_5_v22, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, fragment.HLT_DoubleMu4_3_LowMass_SS_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v19, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v19, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, fragment.HLT_DoubleMu4_JpsiTrk_Bc_v12, fragment.HLT_DoubleMu43NoFiltersNoVtx_v14, fragment.HLT_DoubleMu48NoFiltersNoVtx_v14, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, fragment.HLT_Ele28_HighEta_SC20_Mass55_v23, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, fragment.HLT_Ele15_IsoVVVL_PFHT450_v28, fragment.HLT_Ele50_IsoVVVL_PFHT450_v28, fragment.HLT_Ele15_IsoVVVL_PFHT600_v32, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, fragment.HLT_Mu15_IsoVVVL_PFHT450_v27, fragment.HLT_Mu50_IsoVVVL_PFHT450_v27, fragment.HLT_Mu15_IsoVVVL_PFHT600_v31, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, fragment.HLT_Dimuon10_Upsilon_y1p4_v13, fragment.HLT_Dimuon12_Upsilon_y1p4_v14, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, fragment.HLT_Dimuon25_Jpsi_v26, fragment.HLT_Dimuon14_PsiPrime_v25, fragment.HLT_Dimuon14_PsiPrime_noCorrL1_v17, fragment.HLT_Dimuon18_PsiPrime_v26, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v18, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v18, fragment.HLT_Dimuon24_Phi_noCorrL1_v18, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v18, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, fragment.HLT_DoubleIsoMu20_eta2p1_v19, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, fragment.HLT_Mu8_v24, fragment.HLT_Mu17_v25, fragment.HLT_Mu19_v16, fragment.HLT_Mu17_Photon30_IsoCaloId_v18, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, fragment.HLT_PFHT400_SixPFJet32_v21, fragment.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, fragment.HLT_PFHT450_SixPFJet36_v20, fragment.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, fragment.HLT_PFHT350_v31, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, fragment.HLT_ECALHT800_v20, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, fragment.HLT_Photon20_HoverELoose_v20, fragment.HLT_Photon30_HoverELoose_v20, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, fragment.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, fragment.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, fragment.HLT_Mu18_Mu9_SameSign_v16, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, fragment.HLT_QuadPFJet103_88_75_15_v17, fragment.HLT_QuadPFJet105_88_76_15_v17, fragment.HLT_QuadPFJet111_90_80_15_v17, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, fragment.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, fragment.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, fragment.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, fragment.HLT_PFHT250_QuadPFJet25_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, fragment.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, fragment.HLT_PFHT280_QuadPFJet30_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, fragment.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, fragment.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, fragment.HLT_QuadPFJet100_88_70_30_v10, fragment.HLT_QuadPFJet105_88_75_30_v9, fragment.HLT_QuadPFJet111_90_80_30_v9, fragment.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, fragment.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, fragment.HLT_AK8PFJet220_SoftDropMass40_v13, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, fragment.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_v13, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, fragment.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, fragment.HLT_AK8PFJet275_Nch45_v6, fragment.HLT_AK8PFJet275_Nch40_v6, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, fragment.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, fragment.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, fragment.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, fragment.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, fragment.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, fragment.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, fragment.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, fragment.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, fragment.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu10NoVtx_2Cha_v9, fragment.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L3Mu10NoVtx_v10, fragment.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, fragment.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, fragment.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, fragment.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, fragment.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, fragment.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, fragment.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, fragment.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, fragment.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, fragment.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, fragment.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, fragment.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, fragment.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, fragment.HLT_L1Mu6HT240_v9, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, fragment.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, fragment.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, fragment.HLT_HT350_v7, fragment.HLT_HT425_v19, fragment.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v23, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v23, fragment.HLT_CaloMET60_DTCluster50_v11, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v11, fragment.HLT_L1MET_DTCluster50_v11, fragment.HLT_L1MET_DTClusterNoMB1S50_v11, fragment.HLT_CscCluster_Loose_v10, fragment.HLT_CscCluster_Medium_v10, fragment.HLT_CscCluster_Tight_v10, fragment.HLT_CscCluster50_Photon20Unseeded_v4, fragment.HLT_CscCluster50_Photon30Unseeded_v4, fragment.HLT_CscCluster100_Ele5_v4, fragment.HLT_CscCluster100_Mu5_v6, fragment.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, fragment.HLT_DoubleCscCluster75_v7, fragment.HLT_IsoTrk200_L1SingleMuShower_v4, fragment.HLT_IsoTrk400_L1SingleMuShower_v4, fragment.HLT_DoubleCscCluster100_v7, fragment.HLT_L1CSCShower_DTCluster50_v10, fragment.HLT_L1CSCShower_DTCluster75_v10, fragment.HLT_PFMET105_IsoTrk50_v13, fragment.HLT_L1SingleLLPJet_v7, fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, fragment.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, fragment.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, fragment.HLT_DiPhoton10Time1ns_v10, fragment.HLT_DiPhoton10Time1p2ns_v10, fragment.HLT_DiPhoton10Time1p4ns_v10, fragment.HLT_DiPhoton10Time1p6ns_v10, fragment.HLT_DiPhoton10Time1p8ns_v10, fragment.HLT_DiPhoton10Time2ns_v10, fragment.HLT_DiPhoton10_CaloIdL_v10, fragment.HLT_DoubleEle6p5_eta1p22_mMax6_v10, fragment.HLT_DoubleEle8_eta1p22_mMax6_v10, fragment.HLT_DoubleEle10_eta1p22_mMax6_v10, fragment.HLT_SingleEle8_v9, fragment.HLT_SingleEle8_SingleEGL1_v9, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, fragment.HLT_Mu50_L1SingleMuShower_v11, fragment.HLT_IsoMu24_OneProng32_v9, fragment.HLT_Photon32_OneProng32_M50To105_v10, fragment.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1050_v8, fragment.HLT_VBF_DiPFJet125_45_Mjj1200_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, fragment.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, fragment.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, fragment.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, fragment.HLT_PFJet200_TimeLtNeg2p5ns_v10, fragment.HLT_PFJet200_TimeGt2p5ns_v10, fragment.HLT_Photon50_TimeLtNeg2p5ns_v7, fragment.HLT_Photon50_TimeGt2p5ns_v7, fragment.HLT_PPSMaxTracksPerArm1_v9, fragment.HLT_PPSMaxTracksPerRP4_v9, fragment.HLT_PPSRandom_v1, fragment.MC_ReducedIterativeTracking_v22, fragment.MC_AK4CaloJets_v19, fragment.MC_AK4CaloJetsFromPV_v18, fragment.MC_CaloHT_v18, fragment.MC_AK8CaloHT_v18, fragment.MC_CaloMHT_v18, fragment.MC_AK4PFJets_v29, fragment.MC_PFHT_v28, fragment.MC_AK8PFJets_v29, fragment.MC_AK8PFHT_v28, fragment.MC_CaloMET_v18, fragment.MC_CaloMET_JetIdCleaned_v19, fragment.MC_PFMET_v29, fragment.MC_PFMHT_v28, fragment.MC_AK4PFJetPNet_v5, fragment.MC_AK8PFJetPNet_v5, fragment.MC_Egamma_Open_v8, fragment.MC_Egamma_Open_Unseeded_v8, fragment.MC_Ele5_WPTight_Gsf_v18, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, fragment.MC_DoubleEle5_CaloIdL_MW_v26, fragment.MC_IsoMu_v27, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v23, fragment.MC_DoubleMuNoFiltersNoVtx_v17, fragment.MC_PFScouting_v6, fragment.HLT_L1AXOVTight_v4, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLowPtJet, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPSExpress, fragment.Dataset_AlCaPPSPrompt, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DQMPPSRandom, fragment.Dataset_DisplacedJet, fragment.Dataset_EGamma0, fragment.Dataset_EGamma1, fragment.Dataset_EcalLaser, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressPhysics, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_JetMET0, fragment.Dataset_JetMET1, fragment.Dataset_L1Accept, fragment.Dataset_MonteCarlo, fragment.Dataset_Muon0, fragment.Dataset_Muon1, fragment.Dataset_MuonEG, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_ParkingDoubleMuonLowMass0, fragment.Dataset_ParkingDoubleMuonLowMass1, fragment.Dataset_ParkingDoubleMuonLowMass2, fragment.Dataset_ParkingDoubleMuonLowMass3, fragment.Dataset_ParkingDoubleMuonLowMass4, fragment.Dataset_ParkingDoubleMuonLowMass5, fragment.Dataset_ParkingDoubleMuonLowMass6, fragment.Dataset_ParkingDoubleMuonLowMass7, fragment.Dataset_ParkingHH, fragment.Dataset_ParkingLLP, fragment.Dataset_ParkingSingleMuon0, fragment.Dataset_ParkingVBF0, fragment.Dataset_ParkingVBF1, fragment.Dataset_ParkingVBF2, fragment.Dataset_ParkingVBF3, fragment.Dataset_ParkingVBF4, fragment.Dataset_ParkingVBF5, fragment.Dataset_ParkingVBF6, fragment.Dataset_ParkingVBF7, fragment.Dataset_RPCMonitor, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.ScoutingPFOutput, fragment.Dataset_ParkingSingleMuon1, fragment.Dataset_ParkingSingleMuon2, fragment.Dataset_ParkingSingleMuon3, fragment.Dataset_ParkingSingleMuon4, fragment.Dataset_ParkingSingleMuon5, fragment.Dataset_ParkingSingleMuon6, fragment.Dataset_ParkingSingleMuon7, fragment.Dataset_ParkingSingleMuon8, fragment.Dataset_ParkingSingleMuon9, fragment.Dataset_ParkingSingleMuon10, fragment.Dataset_ParkingSingleMuon11, )) # dummify hltGetConditions in cff's diff --git a/HLTrigger/Configuration/python/HLT_HIon_cff.py b/HLTrigger/Configuration/python/HLT_HIon_cff.py index 23241ec49b5e8..f023180a32cb6 100644 --- a/HLTrigger/Configuration/python/HLT_HIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_HIon_cff.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/HIon --cff --data --type HIon +# hltGetConfiguration /dev/CMSSW_14_2_0/HIon --cff --data --type HIon -# /dev/CMSSW_14_1_0/HIon/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/HIon/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/HIon/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/HIon/V10") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -13568,6 +13568,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksPPOnAASoA" ) @@ -13641,6 +13642,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksPPOnAASoASerialSync" ) @@ -16836,6 +16838,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter0PixelHitDoubletsPreSplittingPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -16989,7 +16992,12 @@ forceYError = cms.double( 150.0 ), fractionalWidth = cms.double( 0.4 ), chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) + centralMIPCharge = cms.double( 26000.0 ), + expSizeXAtLorentzAngleIncidence = cms.double( 1.5 ), + expSizeXDeltaPerTanAlpha = cms.double( 0.0 ), + expSizeYAtNormalIncidence = cms.double( 1.3 ), + tanLorentzAngle = cms.double( 0.0 ), + tanLorentzAngleBarrelLayer1 = cms.double( 0.0 ) ) fragment.hltSiPixelClustersCacheAfterSplittingPPOnAA = cms.EDProducer( "SiPixelClusterShapeCacheProducer", src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), @@ -17089,6 +17097,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter0PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -17320,6 +17329,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter1PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -17651,6 +17661,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter2PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -17886,6 +17897,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -20737,7 +20749,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombinedPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsPPOnAA','hltElePixelSeedsTripletsPPOnAA' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsPPOnAA','hltElePixelSeedsTripletsPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeedsPPOnAA = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedPPOnAA" ), @@ -22890,6 +22903,7 @@ MaxNumberOfPixelClusters = cms.uint32( 10000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( True ) ) fragment.hltPixelTracksHitDoubletsLowPtForUPCPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -27121,6 +27135,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter0PixelHitDoubletsPreSplittingPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -27274,7 +27289,12 @@ forceYError = cms.double( 150.0 ), fractionalWidth = cms.double( 0.4 ), chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) + centralMIPCharge = cms.double( 26000.0 ), + expSizeXAtLorentzAngleIncidence = cms.double( 1.5 ), + expSizeXDeltaPerTanAlpha = cms.double( 0.0 ), + expSizeYAtNormalIncidence = cms.double( 1.3 ), + tanLorentzAngle = cms.double( 0.0 ), + tanLorentzAngleBarrelLayer1 = cms.double( 0.0 ) ) fragment.hltSiPixelClustersCacheAfterSplittingPPOnAAForDmeson = cms.EDProducer( "SiPixelClusterShapeCacheProducer", src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), @@ -27347,6 +27367,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter0PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -27578,6 +27599,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter1PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -27782,6 +27804,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter2PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -27984,6 +28007,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter3PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -28181,6 +28205,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter7MixedHitDoubletsAPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -28323,7 +28348,8 @@ ) ) fragment.hltFullIter7MixedSeedsPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPOnAA','hltFullIter7MixedSeedsBPPOnAA' ) + seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPOnAA','hltFullIter7MixedSeedsBPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltFullIter7CkfTrackCandidatesPPOnAA = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -28524,6 +28550,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter8PixelLessHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -28737,6 +28764,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltFullIter9TobTecHitDoubletsTriplPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -28923,7 +28951,8 @@ ) ) fragment.hltFullIter9TobTecSeedsPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPOnAA','hltFullIter9TobTecSeedsPairPPOnAA' ) + seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPOnAA','hltFullIter9TobTecSeedsPairPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltFullIter9CkfTrackCandidatesPPOnAA = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), diff --git a/HLTrigger/Configuration/python/HLT_PIon_cff.py b/HLTrigger/Configuration/python/HLT_PIon_cff.py index aa1b7a4168630..e91f92f80f5d6 100644 --- a/HLTrigger/Configuration/python/HLT_PIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_PIon_cff.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/PIon --cff --data --type PIon +# hltGetConfiguration /dev/CMSSW_14_2_0/PIon --cff --data --type PIon -# /dev/CMSSW_14_1_0/PIon/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/PIon/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/PIon/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/PIon/V10") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( diff --git a/HLTrigger/Configuration/python/HLT_PRef_cff.py b/HLTrigger/Configuration/python/HLT_PRef_cff.py index 078e15c0cb35b..26371b675e92a 100644 --- a/HLTrigger/Configuration/python/HLT_PRef_cff.py +++ b/HLTrigger/Configuration/python/HLT_PRef_cff.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/PRef --cff --data --type PRef +# hltGetConfiguration /dev/CMSSW_14_2_0/PRef --cff --data --type PRef -# /dev/CMSSW_14_1_0/PRef/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/PRef/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/PRef/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/PRef/V10") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -5458,6 +5458,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -5532,6 +5533,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -7893,6 +7895,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -8694,6 +8697,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -11886,7 +11890,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) fragment.hltElePixelSeedsCombined = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ), + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltEgammaElectronPixelSeeds = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombined" ), diff --git a/HLTrigger/Configuration/python/HLT_Special_cff.py b/HLTrigger/Configuration/python/HLT_Special_cff.py index 7993bf7df81c0..d02a0b3d2b28a 100644 --- a/HLTrigger/Configuration/python/HLT_Special_cff.py +++ b/HLTrigger/Configuration/python/HLT_Special_cff.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/Special --cff --data --type Special +# hltGetConfiguration /dev/CMSSW_14_2_0/Special --cff --data --type Special -# /dev/CMSSW_14_1_0/Special/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/Special/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ fragment.load("Configuration.StandardSequences.Accelerators_cff") fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Special/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/Special/V10") ) fragment.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1503,6 +1503,22 @@ 'SpecialZeroBias17' ), PhysicsSpecialZeroBias9 = cms.vstring( 'SpecialZeroBias18', 'SpecialZeroBias19' ), + PhysicsVRRandom0 = cms.vstring( 'VRRandom0', + 'VRRandom1' ), + PhysicsVRRandom1 = cms.vstring( 'VRRandom2', + 'VRRandom3' ), + PhysicsVRRandom2 = cms.vstring( 'VRRandom4', + 'VRRandom5' ), + PhysicsVRRandom3 = cms.vstring( 'VRRandom6', + 'VRRandom7' ), + PhysicsVRRandom4 = cms.vstring( 'VRRandom8', + 'VRRandom9' ), + PhysicsVRRandom5 = cms.vstring( 'VRRandom10', + 'VRRandom11' ), + PhysicsVRRandom6 = cms.vstring( 'VRRandom12', + 'VRRandom13' ), + PhysicsVRRandom7 = cms.vstring( 'VRRandom14', + 'VRRandom15' ), RPCMON = cms.vstring( 'RPCMonitor' ) ) fragment.datasets = cms.PSet( @@ -1865,6 +1881,22 @@ 'HLT_HcalCalibration_v6' ), TestEnablesEcalHcalDQM = cms.vstring( 'HLT_EcalCalibration_v4', 'HLT_HcalCalibration_v6' ), + VRRandom0 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom1 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom10 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom11 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom12 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom13 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom14 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom15 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom2 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom3 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom4 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom5 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom6 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom7 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom8 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom9 = cms.vstring( 'HLT_Random_HighRate_v1' ), ZeroBias = cms.vstring( 'HLT_Random_v3', 'HLT_ZeroBias_Alignment_v8', 'HLT_ZeroBias_FirstBXAfterTrain_v10', @@ -4985,6 +5017,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -5059,6 +5092,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -7436,6 +7470,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -8237,6 +8272,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) fragment.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -10739,6 +10775,22 @@ fragment.hltCombinatorialcosmicseedfinderP5 = cms.EDProducer( "CtfSpecialSeedGenerator", SeedMomentum = cms.double( 5.0 ), ErrorRescaling = cms.double( 50.0 ), + UseScintillatorsConstraint = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + SeedsFromPositiveY = cms.bool( True ), + SeedsFromNegativeY = cms.bool( False ), + CheckHitsAreOnDifferentLayers = cms.bool( False ), + SetMomentum = cms.bool( True ), + requireBOFF = cms.bool( True ), + maxSeeds = cms.int32( 10000 ), + doClusterCheck = cms.bool( True ), + MaxNumberOfStripClusters = cms.uint32( 300 ), + ClusterCollectionLabel = cms.InputTag( "hltFullSiStripRawToClustersFacility" ), + MaxNumberOfPixelClusters = cms.uint32( 1000 ), + PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), + cut = cms.string( "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), + DontCountDetsAboveNClusters = cms.uint32( 20 ), + Charges = cms.vint32( -1 ), RegionFactoryPSet = cms.PSet( RegionPSet = cms.PSet( ptMin = cms.double( 0.9 ), @@ -10752,7 +10804,20 @@ ), ComponentName = cms.string( "GlobalRegionProducer" ) ), - Charges = cms.vint32( -1 ), + UpperScintillatorParameters = cms.PSet( + WidthInX = cms.double( 100.0 ), + GlobalX = cms.double( 0.0 ), + GlobalY = cms.double( 300.0 ), + GlobalZ = cms.double( 50.0 ), + LenghtInZ = cms.double( 100.0 ) + ), + LowerScintillatorParameters = cms.PSet( + WidthInX = cms.double( 100.0 ), + GlobalX = cms.double( 0.0 ), + GlobalY = cms.double( -100.0 ), + GlobalZ = cms.double( 50.0 ), + LenghtInZ = cms.double( 100.0 ) + ), OrderedHitsFactoryPSets = cms.VPSet( cms.PSet( LayerSrc = cms.InputTag( "hltCombinatorialcosmicseedingtripletsP5" ), NavigationDirection = cms.string( "outsideIn" ), @@ -10784,40 +10849,11 @@ PropagationDirection = cms.string( "alongMomentum" ), ComponentName = cms.string( "GenericPairGenerator" ) ) - ), - UseScintillatorsConstraint = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - SeedsFromPositiveY = cms.bool( True ), - SeedsFromNegativeY = cms.bool( False ), - doClusterCheck = cms.bool( True ), - ClusterCollectionLabel = cms.InputTag( "hltFullSiStripRawToClustersFacility" ), - MaxNumberOfStripClusters = cms.uint32( 300 ), - MaxNumberOfPixelClusters = cms.uint32( 1000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), - CheckHitsAreOnDifferentLayers = cms.bool( False ), - SetMomentum = cms.bool( True ), - requireBOFF = cms.bool( True ), - maxSeeds = cms.int32( 10000 ), - DontCountDetsAboveNClusters = cms.untracked.uint32( 20 ), - UpperScintillatorParameters = cms.PSet( - WidthInX = cms.double( 100.0 ), - GlobalX = cms.double( 0.0 ), - GlobalY = cms.double( 300.0 ), - GlobalZ = cms.double( 50.0 ), - LenghtInZ = cms.double( 100.0 ) - ), - LowerScintillatorParameters = cms.PSet( - WidthInX = cms.double( 100.0 ), - GlobalX = cms.double( 0.0 ), - GlobalY = cms.double( -100.0 ), - GlobalZ = cms.double( 50.0 ), - LenghtInZ = cms.double( 100.0 ) ) ) fragment.hltCombinedP5SeedsForCTF = cms.EDProducer( "SeedCombiner", seedCollections = cms.VInputTag( 'hltCombinatorialcosmicseedfinderP5','hltSimpleCosmicBONSeeds' ), - PairCollection = cms.untracked.InputTag( "hltCombinatorialcosmicseedfinderP5" ), - TripletCollection = cms.untracked.InputTag( "hltSimpleCosmicBONSeeds" ) + clusterRemovalInfos = cms.VInputTag( ) ) fragment.hltCkfTrackCandidatesP5 = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -11512,6 +11548,78 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +fragment.hltDatasetVRRandom = cms.EDFilter( "TriggerResultsFilter", + usePathStatus = cms.bool( True ), + hltResults = cms.InputTag( "" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMaskAndPrescale = cms.bool( False ), + throw = cms.bool( True ), + triggerConditions = cms.vstring( 'HLT_Random_HighRate_v1' ) +) +fragment.hltPreDatasetVRRandom0 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom1 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 1 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom2 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 2 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom3 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 3 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom4 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 4 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 5 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom6 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 6 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom7 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 7 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom8 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 8 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom9 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 9 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom10 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 10 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom11 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 11 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom12 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 12 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom13 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 13 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom14 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 14 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreDatasetVRRandom15 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 15 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltDatasetZeroBias = cms.EDFilter( "TriggerResultsFilter", usePathStatus = cms.bool( True ), hltResults = cms.InputTag( "" ), @@ -12047,6 +12155,22 @@ fragment.Dataset_RPCMonitor = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetRPCMonitor + fragment.hltPreDatasetRPCMonitor ) fragment.Dataset_TestEnablesEcalHcal = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetTestEnablesEcalHcal + fragment.hltPreDatasetTestEnablesEcalHcal ) fragment.Dataset_TestEnablesEcalHcalDQM = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetTestEnablesEcalHcalDQM + fragment.hltPreDatasetTestEnablesEcalHcalDQM ) +fragment.Dataset_VRRandom0 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom0 ) +fragment.Dataset_VRRandom1 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom1 ) +fragment.Dataset_VRRandom2 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom2 ) +fragment.Dataset_VRRandom3 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom3 ) +fragment.Dataset_VRRandom4 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom4 ) +fragment.Dataset_VRRandom5 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom5 ) +fragment.Dataset_VRRandom6 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom6 ) +fragment.Dataset_VRRandom7 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom7 ) +fragment.Dataset_VRRandom8 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom8 ) +fragment.Dataset_VRRandom9 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom9 ) +fragment.Dataset_VRRandom10 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom10 ) +fragment.Dataset_VRRandom11 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom11 ) +fragment.Dataset_VRRandom12 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom12 ) +fragment.Dataset_VRRandom13 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom13 ) +fragment.Dataset_VRRandom14 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom14 ) +fragment.Dataset_VRRandom15 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetVRRandom + fragment.hltPreDatasetVRRandom15 ) fragment.Dataset_ZeroBias = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetZeroBias + fragment.hltPreDatasetZeroBias ) fragment.Dataset_SpecialRandom0 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetSpecialRandom + fragment.hltPreDatasetSpecialRandom0 ) fragment.Dataset_SpecialRandom1 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetSpecialRandom + fragment.hltPreDatasetSpecialRandom1 ) @@ -12122,7 +12246,7 @@ fragment.Dataset_SpecialHLTPhysics19 = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetSpecialHLTPhysics + fragment.hltPreDatasetSpecialHLTPhysics19 ) -fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_EcalEtaEBonly_v25, fragment.AlCa_EcalEtaEEonly_v25, fragment.AlCa_EcalPi0EBonly_v25, fragment.AlCa_EcalPi0EEonly_v25, fragment.AlCa_RPCMuonNormalisation_v23, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DQM_Random_v1, fragment.DQM_ZeroBias_v3, fragment.DST_ZeroBias_v11, fragment.DST_Physics_v16, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Alignment_v8, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_IsolatedBunches_v12, fragment.HLT_ZeroBias_FirstBXAfterTrain_v10, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_ZeroBias_FirstCollisionInTrain_v11, fragment.HLT_ZeroBias_LastCollisionInTrain_v10, fragment.HLT_HT300_Beamspot_v23, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_L1SingleMuCosmics_v8, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v15, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_PPSMaxTracksPerArm1_v9, fragment.HLT_PPSMaxTracksPerRP4_v9, fragment.HLT_PPSRandom_v1, fragment.HLT_SpecialHLTPhysics_v7, fragment.AlCa_LumiPixelsCounts_RandomHighRate_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, fragment.HLT_L1SingleMuOpen_v6, fragment.HLT_L1SingleMuOpen_DT_v6, fragment.HLT_L1SingleMu3_v5, fragment.HLT_L1SingleMu5_v5, fragment.HLT_L1SingleMu7_v5, fragment.HLT_L1DoubleMu0_v5, fragment.HLT_L1SingleJet8erHE_v5, fragment.HLT_L1SingleJet10erHE_v5, fragment.HLT_L1SingleJet12erHE_v5, fragment.HLT_L1SingleJet35_v5, fragment.HLT_L1SingleJet200_v5, fragment.HLT_L1SingleEG8er2p5_v4, fragment.HLT_L1SingleEG10er2p5_v4, fragment.HLT_L1SingleEG15er2p5_v4, fragment.HLT_L1SingleEG26er2p5_v4, fragment.HLT_L1SingleEG28er2p5_v4, fragment.HLT_L1SingleEG28er2p1_v4, fragment.HLT_L1SingleEG28er1p5_v4, fragment.HLT_L1SingleEG34er2p5_v4, fragment.HLT_L1SingleEG36er2p5_v4, fragment.HLT_L1SingleEG38er2p5_v4, fragment.HLT_L1SingleEG40er2p5_v4, fragment.HLT_L1SingleEG42er2p5_v4, fragment.HLT_L1SingleEG45er2p5_v4, fragment.HLT_L1SingleEG50_v4, fragment.HLT_L1SingleJet60_v4, fragment.HLT_L1SingleJet90_v4, fragment.HLT_L1SingleJet120_v4, fragment.HLT_L1SingleJet180_v4, fragment.HLT_L1HTT120er_v4, fragment.HLT_L1HTT160er_v4, fragment.HLT_L1HTT200er_v4, fragment.HLT_L1HTT255er_v4, fragment.HLT_L1HTT280er_v4, fragment.HLT_L1HTT320er_v4, fragment.HLT_L1HTT360er_v4, fragment.HLT_L1HTT400er_v4, fragment.HLT_L1HTT450er_v4, fragment.HLT_L1ETM120_v4, fragment.HLT_L1ETM150_v4, fragment.HLT_L1EXT_HCAL_LaserMon1_v5, fragment.HLT_L1EXT_HCAL_LaserMon4_v5, fragment.HLT_CscCluster_Cosmic_v4, fragment.HLT_HT60_Beamspot_v22, fragment.HLT_HT300_Beamspot_PixelClusters_WP2_v7, fragment.HLT_PixelClusters_WP2_v4, fragment.HLT_PixelClusters_WP1_v4, fragment.HLT_BptxOR_v6, fragment.HLT_L1SingleMuCosmics_EMTF_v4, fragment.HLT_L1SingleMuCosmics_CosmicTracking_v1, fragment.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, fragment.HLT_L1FatEvents_v5, fragment.HLT_Random_HighRate_v1, fragment.HLT_ZeroBias_HighRate_v4, fragment.HLT_ZeroBias_Gated_v4, fragment.HLT_SpecialZeroBias_v6, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate0, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate1, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate2, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate3, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate4, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate5, fragment.Dataset_AlCaLumiPixelsCountsGated, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPSExpress, fragment.Dataset_AlCaPPSPrompt, fragment.Dataset_AlCaPhiSym, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DQMPPSRandom, fragment.Dataset_EcalLaser, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressCosmics, fragment.Dataset_ExpressPhysics, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_L1Accept, fragment.Dataset_MinimumBias, fragment.Dataset_MuonShower, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_RPCMonitor, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.Dataset_SpecialRandom0, fragment.Dataset_SpecialRandom1, fragment.Dataset_SpecialRandom2, fragment.Dataset_SpecialRandom3, fragment.Dataset_SpecialRandom4, fragment.Dataset_SpecialRandom5, fragment.Dataset_SpecialRandom6, fragment.Dataset_SpecialRandom7, fragment.Dataset_SpecialRandom8, fragment.Dataset_SpecialRandom9, fragment.Dataset_SpecialRandom10, fragment.Dataset_SpecialRandom11, fragment.Dataset_SpecialRandom12, fragment.Dataset_SpecialRandom13, fragment.Dataset_SpecialRandom14, fragment.Dataset_SpecialRandom15, fragment.Dataset_SpecialRandom16, fragment.Dataset_SpecialRandom17, fragment.Dataset_SpecialRandom18, fragment.Dataset_SpecialRandom19, fragment.Dataset_SpecialZeroBias0, fragment.Dataset_SpecialZeroBias1, fragment.Dataset_SpecialZeroBias2, fragment.Dataset_SpecialZeroBias3, fragment.Dataset_SpecialZeroBias4, fragment.Dataset_SpecialZeroBias5, fragment.Dataset_SpecialZeroBias6, fragment.Dataset_SpecialZeroBias7, fragment.Dataset_SpecialZeroBias8, fragment.Dataset_SpecialZeroBias9, fragment.Dataset_SpecialZeroBias10, fragment.Dataset_SpecialZeroBias11, fragment.Dataset_SpecialZeroBias12, fragment.Dataset_SpecialZeroBias13, fragment.Dataset_SpecialZeroBias14, fragment.Dataset_SpecialZeroBias15, fragment.Dataset_SpecialZeroBias16, fragment.Dataset_SpecialZeroBias17, fragment.Dataset_SpecialZeroBias18, fragment.Dataset_SpecialZeroBias19, fragment.Dataset_SpecialZeroBias20, fragment.Dataset_SpecialZeroBias21, fragment.Dataset_SpecialZeroBias22, fragment.Dataset_SpecialZeroBias23, fragment.Dataset_SpecialZeroBias24, fragment.Dataset_SpecialZeroBias25, fragment.Dataset_SpecialZeroBias26, fragment.Dataset_SpecialZeroBias27, fragment.Dataset_SpecialZeroBias28, fragment.Dataset_SpecialZeroBias29, fragment.Dataset_SpecialZeroBias30, fragment.Dataset_SpecialZeroBias31, fragment.Dataset_SpecialHLTPhysics0, fragment.Dataset_SpecialHLTPhysics1, fragment.Dataset_SpecialHLTPhysics2, fragment.Dataset_SpecialHLTPhysics3, fragment.Dataset_SpecialHLTPhysics4, fragment.Dataset_SpecialHLTPhysics5, fragment.Dataset_SpecialHLTPhysics6, fragment.Dataset_SpecialHLTPhysics7, fragment.Dataset_SpecialHLTPhysics8, fragment.Dataset_SpecialHLTPhysics9, fragment.Dataset_SpecialHLTPhysics10, fragment.Dataset_SpecialHLTPhysics11, fragment.Dataset_SpecialHLTPhysics12, fragment.Dataset_SpecialHLTPhysics13, fragment.Dataset_SpecialHLTPhysics14, fragment.Dataset_SpecialHLTPhysics15, fragment.Dataset_SpecialHLTPhysics16, fragment.Dataset_SpecialHLTPhysics17, fragment.Dataset_SpecialHLTPhysics18, fragment.Dataset_SpecialHLTPhysics19, )) +fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.AlCa_EcalPhiSym_v20, fragment.AlCa_EcalEtaEBonly_v25, fragment.AlCa_EcalEtaEEonly_v25, fragment.AlCa_EcalPi0EBonly_v25, fragment.AlCa_EcalPi0EEonly_v25, fragment.AlCa_RPCMuonNormalisation_v23, fragment.AlCa_LumiPixelsCounts_Random_v10, fragment.AlCa_LumiPixelsCounts_ZeroBias_v12, fragment.DQM_PixelReconstruction_v12, fragment.DQM_EcalReconstruction_v12, fragment.DQM_HcalReconstruction_v10, fragment.DQM_Random_v1, fragment.DQM_ZeroBias_v3, fragment.DST_ZeroBias_v11, fragment.DST_Physics_v16, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v6, fragment.HLT_HcalNZS_v21, fragment.HLT_HcalPhiSym_v23, fragment.HLT_Random_v3, fragment.HLT_Physics_v14, fragment.HLT_ZeroBias_v13, fragment.HLT_ZeroBias_Alignment_v8, fragment.HLT_ZeroBias_Beamspot_v16, fragment.HLT_ZeroBias_IsolatedBunches_v12, fragment.HLT_ZeroBias_FirstBXAfterTrain_v10, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, fragment.HLT_ZeroBias_FirstCollisionInTrain_v11, fragment.HLT_ZeroBias_LastCollisionInTrain_v10, fragment.HLT_HT300_Beamspot_v23, fragment.HLT_IsoTrackHB_v14, fragment.HLT_IsoTrackHE_v14, fragment.HLT_L1SingleMuCosmics_v8, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v15, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, fragment.HLT_CDC_L2cosmic_10_er1p0_v10, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v10, fragment.HLT_PPSMaxTracksPerArm1_v9, fragment.HLT_PPSMaxTracksPerRP4_v9, fragment.HLT_PPSRandom_v1, fragment.HLT_SpecialHLTPhysics_v7, fragment.AlCa_LumiPixelsCounts_RandomHighRate_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, fragment.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, fragment.HLT_L1SingleMuOpen_v6, fragment.HLT_L1SingleMuOpen_DT_v6, fragment.HLT_L1SingleMu3_v5, fragment.HLT_L1SingleMu5_v5, fragment.HLT_L1SingleMu7_v5, fragment.HLT_L1DoubleMu0_v5, fragment.HLT_L1SingleJet8erHE_v5, fragment.HLT_L1SingleJet10erHE_v5, fragment.HLT_L1SingleJet12erHE_v5, fragment.HLT_L1SingleJet35_v5, fragment.HLT_L1SingleJet200_v5, fragment.HLT_L1SingleEG8er2p5_v4, fragment.HLT_L1SingleEG10er2p5_v4, fragment.HLT_L1SingleEG15er2p5_v4, fragment.HLT_L1SingleEG26er2p5_v4, fragment.HLT_L1SingleEG28er2p5_v4, fragment.HLT_L1SingleEG28er2p1_v4, fragment.HLT_L1SingleEG28er1p5_v4, fragment.HLT_L1SingleEG34er2p5_v4, fragment.HLT_L1SingleEG36er2p5_v4, fragment.HLT_L1SingleEG38er2p5_v4, fragment.HLT_L1SingleEG40er2p5_v4, fragment.HLT_L1SingleEG42er2p5_v4, fragment.HLT_L1SingleEG45er2p5_v4, fragment.HLT_L1SingleEG50_v4, fragment.HLT_L1SingleJet60_v4, fragment.HLT_L1SingleJet90_v4, fragment.HLT_L1SingleJet120_v4, fragment.HLT_L1SingleJet180_v4, fragment.HLT_L1HTT120er_v4, fragment.HLT_L1HTT160er_v4, fragment.HLT_L1HTT200er_v4, fragment.HLT_L1HTT255er_v4, fragment.HLT_L1HTT280er_v4, fragment.HLT_L1HTT320er_v4, fragment.HLT_L1HTT360er_v4, fragment.HLT_L1HTT400er_v4, fragment.HLT_L1HTT450er_v4, fragment.HLT_L1ETM120_v4, fragment.HLT_L1ETM150_v4, fragment.HLT_L1EXT_HCAL_LaserMon1_v5, fragment.HLT_L1EXT_HCAL_LaserMon4_v5, fragment.HLT_CscCluster_Cosmic_v4, fragment.HLT_HT60_Beamspot_v22, fragment.HLT_HT300_Beamspot_PixelClusters_WP2_v7, fragment.HLT_PixelClusters_WP2_v4, fragment.HLT_PixelClusters_WP1_v4, fragment.HLT_BptxOR_v6, fragment.HLT_L1SingleMuCosmics_EMTF_v4, fragment.HLT_L1SingleMuCosmics_CosmicTracking_v1, fragment.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, fragment.HLT_L1FatEvents_v5, fragment.HLT_Random_HighRate_v1, fragment.HLT_ZeroBias_HighRate_v4, fragment.HLT_ZeroBias_Gated_v4, fragment.HLT_SpecialZeroBias_v6, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.Dataset_AlCaLumiPixelsCountsExpress, fragment.Dataset_AlCaLumiPixelsCountsPrompt, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate0, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate1, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate2, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate3, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate4, fragment.Dataset_AlCaLumiPixelsCountsPromptHighRate5, fragment.Dataset_AlCaLumiPixelsCountsGated, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPSExpress, fragment.Dataset_AlCaPPSPrompt, fragment.Dataset_AlCaPhiSym, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DQMPPSRandom, fragment.Dataset_EcalLaser, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressCosmics, fragment.Dataset_ExpressPhysics, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_L1Accept, fragment.Dataset_MinimumBias, fragment.Dataset_MuonShower, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_RPCMonitor, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_VRRandom0, fragment.Dataset_VRRandom1, fragment.Dataset_VRRandom2, fragment.Dataset_VRRandom3, fragment.Dataset_VRRandom4, fragment.Dataset_VRRandom5, fragment.Dataset_VRRandom6, fragment.Dataset_VRRandom7, fragment.Dataset_VRRandom8, fragment.Dataset_VRRandom9, fragment.Dataset_VRRandom10, fragment.Dataset_VRRandom11, fragment.Dataset_VRRandom12, fragment.Dataset_VRRandom13, fragment.Dataset_VRRandom14, fragment.Dataset_VRRandom15, fragment.Dataset_ZeroBias, fragment.Dataset_SpecialRandom0, fragment.Dataset_SpecialRandom1, fragment.Dataset_SpecialRandom2, fragment.Dataset_SpecialRandom3, fragment.Dataset_SpecialRandom4, fragment.Dataset_SpecialRandom5, fragment.Dataset_SpecialRandom6, fragment.Dataset_SpecialRandom7, fragment.Dataset_SpecialRandom8, fragment.Dataset_SpecialRandom9, fragment.Dataset_SpecialRandom10, fragment.Dataset_SpecialRandom11, fragment.Dataset_SpecialRandom12, fragment.Dataset_SpecialRandom13, fragment.Dataset_SpecialRandom14, fragment.Dataset_SpecialRandom15, fragment.Dataset_SpecialRandom16, fragment.Dataset_SpecialRandom17, fragment.Dataset_SpecialRandom18, fragment.Dataset_SpecialRandom19, fragment.Dataset_SpecialZeroBias0, fragment.Dataset_SpecialZeroBias1, fragment.Dataset_SpecialZeroBias2, fragment.Dataset_SpecialZeroBias3, fragment.Dataset_SpecialZeroBias4, fragment.Dataset_SpecialZeroBias5, fragment.Dataset_SpecialZeroBias6, fragment.Dataset_SpecialZeroBias7, fragment.Dataset_SpecialZeroBias8, fragment.Dataset_SpecialZeroBias9, fragment.Dataset_SpecialZeroBias10, fragment.Dataset_SpecialZeroBias11, fragment.Dataset_SpecialZeroBias12, fragment.Dataset_SpecialZeroBias13, fragment.Dataset_SpecialZeroBias14, fragment.Dataset_SpecialZeroBias15, fragment.Dataset_SpecialZeroBias16, fragment.Dataset_SpecialZeroBias17, fragment.Dataset_SpecialZeroBias18, fragment.Dataset_SpecialZeroBias19, fragment.Dataset_SpecialZeroBias20, fragment.Dataset_SpecialZeroBias21, fragment.Dataset_SpecialZeroBias22, fragment.Dataset_SpecialZeroBias23, fragment.Dataset_SpecialZeroBias24, fragment.Dataset_SpecialZeroBias25, fragment.Dataset_SpecialZeroBias26, fragment.Dataset_SpecialZeroBias27, fragment.Dataset_SpecialZeroBias28, fragment.Dataset_SpecialZeroBias29, fragment.Dataset_SpecialZeroBias30, fragment.Dataset_SpecialZeroBias31, fragment.Dataset_SpecialHLTPhysics0, fragment.Dataset_SpecialHLTPhysics1, fragment.Dataset_SpecialHLTPhysics2, fragment.Dataset_SpecialHLTPhysics3, fragment.Dataset_SpecialHLTPhysics4, fragment.Dataset_SpecialHLTPhysics5, fragment.Dataset_SpecialHLTPhysics6, fragment.Dataset_SpecialHLTPhysics7, fragment.Dataset_SpecialHLTPhysics8, fragment.Dataset_SpecialHLTPhysics9, fragment.Dataset_SpecialHLTPhysics10, fragment.Dataset_SpecialHLTPhysics11, fragment.Dataset_SpecialHLTPhysics12, fragment.Dataset_SpecialHLTPhysics13, fragment.Dataset_SpecialHLTPhysics14, fragment.Dataset_SpecialHLTPhysics15, fragment.Dataset_SpecialHLTPhysics16, fragment.Dataset_SpecialHLTPhysics17, fragment.Dataset_SpecialHLTPhysics18, fragment.Dataset_SpecialHLTPhysics19, )) # dummify hltGetConditions in cff's diff --git a/HLTrigger/Configuration/python/HLTrigger_Datasets_GRun_cff.py b/HLTrigger/Configuration/python/HLTrigger_Datasets_GRun_cff.py index f07b2bd890f87..689ea7b89f7e9 100644 --- a/HLTrigger/Configuration/python/HLTrigger_Datasets_GRun_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_Datasets_GRun_cff.py @@ -1,4 +1,4 @@ -# /dev/CMSSW_14_1_0/GRun +# /dev/CMSSW_14_2_0/GRun import FWCore.ParameterSet.Config as cms diff --git a/HLTrigger/Configuration/python/HLTrigger_Datasets_HIon_cff.py b/HLTrigger/Configuration/python/HLTrigger_Datasets_HIon_cff.py index 031a1921f1bf6..b2dae0df106cf 100644 --- a/HLTrigger/Configuration/python/HLTrigger_Datasets_HIon_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_Datasets_HIon_cff.py @@ -1,4 +1,4 @@ -# /dev/CMSSW_14_1_0/HIon +# /dev/CMSSW_14_2_0/HIon import FWCore.ParameterSet.Config as cms diff --git a/HLTrigger/Configuration/python/HLTrigger_Datasets_PIon_cff.py b/HLTrigger/Configuration/python/HLTrigger_Datasets_PIon_cff.py index 09634d1bf4163..22a5933d9f48c 100644 --- a/HLTrigger/Configuration/python/HLTrigger_Datasets_PIon_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_Datasets_PIon_cff.py @@ -1,4 +1,4 @@ -# /dev/CMSSW_14_1_0/PIon +# /dev/CMSSW_14_2_0/PIon import FWCore.ParameterSet.Config as cms diff --git a/HLTrigger/Configuration/python/HLTrigger_Datasets_PRef_cff.py b/HLTrigger/Configuration/python/HLTrigger_Datasets_PRef_cff.py index 1cf2ffcf1040a..288411affbe6d 100644 --- a/HLTrigger/Configuration/python/HLTrigger_Datasets_PRef_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_Datasets_PRef_cff.py @@ -1,4 +1,4 @@ -# /dev/CMSSW_14_1_0/PRef +# /dev/CMSSW_14_2_0/PRef import FWCore.ParameterSet.Config as cms diff --git a/HLTrigger/Configuration/python/HLTrigger_Datasets_Special_cff.py b/HLTrigger/Configuration/python/HLTrigger_Datasets_Special_cff.py index 3d69276f0b038..46ed042611334 100644 --- a/HLTrigger/Configuration/python/HLTrigger_Datasets_Special_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_Datasets_Special_cff.py @@ -1,4 +1,4 @@ -# /dev/CMSSW_14_1_0/Special +# /dev/CMSSW_14_2_0/Special import FWCore.ParameterSet.Config as cms @@ -819,3 +819,123 @@ 'HLT_ZeroBias_HighRate_v4' ) + +# stream PhysicsVRRandom0 + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom0_datasetVRRandom0_selector +streamPhysicsVRRandom0_datasetVRRandom0_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom0_datasetVRRandom0_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom0_datasetVRRandom0_selector.throw = cms.bool(False) +streamPhysicsVRRandom0_datasetVRRandom0_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom0_datasetVRRandom1_selector +streamPhysicsVRRandom0_datasetVRRandom1_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom0_datasetVRRandom1_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom0_datasetVRRandom1_selector.throw = cms.bool(False) +streamPhysicsVRRandom0_datasetVRRandom1_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + + +# stream PhysicsVRRandom1 + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom1_datasetVRRandom2_selector +streamPhysicsVRRandom1_datasetVRRandom2_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom1_datasetVRRandom2_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom1_datasetVRRandom2_selector.throw = cms.bool(False) +streamPhysicsVRRandom1_datasetVRRandom2_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom1_datasetVRRandom3_selector +streamPhysicsVRRandom1_datasetVRRandom3_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom1_datasetVRRandom3_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom1_datasetVRRandom3_selector.throw = cms.bool(False) +streamPhysicsVRRandom1_datasetVRRandom3_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + + +# stream PhysicsVRRandom2 + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom2_datasetVRRandom4_selector +streamPhysicsVRRandom2_datasetVRRandom4_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom2_datasetVRRandom4_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom2_datasetVRRandom4_selector.throw = cms.bool(False) +streamPhysicsVRRandom2_datasetVRRandom4_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom2_datasetVRRandom5_selector +streamPhysicsVRRandom2_datasetVRRandom5_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom2_datasetVRRandom5_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom2_datasetVRRandom5_selector.throw = cms.bool(False) +streamPhysicsVRRandom2_datasetVRRandom5_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + + +# stream PhysicsVRRandom3 + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom3_datasetVRRandom6_selector +streamPhysicsVRRandom3_datasetVRRandom6_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom3_datasetVRRandom6_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom3_datasetVRRandom6_selector.throw = cms.bool(False) +streamPhysicsVRRandom3_datasetVRRandom6_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom3_datasetVRRandom7_selector +streamPhysicsVRRandom3_datasetVRRandom7_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom3_datasetVRRandom7_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom3_datasetVRRandom7_selector.throw = cms.bool(False) +streamPhysicsVRRandom3_datasetVRRandom7_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + + +# stream PhysicsVRRandom4 + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom4_datasetVRRandom8_selector +streamPhysicsVRRandom4_datasetVRRandom8_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom4_datasetVRRandom8_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom4_datasetVRRandom8_selector.throw = cms.bool(False) +streamPhysicsVRRandom4_datasetVRRandom8_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom4_datasetVRRandom9_selector +streamPhysicsVRRandom4_datasetVRRandom9_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom4_datasetVRRandom9_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom4_datasetVRRandom9_selector.throw = cms.bool(False) +streamPhysicsVRRandom4_datasetVRRandom9_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + + +# stream PhysicsVRRandom5 + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom5_datasetVRRandom10_selector +streamPhysicsVRRandom5_datasetVRRandom10_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom5_datasetVRRandom10_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom5_datasetVRRandom10_selector.throw = cms.bool(False) +streamPhysicsVRRandom5_datasetVRRandom10_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom5_datasetVRRandom11_selector +streamPhysicsVRRandom5_datasetVRRandom11_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom5_datasetVRRandom11_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom5_datasetVRRandom11_selector.throw = cms.bool(False) +streamPhysicsVRRandom5_datasetVRRandom11_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + + +# stream PhysicsVRRandom6 + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom6_datasetVRRandom12_selector +streamPhysicsVRRandom6_datasetVRRandom12_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom6_datasetVRRandom12_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom6_datasetVRRandom12_selector.throw = cms.bool(False) +streamPhysicsVRRandom6_datasetVRRandom12_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom6_datasetVRRandom13_selector +streamPhysicsVRRandom6_datasetVRRandom13_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom6_datasetVRRandom13_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom6_datasetVRRandom13_selector.throw = cms.bool(False) +streamPhysicsVRRandom6_datasetVRRandom13_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + + +# stream PhysicsVRRandom7 + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom7_datasetVRRandom14_selector +streamPhysicsVRRandom7_datasetVRRandom14_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom7_datasetVRRandom14_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom7_datasetVRRandom14_selector.throw = cms.bool(False) +streamPhysicsVRRandom7_datasetVRRandom14_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsVRRandom7_datasetVRRandom15_selector +streamPhysicsVRRandom7_datasetVRRandom15_selector.hltResults = cms.InputTag('TriggerResults', '', 'HLT') +streamPhysicsVRRandom7_datasetVRRandom15_selector.l1tResults = cms.InputTag('') +streamPhysicsVRRandom7_datasetVRRandom15_selector.throw = cms.bool(False) +streamPhysicsVRRandom7_datasetVRRandom15_selector.triggerConditions = cms.vstring('HLT_Random_HighRate_v1') + diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index dc725f23f5e51..37e82223d290f 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -48,22 +48,6 @@ def customiseForOffline(process): return process -def customiseHLTFor46647(process): - for prod in producers_by_type(process, 'CtfSpecialSeedGenerator'): - if hasattr(prod, "DontCountDetsAboveNClusters"): - value = prod.DontCountDetsAboveNClusters.value() - delattr(prod, "DontCountDetsAboveNClusters") - # Replace it with cms.uint32 - prod.DontCountDetsAboveNClusters = cms.uint32(value) - - for prod in producers_by_type(process, 'SeedCombiner'): - if hasattr(prod, "PairCollection"): - delattr(prod, "PairCollection") - if hasattr(prod, "TripletCollection"): - delattr(prod, "TripletCollection") - - return process - # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): @@ -71,7 +55,5 @@ def customizeHLTforCMSSW(process, menuType="GRun"): # add call to action function in proper order: newest last! # process = customiseFor12718(process) - - process = customiseHLTFor46647(process) return process diff --git a/HLTrigger/Configuration/tables/GRun.txt b/HLTrigger/Configuration/tables/GRun.txt index 8f2f37cedbf5d..a581012b75efc 100644 --- a/HLTrigger/Configuration/tables/GRun.txt +++ b/HLTrigger/Configuration/tables/GRun.txt @@ -53,6 +53,7 @@ HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v* # CMSHLT-2633 HLT_IsoMu20_v* # CMSHLT-1250 HLT_IsoMu24_eta2p1_v* # CMSHLT-1250 HLT_IsoMu24_v* # CMSHLT-1250 +HLT_IsoMu24_HLTTracking_v* # CMSHLT-3403 HLT_IsoMu27_v* # CMSHLT-1250 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v* # CMSHLT-3042 HLT_Mu17_TrkIsoVVL_v* # CMSHLT-1250 @@ -232,6 +233,7 @@ HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v* # CMSHLT-1311 HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v* # CMSHLT-1311 HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v* # CMSHLT-1311 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v* # CMSHLT-1311 +HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v* # CMSHLT-3403 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v* # CMSHLT-1311 HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v* # CMSHLT-1311 HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v* # CMSHLT-1311 @@ -240,6 +242,7 @@ HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v* # CMSHLT-1311 HLT_TripleMu_10_5_5_DZ_v* # CMSHLT-1311 HLT_TripleMu_12_10_5_v* # CMSHLT-1311 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v* # CMSHLT-1311, CMSHLT-1436 +HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v* # CMSHLT-3403 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v* # CMSHLT-1311, CMSHLT-1436 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v* # CMSHLT-3120 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v* # CMSHLT-3120 diff --git a/HLTrigger/Configuration/tables/Special.txt b/HLTrigger/Configuration/tables/Special.txt index 65e6a05e0543c..f5a38a1d01ae0 100644 --- a/HLTrigger/Configuration/tables/Special.txt +++ b/HLTrigger/Configuration/tables/Special.txt @@ -188,6 +188,16 @@ PhysicsSpecialZeroBias12Output PhysicsSpecialZeroBias13Output PhysicsSpecialZeroBias14Output PhysicsSpecialZeroBias15Output + +PhysicsVRRandom0Output # CMSHLT-3405 +PhysicsVRRandom1Output +PhysicsVRRandom2Output +PhysicsVRRandom3Output +PhysicsVRRandom4Output +PhysicsVRRandom5Output +PhysicsVRRandom6Output +PhysicsVRRandom7Output + RPCMONOutput ######## paths that are different between Special and online_special ################################ diff --git a/HLTrigger/Configuration/tables/makeSubTables b/HLTrigger/Configuration/tables/makeSubTables index a39573b228122..e89c844ad917d 100755 --- a/HLTrigger/Configuration/tables/makeSubTables +++ b/HLTrigger/Configuration/tables/makeSubTables @@ -3,8 +3,8 @@ # generate HLT tables from master table in ConfDB # -MASTER="/dev/CMSSW_14_1_0/HLT" # no version, take the latest one -TARGET="/dev/CMSSW_14_1_0/TABLE" # directory where to store the sub-tables +MASTER="/dev/CMSSW_14_2_0/HLT" # no version, take the latest one +TARGET="/dev/CMSSW_14_2_0/TABLE" # directory where to store the sub-tables PREFIX="" TABLES="GRun HIon PIon PRef Special" # which sub-tables to create diff --git a/HLTrigger/Configuration/tables/online_Special.txt b/HLTrigger/Configuration/tables/online_Special.txt index d8de124faa15a..f426bbaaabece 100644 --- a/HLTrigger/Configuration/tables/online_Special.txt +++ b/HLTrigger/Configuration/tables/online_Special.txt @@ -188,6 +188,16 @@ PhysicsSpecialZeroBias12Output PhysicsSpecialZeroBias13Output PhysicsSpecialZeroBias14Output PhysicsSpecialZeroBias15Output + +PhysicsVRRandom0Output # CMSHLT-3405 +PhysicsVRRandom1Output +PhysicsVRRandom2Output +PhysicsVRRandom3Output +PhysicsVRRandom4Output +PhysicsVRRandom5Output +PhysicsVRRandom6Output +PhysicsVRRandom7Output + RPCMONOutput ######## paths that are different between Special and online_special ################################ diff --git a/HLTrigger/Configuration/tables/online_TrackerVR.txt b/HLTrigger/Configuration/tables/online_TrackerVR.txt index 466f0e2f12a1b..33d2edd1b5b18 100644 --- a/HLTrigger/Configuration/tables/online_TrackerVR.txt +++ b/HLTrigger/Configuration/tables/online_TrackerVR.txt @@ -8,14 +8,14 @@ HLTriggerFinalPath ## EndPaths / FinalPaths ## -PhysicsSpecialRandom0Output -PhysicsSpecialRandom1Output -PhysicsSpecialRandom2Output -PhysicsSpecialRandom3Output -PhysicsSpecialRandom4Output -PhysicsSpecialRandom5Output -PhysicsSpecialRandom6Output -PhysicsSpecialRandom7Output +PhysicsVRRandom0Output # CMSHLT-3405 +PhysicsVRRandom1Output +PhysicsVRRandom2Output +PhysicsVRRandom3Output +PhysicsVRRandom4Output +PhysicsVRRandom5Output +PhysicsVRRandom6Output +PhysicsVRRandom7Output ######## Paths that are different between online and offline ######## diff --git a/HLTrigger/Configuration/tables/online_grun.txt b/HLTrigger/Configuration/tables/online_grun.txt index 2e4f342bb1cf4..274a70d98d545 100644 --- a/HLTrigger/Configuration/tables/online_grun.txt +++ b/HLTrigger/Configuration/tables/online_grun.txt @@ -53,6 +53,7 @@ HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v* # CMSHLT-2633 HLT_IsoMu20_v* # CMSHLT-1250 HLT_IsoMu24_eta2p1_v* # CMSHLT-1250 HLT_IsoMu24_v* # CMSHLT-1250 +HLT_IsoMu24_HLTTracking_v* # CMSHLT-3403 HLT_IsoMu27_v* # CMSHLT-1250 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v* # CMSHLT-3042 HLT_Mu17_TrkIsoVVL_v* # CMSHLT-1250 @@ -232,6 +233,7 @@ HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v* # CMSHLT-1311 HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v* # CMSHLT-1311 HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v* # CMSHLT-1311 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v* # CMSHLT-1311 +HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v* # CMSHLT-3403 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v* # CMSHLT-1311 HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v* # CMSHLT-1311 HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v* # CMSHLT-1311 @@ -240,6 +242,7 @@ HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v* # CMSHLT-1311 HLT_TripleMu_10_5_5_DZ_v* # CMSHLT-1311 HLT_TripleMu_12_10_5_v* # CMSHLT-1311 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v* # CMSHLT-1311, CMSHLT-1436 +HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v* # CMSHLT-3403 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v* # CMSHLT-1311, CMSHLT-1436 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v* # CMSHLT-3120 HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v* # CMSHLT-3120 diff --git a/HLTrigger/Configuration/test/OnLine_HLT_2024v14.py b/HLTrigger/Configuration/test/OnLine_HLT_2024v14.py index 85f353d4da4d9..1a76f567bd27d 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_2024v14.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_2024v14.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /frozen/2024/2e34/v1.4/CMSSW_14_1_X/HLT --full --data --type 2024v14 --unprescale --process HLT2024v14 --globaltag auto:run3_hlt_2024v14 --input file:RelVal_Raw_2024v14_DATA.root +# hltGetConfiguration /frozen/2024/2e34/v1.4/CMSSW_14_2_X/HLT --full --data --type 2024v14 --unprescale --process HLT2024v14 --globaltag auto:run3_hlt_2024v14 --input file:RelVal_Raw_2024v14_DATA.root -# /frozen/2024/2e34/v1.4/CMSSW_14_1_X/HLT/V6 (CMSSW_14_1_1) +# /frozen/2024/2e34/v1.4/CMSSW_14_2_X/HLT/V3 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/frozen/2024/2e34/v1.4/CMSSW_14_1_X/HLT/V6") + tableName = cms.string("/frozen/2024/2e34/v1.4/CMSSW_14_2_X/HLT/V3") ) process.HLTIter4PSetTrajectoryBuilderIT = cms.PSet( @@ -8659,6 +8659,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -9237,6 +9238,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -10038,6 +10040,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -12070,6 +12073,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -12605,6 +12609,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter3IterL3FromL1MuonPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -13406,6 +13411,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -16979,7 +16985,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombinedUnseeded = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeedsUnseeded = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedUnseeded" ), @@ -20898,7 +20905,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombined = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeeds = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombined" ), @@ -70909,6 +70917,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PixelLessHitDoubletsForGlbDisplacedMuons = cms.EDProducer( "HitPairEDProducer", @@ -71150,6 +71159,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PixelLessHitDoubletsForDisplacedTkMuons = cms.EDProducer( "HitPairEDProducer", @@ -72564,6 +72574,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PFlowPixelLessHitDoubletsForTau = cms.EDProducer( "HitPairEDProducer", @@ -75618,6 +75629,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter1PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -75918,6 +75930,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter2PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -76837,6 +76850,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PFlowPixelLessHitDoublets = cms.EDProducer( "HitPairEDProducer", diff --git a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py index edf74dcc1b03d..fb00ffe02c507 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/HLT --full --data --type FULL --unprescale --process HLTFULL --globaltag auto:run3_hlt_FULL --input file:RelVal_Raw_FULL_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/HLT --full --data --type FULL --unprescale --process HLTFULL --globaltag auto:run3_hlt_FULL --input file:RelVal_Raw_FULL_DATA.root -# /dev/CMSSW_14_1_0/HLT/V79 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/HLT/V15 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/HLT/V79") + tableName = cms.string("/dev/CMSSW_14_2_0/HLT/V15") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1694,6 +1694,22 @@ 'SpecialZeroBias17' ), PhysicsSpecialZeroBias9 = cms.vstring( 'SpecialZeroBias18', 'SpecialZeroBias19' ), + PhysicsVRRandom0 = cms.vstring( 'VRRandom0', + 'VRRandom1' ), + PhysicsVRRandom1 = cms.vstring( 'VRRandom2', + 'VRRandom3' ), + PhysicsVRRandom2 = cms.vstring( 'VRRandom4', + 'VRRandom5' ), + PhysicsVRRandom3 = cms.vstring( 'VRRandom6', + 'VRRandom7' ), + PhysicsVRRandom4 = cms.vstring( 'VRRandom8', + 'VRRandom9' ), + PhysicsVRRandom5 = cms.vstring( 'VRRandom10', + 'VRRandom11' ), + PhysicsVRRandom6 = cms.vstring( 'VRRandom12', + 'VRRandom13' ), + PhysicsVRRandom7 = cms.vstring( 'VRRandom14', + 'VRRandom15' ), PhysicsZeroBias0 = cms.vstring( 'EphemeralZeroBias0', 'EphemeralZeroBias1' ), PhysicsZeroBias1 = cms.vstring( 'EphemeralZeroBias2', @@ -2176,16 +2192,14 @@ HIDQMGPUvsCPU = cms.vstring( 'DQM_HIEcalReconstruction_v10', 'DQM_HIHcalReconstruction_v8', 'DQM_HIPixelReconstruction_v12' ), - HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ), + HIDQMOnlineBeamspot = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ), HIEmptyBX = cms.vstring( 'HLT_HIL1NotBptxOR_v14', 'HLT_HIL1UnpairedBunchBptxMinus_v14', 'HLT_HIL1UnpairedBunchBptxPlus_v14' ), HIEphemeralHLTPhysics = cms.vstring( 'HLT_HIEphemeralPhysics_v5' ), HIEphemeralZeroBias0 = cms.vstring( 'HLT_HIEphemeralZeroBias_v5' ), HIEphemeralZeroBias1 = cms.vstring( 'HLT_HIEphemeralZeroBias_v5' ), - HIEventDisplay = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', + HIEventDisplay = cms.vstring( 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', 'HLT_HIDoubleEle15GsfMass50_v14', 'HLT_HIDoubleGEDPhoton20_v7', 'HLT_HIL1SingleMu5_SingleEG20Gsf_v7', @@ -2195,10 +2209,8 @@ 'HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4', 'HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6', 'HLT_HIMinimumBiasHF1AND_copy_v6' ), - HIExpressAlignment = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ), + HIExpressAlignment = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ), HIExpressPhysics = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', - 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', 'HLT_HIL1NotBptxOR_v14', @@ -2220,7 +2232,6 @@ 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14', 'HLT_HIZeroBias_v14' ), HIExpressPhysicsRawPrime = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', - 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', 'HLT_HIL1NotBptxOR_v14', @@ -5058,7 +5069,6 @@ 'HLT_HIMinimumBiasHF1AND_v7' ), HIOnlineMonitor = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14', 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_v14', 'HLT_HIEle20Gsf_v14', 'HLT_HIGEDPhoton40_v14', 'HLT_HIHcalNZS_v14', @@ -5081,15 +5091,7 @@ 'HLT_HIRandom_v7', 'HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14', 'HLT_HIZeroBias_v14' ), - HIPhysicsRawPrime0 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime0 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5190,15 +5192,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime1 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime1 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5299,15 +5293,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime10 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime10 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5408,15 +5394,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime11 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime11 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5517,15 +5495,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime12 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime12 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5626,15 +5596,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime13 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime13 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5735,15 +5697,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime14 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime14 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5844,15 +5798,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime15 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime15 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -5953,15 +5899,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime16 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime16 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6062,15 +6000,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime17 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime17 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6171,15 +6101,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime18 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime18 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6280,15 +6202,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime19 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime19 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6389,15 +6303,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime2 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime2 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6498,15 +6404,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime20 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime20 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6607,15 +6505,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime21 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime21 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6716,15 +6606,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime22 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime22 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6825,15 +6707,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime23 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime23 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -6934,15 +6808,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime24 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime24 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7043,15 +6909,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime25 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime25 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7152,15 +7010,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime26 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime26 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7261,15 +7111,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime27 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime27 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7370,15 +7212,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime28 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime28 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7479,15 +7313,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime29 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime29 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7588,15 +7414,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime3 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime3 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7697,15 +7515,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime30 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime30 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7806,15 +7616,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime31 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime31 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -7915,15 +7717,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime32 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime32 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8024,15 +7818,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime33 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime33 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8133,15 +7919,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime34 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime34 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8242,15 +8020,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime35 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime35 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8351,15 +8121,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime36 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime36 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8460,15 +8222,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime37 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime37 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8569,15 +8323,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime38 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime38 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8678,15 +8424,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime39 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime39 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8787,15 +8525,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime4 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime4 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -8896,15 +8626,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime40 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime40 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9005,15 +8727,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime41 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime41 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9114,15 +8828,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime42 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime42 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9223,15 +8929,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime43 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime43 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9332,15 +9030,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime44 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime44 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9441,15 +9131,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime45 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime45 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9550,15 +9232,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime46 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime46 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9659,15 +9333,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime47 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime47 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9768,15 +9434,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime48 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime48 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9877,15 +9535,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime49 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime49 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -9986,15 +9636,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime5 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime5 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10095,15 +9737,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime50 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime50 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10204,15 +9838,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime51 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime51 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10313,15 +9939,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime52 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime52 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10422,15 +10040,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime53 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime53 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10531,15 +10141,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime54 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime54 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10640,15 +10242,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime55 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime55 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10749,15 +10343,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime56 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime56 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10858,15 +10444,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime57 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime57 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -10967,15 +10545,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime58 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime58 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11076,15 +10646,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime59 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime59 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11185,15 +10747,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime6 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime6 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11294,15 +10848,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime7 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime7 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11403,15 +10949,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime8 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime8 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11512,15 +11050,7 @@ 'HLT_HIRandom_HighRate_v3', 'HLT_HIRandom_v7', 'HLT_HIZeroBias_HighRate_v7' ), - HIPhysicsRawPrime9 = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + HIPhysicsRawPrime9 = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -11633,11 +11163,14 @@ 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v23', 'HLT_HT550_DisplacedDijet60_Inclusive_v23', + 'HLT_IsoMu24_HLTTracking_v1', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12', 'HLT_L1SingleMuCosmics_CosmicTracking_v1', 'HLT_L1SingleMuCosmics_PointingCosmicTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1', 'HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13', @@ -13008,10 +12541,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -13059,10 +12588,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -13110,10 +12635,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -13161,10 +12682,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -13212,10 +12729,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -14858,6 +14371,22 @@ 'HLT_HcalCalibration_v6' ), TestEnablesEcalHcalDQM = cms.vstring( 'HLT_EcalCalibration_v4', 'HLT_HcalCalibration_v6' ), + VRRandom0 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom1 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom10 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom11 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom12 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom13 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom14 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom15 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom2 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom3 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom4 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom5 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom6 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom7 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom8 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom9 = cms.vstring( 'HLT_Random_HighRate_v1' ), ZeroBias = cms.vstring( 'HLT_Random_v3', 'HLT_ZeroBias_Alignment_v8', 'HLT_ZeroBias_FirstBXAfterTrain_v10', @@ -19689,6 +19218,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -20267,6 +19797,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -21068,6 +20599,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -23100,6 +22632,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -23635,6 +23168,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter3IterL3FromL1MuonPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -24436,6 +23970,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -26151,6 +25686,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksPPOnAASoA" ) @@ -26224,6 +25760,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksPPOnAASoASerialSync" ) @@ -28349,7 +27886,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombinedUnseeded = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeedsUnseeded = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedUnseeded" ), @@ -32263,7 +31801,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombined = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeeds = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombined" ), @@ -42851,6 +42390,10 @@ DepTag = cms.VInputTag( 'hltMuonTkRelIsolationCut0p14Map' ), IsolatorPSet = cms.PSet( ) ) +process.hltPreIsoMu24HLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreIsoMu24eta2p1 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -44659,6 +44202,10 @@ MinPixHitsForDZ = cms.int32( 0 ), checkSC = cms.bool( False ) ) +process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZHLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZ = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -44840,6 +44387,10 @@ propagatorAny = cms.ESInputTag( "","SteppingHelixPropagatorAny" ), propagatorOpposite = cms.ESInputTag( "","hltESPSteppingHelixPropagatorOpposite" ) ) +process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8HLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8CaloJet30 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -82274,6 +81825,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PixelLessHitDoubletsForGlbDisplacedMuons = cms.EDProducer( "HitPairEDProducer", @@ -82515,6 +82067,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PixelLessHitDoubletsForDisplacedTkMuons = cms.EDProducer( "HitPairEDProducer", @@ -83929,6 +83482,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PFlowPixelLessHitDoubletsForTau = cms.EDProducer( "HitPairEDProducer", @@ -86983,6 +86537,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter1PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -87283,6 +86838,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter2PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -88202,6 +87758,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PFlowPixelLessHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -96773,6 +96330,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter0PixelHitDoubletsPreSplittingPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -96926,7 +96484,12 @@ forceYError = cms.double( 150.0 ), fractionalWidth = cms.double( 0.4 ), chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) + centralMIPCharge = cms.double( 26000.0 ), + expSizeXAtLorentzAngleIncidence = cms.double( 1.5 ), + expSizeXDeltaPerTanAlpha = cms.double( 0.0 ), + expSizeYAtNormalIncidence = cms.double( 1.3 ), + tanLorentzAngle = cms.double( 0.0 ), + tanLorentzAngleBarrelLayer1 = cms.double( 0.0 ) ) process.hltSiPixelClustersCacheAfterSplittingPPOnAA = cms.EDProducer( "SiPixelClusterShapeCacheProducer", src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), @@ -97026,6 +96589,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter0PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -97257,6 +96821,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter1PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -97588,6 +97153,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter2PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -97823,6 +97389,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -99106,295 +98673,6 @@ MaxEta = cms.double( 5.1 ), MinN = cms.int32( 1 ) ) -process.hltL1sSingleJet44BptxAND = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet44_BptxAND" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPreHICsAK4PFJet60Eta1p5 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltSinglePuAK4CaloJet60Eta1p5 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 60.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -process.hltCsPFJetsCorrectedMatchedToPuCaloJets60 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet60Eta1p5" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -process.hltSingleCsPFJet60Eta1p5 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets60" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 60.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -process.hltPreHICsAK4PFJet60Eta2p1 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltSinglePuAK4CaloJet60Eta2p1 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 60.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -process.hltCsPFJetsCorrectedMatchedToPuCaloJets60Eta2p1 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet60Eta2p1" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -process.hltSingleCsPFJet60Eta2p1 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets60Eta2p1" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 60.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -process.hltPreHICsAK4PFJet80Eta1p5 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltSinglePuAK4CaloJet70Eta1p5 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 70.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -process.hltCsPFJetsCorrectedMatchedToPuCaloJets70 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet70Eta1p5" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -process.hltSingleCsPFJet80Eta1p5 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets70" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 80.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -process.hltPreHICsAK4PFJet80Eta2p1 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltSinglePuAK4CaloJet70Eta2p1 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 70.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -process.hltCsPFJetsCorrectedMatchedToPuCaloJets70Eta2p1 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet70Eta2p1" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -process.hltSingleCsPFJet80Eta2p1 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets70Eta2p1" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 80.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -process.hltPreHICsAK4PFJet100Eta1p5 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltSinglePuAK4CaloJet80Eta1p5 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 80.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -process.hltCsPFJetsCorrectedMatchedToPuCaloJets80 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet80Eta1p5" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -process.hltSingleCsPFJet100Eta1p5 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets80" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 100.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -process.hltPreHICsAK4PFJet100Eta1p5Beamspot = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPreHICsAK4PFJet100Eta2p1 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltSinglePuAK4CaloJet80Eta2p1 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 80.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -process.hltCsPFJetsCorrectedMatchedToPuCaloJets80Eta2p1 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet80Eta2p1" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -process.hltSingleCsPFJet100Eta2p1 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets80Eta2p1" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 100.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -process.hltPreHICsAK4PFJet120Eta1p5 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltSinglePuAK4CaloJet90Eta1p5 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 90.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -process.hltCsPFJetsCorrectedMatchedToPuCaloJets90 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet90Eta1p5" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -process.hltSingleCsPFJet120Eta1p5 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets90" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 120.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 1.5 ), - MinN = cms.int32( 1 ) -) -process.hltPreHICsAK4PFJet120Eta2p1 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltSinglePuAK4CaloJet90Eta2p1 = cms.EDFilter( "HLT1CaloJet", - saveTags = cms.bool( False ), - inputTag = cms.InputTag( "hltPuAK4CaloJetsCorrectedIDPassed" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 90.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) -process.hltCsPFJetsCorrectedMatchedToPuCaloJets90Eta2p1 = cms.EDProducer( "HLTPFJetsMatchedToFilteredCaloJetsProducer", - src = cms.InputTag( "hltCsAK4PFJetsCorrectedPPOnAA" ), - triggerJetsFilter = cms.InputTag( "hltSinglePuAK4CaloJet90Eta2p1" ), - triggerJetsType = cms.int32( 85 ), - maxDeltaR = cms.double( 0.2 ) -) -process.hltSingleCsPFJet120Eta2p1 = cms.EDFilter( "HLT1PFJet", - saveTags = cms.bool( True ), - inputTag = cms.InputTag( "hltCsPFJetsCorrectedMatchedToPuCaloJets90Eta2p1" ), - triggerType = cms.int32( 85 ), - MinE = cms.double( -1.0 ), - MinPt = cms.double( 120.0 ), - MinMass = cms.double( -1.0 ), - MaxMass = cms.double( -1.0 ), - MinEta = cms.double( -1.0 ), - MaxEta = cms.double( 2.1 ), - MinN = cms.int32( 1 ) -) process.hltL1sL1SingleEG7BptxAND = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_SingleEG7_BptxAND" ), @@ -100638,7 +99916,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombinedPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsPPOnAA','hltElePixelSeedsTripletsPPOnAA' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsPPOnAA','hltElePixelSeedsTripletsPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeedsPPOnAA = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedPPOnAA" ), @@ -102778,6 +102057,7 @@ MaxNumberOfPixelClusters = cms.uint32( 10000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( True ) ) process.hltPixelTracksHitDoubletsLowPtForUPCPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -107009,6 +106289,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter0PixelHitDoubletsPreSplittingPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -107162,7 +106443,12 @@ forceYError = cms.double( 150.0 ), fractionalWidth = cms.double( 0.4 ), chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) + centralMIPCharge = cms.double( 26000.0 ), + expSizeXAtLorentzAngleIncidence = cms.double( 1.5 ), + expSizeXDeltaPerTanAlpha = cms.double( 0.0 ), + expSizeYAtNormalIncidence = cms.double( 1.3 ), + tanLorentzAngle = cms.double( 0.0 ), + tanLorentzAngleBarrelLayer1 = cms.double( 0.0 ) ) process.hltSiPixelClustersCacheAfterSplittingPPOnAAForDmeson = cms.EDProducer( "SiPixelClusterShapeCacheProducer", src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), @@ -107235,6 +106521,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter0PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -107466,6 +106753,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter1PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -107670,6 +106958,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter2PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -107872,6 +107161,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter3PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -108069,6 +107359,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter7MixedHitDoubletsAPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -108211,7 +107502,8 @@ ) ) process.hltFullIter7MixedSeedsPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPOnAA','hltFullIter7MixedSeedsBPPOnAA' ) + seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPOnAA','hltFullIter7MixedSeedsBPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltFullIter7CkfTrackCandidatesPPOnAA = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -108412,6 +107704,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter8PixelLessHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -108625,6 +107918,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter9TobTecHitDoubletsTriplPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -108811,7 +108105,8 @@ ) ) process.hltFullIter9TobTecSeedsPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPOnAA','hltFullIter9TobTecSeedsPairPPOnAA' ) + seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPOnAA','hltFullIter9TobTecSeedsPairPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltFullIter9CkfTrackCandidatesPPOnAA = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -113397,9 +112692,9 @@ MaxEta = cms.double( -1.0 ), MaxTimeSpread = cms.double( -1.0 ) ) -process.hltL1sSingleJet24 = cms.EDFilter( "HLTL1TSeed", +process.hltL1sZDC1nAsymXORSingleJet8 = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24" ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp3_AsymXOR" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -113410,3040 +112705,124 @@ L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -process.hltPrePPRefDmesonTrackingGlobalDpt25 = cms.EDFilter( "HLTPrescaler", +process.hltPrePPRefUPCSingleJet8ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltSiPixelClustersCache = cms.EDProducer( "SiPixelClusterShapeCacheProducer", - src = cms.InputTag( "hltSiPixelClusters" ), - onDemand = cms.bool( False ) +process.hltL1sZDC1nAsymXORSingleJet12 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -process.hltFullIter0PixelQuadrupletsPreSplittingPPRefForDmeson = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3+BPix4', - 'BPix1+BPix2+BPix3+FPix1_pos', - 'BPix1+BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos+FPix2_pos', - 'BPix1+BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHits" ), - hitErrorRZ = cms.double( 0.006 ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHits" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) +process.hltPrePPRefUPCSingleJet12ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltFullIter0PixelTrackingRegionsPreSplittingPPRefForDmeson = cms.EDProducer( "GlobalTrackingRegionFromBeamSpotEDProducer", - RegionPSet = cms.PSet( - nSigmaZ = cms.double( 4.0 ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - ptMin = cms.double( 0.5 ), - originHalfLength = cms.double( 0.0 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) +process.hltL1sZDC1nAsymXORSingleJet16 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -process.hltFullIter0PixelClusterCheckPreSplittingPPRefForDmeson = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltHITrackingSiStripRawToClustersFacilityZeroSuppression" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) +process.hltPrePPRefUPCSingleJet16ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltFullIter0PixelHitDoubletsPreSplittingPPRefForDmeson = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter0PixelQuadrupletsPreSplittingPPRefForDmeson" ), - trackingRegions = cms.InputTag( "hltFullIter0PixelTrackingRegionsPreSplittingPPRefForDmeson" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter0PixelClusterCheckPreSplittingPPRefForDmeson" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1, 2 ) +process.hltL1sZDC1nAsymXORSingleJet20 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -process.hltFullIter0PixelHitQuadrupletsPreSplittingPPRefForDmeson = cms.EDProducer( "CAHitQuadrupletEDProducer", - doublets = cms.InputTag( "hltFullIter0PixelHitDoubletsPreSplittingPPRefForDmeson" ), - extraHitRPhitolerance = cms.double( 0.032 ), - fitFastCircle = cms.bool( True ), - fitFastCircleChi2Cut = cms.bool( True ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.0012 ), - CAPhiCut = cms.double( 0.2 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.0 ), - maxChi2 = cms.PSet( - value2 = cms.double( 50.0 ), - value1 = cms.double( 200.0 ), - pt1 = cms.double( 0.7 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCache" ) - ) +process.hltPrePPRefUPCSingleJet20ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltFullIter0PixelSeedsPreSplittingPPRefForDmeson = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter0PixelHitQuadrupletsPreSplittingPPRefForDmeson" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( False ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCache" ) - ) +process.hltL1sZDC1nAsymXORSingleJet24 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -process.hltFullIter0CkfTrackCandidatesPreSplittingPPRefForDmeson = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltMeasurementTrackerEvent" ), - src = cms.InputTag( "hltFullIter0PixelSeedsPreSplittingPPRefForDmeson" ), - clustersToSkip = cms.InputTag( "" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetInitialStepTrajectoryBuilderPreSplittingForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) +process.hltPrePPRefUPCSingleJet24ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltFullIter0CtfWithMaterialTracksPreSplittingPPRefForDmeson = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter0CkfTrackCandidatesPreSplittingPPRefForDmeson" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "initialStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "" ) +process.hltL1sZDC1nAsymXORSingleJet28 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp3_AsymXOR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -process.hltFullIter0PrimaryVerticesPreSplittingPPRefForDmeson = cms.EDProducer( "PrimaryVertexProducer", - vertexCollections = cms.VPSet( - cms.PSet( chi2cutoff = cms.double( 2.5 ), - label = cms.string( "" ), - useBeamConstraint = cms.bool( False ), - minNdof = cms.double( 0.0 ), - maxDistanceToBeam = cms.double( 1.0 ), - algorithm = cms.string( "AdaptiveVertexFitter" ) - ) - ), - verbose = cms.untracked.bool( False ), - TkFilterParameters = cms.PSet( - maxEta = cms.double( 2.4 ), - minPt = cms.double( 0.0 ), - minSiliconLayersWithHits = cms.int32( 5 ), - minPixelLayersWithHits = cms.int32( 2 ), - maxNormalizedChi2 = cms.double( 20.0 ), - trackQuality = cms.string( "any" ), - algorithm = cms.string( "filter" ), - maxD0Significance = cms.double( 5.0 ) - ), - beamSpotLabel = cms.InputTag( "hltOnlineBeamSpot" ), - TrackLabel = cms.InputTag( "hltFullIter0CtfWithMaterialTracksPreSplittingPPRefForDmeson" ), - TrackTimeResosLabel = cms.InputTag( "dummy_default" ), - TrackTimesLabel = cms.InputTag( "dummy_default" ), - trackMTDTimeQualityVMapTag = cms.InputTag( "dummy_default" ), - TkClusParameters = cms.PSet( - algorithm = cms.string( "gap" ), - TkGapClusParameters = cms.PSet( zSeparation = cms.double( 1.0 ) ) - ), - isRecoveryIteration = cms.bool( False ), - recoveryVtxCollection = cms.InputTag( "" ), - useMVACut = cms.bool( False ), - minTrackTimeQuality = cms.double( 0.8 ) +process.hltPrePPRefUPCSingleJet28ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltSiPixelClustersAfterSplittingPPRefForDmeson = cms.EDProducer( "JetCoreClusterSplitter", - pixelClusters = cms.InputTag( "hltSiPixelClusters" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPreSplittingPPRefForDmeson" ), - pixelCPE = cms.string( "hltESPPixelCPEGeneric" ), - verbose = cms.bool( False ), - ptMin = cms.double( 200.0 ), - cores = cms.InputTag( "hltJetsForCoreTracking" ), - chargeFractionMin = cms.double( 2.0 ), - deltaRmax = cms.double( 0.05 ), - forceXError = cms.double( 100.0 ), - forceYError = cms.double( 150.0 ), - fractionalWidth = cms.double( 0.4 ), - chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) +process.hltL1sZDC1nORSingleJet8 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_OR OR L1_SingleJet8_ZDC1n_Bkp1_OR OR L1_SingleJet8_ZDC1n_Bkp2_OR OR L1_SingleJet8_ZDC1n_Bkp3_OR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) -process.hltSiPixelClustersCacheAfterSplittingPPRefForDmeson = cms.EDProducer( "SiPixelClusterShapeCacheProducer", - src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - onDemand = cms.bool( False ) +process.hltPrePPRefUPCSingleJet8ZDC1nOR = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltSiPixelRecHitsAfterSplittingPPRefForDmeson = cms.EDProducer( "SiPixelRecHitConverter", - src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - CPE = cms.string( "hltESPPixelCPEGeneric" ), - VerboseLevel = cms.untracked.int32( 0 ) -) -process.hltAfterSplittingMeasureTrackerEventForDmeson = cms.EDProducer( "MeasurementTrackerEventProducer", - measurementTracker = cms.string( "hltESPMeasurementTracker" ), - skipClusters = cms.InputTag( "" ), - pixelClusterProducer = cms.string( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusterProducer = cms.string( "hltSiStripRawToClustersFacility" ), - Phase2TrackerCluster1DProducer = cms.string( "" ), - vectorHits = cms.InputTag( "" ), - vectorHitsRej = cms.InputTag( "" ), - inactivePixelDetectorLabels = cms.VInputTag( ), - badPixelFEDChannelCollectionLabels = cms.VInputTag( ), - pixelCablingMapLabel = cms.string( "" ), - inactiveStripDetectorLabels = cms.VInputTag( 'hltSiStripExcludedFEDListProducer' ), - switchOffPixelsIfEmpty = cms.bool( True ) -) -process.hltSiStripMatchedRecHitsFullPPRef = cms.EDProducer( "SiStripRecHitConverter", - ClusterProducer = cms.InputTag( "hltSiStripRawToClustersFacility" ), - rphiRecHits = cms.string( "rphiRecHit" ), - stereoRecHits = cms.string( "stereoRecHit" ), - matchedRecHits = cms.string( "matchedRecHit" ), - useSiStripQuality = cms.bool( False ), - MaskBadAPVFibers = cms.bool( False ), - doMatching = cms.bool( True ), - StripCPE = cms.ESInputTag( "hltESPStripCPEfromTrackAngle","hltESPStripCPEfromTrackAngle" ), - Matcher = cms.ESInputTag( "SiStripRecHitMatcherESProducer","StandardMatcher" ), - siStripQualityLabel = cms.ESInputTag( "","" ) -) -process.hltFullIter0PixelQuadrupletsPPRefForDmeson = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3+BPix4', - 'BPix1+BPix2+BPix3+FPix1_pos', - 'BPix1+BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos+FPix2_pos', - 'BPix1+BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter0PixelTrackingRegionsPPRefForDmeson = cms.EDProducer( "GlobalTrackingRegionFromBeamSpotEDProducer", - RegionPSet = cms.PSet( - nSigmaZ = cms.double( 4.0 ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - ptMin = cms.double( 0.5 ), - originHalfLength = cms.double( 0.0 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -process.hltFullIter0PixelClusterCheckPPRefForDmeson = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter0PixelHitDoubletsPPRefForDmeson = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter0PixelQuadrupletsPPRefForDmeson" ), - trackingRegions = cms.InputTag( "hltFullIter0PixelTrackingRegionsPPRefForDmeson" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter0PixelClusterCheckPPRefForDmeson" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1, 2 ) -) -process.hltFullIter0PixelHitQuadrupletsPPRefForDmeson = cms.EDProducer( "CAHitQuadrupletEDProducer", - doublets = cms.InputTag( "hltFullIter0PixelHitDoubletsPPRefForDmeson" ), - extraHitRPhitolerance = cms.double( 0.032 ), - fitFastCircle = cms.bool( True ), - fitFastCircleChi2Cut = cms.bool( True ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.0012 ), - CAPhiCut = cms.double( 0.2 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.0 ), - maxChi2 = cms.PSet( - value2 = cms.double( 50.0 ), - value1 = cms.double( 200.0 ), - pt1 = cms.double( 0.7 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter0PixelSeedsPPRefForDmeson = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter0PixelHitQuadrupletsPPRefForDmeson" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( False ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter0CkfTrackCandidatesPPRefForDmeson = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - src = cms.InputTag( "hltFullIter0PixelSeedsPPRefForDmeson" ), - clustersToSkip = cms.InputTag( "" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetInitialStepTrajectoryBuilderForDmesonPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 500000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter0CtfWithMaterialTracksPPRefForDmeson = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter0CkfTrackCandidatesPPRefForDmeson" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "initialStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "" ) -) -process.hltFullIter0PrimaryVerticesPPRefForDmeson = cms.EDProducer( "PrimaryVertexProducer", - vertexCollections = cms.VPSet( - cms.PSet( chi2cutoff = cms.double( 2.5 ), - label = cms.string( "" ), - useBeamConstraint = cms.bool( False ), - minNdof = cms.double( 0.0 ), - maxDistanceToBeam = cms.double( 1.0 ), - algorithm = cms.string( "AdaptiveVertexFitter" ) - ) - ), - verbose = cms.untracked.bool( False ), - TkFilterParameters = cms.PSet( - maxEta = cms.double( 2.4 ), - minPt = cms.double( 0.0 ), - minSiliconLayersWithHits = cms.int32( 5 ), - minPixelLayersWithHits = cms.int32( 2 ), - maxNormalizedChi2 = cms.double( 20.0 ), - trackQuality = cms.string( "any" ), - algorithm = cms.string( "filter" ), - maxD0Significance = cms.double( 5.0 ) - ), - beamSpotLabel = cms.InputTag( "hltOnlineBeamSpot" ), - TrackLabel = cms.InputTag( "hltFullIter0CtfWithMaterialTracksPPRefForDmeson" ), - TrackTimeResosLabel = cms.InputTag( "dummy_default" ), - TrackTimesLabel = cms.InputTag( "dummy_default" ), - trackMTDTimeQualityVMapTag = cms.InputTag( "dummy_default" ), - TkClusParameters = cms.PSet( - algorithm = cms.string( "gap" ), - TkGapClusParameters = cms.PSet( zSeparation = cms.double( 1.0 ) ) - ), - isRecoveryIteration = cms.bool( False ), - recoveryVtxCollection = cms.InputTag( "" ), - useMVACut = cms.bool( False ), - minTrackTimeQuality = cms.double( 0.8 ) -) -process.hltFullIter0TrackDNNClassifierPPRefForDmeson = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter0CtfWithMaterialTracksPPRefForDmeson" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.35, 0.1, 0.28 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter0HighPurityTracksPPRefForDmeson = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter0CtfWithMaterialTracksPPRefForDmeson" ), - originalMVAVals = cms.InputTag( 'hltFullIter0TrackDNNClassifierPPRefForDmeson','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter0TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter1ClustersRefRemovalPPRefForDmeson = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter0HighPurityTracksPPRefForDmeson" ), - trackClassifier = cms.InputTag( 'hltFullIter0TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter1MaskedMeasurementTrackerEventPPRefForDmeson = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ) -) -process.hltFullIter1PixelQuadrupletsPPRefForDmeson = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3+BPix4', - 'BPix1+BPix2+BPix3+FPix1_pos', - 'BPix1+BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos+FPix2_pos', - 'BPix1+BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter1PixelTrackingRegionsPPRefForDmeson = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 4.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 0.5 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.15 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -process.hltFullIter1PixelClusterCheckPPRefForDmeson = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter1PixelHitDoubletsPPRefForDmeson = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter1PixelQuadrupletsPPRefForDmeson" ), - trackingRegions = cms.InputTag( "hltFullIter1PixelTrackingRegionsPPRefForDmeson" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter1PixelClusterCheckPPRefForDmeson" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1, 2 ) -) -process.hltFullIter1PixelHitQuadrupletsPPRefForDmeson = cms.EDProducer( "CAHitQuadrupletEDProducer", - doublets = cms.InputTag( "hltFullIter1PixelHitDoubletsPPRefForDmeson" ), - extraHitRPhitolerance = cms.double( 0.032 ), - fitFastCircle = cms.bool( True ), - fitFastCircleChi2Cut = cms.bool( True ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.0017 ), - CAPhiCut = cms.double( 0.3 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.0 ), - maxChi2 = cms.PSet( - value2 = cms.double( 150.0 ), - value1 = cms.double( 1000.0 ), - pt1 = cms.double( 0.7 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter1PixelSeedsPPRefForDmeson = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter1PixelHitQuadrupletsPPRefForDmeson" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) -) -process.hltFullIter1CkfTrackCandidatesPPRefForDmeson = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter1MaskedMeasurementTrackerEventPPRefForDmeson" ), - src = cms.InputTag( "hltFullIter1PixelSeedsPPRefForDmeson" ), - clustersToSkip = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetLowPtQuadStepTrajectoryBuilderForDmesonPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPLowPtQuadStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter1CtfWithMaterialTracksPPRefForDmeson = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter1CkfTrackCandidatesPPRefForDmeson" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "lowPtQuadStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter1MaskedMeasurementTrackerEventPPRefForDmeson" ) -) -process.hltFullIter1TrackDNNClassifierPPRefForDmeson = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter1CtfWithMaterialTracksPPRefForDmeson" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.33, 0.13, 0.35 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter1HighPurityTracksPPRefForDmeson = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter1CtfWithMaterialTracksPPRefForDmeson" ), - originalMVAVals = cms.InputTag( 'hltFullIter1TrackDNNClassifierPPRefForDmeson','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter1TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter2ClustersRefRemovalPPRefForDmeson = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter1HighPurityTracksPPRefForDmeson" ), - trackClassifier = cms.InputTag( 'hltFullIter1TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter1ClustersRefRemovalPPRefForDmeson" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter2MaskedMeasurementTrackerEventPPRefForDmeson = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ) -) -process.hltFullIter2PixelTripletsPPRefForDmeson = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix1+BPix3+BPix4', - 'BPix1+BPix2+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos', - 'BPix1+BPix2+FPix1_neg', - 'BPix1+BPix3+FPix1_pos', - 'BPix1+BPix3+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos', - 'BPix1+FPix1_neg+FPix2_neg', - 'BPix1+BPix2+FPix2_pos', - 'BPix1+BPix2+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg', - 'BPix1+FPix2_pos+FPix3_pos', - 'BPix1+FPix2_neg+FPix3_neg', - 'BPix1+FPix1_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter2PixelTrackingRegionsPPRefForDmeson = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 4.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 0.2 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.55 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -process.hltFullIter2PixelClusterCheckPPRefForDmeson = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter2PixelHitDoubletsPPRefForDmeson = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter2PixelTripletsPPRefForDmeson" ), - trackingRegions = cms.InputTag( "hltFullIter2PixelTrackingRegionsPPRefForDmeson" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter2PixelClusterCheckPPRefForDmeson" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1 ) -) -process.hltFullIter2PixelHitTripletsPPRefForDmeson = cms.EDProducer( "CAHitTripletEDProducer", - doublets = cms.InputTag( "hltFullIter2PixelHitDoubletsPPRefForDmeson" ), - extraHitRPhitolerance = cms.double( 0.032 ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.004 ), - CAPhiCut = cms.double( 0.07 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.3 ), - maxChi2 = cms.PSet( - value2 = cms.double( 6.0 ), - value1 = cms.double( 100.0 ), - pt1 = cms.double( 0.8 ), - enabled = cms.bool( True ), - pt2 = cms.double( 8.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter2PixelSeedsPPRefForDmeson = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter2PixelHitTripletsPPRefForDmeson" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) -) -process.hltFullIter2CkfTrackCandidatesPPRefForDmeson = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter2MaskedMeasurementTrackerEventPPRefForDmeson" ), - src = cms.InputTag( "hltFullIter2PixelSeedsPPRefForDmeson" ), - clustersToSkip = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetHighPtTripletStepTrajectoryBuilderForDmesonPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter2CtfWithMaterialTracksPPRefForDmeson = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter2CkfTrackCandidatesPPRefForDmeson" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "highPtTripletStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter2MaskedMeasurementTrackerEventPPRefForDmeson" ) -) -process.hltFullIter2TrackDNNClassifierPPRefForDmeson = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter2CtfWithMaterialTracksPPRefForDmeson" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( 0.47, 0.55, 0.62 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter2HighPurityTracksPPRefForDmeson = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter2CtfWithMaterialTracksPPRefForDmeson" ), - originalMVAVals = cms.InputTag( 'hltFullIter2TrackDNNClassifierPPRefForDmeson','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter2TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter3ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter2HighPurityTracksPPRefForDmeson" ), - trackClassifier = cms.InputTag( 'hltFullIter2TrackDNNClassifierPPRefForDmeson','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter2ClustersRefRemovalPPRefForDmeson" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter3MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ) -) -process.hltFullIter3PixelTripletsPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix1+BPix3+BPix4', - 'BPix1+BPix2+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos', - 'BPix1+BPix2+FPix1_neg', - 'BPix1+BPix3+FPix1_pos', - 'BPix1+BPix3+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos', - 'BPix1+FPix1_neg+FPix2_neg', - 'BPix1+BPix2+FPix2_pos', - 'BPix1+BPix2+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg', - 'BPix1+FPix2_pos+FPix3_pos', - 'BPix1+FPix2_neg+FPix3_neg', - 'BPix1+FPix1_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter3PixelTrackingRegionsPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( False ), - nSigmaZ = cms.double( 4.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 0.2 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.2 ), - originRadius = cms.double( 0.02 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -process.hltFullIter3PixelClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter3PixelHitDoubletsPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter3PixelTripletsPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter3PixelTrackingRegionsPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter3PixelClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1 ) -) -process.hltFullIter3PixelHitTripletsPPRef = cms.EDProducer( "CAHitTripletEDProducer", - doublets = cms.InputTag( "hltFullIter3PixelHitDoubletsPPRef" ), - extraHitRPhitolerance = cms.double( 0.032 ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.002 ), - CAPhiCut = cms.double( 0.05 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.3 ), - maxChi2 = cms.PSet( - value2 = cms.double( 8.0 ), - value1 = cms.double( 70.0 ), - pt1 = cms.double( 0.8 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter3PixelSeedsPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter3PixelHitTripletsPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) -) -process.hltFullIter3CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter3MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter3PixelSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetLowPtTripletStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPLowPtTripletStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter3CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter3CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "lowPtTripletStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter3MaskedMeasurementTrackerEventPPRef" ) -) -process.hltFullIter3TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter3CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.23, 0.15, 0.41 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter3HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter3CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter3TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter3TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter4ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter3HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter3TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter3ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter4MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ) -) -process.hltFullIter4PixelQuadrupletsPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3+BPix4', - 'BPix1+BPix2+BPix3+FPix1_pos', - 'BPix1+BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos+FPix2_pos', - 'BPix1+BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter4PixelTrackingRegionsPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 1.0 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 1.5 ), - originRadius = cms.double( 1.0 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -process.hltFullIter4PixelClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( True ), - MaxNumberOfStripClusters = cms.uint32( 500000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 150000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter4PixelHitDoubletsPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter4PixelQuadrupletsPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter4PixelTrackingRegionsPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter4PixelClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1, 2 ) -) -process.hltFullIter4PixelHitQuadrupletsPPRef = cms.EDProducer( "CAHitQuadrupletEDProducer", - doublets = cms.InputTag( "hltFullIter4PixelHitDoubletsPPRef" ), - extraHitRPhitolerance = cms.double( 0.032 ), - fitFastCircle = cms.bool( True ), - fitFastCircleChi2Cut = cms.bool( True ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.0011 ), - CAPhiCut = cms.double( 0.0 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.0 ), - maxChi2 = cms.PSet( - value2 = cms.double( 100.0 ), - value1 = cms.double( 500.0 ), - pt1 = cms.double( 0.8 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( - clusterShapeHitFilter = cms.string( "ClusterShapeHitFilter" ), - ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), - clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter4PixelSeedsPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter4PixelHitQuadrupletsPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( False ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter4CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter4MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter4PixelSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetDetachedQuadStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPDetachedQuadStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter4CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter4CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "detachedQuadStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter4MaskedMeasurementTrackerEventPPRef" ) -) -process.hltFullIter4TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter4CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.66, -0.15, 0.46 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter4HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter4CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter4TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter4TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter5ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter4HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter4TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter4ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter5MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ) -) -process.hltFullIter5PixelTripletsPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter5PixelTrackingRegionsPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 0.5 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.25 ), - originRadius = cms.double( 1.5 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ) - ) -) -process.hltFullIter5PixelClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( True ), - MaxNumberOfStripClusters = cms.uint32( 500000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 150000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter5PixelHitDoubletsPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter5PixelTripletsPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter5PixelTrackingRegionsPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter5PixelClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0, 1 ) -) -process.hltFullIter5PixelHitTripletsPPRef = cms.EDProducer( "CAHitTripletEDProducer", - doublets = cms.InputTag( "hltFullIter5PixelHitDoubletsPPRef" ), - extraHitRPhitolerance = cms.double( 0.032 ), - useBendingCorrection = cms.bool( True ), - CAThetaCut = cms.double( 0.001 ), - CAPhiCut = cms.double( 0.0 ), - CAThetaCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAPhiCut_byTriplets = cms.VPSet( - cms.PSet( seedingLayers = cms.string( "" ), - cut = cms.double( -1.0 ) - ) - ), - CAHardPtCut = cms.double( 0.2 ), - maxChi2 = cms.PSet( - value2 = cms.double( 10.0 ), - value1 = cms.double( 300.0 ), - pt1 = cms.double( 0.8 ), - enabled = cms.bool( True ), - pt2 = cms.double( 2.0 ) - ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) -) -process.hltFullIter5PixelSeedsPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter5PixelHitTripletsPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( False ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter5CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter5MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter5PixelSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetDetachedTripletStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPDetachedTripletStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter5CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter5CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "detachedTripletStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter5MaskedMeasurementTrackerEventPPRef" ) -) -process.hltFullIter5TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter5CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.42, 0.16, 0.78 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter5HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter5CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter5TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter5TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter6ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter5HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter5TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter5ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "tight" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter6MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ) -) -process.hltFullIter6PixelClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( True ), - MaxNumberOfStripClusters = cms.uint32( 500000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 150000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter6PixelTrackingRegionSeedLayersBPPRef = cms.EDProducer( "PixelInactiveAreaTrackingRegionsSeedingLayersProducer", - RegionPSet = cms.PSet( - deltaEta_Cand = cms.double( -1.0 ), - vertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - zErrorBeamSpot = cms.double( 24.2 ), - extraPhi = cms.double( 0.0 ), - extraEta = cms.double( 0.0 ), - seedingMode = cms.string( "Global" ), - maxNVertices = cms.int32( 5 ), - nSigmaZVertex = cms.double( 3.0 ), - nSigmaZBeamSpot = cms.double( 4.0 ), - ptMin = cms.double( 5.0 ), - input = cms.InputTag( "" ), - operationMode = cms.string( "VerticesFixed" ), - searchOpt = cms.bool( False ), - whereToUseMeasurementTracker = cms.string( "Never" ), - deltaPhi_Cand = cms.double( -1.0 ), - originRadius = cms.double( 0.015 ), - measurementTrackerName = cms.InputTag( "" ), - precise = cms.bool( True ), - zErrorVertex = cms.double( 0.3 ) - ), - inactivePixelDetectorLabels = cms.VInputTag( 'hltSiPixelDigiErrors' ), - badPixelFEDChannelCollectionLabels = cms.VInputTag( 'hltSiPixelDigiErrors' ), - ignoreSingleFPixPanelModules = cms.bool( True ), - debug = cms.untracked.bool( False ), - createPlottingFiles = cms.untracked.bool( False ), - layerList = cms.vstring( 'BPix1+BPix2', - 'BPix1+BPix3', - 'BPix1+BPix4', - 'BPix2+BPix3', - 'BPix2+BPix4', - 'BPix3+BPix4', - 'BPix1+FPix1_pos', - 'BPix1+FPix1_neg', - 'BPix1+FPix2_pos', - 'BPix1+FPix2_neg', - 'BPix1+FPix3_pos', - 'BPix1+FPix3_neg', - 'BPix2+FPix1_pos', - 'BPix2+FPix1_neg', - 'BPix2+FPix2_pos', - 'BPix2+FPix2_neg', - 'BPix3+FPix1_pos', - 'BPix3+FPix1_neg', - 'FPix1_pos+FPix2_pos', - 'FPix1_neg+FPix2_neg', - 'FPix1_pos+FPix3_pos', - 'FPix1_neg+FPix3_neg', - 'FPix2_pos+FPix3_pos', - 'FPix2_neg+FPix3_neg' ), - BPix = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter6PixelHitDoubletsBPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "" ), - trackingRegions = cms.InputTag( "" ), - trackingRegionsSeedingLayers = cms.InputTag( "hltFullIter6PixelTrackingRegionSeedLayersBPPRef" ), - clusterCheck = cms.InputTag( "hltFullIter6PixelClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( False ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -process.hltFullIter6PixelSeedsBPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter6PixelHitDoubletsBPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( False ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( True ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter6CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter6MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter6PixelSeedsBPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetPixelPairStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 500000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter6CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter6CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "pixelPairStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter6MaskedMeasurementTrackerEventPPRef" ) -) -process.hltFullIter6TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter6CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.31, -0.13, 0.13 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter6HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter6CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter6TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter6TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter7ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter6HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter6TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter6ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter7MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ) -) -process.hltFullIter7MixedLayersAPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 1 ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 1 ) - ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter7MixedTrackingRegionsAPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 3.75 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.4 ), - originRadius = cms.double( 1.5 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( True ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter7MixedClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter7MixedHitDoubletsAPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter7MixedLayersAPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter7MixedTrackingRegionsAPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter7MixedClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -process.hltFullIter7MixedHitTripletsAPPRef = cms.EDProducer( "PixelTripletLargeTipEDProducer", - doublets = cms.InputTag( "hltFullIter7MixedHitDoubletsAPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitTriplets = cms.bool( False ), - maxElement = cms.uint32( 1000000 ), - extraHitRPhitolerance = cms.double( 0.0 ), - extraHitRZtolerance = cms.double( 0.0 ), - useMultScattering = cms.bool( True ), - useBending = cms.bool( True ), - useFixedPreFiltering = cms.bool( False ), - phiPreFiltering = cms.double( 0.3 ) -) -process.hltFullIter7MixedSeedsAPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter7MixedHitTripletsAPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPMixedStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter7MixedLayersBPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix3+BPix4+TIB1' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ) - ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter7MixedTrackingRegionsBPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 2.5 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.6 ), - originRadius = cms.double( 1.5 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( True ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter7MixedHitDoubletsBPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter7MixedLayersBPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter7MixedTrackingRegionsBPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter7MixedClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -process.hltFullIter7MixedHitTripletsBPPRef = cms.EDProducer( "PixelTripletLargeTipEDProducer", - doublets = cms.InputTag( "hltFullIter7MixedHitDoubletsBPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitTriplets = cms.bool( False ), - maxElement = cms.uint32( 1000000 ), - extraHitRPhitolerance = cms.double( 0.0 ), - extraHitRZtolerance = cms.double( 0.0 ), - useMultScattering = cms.bool( True ), - useBending = cms.bool( True ), - useFixedPreFiltering = cms.bool( False ), - phiPreFiltering = cms.double( 0.3 ) -) -process.hltFullIter7MixedSeedsBPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter7MixedHitTripletsBPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPMixedStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter7MixedSeedsPPRef = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPRef','hltFullIter7MixedSeedsBPPRef' ) -) -process.hltFullIter7CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( False ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter7MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter7MixedSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMixedTripletStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPMixedTripletStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter7CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter7CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "mixedTripletStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter7MaskedMeasurementTrackerEventPPRef" ) -) -process.hltFullIter7TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter7CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.86, -0.68, -0.43 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter7HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter7CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter7TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter7TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter8ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter7HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter7TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter7ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter8MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ) -) -process.hltFullIter8PixelLessLayersPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'TIB1+TIB2+MTIB3', - 'TIB1+TIB2+MTIB4', - 'TIB1+TIB2+MTID1_pos', - 'TIB1+TIB2+MTID1_neg', - 'TID1_pos+TID2_pos+TID3_pos', - 'TID1_neg+TID2_neg+TID3_neg', - 'TID1_pos+TID2_pos+MTID3_pos', - 'TID1_neg+TID2_neg+MTID3_neg', - 'TID1_pos+TID2_pos+MTEC1_pos', - 'TID1_neg+TID2_neg+MTEC1_neg', - 'TID2_pos+TID3_pos+TEC1_pos', - 'TID2_neg+TID3_neg+TEC1_neg', - 'TID2_pos+TID3_pos+MTEC1_pos', - 'TID2_neg+TID3_neg+MTEC1_neg', - 'TEC1_pos+TEC2_pos+TEC3_pos', - 'TEC1_neg+TEC2_neg+TEC3_neg', - 'TEC1_pos+TEC2_pos+MTEC3_pos', - 'TEC1_neg+TEC2_neg+MTEC3_neg', - 'TEC1_pos+TEC2_pos+TEC4_pos', - 'TEC1_neg+TEC2_neg+TEC4_neg', - 'TEC1_pos+TEC2_pos+MTEC4_pos', - 'TEC1_neg+TEC2_neg+MTEC4_neg', - 'TEC2_pos+TEC3_pos+TEC4_pos', - 'TEC2_neg+TEC3_neg+TEC4_neg', - 'TEC2_pos+TEC3_pos+MTEC4_pos', - 'TEC2_neg+TEC3_neg+MTEC4_neg', - 'TEC2_pos+TEC3_pos+TEC5_pos', - 'TEC2_neg+TEC3_neg+TEC5_neg', - 'TEC2_pos+TEC3_pos+TEC6_pos', - 'TEC2_neg+TEC3_neg+TEC6_neg', - 'TEC3_pos+TEC4_pos+TEC5_pos', - 'TEC3_neg+TEC4_neg+TEC5_neg', - 'TEC3_pos+TEC4_pos+MTEC5_pos', - 'TEC3_neg+TEC4_neg+MTEC5_neg', - 'TEC3_pos+TEC5_pos+TEC6_pos', - 'TEC3_neg+TEC5_neg+TEC6_neg', - 'TEC4_pos+TEC5_pos+TEC6_pos', - 'TEC4_neg+TEC5_neg+TEC6_neg' ), - BPix = cms.PSet( ), - FPix = cms.PSet( ), - TIB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ) - ), - TID = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 3 ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 3 ) - ), - TOB = cms.PSet( ), - TEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 1 ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 2 ) - ), - MTIB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ), - MTID = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 3 ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 3 ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 3 ), - skipClusters = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 3 ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ) -) -process.hltFullIter8PixelLessTrackingRegionsPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 3.0 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.4 ), - originRadius = cms.double( 1.0 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( False ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter8PixelLessClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter8PixelLessHitDoubletsPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter8PixelLessLayersPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter8PixelLessTrackingRegionsPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter8PixelLessClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -process.hltFullIter8PixelLessHitTripletsPPRef = cms.EDProducer( "MultiHitFromChi2EDProducer", - doublets = cms.InputTag( "hltFullIter8PixelLessHitDoubletsPPRef" ), - maxElement = cms.uint32( 1000000 ), - useFixedPreFiltering = cms.bool( False ), - phiPreFiltering = cms.double( 0.3 ), - extraHitRPhitolerance = cms.double( 0.0 ), - extraHitRZtolerance = cms.double( 0.0 ), - extraZKDBox = cms.double( 0.2 ), - extraRKDBox = cms.double( 0.2 ), - extraPhiKDBox = cms.double( 0.005 ), - fnSigmaRZ = cms.double( 2.0 ), - refitHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - maxChi2 = cms.double( 5.0 ), - chi2VsPtCut = cms.bool( True ), - pt_interv = cms.vdouble( 0.4, 0.7, 1.0, 2.0 ), - chi2_cuts = cms.vdouble( 3.0, 4.0, 5.0, 5.0 ), - detIdsToDebug = cms.vint32( 0, 0, 0 ) -) -process.hltFullIter8PixelLessSeedsPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter8PixelLessHitTripletsPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - mode = cms.string( "and" ), - comparitors = cms.VPSet( - cms.PSet( FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPPixelLessStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ), - cms.PSet( subclusterCutSN = cms.double( 12.0 ), - trimMaxADC = cms.double( 30.0 ), - seedCutMIPs = cms.double( 0.35 ), - subclusterCutMIPs = cms.double( 0.45 ), - subclusterWindow = cms.double( 0.7 ), - maxNSat = cms.uint32( 3 ), - trimMaxFracNeigh = cms.double( 0.25 ), - FilterAtHelixStage = cms.bool( False ), - maxTrimmedSizeDiffNeg = cms.double( 1.0 ), - seedCutSN = cms.double( 7.0 ), - ComponentName = cms.string( "StripSubClusterShapeSeedFilter" ), - maxTrimmedSizeDiffPos = cms.double( 0.7 ), - trimMaxFracTotal = cms.double( 0.15 ), - layerMask = cms.PSet( ) - ) - ), - ComponentName = cms.string( "CombinedSeedComparitor" ) - ) -) -process.hltFullIter8CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( False ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter8MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter8PixelLessSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetPixelLessStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPPixelLessStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 500000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter8CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter8CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( True ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "pixelLessStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter8MaskedMeasurementTrackerEventPPRef" ) -) -process.hltFullIter8TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter8CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.82, -0.61, -0.16 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter8HighPurityTracksPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIter8CtfWithMaterialTracksPPRef" ), - originalMVAVals = cms.InputTag( 'hltFullIter8TrackDNNClassifierPPRef','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIter8TrackDNNClassifierPPRef','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullIter9ClustersRefRemovalPPRef = cms.EDProducer( "TrackClusterRemover", - trajectories = cms.InputTag( "hltFullIter8HighPurityTracksPPRef" ), - trackClassifier = cms.InputTag( 'hltFullIter8TrackDNNClassifierPPRef','QualityMasks' ), - pixelClusters = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - stripClusters = cms.InputTag( "hltSiStripRawToClustersFacility" ), - oldClusterRemovalInfo = cms.InputTag( "hltFullIter8ClustersRefRemovalPPRef" ), - TrackQuality = cms.string( "highPurity" ), - maxChi2 = cms.double( 9.0 ), - minNumberOfLayersWithMeasBeforeFiltering = cms.int32( 0 ), - overrideTrkQuals = cms.InputTag( "" ) -) -process.hltFullIter9MaskedMeasurementTrackerEventPPRef = cms.EDProducer( "MaskedMeasurementTrackerEventProducer", - src = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - OnDemand = cms.bool( False ), - clustersToSkip = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ) -) -process.hltFullIter9TobTecLayersTriplPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'TOB1+TOB2+MTOB3', - 'TOB1+TOB2+MTOB4', - 'TOB1+TOB2+MTEC1_pos', - 'TOB1+TOB2+MTEC1_neg' ), - BPix = cms.PSet( ), - FPix = cms.PSet( ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ) - ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ), - MTEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 6 ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 7 ), - rphiRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','rphiRecHit' ) - ) -) -process.hltFullIter9TobTecTrackingRegionsTriplPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 5.0 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.55 ), - originRadius = cms.double( 3.5 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( False ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter9TobTecClusterCheckPPRef = cms.EDProducer( "ClusterCheckerEDProducer", - doClusterCheck = cms.bool( False ), - MaxNumberOfStripClusters = cms.uint32( 50000 ), - ClusterCollectionLabel = cms.InputTag( "hltSiStripRawToClustersFacility" ), - MaxNumberOfPixelClusters = cms.uint32( 10000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - cut = cms.string( "" ), - silentClusterCheck = cms.untracked.bool( False ) -) -process.hltFullIter9TobTecHitDoubletsTriplPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter9TobTecLayersTriplPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter9TobTecTrackingRegionsTriplPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter9TobTecClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( False ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -process.hltFullIter9TobTecHitTripletsTriplPPRef = cms.EDProducer( "MultiHitFromChi2EDProducer", - doublets = cms.InputTag( "hltFullIter9TobTecHitDoubletsTriplPPRef" ), - maxElement = cms.uint32( 1000000 ), - useFixedPreFiltering = cms.bool( False ), - phiPreFiltering = cms.double( 0.3 ), - extraHitRPhitolerance = cms.double( 0.0 ), - extraHitRZtolerance = cms.double( 0.0 ), - extraZKDBox = cms.double( 0.2 ), - extraRKDBox = cms.double( 0.2 ), - extraPhiKDBox = cms.double( 0.01 ), - fnSigmaRZ = cms.double( 2.0 ), - refitHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "ClusterShapeHitFilter" ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - maxChi2 = cms.double( 5.0 ), - chi2VsPtCut = cms.bool( True ), - pt_interv = cms.vdouble( 0.4, 0.7, 1.0, 2.0 ), - chi2_cuts = cms.vdouble( 3.0, 4.0, 5.0, 5.0 ), - detIdsToDebug = cms.vint32( 0, 0, 0 ) -) -process.hltFullIter9TobTecSeedsTriplPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter9TobTecHitTripletsTriplPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - mode = cms.string( "and" ), - comparitors = cms.VPSet( - cms.PSet( FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPTobTecStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ), - cms.PSet( subclusterCutSN = cms.double( 12.0 ), - trimMaxADC = cms.double( 30.0 ), - seedCutMIPs = cms.double( 0.35 ), - subclusterCutMIPs = cms.double( 0.45 ), - subclusterWindow = cms.double( 0.7 ), - maxNSat = cms.uint32( 3 ), - trimMaxFracNeigh = cms.double( 0.25 ), - FilterAtHelixStage = cms.bool( False ), - maxTrimmedSizeDiffNeg = cms.double( 1.0 ), - seedCutSN = cms.double( 7.0 ), - ComponentName = cms.string( "StripSubClusterShapeSeedFilter" ), - maxTrimmedSizeDiffPos = cms.double( 0.7 ), - trimMaxFracTotal = cms.double( 0.15 ), - layerMask = cms.PSet( ) - ) - ), - ComponentName = cms.string( "CombinedSeedComparitor" ) - ) -) -process.hltFullIter9TobTecLayersPairPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'TOB1+TEC1_pos', - 'TOB1+TEC1_neg', - 'TEC1_pos+TEC2_pos', - 'TEC1_neg+TEC2_neg', - 'TEC2_pos+TEC3_pos', - 'TEC2_neg+TEC3_neg', - 'TEC3_pos+TEC4_pos', - 'TEC3_neg+TEC4_neg', - 'TEC4_pos+TEC5_pos', - 'TEC4_neg+TEC5_neg', - 'TEC5_pos+TEC6_pos', - 'TEC5_neg+TEC6_neg', - 'TEC6_pos+TEC7_pos', - 'TEC6_neg+TEC7_neg' ), - BPix = cms.PSet( ), - FPix = cms.PSet( ), - TIB = cms.PSet( ), - TID = cms.PSet( ), - TOB = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ) - ), - TEC = cms.PSet( - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - minRing = cms.int32( 5 ), - skipClusters = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - useRingSlector = cms.bool( True ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutTight" ) ), - maxRing = cms.int32( 5 ) - ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter9TobTecTrackingRegionsPairPPRef = cms.EDProducer( "GlobalTrackingRegionWithVerticesEDProducer", - RegionPSet = cms.PSet( - useFixedError = cms.bool( True ), - nSigmaZ = cms.double( 0.0 ), - VertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - useFoundVertices = cms.bool( True ), - fixedError = cms.double( 7.5 ), - maxNVertices = cms.int32( -1 ), - sigmaZVertex = cms.double( 4.0 ), - useFakeVertices = cms.bool( False ), - ptMin = cms.double( 0.6 ), - originRadius = cms.double( 6.0 ), - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - originRScaling4BigEvts = cms.bool( True ), - ptMinScaling4BigEvts = cms.bool( False ), - minOriginR = cms.double( 0.0 ), - maxPtMin = cms.double( 0.7 ), - scalingStartNPix = cms.double( 20000.0 ), - scalingEndNPix = cms.double( 35000.0 ), - pixelClustersForScaling = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ) - ) -) -process.hltFullIter9TobTecHitDoubletsPairPPRef = cms.EDProducer( "HitPairEDProducer", - seedingLayers = cms.InputTag( "hltFullIter9TobTecLayersPairPPRef" ), - trackingRegions = cms.InputTag( "hltFullIter9TobTecTrackingRegionsPairPPRef" ), - trackingRegionsSeedingLayers = cms.InputTag( "" ), - clusterCheck = cms.InputTag( "hltFullIter9TobTecClusterCheckPPRef" ), - produceSeedingHitSets = cms.bool( True ), - produceIntermediateHitDoublets = cms.bool( True ), - maxElement = cms.uint32( 0 ), - maxElementTotal = cms.uint32( 50000000 ), - putEmptyIfMaxElementReached = cms.bool( False ), - layerPairs = cms.vuint32( 0 ) -) -process.hltFullIter9TobTecSeedsPairPPRef = cms.EDProducer( "SeedCreatorFromRegionConsecutiveHitsEDProducer", - seedingHitSets = cms.InputTag( "hltFullIter9TobTecHitDoubletsPairPPRef" ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - MinOneOverPtError = cms.double( 1.0 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - magneticField = cms.string( "ParabolicMf" ), - forceKinematicWithRegionDirection = cms.bool( False ), - SeedComparitorPSet = cms.PSet( - mode = cms.string( "and" ), - comparitors = cms.VPSet( - cms.PSet( FilterStripHits = cms.bool( True ), - FilterPixelHits = cms.bool( True ), - ClusterShapeHitFilterName = cms.string( "hltESPTobTecStepClusterShapeHitFilter" ), - FilterAtHelixStage = cms.bool( False ), - ComponentName = cms.string( "PixelClusterShapeSeedComparitor" ), - ClusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCacheAfterSplittingPPRefForDmeson" ) - ), - cms.PSet( subclusterCutSN = cms.double( 12.0 ), - trimMaxADC = cms.double( 30.0 ), - seedCutMIPs = cms.double( 0.35 ), - subclusterCutMIPs = cms.double( 0.45 ), - subclusterWindow = cms.double( 0.7 ), - maxNSat = cms.uint32( 3 ), - trimMaxFracNeigh = cms.double( 0.25 ), - FilterAtHelixStage = cms.bool( False ), - maxTrimmedSizeDiffNeg = cms.double( 1.0 ), - seedCutSN = cms.double( 7.0 ), - ComponentName = cms.string( "StripSubClusterShapeSeedFilter" ), - maxTrimmedSizeDiffPos = cms.double( 0.7 ), - trimMaxFracTotal = cms.double( 0.15 ), - layerMask = cms.PSet( ) - ) - ), - ComponentName = cms.string( "CombinedSeedComparitor" ) - ) -) -process.hltFullIter9TobTecSeedsPPRef = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPRef','hltFullIter9TobTecSeedsPairPPRef' ) -) -process.hltFullIter9CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( True ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter9MaskedMeasurementTrackerEventPPRef" ), - src = cms.InputTag( "hltFullIter9TobTecSeedsPPRef" ), - clustersToSkip = cms.InputTag( "hltFullIter9ClustersRefRemovalPPRef" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetTobTecStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 50 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTobTecStepTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 500000 ), - maxSeedsBeforeCleaning = cms.uint32( 5000 ) -) -process.hltFullIter9CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter9CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPTobTecStepFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( True ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "tobTecStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "hltFullIter9MaskedMeasurementTrackerEventPPRef" ) -) -process.hltFullIter9TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter9CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.76, -0.65, -0.55 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIter10JetCoreLayersPPRef = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix1+BPix3+BPix4', - 'BPix1+BPix2+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos', - 'BPix1+BPix2+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos', - 'BPix1+FPix1_neg+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg', - 'BPix1+BPix2+TIB1', - 'BPix1+BPix3+TIB1', - 'BPix1+BPix4+TIB1', - 'BPix2+BPix3+TIB1', - 'BPix2+BPix4+TIB1', - 'BPix3+BPix4+TIB1' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ), - hitErrorRZ = cms.double( 0.006 ) - ), - FPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0051 ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.0036 ), - HitProducer = cms.string( "hltSiPixelRecHitsAfterSplittingPPRefForDmeson" ) - ), - TIB = cms.PSet( - matchedRecHits = cms.InputTag( 'hltSiStripMatchedRecHitsFullPPRef','matchedRecHit' ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) - ), - TID = cms.PSet( ), - TOB = cms.PSet( ), - TEC = cms.PSet( ), - MTIB = cms.PSet( ), - MTID = cms.PSet( ), - MTOB = cms.PSet( ), - MTEC = cms.PSet( ) -) -process.hltFullIter10JetCoreRegionSeedsPPRef = cms.EDProducer( "SeedGeneratorFromRegionHitsEDProducer", - OrderedHitsFactoryPSet = cms.PSet( - maxElement = cms.uint32( 0 ), - ComponentName = cms.string( "StandardHitTripletGenerator" ), - SeedingLayers = cms.InputTag( "hltFullIter10JetCoreLayersPPRef" ), - LayerSrc = cms.InputTag( "hltFullIter10JetCoreLayersPPRef" ), - GeneratorPSet = cms.PSet( - maxElement = cms.uint32( 0 ), - useBending = cms.bool( True ), - useFixedPreFiltering = cms.bool( False ), - ComponentName = cms.string( "PixelTripletHLTGenerator" ), - useMultScattering = cms.bool( True ), - phiPreFiltering = cms.double( 0.3 ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ), - extraHitRPhitolerance = cms.double( 0.032 ), - extraHitRZtolerance = cms.double( 0.037 ) - ) - ), - SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ), - RegionFactoryPSet = cms.PSet( - ComponentName = cms.string( "CandidateSeededTrackingRegionsProducer" ), - RegionPSet = cms.PSet( - precise = cms.bool( True ), - useMultipleScattering = cms.bool( False ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - ptMin = cms.double( 10.0 ), - originRadius = cms.double( 0.2 ), - originHalfLength = cms.double( 0.2 ), - deltaPhiRegion = cms.double( 0.2 ), - measurementTrackerName = cms.string( "" ), - zVertex = cms.double( 5.0 ), - deltaEtaRegion = cms.double( 0.2 ), - rVertex = cms.double( 5.0 ), - useFakeVertices = cms.bool( False ), - JetSrc = cms.InputTag( "hltJetsForCoreTracking" ), - vertexSrc = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - howToUseMeasurementTracker = cms.string( "Never" ), - zErrorVetex = cms.double( 0.1 ), - nSigmaZVertex = cms.double( 3.0 ), - nSigmaZBeamSpot = cms.double( -1.0 ), - zErrorBeamSpot = cms.double( 15.0 ), - deltaEta = cms.double( 0.2 ), - deltaPhi = cms.double( 0.2 ), - vertexCollection = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - maxNRegions = cms.int32( 3 ), - searchOpt = cms.bool( False ), - whereToUseMeasurementTracker = cms.string( "Never" ), - input = cms.InputTag( "hltJetsForCoreTracking" ), - maxNVertices = cms.int32( 1 ), - mode = cms.string( "VerticesFixed" ) - ), - CollectionsPSet = cms.PSet( - recoL2MuonsCollection = cms.InputTag( "" ), - recoTrackMuonsCollection = cms.InputTag( "" ), - recoMuonsCollection = cms.InputTag( "" ) - ), - RegionInJetsCheckPSet = cms.PSet( - recoCaloJetsCollection = cms.InputTag( "hltJetsForCoreTracking" ), - deltaRExclusionSize = cms.double( 0.3 ), - jetsPtMin = cms.double( 5.0 ), - doJetsExclusionCheck = cms.bool( True ) - ), - ToolsPSet = cms.PSet( - regionBase = cms.string( "seedOnJets" ), - thePropagatorName = cms.string( "AnalyticalPropagator" ) - ) - ), - SeedCreatorPSet = cms.PSet( - ComponentName = cms.string( "SeedFromConsecutiveHitsCreator" ), - forceKinematicWithRegionDirection = cms.bool( True ), - magneticField = cms.string( "ParabolicMf" ), - SeedMomentumForBOFF = cms.double( 5.0 ), - propagator = cms.string( "PropagatorWithMaterialParabolicMf" ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - MinOneOverPtError = cms.double( 1.0 ), - OriginTransverseErrorMultiplier = cms.double( 1.0 ), - maxseeds = cms.int32( 10000 ) - ), - ClusterCheckPSet = cms.PSet( - MaxNumberOfPixelClusters = cms.uint32( 150000 ), - cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPRefForDmeson" ), - doClusterCheck = cms.bool( True ), - ClusterCollectionLabel = cms.InputTag( "hltMeasurementTrackerEvent" ), - MaxNumberOfStripClusters = cms.uint32( 500000 ) - ) -) -process.hltFullIter10CkfTrackCandidatesPPRef = cms.EDProducer( "CkfTrackCandidateMaker", - cleanTrajectoryAfterInOut = cms.bool( True ), - doSeedingRegionRebuilding = cms.bool( True ), - onlyPixelHitsForSeedCleaner = cms.bool( False ), - reverseTrajectories = cms.bool( False ), - useHitsSplitting = cms.bool( True ), - MeasurementTrackerEvent = cms.InputTag( "hltAfterSplittingMeasureTrackerEventForDmeson" ), - src = cms.InputTag( "hltFullIter10JetCoreRegionSeedsPPRef" ), - clustersToSkip = cms.InputTag( "" ), - phase2clustersToSkip = cms.InputTag( "" ), - TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetJetCoreStepTrajectoryBuilderForFullTrackingPPOnAA" ) ), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), - numberMeasurementsForFit = cms.int32( 4 ), - propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) - ), - numHitsForSeedCleaner = cms.int32( 4 ), - NavigationSchool = cms.string( "SimpleNavigationSchool" ), - RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), - TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), - maxNSeeds = cms.uint32( 100000 ), - maxSeedsBeforeCleaning = cms.uint32( 10000 ) -) -process.hltFullIter10CtfWithMaterialTracksPPRef = cms.EDProducer( "TrackProducer", - useSimpleMF = cms.bool( True ), - SimpleMagneticField = cms.string( "ParabolicMf" ), - src = cms.InputTag( "hltFullIter10CkfTrackCandidatesPPRef" ), - clusterRemovalInfo = cms.InputTag( "" ), - beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - Fitter = cms.string( "hltESPFlexibleKFFittingSmoother" ), - useHitsSplitting = cms.bool( False ), - alias = cms.untracked.string( "ctfWithMaterialTracks" ), - TrajectoryInEvent = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - AlgorithmName = cms.string( "jetCoreRegionalStep" ), - Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), - GeometricInnerState = cms.bool( False ), - NavigationSchool = cms.string( "" ), - MeasurementTracker = cms.string( "" ), - MeasurementTrackerEvent = cms.InputTag( "" ) -) -process.hltFullIter10TrackDNNClassifierPPRef = cms.EDProducer( "TrackTfClassifier", - src = cms.InputTag( "hltFullIter10CtfWithMaterialTracksPPRef" ), - beamspot = cms.InputTag( "hltOnlineBeamSpot" ), - vertices = cms.InputTag( "hltFullIter0PrimaryVerticesPPRefForDmeson" ), - ignoreVertices = cms.bool( False ), - qualityCuts = cms.vdouble( -0.62, -0.49, -0.02 ), - mva = cms.PSet( - tfDnnLabel = cms.string( "hltESPTrackSelectionTfCKF" ), - batchSize = cms.int32( 16 ) - ) -) -process.hltFullIterativeTrackingMergedPPRefForDmeson = cms.EDProducer( "TrackCollectionMerger", - trackProducers = cms.VInputTag( 'hltFullIter0CtfWithMaterialTracksPPRefForDmeson','hltFullIter1CtfWithMaterialTracksPPRefForDmeson','hltFullIter2CtfWithMaterialTracksPPRefForDmeson','hltFullIter3CtfWithMaterialTracksPPRef','hltFullIter4CtfWithMaterialTracksPPRef','hltFullIter5CtfWithMaterialTracksPPRef','hltFullIter6CtfWithMaterialTracksPPRef','hltFullIter7CtfWithMaterialTracksPPRef','hltFullIter8CtfWithMaterialTracksPPRef','hltFullIter9CtfWithMaterialTracksPPRef','hltFullIter10CtfWithMaterialTracksPPRef' ), - inputClassifiers = cms.vstring( 'hltFullIter0TrackDNNClassifierPPRefForDmeson', - 'hltFullIter1TrackDNNClassifierPPRefForDmeson', - 'hltFullIter2TrackDNNClassifierPPRefForDmeson', - 'hltFullIter3TrackDNNClassifierPPRef', - 'hltFullIter4TrackDNNClassifierPPRef', - 'hltFullIter5TrackDNNClassifierPPRef', - 'hltFullIter6TrackDNNClassifierPPRef', - 'hltFullIter7TrackDNNClassifierPPRef', - 'hltFullIter8TrackDNNClassifierPPRef', - 'hltFullIter9TrackDNNClassifierPPRef', - 'hltFullIter10TrackDNNClassifierPPRef' ), - trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), - shareFrac = cms.double( 0.19 ), - foundHitBonus = cms.double( 10.0 ), - lostHitPenalty = cms.double( 5.0 ), - minShareHits = cms.uint32( 2 ), - allowFirstHitShare = cms.bool( True ), - enableMerging = cms.bool( True ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullOnlinePrimaryVerticesPPRefForDmeson = cms.EDProducer( "PrimaryVertexProducer", - vertexCollections = cms.VPSet( - cms.PSet( chi2cutoff = cms.double( 3.0 ), - label = cms.string( "" ), - useBeamConstraint = cms.bool( False ), - minNdof = cms.double( 0.0 ), - maxDistanceToBeam = cms.double( 1.0 ), - algorithm = cms.string( "AdaptiveVertexFitter" ) - ), - cms.PSet( chi2cutoff = cms.double( 3.0 ), - label = cms.string( "WithBS" ), - useBeamConstraint = cms.bool( False ), - minNdof = cms.double( 0.0 ), - maxDistanceToBeam = cms.double( 1.0 ), - algorithm = cms.string( "AdaptiveVertexFitter" ) - ) - ), - verbose = cms.untracked.bool( False ), - TkFilterParameters = cms.PSet( - maxEta = cms.double( 2.4 ), - minPt = cms.double( 0.0 ), - minSiliconLayersWithHits = cms.int32( 5 ), - minPixelLayersWithHits = cms.int32( 2 ), - maxNormalizedChi2 = cms.double( 20.0 ), - trackQuality = cms.string( "any" ), - algorithm = cms.string( "filter" ), - maxD0Significance = cms.double( 5.0 ) - ), - beamSpotLabel = cms.InputTag( "hltOnlineBeamSpot" ), - TrackLabel = cms.InputTag( "hltFullIterativeTrackingMergedPPRefForDmeson" ), - TrackTimeResosLabel = cms.InputTag( "dummy_default" ), - TrackTimesLabel = cms.InputTag( "dummy_default" ), - trackMTDTimeQualityVMapTag = cms.InputTag( "dummy_default" ), - TkClusParameters = cms.PSet( - algorithm = cms.string( "gap" ), - TkGapClusParameters = cms.PSet( zSeparation = cms.double( 1.0 ) ) - ), - isRecoveryIteration = cms.bool( False ), - recoveryVtxCollection = cms.InputTag( "" ), - useMVACut = cms.bool( False ), - minTrackTimeQuality = cms.double( 0.8 ) -) -process.hltGoodHighPurityFullTracksForDmesonPPRef = cms.EDProducer( "TrackCollectionFilterCloner", - originalSource = cms.InputTag( "hltFullIterativeTrackingMergedPPRefForDmeson" ), - originalMVAVals = cms.InputTag( 'hltFullIterativeTrackingMergedPPRefForDmeson','MVAValues' ), - originalQualVals = cms.InputTag( 'hltFullIterativeTrackingMergedPPRefForDmeson','QualityMasks' ), - minQuality = cms.string( "highPurity" ), - copyExtras = cms.untracked.bool( True ), - copyTrajectories = cms.untracked.bool( False ) -) -process.hltFullCandsPPRef = cms.EDProducer( "ConcreteChargedCandidateProducer", - src = cms.InputTag( "hltGoodHighPurityFullTracksForDmesonPPRef" ), - particleType = cms.string( "pi+" ) -) -process.hltFullTrackFilterForDmesonPPRef = cms.EDFilter( "HLTSingleVertexPixelTrackFilter", - saveTags = cms.bool( False ), - vertexCollection = cms.InputTag( "hltFullOnlinePrimaryVerticesPPRefForDmeson" ), - trackCollection = cms.InputTag( "hltFullCandsPPRef" ), - MinPt = cms.double( 0.0 ), - MaxPt = cms.double( 10000.0 ), - MaxEta = cms.double( 9999.0 ), - MaxVz = cms.double( 9999.0 ), - MinTrks = cms.int32( 0 ), - MinSep = cms.double( 999.0 ) -) -process.hltTkTkVtxForDmesonDpt25PPRef = cms.EDProducer( "HLTDisplacedtktkVtxProducer", - Src = cms.InputTag( "hltFullCandsPPRef" ), - PreviousCandTag = cms.InputTag( "hltFullTrackFilterForDmesonPPRef" ), - MaxEta = cms.double( 2.0 ), - MinPt = cms.double( 6.0 ), - MinPtPair = cms.double( 25.0 ), - MinInvMass = cms.double( 1.47 ), - MaxInvMass = cms.double( 2.27 ), - massParticle1 = cms.double( 0.1396 ), - massParticle2 = cms.double( 0.4937 ), - ChargeOpt = cms.int32( -1 ), - triggerTypeDaughters = cms.int32( 91 ) -) -process.hltTkTkFilterForDmesonDpt25PPRef = cms.EDFilter( "HLTDisplacedtktkFilter", - saveTags = cms.bool( True ), - FastAccept = cms.bool( False ), - MinLxySignificance = cms.double( 1.0 ), - MaxLxySignificance = cms.double( 0.0 ), - MaxNormalisedChi2 = cms.double( 999.0 ), - MinVtxProbability = cms.double( 0.0 ), - MinCosinePointingAngle = cms.double( 0.8 ), - triggerTypeDaughters = cms.int32( 91 ), - DisplacedVertexTag = cms.InputTag( "hltTkTkVtxForDmesonDpt25PPRef" ), - BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), - TrackTag = cms.InputTag( "hltFullCandsPPRef" ) -) -process.hltPrePPRefDmesonTrackingGlobalDpt35 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltTkTkVtxForDmesonDpt35PPRef = cms.EDProducer( "HLTDisplacedtktkVtxProducer", - Src = cms.InputTag( "hltFullCandsPPRef" ), - PreviousCandTag = cms.InputTag( "hltFullTrackFilterForDmesonPPRef" ), - MaxEta = cms.double( 2.0 ), - MinPt = cms.double( 6.0 ), - MinPtPair = cms.double( 35.0 ), - MinInvMass = cms.double( 1.47 ), - MaxInvMass = cms.double( 2.27 ), - massParticle1 = cms.double( 0.1396 ), - massParticle2 = cms.double( 0.4937 ), - ChargeOpt = cms.int32( -1 ), - triggerTypeDaughters = cms.int32( 91 ) -) -process.hltTkTkFilterForDmesonDpt35PPRef = cms.EDFilter( "HLTDisplacedtktkFilter", - saveTags = cms.bool( True ), - FastAccept = cms.bool( False ), - MinLxySignificance = cms.double( 1.0 ), - MaxLxySignificance = cms.double( 0.0 ), - MaxNormalisedChi2 = cms.double( 999.0 ), - MinVtxProbability = cms.double( 0.0 ), - MinCosinePointingAngle = cms.double( 0.8 ), - triggerTypeDaughters = cms.int32( 91 ), - DisplacedVertexTag = cms.InputTag( "hltTkTkVtxForDmesonDpt35PPRef" ), - BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), - TrackTag = cms.InputTag( "hltFullCandsPPRef" ) -) -process.hltL1sSingleJet44 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet44" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPrePPRefDmesonTrackingGlobalDpt45 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltTkTkVtxForDmesonDpt45PPRef = cms.EDProducer( "HLTDisplacedtktkVtxProducer", - Src = cms.InputTag( "hltFullCandsPPRef" ), - PreviousCandTag = cms.InputTag( "hltFullTrackFilterForDmesonPPRef" ), - MaxEta = cms.double( 2.0 ), - MinPt = cms.double( 6.0 ), - MinPtPair = cms.double( 45.0 ), - MinInvMass = cms.double( 1.47 ), - MaxInvMass = cms.double( 2.27 ), - massParticle1 = cms.double( 0.1396 ), - massParticle2 = cms.double( 0.4937 ), - ChargeOpt = cms.int32( -1 ), - triggerTypeDaughters = cms.int32( 91 ) -) -process.hltTkTkFilterForDmesonDpt45PPRef = cms.EDFilter( "HLTDisplacedtktkFilter", - saveTags = cms.bool( True ), - FastAccept = cms.bool( False ), - MinLxySignificance = cms.double( 1.0 ), - MaxLxySignificance = cms.double( 0.0 ), - MaxNormalisedChi2 = cms.double( 999.0 ), - MinVtxProbability = cms.double( 0.0 ), - MinCosinePointingAngle = cms.double( 0.8 ), - triggerTypeDaughters = cms.int32( 91 ), - DisplacedVertexTag = cms.InputTag( "hltTkTkVtxForDmesonDpt45PPRef" ), - BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), - TrackTag = cms.InputTag( "hltFullCandsPPRef" ) -) -process.hltPrePPRefDmesonTrackingGlobalDpt60 = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltTkTkVtxForDmesonDpt60PPRef = cms.EDProducer( "HLTDisplacedtktkVtxProducer", - Src = cms.InputTag( "hltFullCandsPPRef" ), - PreviousCandTag = cms.InputTag( "hltFullTrackFilterForDmesonPPRef" ), - MaxEta = cms.double( 2.0 ), - MinPt = cms.double( 6.0 ), - MinPtPair = cms.double( 60.0 ), - MinInvMass = cms.double( 1.47 ), - MaxInvMass = cms.double( 2.27 ), - massParticle1 = cms.double( 0.1396 ), - massParticle2 = cms.double( 0.4937 ), - ChargeOpt = cms.int32( -1 ), - triggerTypeDaughters = cms.int32( 91 ) -) -process.hltTkTkFilterForDmesonDpt60PPRef = cms.EDFilter( "HLTDisplacedtktkFilter", - saveTags = cms.bool( True ), - FastAccept = cms.bool( False ), - MinLxySignificance = cms.double( 1.0 ), - MaxLxySignificance = cms.double( 0.0 ), - MaxNormalisedChi2 = cms.double( 999.0 ), - MinVtxProbability = cms.double( 0.0 ), - MinCosinePointingAngle = cms.double( 0.8 ), - triggerTypeDaughters = cms.int32( 91 ), - DisplacedVertexTag = cms.InputTag( "hltTkTkVtxForDmesonDpt60PPRef" ), - BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), - TrackTag = cms.InputTag( "hltFullCandsPPRef" ) -) -process.hltL1sZDC1nAsymXORSingleJet8 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet8_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPrePPRefUPCSingleJet8ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC1nAsymXORSingleJet12 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet12_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPrePPRefUPCSingleJet12ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC1nAsymXORSingleJet16 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet16_ZDC1n_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet16_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPrePPRefUPCSingleJet16ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC1nAsymXORSingleJet20 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet20_ZDC1n_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet20_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPrePPRefUPCSingleJet20ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC1nAsymXORSingleJet24 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet24_ZDC1n_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet24_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPrePPRefUPCSingleJet24ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC1nAsymXORSingleJet28 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet28_ZDC1n_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp1_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp2_AsymXOR OR L1_SingleJet28_ZDC1n_Bkp3_AsymXOR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPrePPRefUPCSingleJet28ZDC1nAsymXOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC1nORSingleJet8 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet8_ZDC1n_OR OR L1_SingleJet8_ZDC1n_Bkp1_OR OR L1_SingleJet8_ZDC1n_Bkp2_OR OR L1_SingleJet8_ZDC1n_Bkp3_OR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) -) -process.hltPrePPRefUPCSingleJet8ZDC1nOR = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltL1sZDC1nORSingleJet12 = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_OR OR L1_SingleJet12_ZDC1n_Bkp1_OR OR L1_SingleJet12_ZDC1n_Bkp2_OR OR L1_SingleJet12_ZDC1n_Bkp3_OR" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), - L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) +process.hltL1sZDC1nORSingleJet12 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_SingleJet12_ZDC1n_OR OR L1_SingleJet12_ZDC1n_Bkp1_OR OR L1_SingleJet12_ZDC1n_Bkp2_OR OR L1_SingleJet12_ZDC1n_Bkp3_OR" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ), + L1EtSumZdcInputTag = cms.InputTag( 'hltGtStage2Digis','EtSumZDC' ) ) process.hltPrePPRefUPCSingleJet12ZDC1nOR = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -119746,6 +116125,22 @@ process.hltCombinatorialcosmicseedfinderP5 = cms.EDProducer( "CtfSpecialSeedGenerator", SeedMomentum = cms.double( 5.0 ), ErrorRescaling = cms.double( 50.0 ), + UseScintillatorsConstraint = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + SeedsFromPositiveY = cms.bool( True ), + SeedsFromNegativeY = cms.bool( False ), + CheckHitsAreOnDifferentLayers = cms.bool( False ), + SetMomentum = cms.bool( True ), + requireBOFF = cms.bool( True ), + maxSeeds = cms.int32( 10000 ), + doClusterCheck = cms.bool( True ), + MaxNumberOfStripClusters = cms.uint32( 300 ), + ClusterCollectionLabel = cms.InputTag( "hltFullSiStripRawToClustersFacility" ), + MaxNumberOfPixelClusters = cms.uint32( 1000 ), + PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), + cut = cms.string( "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), + DontCountDetsAboveNClusters = cms.uint32( 20 ), + Charges = cms.vint32( -1 ), RegionFactoryPSet = cms.PSet( RegionPSet = cms.PSet( ptMin = cms.double( 0.9 ), @@ -119759,7 +116154,20 @@ ), ComponentName = cms.string( "GlobalRegionProducer" ) ), - Charges = cms.vint32( -1 ), + UpperScintillatorParameters = cms.PSet( + WidthInX = cms.double( 100.0 ), + GlobalX = cms.double( 0.0 ), + GlobalY = cms.double( 300.0 ), + GlobalZ = cms.double( 50.0 ), + LenghtInZ = cms.double( 100.0 ) + ), + LowerScintillatorParameters = cms.PSet( + WidthInX = cms.double( 100.0 ), + GlobalX = cms.double( 0.0 ), + GlobalY = cms.double( -100.0 ), + GlobalZ = cms.double( 50.0 ), + LenghtInZ = cms.double( 100.0 ) + ), OrderedHitsFactoryPSets = cms.VPSet( cms.PSet( LayerSrc = cms.InputTag( "hltCombinatorialcosmicseedingtripletsP5" ), NavigationDirection = cms.string( "outsideIn" ), @@ -119791,40 +116199,11 @@ PropagationDirection = cms.string( "alongMomentum" ), ComponentName = cms.string( "GenericPairGenerator" ) ) - ), - UseScintillatorsConstraint = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - SeedsFromPositiveY = cms.bool( True ), - SeedsFromNegativeY = cms.bool( False ), - doClusterCheck = cms.bool( True ), - ClusterCollectionLabel = cms.InputTag( "hltFullSiStripRawToClustersFacility" ), - MaxNumberOfStripClusters = cms.uint32( 300 ), - MaxNumberOfPixelClusters = cms.uint32( 1000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), - CheckHitsAreOnDifferentLayers = cms.bool( False ), - SetMomentum = cms.bool( True ), - requireBOFF = cms.bool( True ), - maxSeeds = cms.int32( 10000 ), - DontCountDetsAboveNClusters = cms.untracked.uint32( 20 ), - UpperScintillatorParameters = cms.PSet( - WidthInX = cms.double( 100.0 ), - GlobalX = cms.double( 0.0 ), - GlobalY = cms.double( 300.0 ), - GlobalZ = cms.double( 50.0 ), - LenghtInZ = cms.double( 100.0 ) - ), - LowerScintillatorParameters = cms.PSet( - WidthInX = cms.double( 100.0 ), - GlobalX = cms.double( 0.0 ), - GlobalY = cms.double( -100.0 ), - GlobalZ = cms.double( 50.0 ), - LenghtInZ = cms.double( 100.0 ) ) ) process.hltCombinedP5SeedsForCTF = cms.EDProducer( "SeedCombiner", seedCollections = cms.VInputTag( 'hltCombinatorialcosmicseedfinderP5','hltSimpleCosmicBONSeeds' ), - PairCollection = cms.untracked.InputTag( "hltCombinatorialcosmicseedfinderP5" ), - TripletCollection = cms.untracked.InputTag( "hltSimpleCosmicBONSeeds" ) + clusterRemovalInfos = cms.VInputTag( ) ) process.hltCkfTrackCandidatesP5 = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -121034,8 +117413,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ) ) process.hltPreDatasetHIDQMOnlineBeamspot = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -121089,8 +117467,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14 / 15', - 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8 / 0', + triggerConditions = cms.vstring( 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8 / 0', 'HLT_HIDoubleEle15GsfMass50_v14', 'HLT_HIDoubleGEDPhoton20_v7 / 6', 'HLT_HIL1SingleMu5_SingleEG20Gsf_v7', @@ -121111,8 +117488,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1', - 'HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8' ) + triggerConditions = cms.vstring( 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1' ) ) process.hltPreDatasetHIExpressAlignment = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -121125,7 +117501,6 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', - 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIL1NotBptxOR_v14', @@ -121158,7 +117533,6 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', - 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIL1NotBptxOR_v14', @@ -121444,7 +117818,6 @@ throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14 / 0', 'HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1 / 5', - 'HLT_HICsAK4PFJet100Eta1p5_v14 / 3', 'HLT_HIEle20Gsf_v14 / 2', 'HLT_HIGEDPhoton40_v14 / 3', 'HLT_HIHcalNZS_v14 / 3', @@ -121504,15 +117877,7 @@ l1tResults = cms.InputTag( "" ), l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), - triggerConditions = cms.vstring( 'HLT_HICsAK4PFJet100Eta1p5_v14', - 'HLT_HICsAK4PFJet100Eta2p1_v7', - 'HLT_HICsAK4PFJet120Eta1p5_v14', - 'HLT_HICsAK4PFJet120Eta2p1_v7', - 'HLT_HICsAK4PFJet60Eta1p5_v14', - 'HLT_HICsAK4PFJet60Eta2p1_v7', - 'HLT_HICsAK4PFJet80Eta1p5_v14', - 'HLT_HICsAK4PFJet80Eta2p1_v7', - 'HLT_HICscCluster_Loose_v7', + triggerConditions = cms.vstring( 'HLT_HICscCluster_Loose_v7', 'HLT_HICscCluster_Medium_v7', 'HLT_HICscCluster_Tight_v7', 'HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8', @@ -121664,11 +118029,14 @@ 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v23', 'HLT_HT550_DisplacedDijet60_Inclusive_v23', + 'HLT_IsoMu24_HLTTracking_v1', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12', 'HLT_L1SingleMuCosmics_CosmicTracking_v1', 'HLT_L1SingleMuCosmics_PointingCosmicTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1', 'HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13', @@ -122891,10 +119259,6 @@ 'HLT_AK4PFJetFwd40_v8', 'HLT_AK4PFJetFwd60_v8', 'HLT_AK4PFJetFwd80_v8', - 'HLT_PPRefDmesonTrackingGlobal_Dpt25_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt35_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt45_v6', - 'HLT_PPRefDmesonTrackingGlobal_Dpt60_v6', 'HLT_PPRefDoubleEle10GsfMass50_v6', 'HLT_PPRefDoubleEle10Gsf_v6', 'HLT_PPRefDoubleEle15GsfMass50_v6', @@ -123363,6 +119727,78 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +process.hltDatasetVRRandom = cms.EDFilter( "TriggerResultsFilter", + usePathStatus = cms.bool( True ), + hltResults = cms.InputTag( "" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMaskAndPrescale = cms.bool( False ), + throw = cms.bool( True ), + triggerConditions = cms.vstring( 'HLT_Random_HighRate_v1' ) +) +process.hltPreDatasetVRRandom0 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom1 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 1 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom2 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 2 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom3 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 3 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom4 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 4 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 5 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom6 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 6 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom7 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 7 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom8 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 8 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom9 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 9 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom10 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 10 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom11 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 11 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom12 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 12 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom13 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 13 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom14 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 14 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom15 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 15 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltDatasetZeroBias = cms.EDFilter( "TriggerResultsFilter", usePathStatus = cms.bool( True ), hltResults = cms.InputTag( "" ), @@ -124352,6 +120788,7 @@ 'keep *_hltL3NoFiltersNoVtxMuonCandidates_*_*', 'keep *_hltMergedTracks_*_*', 'keep *_hltOnlineBeamSpot_*_*', + 'keep *_hltParticleNetDiscriminatorsJetTags_*_*', 'keep *_hltPixelTracks_*_*', 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelClusters_*_*', @@ -124405,10 +120842,6 @@ ), SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_DQMGPUvsCPU' ) ), outputCommands = cms.untracked.vstring( 'drop *', - 'keep *Cluster*_hltSiPixelClustersSerialSync_*_*', - 'keep *Cluster*_hltSiPixelClusters_*_*', - 'keep *RecHit*_hltSiPixelRecHitsSerialSync_*_*', - 'keep *RecHit*_hltSiPixelRecHits_*_*', 'keep *_hltEcalDigisSerialSync_*_*', 'keep *_hltEcalDigis_*_*', 'keep *_hltEcalUncalibRecHitSerialSync_*_*', @@ -124417,10 +120850,6 @@ 'keep *_hltHbhereco_*_*', 'keep *_hltParticleFlowClusterHCALSerialSync_*_*', 'keep *_hltParticleFlowClusterHCAL_*_*', - 'keep *_hltPixelTracksSerialSync_*_*', - 'keep *_hltPixelTracks_*_*', - 'keep *_hltPixelVerticesSerialSync_*_*', - 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelDigiErrorsSerialSync_*_*', 'keep *_hltSiPixelDigiErrors_*_*' ) ) @@ -128366,6 +124795,142 @@ 'keep edmTriggerResults_*_*_*', 'keep triggerTriggerEvent_*_*_*' ) ) +process.hltOutputPhysicsVRRandom1 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom1.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom2', + 'Dataset_VRRandom3' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom0 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom0.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom0', + 'Dataset_VRRandom1' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom2 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom2.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom4', + 'Dataset_VRRandom5' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom3 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom3.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom6', + 'Dataset_VRRandom7' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom4 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom4.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom8', + 'Dataset_VRRandom9' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom5 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom5.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom10', + 'Dataset_VRRandom11' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom6 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom6.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom12', + 'Dataset_VRRandom13' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom7 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom7.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom14', + 'Dataset_VRRandom15' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) process.HLTL1UnpackerSequence = cms.Sequence( process.hltGtStage2Digis + process.hltGtStage2ObjectMap ) process.HLTBeamSpot = cms.Sequence( process.hltOnlineMetaDataDigis + process.hltOnlineBeamSpot ) @@ -128937,24 +125502,6 @@ process.HLTHIGEDPhoton60PPRefSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEgammaCandidatesWrapper + process.hltEG60EtPPRefFilter + process.HLTDoLocalHcalWithTowerSequence + process.hltEgammaHoverE + process.hltEG60HoverELoosePPRefFilter ) process.HLTHIGEDPhoton60EBPPRefSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEgammaCandidatesWrapper + process.hltEG60EtEBPPRefFilter + process.HLTDoLocalHcalWithTowerSequence + process.hltEgammaHoverE + process.hltEG60HoverELooseEBPPRefFilter ) process.HLTDoubleGEDPhoton20PPRefSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEgammaCandidatesWrapper + process.hltDoubleEG20EtPPRefFilter + process.HLTDoLocalHcalWithTowerSequence + process.hltEgammaHoverE + process.hltDoubleEG20HoverELoosePPRefFilter ) -process.HLTDoLocalPixelSequenceForPFPPRefForDmeson = cms.Sequence( process.HLTDoLocalPixelSequence + process.hltSiPixelClustersCache ) -process.HLTFullIterativeTrackingIteration0PreSplittingPPRefForDmeson = cms.Sequence( process.hltFullIter0PixelQuadrupletsPreSplittingPPRefForDmeson + process.hltFullIter0PixelTrackingRegionsPreSplittingPPRefForDmeson + process.hltFullIter0PixelClusterCheckPreSplittingPPRefForDmeson + process.hltFullIter0PixelHitDoubletsPreSplittingPPRefForDmeson + process.hltFullIter0PixelHitQuadrupletsPreSplittingPPRefForDmeson + process.hltFullIter0PixelSeedsPreSplittingPPRefForDmeson + process.hltFullIter0CkfTrackCandidatesPreSplittingPPRefForDmeson + process.hltFullIter0CtfWithMaterialTracksPreSplittingPPRefForDmeson + process.hltFullIter0PrimaryVerticesPreSplittingPPRefForDmeson ) -process.HLTDoLocalPixelSequenceAfterSplittingPPRefForDmeson = cms.Sequence( process.hltSiPixelClustersAfterSplittingPPRefForDmeson + process.hltSiPixelClustersCacheAfterSplittingPPRefForDmeson + process.hltSiPixelRecHitsAfterSplittingPPRefForDmeson ) -process.HLTDoLocalStripSequenceFullPPRefForDmeson = cms.Sequence( process.hltSiStripExcludedFEDListProducer + process.hltAfterSplittingMeasureTrackerEventForDmeson + process.hltSiStripMatchedRecHitsFullPPRef ) -process.HLTPixelClusterSplittingForPFPPRefForDmeson = cms.Sequence( process.hltJetsForCoreTracking + process.HLTDoLocalPixelSequenceForPFPPRefForDmeson + process.HLTDoLocalPixelSequence + process.HLTDoLocalStripSequence + process.HLTFullIterativeTrackingIteration0PreSplittingPPRefForDmeson + process.HLTDoLocalPixelSequenceAfterSplittingPPRefForDmeson + process.HLTDoLocalStripSequenceFullPPRefForDmeson ) -process.HLTFullIterativeTrackingIteration0PPRefForDmeson = cms.Sequence( process.hltFullIter0PixelQuadrupletsPPRefForDmeson + process.hltFullIter0PixelTrackingRegionsPPRefForDmeson + process.hltFullIter0PixelClusterCheckPPRefForDmeson + process.hltFullIter0PixelHitDoubletsPPRefForDmeson + process.hltFullIter0PixelHitQuadrupletsPPRefForDmeson + process.hltFullIter0PixelSeedsPPRefForDmeson + process.hltFullIter0CkfTrackCandidatesPPRefForDmeson + process.hltFullIter0CtfWithMaterialTracksPPRefForDmeson + process.hltFullIter0PrimaryVerticesPPRefForDmeson + process.hltFullIter0TrackDNNClassifierPPRefForDmeson + process.hltFullIter0HighPurityTracksPPRefForDmeson ) -process.HLTFullIterativeTrackingIteration1PPRefForDmeson = cms.Sequence( process.hltFullIter1ClustersRefRemovalPPRefForDmeson + process.hltFullIter1MaskedMeasurementTrackerEventPPRefForDmeson + process.hltFullIter1PixelQuadrupletsPPRefForDmeson + process.hltFullIter1PixelTrackingRegionsPPRefForDmeson + process.hltFullIter1PixelClusterCheckPPRefForDmeson + process.hltFullIter1PixelHitDoubletsPPRefForDmeson + process.hltFullIter1PixelHitQuadrupletsPPRefForDmeson + process.hltFullIter1PixelSeedsPPRefForDmeson + process.hltFullIter1CkfTrackCandidatesPPRefForDmeson + process.hltFullIter1CtfWithMaterialTracksPPRefForDmeson + process.hltFullIter1TrackDNNClassifierPPRefForDmeson + process.hltFullIter1HighPurityTracksPPRefForDmeson ) -process.HLTFullIterativeTrackingIteration2PPRefForDmeson = cms.Sequence( process.hltFullIter2ClustersRefRemovalPPRefForDmeson + process.hltFullIter2MaskedMeasurementTrackerEventPPRefForDmeson + process.hltFullIter2PixelTripletsPPRefForDmeson + process.hltFullIter2PixelTrackingRegionsPPRefForDmeson + process.hltFullIter2PixelClusterCheckPPRefForDmeson + process.hltFullIter2PixelHitDoubletsPPRefForDmeson + process.hltFullIter2PixelHitTripletsPPRefForDmeson + process.hltFullIter2PixelSeedsPPRefForDmeson + process.hltFullIter2CkfTrackCandidatesPPRefForDmeson + process.hltFullIter2CtfWithMaterialTracksPPRefForDmeson + process.hltFullIter2TrackDNNClassifierPPRefForDmeson + process.hltFullIter2HighPurityTracksPPRefForDmeson ) -process.HLTFullIterativeTrackingIteration3PPRef = cms.Sequence( process.hltFullIter3ClustersRefRemovalPPRef + process.hltFullIter3MaskedMeasurementTrackerEventPPRef + process.hltFullIter3PixelTripletsPPRef + process.hltFullIter3PixelTrackingRegionsPPRef + process.hltFullIter3PixelClusterCheckPPRef + process.hltFullIter3PixelHitDoubletsPPRef + process.hltFullIter3PixelHitTripletsPPRef + process.hltFullIter3PixelSeedsPPRef + process.hltFullIter3CkfTrackCandidatesPPRef + process.hltFullIter3CtfWithMaterialTracksPPRef + process.hltFullIter3TrackDNNClassifierPPRef + process.hltFullIter3HighPurityTracksPPRef ) -process.HLTFullIterativeTrackingIteration4PPRef = cms.Sequence( process.hltFullIter4ClustersRefRemovalPPRef + process.hltFullIter4MaskedMeasurementTrackerEventPPRef + process.hltFullIter4PixelQuadrupletsPPRef + process.hltFullIter4PixelTrackingRegionsPPRef + process.hltFullIter4PixelClusterCheckPPRef + process.hltFullIter4PixelHitDoubletsPPRef + process.hltFullIter4PixelHitQuadrupletsPPRef + process.hltFullIter4PixelSeedsPPRef + process.hltFullIter4CkfTrackCandidatesPPRef + process.hltFullIter4CtfWithMaterialTracksPPRef + process.hltFullIter4TrackDNNClassifierPPRef + process.hltFullIter4HighPurityTracksPPRef ) -process.HLTFullIterativeTrackingIteration5PPRef = cms.Sequence( process.hltFullIter5ClustersRefRemovalPPRef + process.hltFullIter5MaskedMeasurementTrackerEventPPRef + process.hltFullIter5PixelTripletsPPRef + process.hltFullIter5PixelTrackingRegionsPPRef + process.hltFullIter5PixelClusterCheckPPRef + process.hltFullIter5PixelHitDoubletsPPRef + process.hltFullIter5PixelHitTripletsPPRef + process.hltFullIter5PixelSeedsPPRef + process.hltFullIter5CkfTrackCandidatesPPRef + process.hltFullIter5CtfWithMaterialTracksPPRef + process.hltFullIter5TrackDNNClassifierPPRef + process.hltFullIter5HighPurityTracksPPRef ) -process.HLTFullIterativeTrackingIteration6PPRef = cms.Sequence( process.hltFullIter6ClustersRefRemovalPPRef + process.hltFullIter6MaskedMeasurementTrackerEventPPRef + process.hltFullIter6PixelClusterCheckPPRef + process.hltFullIter6PixelTrackingRegionSeedLayersBPPRef + process.hltFullIter6PixelHitDoubletsBPPRef + process.hltFullIter6PixelSeedsBPPRef + process.hltFullIter6CkfTrackCandidatesPPRef + process.hltFullIter6CtfWithMaterialTracksPPRef + process.hltFullIter6TrackDNNClassifierPPRef + process.hltFullIter6HighPurityTracksPPRef ) -process.HLTFullIterativeTrackingIteration7PPRef = cms.Sequence( process.hltFullIter7ClustersRefRemovalPPRef + process.hltFullIter7MaskedMeasurementTrackerEventPPRef + process.hltFullIter7MixedLayersAPPRef + process.hltFullIter7MixedTrackingRegionsAPPRef + process.hltFullIter7MixedClusterCheckPPRef + process.hltFullIter7MixedHitDoubletsAPPRef + process.hltFullIter7MixedHitTripletsAPPRef + process.hltFullIter7MixedSeedsAPPRef + process.hltFullIter7MixedLayersBPPRef + process.hltFullIter7MixedTrackingRegionsBPPRef + process.hltFullIter7MixedHitDoubletsBPPRef + process.hltFullIter7MixedHitTripletsBPPRef + process.hltFullIter7MixedSeedsBPPRef + process.hltFullIter7MixedSeedsPPRef + process.hltFullIter7CkfTrackCandidatesPPRef + process.hltFullIter7CtfWithMaterialTracksPPRef + process.hltFullIter7TrackDNNClassifierPPRef + process.hltFullIter7HighPurityTracksPPRef ) -process.HLTFullIterativeTrackingIteration8PPRef = cms.Sequence( process.hltFullIter8ClustersRefRemovalPPRef + process.hltFullIter8MaskedMeasurementTrackerEventPPRef + process.hltFullIter8PixelLessLayersPPRef + process.hltFullIter8PixelLessTrackingRegionsPPRef + process.hltFullIter8PixelLessClusterCheckPPRef + process.hltFullIter8PixelLessHitDoubletsPPRef + process.hltFullIter8PixelLessHitTripletsPPRef + process.hltFullIter8PixelLessSeedsPPRef + process.hltFullIter8CkfTrackCandidatesPPRef + process.hltFullIter8CtfWithMaterialTracksPPRef + process.hltFullIter8TrackDNNClassifierPPRef + process.hltFullIter8HighPurityTracksPPRef ) -process.HLTFullIterativeTrackingIteration9PPRef = cms.Sequence( process.hltFullIter9ClustersRefRemovalPPRef + process.hltFullIter9MaskedMeasurementTrackerEventPPRef + process.hltFullIter9TobTecLayersTriplPPRef + process.hltFullIter9TobTecTrackingRegionsTriplPPRef + process.hltFullIter9TobTecClusterCheckPPRef + process.hltFullIter9TobTecHitDoubletsTriplPPRef + process.hltFullIter9TobTecHitTripletsTriplPPRef + process.hltFullIter9TobTecSeedsTriplPPRef + process.hltFullIter9TobTecLayersPairPPRef + process.hltFullIter9TobTecTrackingRegionsPairPPRef + process.hltFullIter9TobTecHitDoubletsPairPPRef + process.hltFullIter9TobTecSeedsPairPPRef + process.hltFullIter9TobTecSeedsPPRef + process.hltFullIter9CkfTrackCandidatesPPRef + process.hltFullIter9CtfWithMaterialTracksPPRef + process.hltFullIter9TrackDNNClassifierPPRef ) -process.HLTFullIterativeTrackingIteration10PPRef = cms.Sequence( process.hltFullIter10JetCoreLayersPPRef + process.hltFullIter10JetCoreRegionSeedsPPRef + process.hltFullIter10CkfTrackCandidatesPPRef + process.hltFullIter10CtfWithMaterialTracksPPRef + process.hltFullIter10TrackDNNClassifierPPRef ) -process.HLTFullIterativeTrackingPPRefForDmeson = cms.Sequence( process.HLTFullIterativeTrackingIteration0PPRefForDmeson + process.HLTFullIterativeTrackingIteration1PPRefForDmeson + process.HLTFullIterativeTrackingIteration2PPRefForDmeson + process.HLTFullIterativeTrackingIteration3PPRef + process.HLTFullIterativeTrackingIteration4PPRef + process.HLTFullIterativeTrackingIteration5PPRef + process.HLTFullIterativeTrackingIteration6PPRef + process.HLTFullIterativeTrackingIteration7PPRef + process.HLTFullIterativeTrackingIteration8PPRef + process.HLTFullIterativeTrackingIteration9PPRef + process.HLTFullIterativeTrackingIteration10PPRef + process.hltFullIterativeTrackingMergedPPRefForDmeson ) -process.HLTFullTracksForDmesonPPRef = cms.Sequence( process.hltGoodHighPurityFullTracksForDmesonPPRef + process.hltFullCandsPPRef + process.hltFullTrackFilterForDmesonPPRef ) process.HLTNoPUSequence = cms.Sequence( process.HLTDoLocalPixelSequence + process.HLTRecopixelvertexingSequence + process.hltSelectorJets20L1FastJetForNoPU + process.hltCaloJetFromPV ) process.HLTEgammaOpenSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEgammaClusterShape + process.hltEgammaR9ID + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEgammaEcalPFClusterIso + process.HLTPFHcalClustering + process.hltEgammaHcalPFClusterIso + process.HLTTrackReconstructionForIsoForPhotons + process.hltEgammaHollowTrackIso + process.HLTElePixelMatchSequence + process.HLTGsfElectronSequence + process.HLTTrackReconstructionForIsoElectronIter02 + process.hltEgammaEleGsfTrackIso ) process.HLTElePixelMatchUnseededSequenceForBParking = cms.Sequence( process.HLTDoLocalPixelSequence + process.HLTDoLocalStripSequence + process.hltPixelLayerPairs + process.hltPixelLayerTriplets + process.hltEgammaHoverEUnseeded + process.hltEgammaSuperClustersToPixelMatchUnseeded + process.hltEleSeedsTrackingRegionsUnseeded + process.hltElePixelHitDoubletsUnseeded + process.hltElePixelHitDoubletsForTripletsUnseeded + process.hltElePixelHitTripletsUnseeded + process.hltElePixelSeedsDoubletsUnseeded + process.hltElePixelSeedsTripletsUnseeded + process.hltElePixelSeedsCombinedUnseeded + process.hltEgammaElectronPixelSeedsForBParkingUnseeded + process.hltEgammaPixelMatchVarsForBParkingUnseeded ) @@ -129113,6 +125660,7 @@ process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGor + process.hltPreEle32WPTightGsfL1DoubleEG + process.HLTEle32L1DoubleEGWPTightGsfSequence + process.HLTEndSequence ) process.HLT_IsoMu20_v27 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu18 + process.hltPreIsoMu20 + process.hltL1fL1sMu18L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sMu18L1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu18L1Filtered0) + process.hltL3fL1sMu18L1f0L2f10QL3Filtered20Q + process.HLTMu20IsolationSequence + process.hltL3crIsoL1sMu18L1f0L2f10QL3f20QL3trkIsoFiltered + process.HLTEndSequence ) process.HLT_IsoMu24_v25 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu22 + process.hltPreIsoMu24 + process.hltL1fL1sMu22L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sSingleMu22L1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu22L1Filtered0) + process.hltL3fL1sSingleMu22L1f0L2f10QL3Filtered24Q + process.HLTMu24IsolationSequence + process.hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered + process.HLTEndSequence ) +process.HLT_IsoMu24_HLTTracking_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu22 + process.hltPreIsoMu24HLTTracking + process.hltL1fL1sMu22L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sSingleMu22L1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu22L1Filtered0) + process.hltL3fL1sSingleMu22L1f0L2f10QL3Filtered24Q + process.HLTMu24IsolationSequence + process.hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered + process.HLTIterativeTrackingIter02 + process.HLTEndSequence ) process.HLT_IsoMu24_eta2p1_v27 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu22 + process.hltPreIsoMu24eta2p1 + process.hltL1fL1sMu22erL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sSingleMu22erL1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu22erL1Filtered0) + process.hltL3fL1sSingleMu22erL1f0L2f10QL3Filtered24Q + process.HLTMu24Eta2p1IsolationSequence + process.hltL3crIsoL1sSingleMu22erL1f0L2f10QL3f24QL3trkIsoFiltered + process.HLTEndSequence ) process.HLT_IsoMu27_v28 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu22or25 + process.hltPreIsoMu27 + process.hltL1fL1sMu22or25L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sMu22or25L1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu22or25L1Filtered0) + process.hltL3fL1sMu22Or25L1f0L2f10QL3Filtered27Q + process.HLTMu27IsolationSequence + process.hltL3crIsoL1sMu22Or25L1f0L2f10QL3f27QL3trkIsoFiltered + process.HLTEndSequence ) process.HLT_UncorrectedJetE30_NoBPTX_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sV0SingleJetC20NotBptxOR + process.hltPreUncorrectedJetE30NoBPTX + process.HLTStoppedHSCPLocalHcalReco + process.HLTStoppedHSCPJetSequence + process.hltStoppedHSCP1CaloJetEnergy30 + process.HLTEndSequence ) @@ -129138,11 +125686,13 @@ process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVL + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.HLTEndSequence ) process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu19TrkIsoVVLMu9TrkIsoVVL + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered9 + process.hltL3fL1DoubleMu155fFiltered19 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon199RelTrkIsoVVLFiltered + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZ + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.HLTEndSequence ) +process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZHLTTracking + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.HLTIterativeTrackingIter02 + process.HLTEndSequence ) process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZ + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered9 + process.hltL3fL1DoubleMu155fFiltered19 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon199RelTrkIsoVVLFiltered + process.hltDiMuon199RelTrkIsoVVLFilteredDzFiltered0p2 + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8PFJet30 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTAK4CaloJetsSequence + process.hltSingleCaloJet10 + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets10 + process.hltSinglePFJet30 + process.HLTEndSequence ) process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZMass8 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered9 + process.hltL3fL1DoubleMu155fFiltered19 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon199RelTrkIsoVVLFiltered + process.hltDiMuon199RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon199Mass8Filtered + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass3p8Filtered + process.HLTEndSequence ) +process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8HLTTracking + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass3p8Filtered + process.HLTIterativeTrackingIter02 + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8CaloJet30 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTAK4CaloJetsSequence + process.hltSingleCaloJet30 + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8AK8PFJet30 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTAK8CaloJetsSequence + process.hltSingleCaloJet10AK8 + process.HLTAK8PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets10AK8 + process.hltSinglePFJet30AK8 + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8AK8CaloJet30 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTAK8CaloJetsSequence + process.hltSingleCaloJet30AK8 + process.HLTEndSequence ) @@ -129779,15 +126329,6 @@ process.HLT_HIPuAK4CaloJet80Fwd_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet64FwdBptxAND + process.hltPreHIPuAK4CaloJet80Fwd + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet80Fwd + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIPuAK4CaloJet100Fwd_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet64FwdBptxAND + process.hltPreHIPuAK4CaloJet100Fwd + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet100Fwd + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIPuAK4CaloJet120Fwd_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet64FwdBptxAND + process.hltPreHIPuAK4CaloJet120Fwd + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet120Fwd + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet60Eta1p5_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet44BptxAND + process.hltPreHICsAK4PFJet60Eta1p5 + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet60Eta1p5 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets60 + process.hltSingleCsPFJet60Eta1p5 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet60Eta2p1_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet44BptxAND + process.hltPreHICsAK4PFJet60Eta2p1 + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet60Eta2p1 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets60Eta2p1 + process.hltSingleCsPFJet60Eta2p1 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet80Eta1p5_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet60BptxAND + process.hltPreHICsAK4PFJet80Eta1p5 + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet70Eta1p5 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets70 + process.hltSingleCsPFJet80Eta1p5 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet80Eta2p1_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet60BptxAND + process.hltPreHICsAK4PFJet80Eta2p1 + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet70Eta2p1 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets70Eta2p1 + process.hltSingleCsPFJet80Eta2p1 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet100Eta1p5_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet60BptxAND + process.hltPreHICsAK4PFJet100Eta1p5 + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet80Eta1p5 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets80 + process.hltSingleCsPFJet100Eta1p5 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet60BptxAND + process.hltPreHICsAK4PFJet100Eta1p5Beamspot + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet80Eta1p5 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets80 + process.hltSingleCsPFJet100Eta1p5 + process.hltVerticesPFPPOnAA + process.hltVerticesPFSelectorPPOnAA + process.hltVerticesPFFilterPPOnAA + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.hltFEDSelectorOnlineMetaData + process.hltFEDSelectorTCDS + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet100Eta2p1_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet60BptxAND + process.hltPreHICsAK4PFJet100Eta2p1 + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet80Eta2p1 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets80Eta2p1 + process.hltSingleCsPFJet100Eta2p1 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet120Eta1p5_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet80BptxAND + process.hltPreHICsAK4PFJet120Eta1p5 + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet90Eta1p5 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets90 + process.hltSingleCsPFJet120Eta1p5 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) -process.HLT_HICsAK4PFJet120Eta2p1_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet80BptxAND + process.hltPreHICsAK4PFJet120Eta2p1 + process.HLTPuAK4CaloJetsSequence + process.hltSinglePuAK4CaloJet90Eta2p1 + process.HLTCsAK4PFJetsSequence + process.hltCsPFJetsCorrectedMatchedToPuCaloJets90Eta2p1 + process.hltSingleCsPFJet120Eta2p1 + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIGEDPhoton10_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sL1SingleEG7BptxAND + process.hltPreHIGEDPhoton10 + process.HLTHIGEDPhoton10PPOnAASequence + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIGEDPhoton10_EB_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sL1SingleEG7BptxAND + process.hltPreHIGEDPhoton10EB + process.HLTHIGEDPhoton10EBPPOnAASequence + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) process.HLT_HIGEDPhoton20_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sL1SingleEG7BptxAND + process.hltPreHIGEDPhoton20 + process.HLTHIGEDPhoton20PPOnAASequence + process.HLTDoHIStripZeroSuppressionAndRawPrime + process.HLTEndSequence ) @@ -130092,10 +126633,6 @@ process.HLT_PPRefCscCluster_Loose_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sMuShowerOneNominal + process.hltPrePPRefCscClusterLoose + process.HLTMuonLocalRecoSequence + process.hltCSCrechitClusters + process.hltCscClusterLoosePPRef + process.HLTEndSequence ) process.HLT_PPRefCscCluster_Medium_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sMuShowerOneNominal + process.hltPrePPRefCscClusterMedium + process.HLTMuonLocalRecoSequence + process.hltCSCrechitClusters + process.hltCscClusterMediumPPRef + process.HLTEndSequence ) process.HLT_PPRefCscCluster_Tight_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sMuShowerOneNominal + process.hltPrePPRefCscClusterTight + process.HLTMuonLocalRecoSequence + process.hltCSCrechitClusters + process.hltCscClusterTightPPRef + process.HLTEndSequence ) -process.HLT_PPRefDmesonTrackingGlobal_Dpt25_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet24 + process.hltPrePPRefDmesonTrackingGlobalDpt25 + process.HLTPuAK4CaloJetsSequence + process.HLTPixelClusterSplittingForPFPPRefForDmeson + process.HLTFullIterativeTrackingPPRefForDmeson + process.hltFullOnlinePrimaryVerticesPPRefForDmeson + process.HLTFullTracksForDmesonPPRef + process.hltTkTkVtxForDmesonDpt25PPRef + process.hltTkTkFilterForDmesonDpt25PPRef + process.HLTEndSequence ) -process.HLT_PPRefDmesonTrackingGlobal_Dpt35_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet35 + process.hltPrePPRefDmesonTrackingGlobalDpt35 + process.HLTPuAK4CaloJetsSequence + process.HLTPixelClusterSplittingForPFPPRefForDmeson + process.HLTFullIterativeTrackingPPRefForDmeson + process.hltFullOnlinePrimaryVerticesPPRefForDmeson + process.HLTFullTracksForDmesonPPRef + process.hltTkTkVtxForDmesonDpt35PPRef + process.hltTkTkFilterForDmesonDpt35PPRef + process.HLTEndSequence ) -process.HLT_PPRefDmesonTrackingGlobal_Dpt45_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet44 + process.hltPrePPRefDmesonTrackingGlobalDpt45 + process.HLTPuAK4CaloJetsSequence + process.HLTPixelClusterSplittingForPFPPRefForDmeson + process.HLTFullIterativeTrackingPPRefForDmeson + process.hltFullOnlinePrimaryVerticesPPRefForDmeson + process.HLTFullTracksForDmesonPPRef + process.hltTkTkVtxForDmesonDpt45PPRef + process.hltTkTkFilterForDmesonDpt45PPRef + process.HLTEndSequence ) -process.HLT_PPRefDmesonTrackingGlobal_Dpt60_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJet60 + process.hltPrePPRefDmesonTrackingGlobalDpt60 + process.HLTPuAK4CaloJetsSequence + process.HLTPixelClusterSplittingForPFPPRefForDmeson + process.HLTFullIterativeTrackingPPRefForDmeson + process.hltFullOnlinePrimaryVerticesPPRefForDmeson + process.HLTFullTracksForDmesonPPRef + process.hltTkTkVtxForDmesonDpt60PPRef + process.hltTkTkFilterForDmesonDpt60PPRef + process.HLTEndSequence ) process.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nAsymXORSingleJet8 + process.hltPrePPRefUPCSingleJet8ZDC1nAsymXOR + process.HLTEndSequence ) process.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nAsymXORSingleJet12 + process.hltPrePPRefUPCSingleJet12ZDC1nAsymXOR + process.HLTEndSequence ) process.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sZDC1nAsymXORSingleJet16 + process.hltPrePPRefUPCSingleJet16ZDC1nAsymXOR + process.HLTEndSequence ) @@ -130335,6 +126872,22 @@ process.Dataset_Tau = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetTau + process.hltPreDatasetTau ) process.Dataset_TestEnablesEcalHcal = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetTestEnablesEcalHcal + process.hltPreDatasetTestEnablesEcalHcal ) process.Dataset_TestEnablesEcalHcalDQM = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetTestEnablesEcalHcalDQM + process.hltPreDatasetTestEnablesEcalHcalDQM ) +process.Dataset_VRRandom0 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom0 ) +process.Dataset_VRRandom1 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom1 ) +process.Dataset_VRRandom2 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom2 ) +process.Dataset_VRRandom3 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom3 ) +process.Dataset_VRRandom4 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom4 ) +process.Dataset_VRRandom5 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom5 ) +process.Dataset_VRRandom6 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom6 ) +process.Dataset_VRRandom7 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom7 ) +process.Dataset_VRRandom8 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom8 ) +process.Dataset_VRRandom9 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom9 ) +process.Dataset_VRRandom10 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom10 ) +process.Dataset_VRRandom11 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom11 ) +process.Dataset_VRRandom12 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom12 ) +process.Dataset_VRRandom13 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom13 ) +process.Dataset_VRRandom14 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom14 ) +process.Dataset_VRRandom15 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom15 ) process.Dataset_ZeroBias = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetZeroBias + process.hltPreDatasetZeroBias ) process.ALCALowPtJetOutput = cms.FinalPath( process.hltOutputALCALowPtJet ) process.ALCALumiPixelsCountsExpressOutput = cms.FinalPath( process.hltOutputALCALumiPixelsCountsExpress ) @@ -130766,9 +127319,17 @@ process.PhysicsHIPhysicsRawPrime33Output = cms.FinalPath( process.hltOutputPhysicsHIPhysicsRawPrime33 ) process.PhysicsHIPhysicsRawPrime32Output = cms.FinalPath( process.hltOutputPhysicsHIPhysicsRawPrime32 ) process.PhysicsHIPhysicsRawPrime43Output = cms.FinalPath( process.hltOutputPhysicsHIPhysicsRawPrime43 ) +process.PhysicsVRRandom1Output = cms.FinalPath( process.hltOutputPhysicsVRRandom1 ) +process.PhysicsVRRandom0Output = cms.FinalPath( process.hltOutputPhysicsVRRandom0 ) +process.PhysicsVRRandom2Output = cms.FinalPath( process.hltOutputPhysicsVRRandom2 ) +process.PhysicsVRRandom3Output = cms.FinalPath( process.hltOutputPhysicsVRRandom3 ) +process.PhysicsVRRandom4Output = cms.FinalPath( process.hltOutputPhysicsVRRandom4 ) +process.PhysicsVRRandom5Output = cms.FinalPath( process.hltOutputPhysicsVRRandom5 ) +process.PhysicsVRRandom6Output = cms.FinalPath( process.hltOutputPhysicsVRRandom6 ) +process.PhysicsVRRandom7Output = cms.FinalPath( process.hltOutputPhysicsVRRandom7 ) -process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_EcalPhiSymForHI_v12, process.AlCa_EcalEtaEBonly_v25, process.AlCa_EcalEtaEEonly_v25, process.AlCa_EcalPi0EBonly_v25, process.AlCa_EcalPi0EEonly_v25, process.AlCa_EcalEtaEBonlyForHI_v13, process.AlCa_EcalEtaEEonlyForHI_v13, process.AlCa_EcalPi0EBonlyForHI_v13, process.AlCa_EcalPi0EEonlyForHI_v13, process.AlCa_HIEcalEtaEBonly_v12, process.AlCa_HIEcalEtaEEonly_v12, process.AlCa_HIEcalPi0EBonly_v12, process.AlCa_HIEcalPi0EEonly_v12, process.AlCa_RPCMuonNormalisation_v23, process.AlCa_RPCMuonNormalisationForHI_v11, process.AlCa_HIRPCMuonNormalisation_v11, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.AlCa_PFJet40_v32, process.AlCa_PFJet40_CPUOnly_v11, process.AlCa_AK8PFJet40_v27, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DQM_HIPixelReconstruction_v12, process.DQM_HIEcalReconstruction_v10, process.DQM_HIHcalReconstruction_v8, process.DQM_Random_v1, process.DQM_ZeroBias_v3, process.DST_ZeroBias_v11, process.DST_Physics_v16, process.DST_PFScouting_DoubleMuon_v6, process.DST_PFScouting_DoubleEG_v6, process.DST_PFScouting_JetHT_v6, process.DST_PFScouting_AXOVLoose_v4, process.DST_PFScouting_AXOLoose_v4, process.DST_PFScouting_AXONominal_v6, process.DST_PFScouting_AXOTight_v6, process.DST_PFScouting_AXOVTight_v4, process.DST_PFScouting_CICADAVLoose_v2, process.DST_PFScouting_CICADALoose_v2, process.DST_PFScouting_CICADAMedium_v2, process.DST_PFScouting_CICADATight_v2, process.DST_PFScouting_CICADAVTight_v2, process.DST_PFScouting_SingleMuon_v6, process.DST_PFScouting_SinglePhotonEB_v3, process.DST_PFScouting_ZeroBias_v4, process.HLT_EphemeralPhysics_v9, process.HLT_EphemeralZeroBias_v9, process.HLT_HIEphemeralPhysics_v5, process.HLT_HIEphemeralZeroBias_v5, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Alignment_v8, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_IsolatedBunches_v12, process.HLT_ZeroBias_FirstBXAfterTrain_v10, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_ZeroBias_FirstCollisionInTrain_v11, process.HLT_ZeroBias_LastCollisionInTrain_v10, process.HLT_HT300_Beamspot_v23, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_PFJet40_GPUvsCPU_v7, process.HLT_AK8PFJet380_SoftDropMass30_v6, process.HLT_AK8PFJet400_SoftDropMass30_v6, process.HLT_AK8PFJet425_SoftDropMass30_v6, process.HLT_AK8PFJet450_SoftDropMass30_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, process.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, process.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, process.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, process.HLT_CaloJet500_NoJetID_v22, process.HLT_CaloJet550_NoJetID_v17, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, process.HLT_DoubleEle25_CaloIdL_MW_v15, process.HLT_DoubleEle27_CaloIdL_MW_v15, process.HLT_DoubleEle33_CaloIdL_MW_v28, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, process.HLT_Mu27_Ele37_CaloIdL_MW_v17, process.HLT_Mu37_Ele27_CaloIdL_MW_v17, process.HLT_Mu37_TkMu27_v17, process.HLT_DoubleMu4_3_Bs_v27, process.HLT_DoubleMu4_3_Jpsi_v27, process.HLT_DoubleMu4_3_LowMass_v13, process.HLT_DoubleMu4_LowMass_Displaced_v13, process.HLT_Mu0_L1DoubleMu_v13, process.HLT_Mu4_L1DoubleMu_v13, process.HLT_DoubleMu2_Jpsi_LowPt_v6, process.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, process.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, process.HLT_DoubleMu3_Trk_Tau3mu_v24, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, process.HLT_DoubleMu4_MuMuTrk_Displaced_v27, process.HLT_Mu3_PFJet40_v28, process.HLT_Mu7p5_L2Mu2_Jpsi_v22, process.HLT_Mu7p5_L2Mu2_Upsilon_v22, process.HLT_Mu3_L1SingleMu5orSingleMu7_v13, process.HLT_Mu0_Barrel_v6, process.HLT_Mu0_Barrel_L1HP6_v3, process.HLT_Mu0_Barrel_L1HP7_v3, process.HLT_Mu0_Barrel_L1HP8_v4, process.HLT_Mu0_Barrel_L1HP9_v4, process.HLT_Mu0_Barrel_L1HP10_v6, process.HLT_Mu0_Barrel_L1HP11_v6, process.HLT_Mu0_Barrel_L1HP6_IP6_v3, process.HLT_Mu6_Barrel_L1HP7_IP6_v3, process.HLT_Mu7_Barrel_L1HP8_IP6_v4, process.HLT_Mu8_Barrel_L1HP9_IP6_v4, process.HLT_Mu9_Barrel_L1HP10_IP6_v6, process.HLT_Mu10_Barrel_L1HP11_IP6_v6, process.HLT_DoublePhoton33_CaloIdL_v17, process.HLT_DoublePhoton70_v17, process.HLT_DoublePhoton85_v25, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, process.HLT_Ele30_WPTight_Gsf_v11, process.HLT_Ele32_WPTight_Gsf_v25, process.HLT_Ele35_WPTight_Gsf_v19, process.HLT_Ele38_WPTight_Gsf_v19, process.HLT_Ele40_WPTight_Gsf_v19, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, process.HLT_IsoMu20_v27, process.HLT_IsoMu24_v25, process.HLT_IsoMu24_eta2p1_v27, process.HLT_IsoMu27_v28, process.HLT_UncorrectedJetE30_NoBPTX_v14, process.HLT_UncorrectedJetE30_NoBPTX3BX_v14, process.HLT_UncorrectedJetE60_NoBPTX3BX_v14, process.HLT_UncorrectedJetE70_NoBPTX3BX_v14, process.HLT_L1SingleMuCosmics_v8, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, process.HLT_L2Mu10_NoVertex_NoBPTX_v15, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, process.HLT_L2Mu23NoVtx_2Cha_v10, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, process.HLT_DoubleL2Mu50_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, process.HLT_Mu30_TkMu0_Psi_v13, process.HLT_Mu30_TkMu0_Upsilon_v13, process.HLT_Mu25_TkMu0_Phi_v20, process.HLT_Mu15_v15, process.HLT_Mu20_v24, process.HLT_Mu27_v25, process.HLT_Mu50_v25, process.HLT_Mu55_v15, process.HLT_CascadeMu100_v13, process.HLT_HighPtTkMu100_v12, process.HLT_DiPFJetAve40_v26, process.HLT_DiPFJetAve60_v26, process.HLT_DiPFJetAve80_v26, process.HLT_DiPFJetAve140_v25, process.HLT_DiPFJetAve200_v25, process.HLT_DiPFJetAve260_v26, process.HLT_DiPFJetAve320_v26, process.HLT_DiPFJetAve400_v26, process.HLT_DiPFJetAve500_v26, process.HLT_DiPFJetAve60_HFJEC_v27, process.HLT_DiPFJetAve80_HFJEC_v29, process.HLT_DiPFJetAve100_HFJEC_v29, process.HLT_DiPFJetAve160_HFJEC_v28, process.HLT_DiPFJetAve220_HFJEC_v28, process.HLT_DiPFJetAve260_HFJEC_v11, process.HLT_DiPFJetAve300_HFJEC_v28, process.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, process.HLT_AK8PFJet40_v28, process.HLT_AK8PFJet60_v27, process.HLT_AK8PFJet80_v28, process.HLT_AK8PFJet140_v27, process.HLT_AK8PFJet200_v27, process.HLT_AK8PFJet260_v28, process.HLT_AK8PFJet320_v28, process.HLT_AK8PFJet400_v28, process.HLT_AK8PFJet450_v28, process.HLT_AK8PFJet500_v28, process.HLT_AK8PFJet550_v23, process.HLT_PFJet40_v33, process.HLT_PFJet60_v33, process.HLT_PFJet80_v33, process.HLT_PFJet110_v12, process.HLT_PFJet140_v31, process.HLT_PFJet200_v31, process.HLT_PFJet260_v32, process.HLT_PFJet320_v32, process.HLT_PFJet400_v32, process.HLT_PFJet450_v33, process.HLT_PFJet500_v33, process.HLT_PFJet550_v23, process.HLT_PFJetFwd40_v31, process.HLT_PFJetFwd60_v31, process.HLT_PFJetFwd80_v30, process.HLT_PFJetFwd140_v30, process.HLT_PFJetFwd200_v30, process.HLT_PFJetFwd260_v31, process.HLT_PFJetFwd320_v31, process.HLT_PFJetFwd400_v31, process.HLT_PFJetFwd450_v31, process.HLT_PFJetFwd500_v31, process.HLT_AK8PFJetFwd40_v27, process.HLT_AK8PFJetFwd60_v26, process.HLT_AK8PFJetFwd80_v26, process.HLT_AK8PFJetFwd140_v26, process.HLT_AK8PFJetFwd200_v26, process.HLT_AK8PFJetFwd260_v27, process.HLT_AK8PFJetFwd320_v27, process.HLT_AK8PFJetFwd400_v27, process.HLT_AK8PFJetFwd450_v27, process.HLT_AK8PFJetFwd500_v27, process.HLT_PFHT180_v29, process.HLT_PFHT250_v29, process.HLT_PFHT370_v29, process.HLT_PFHT430_v29, process.HLT_PFHT510_v29, process.HLT_PFHT590_v29, process.HLT_PFHT680_v29, process.HLT_PFHT780_v29, process.HLT_PFHT890_v29, process.HLT_PFHT1050_v30, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, process.HLT_PFMET120_PFMHT120_IDTight_v32, process.HLT_PFMET130_PFMHT130_IDTight_v32, process.HLT_PFMET140_PFMHT140_IDTight_v32, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, process.HLT_L1ETMHadSeeds_v10, process.HLT_CaloMHT90_v14, process.HLT_CaloMET90_NotCleaned_v14, process.HLT_CaloMET350_NotCleaned_v14, process.HLT_PFMET200_NotCleaned_v21, process.HLT_PFMET250_NotCleaned_v21, process.HLT_PFMET300_NotCleaned_v21, process.HLT_PFMET200_BeamHaloCleaned_v21, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, process.HLT_MET105_IsoTrk50_v19, process.HLT_MET120_IsoTrk50_v19, process.HLT_Mu12eta2p3_v13, process.HLT_Mu12eta2p3_PFJet40_v13, process.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Photon300_NoHE_v23, process.HLT_Mu8_TrkIsoVVL_v24, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, process.HLT_Mu17_TrkIsoVVL_v25, process.HLT_Mu19_TrkIsoVVL_v16, process.HLT_BTagMu_AK4DiJet20_Mu5_v25, process.HLT_BTagMu_AK4DiJet40_Mu5_v25, process.HLT_BTagMu_AK4DiJet70_Mu5_v25, process.HLT_BTagMu_AK4DiJet110_Mu5_v25, process.HLT_BTagMu_AK4DiJet170_Mu5_v24, process.HLT_BTagMu_AK4Jet300_Mu5_v24, process.HLT_BTagMu_AK8DiJet170_Mu5_v21, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, process.HLT_BTagMu_AK8Jet300_Mu5_v24, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, process.HLT_Photon33_v15, process.HLT_Photon50_v23, process.HLT_Photon75_v23, process.HLT_Photon90_v23, process.HLT_Photon120_v23, process.HLT_Photon150_v17, process.HLT_Photon175_v25, process.HLT_Photon200_v24, process.HLT_Photon45EB_v3, process.HLT_Photon40EB_v3, process.HLT_Photon50EB_v4, process.HLT_Photon30EB_TightID_TightIso_v12, process.HLT_Photon40EB_TightID_TightIso_v3, process.HLT_Photon45EB_TightID_TightIso_v3, process.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_v8, process.HLT_Photon55EB_TightID_TightIso_v4, process.HLT_Photon75EB_TightID_TightIso_v8, process.HLT_Photon90EB_TightID_TightIso_v8, process.HLT_Photon110EB_TightID_TightIso_v12, process.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon100EBHE10_v12, process.HLT_Photon50_R9Id90_HE10_IsoM_v24, process.HLT_Photon75_R9Id90_HE10_IsoM_v24, process.HLT_Photon90_R9Id90_HE10_IsoM_v24, process.HLT_Photon120_R9Id90_HE10_IsoM_v24, process.HLT_Photon165_R9Id90_HE10_IsoM_v25, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, process.HLT_DiphotonMVA14p25_Mass90_v3, process.HLT_DiphotonMVA14p25_Tight_Mass90_v3, process.HLT_Photon35_TwoProngs35_v13, process.HLT_IsoMu24_TwoProngs35_v13, process.HLT_Dimuon0_Jpsi_L1_NoOS_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, process.HLT_Dimuon0_Jpsi_v20, process.HLT_Dimuon0_Jpsi_NoVertexing_v20, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi3p5_Muon2_v17, process.HLT_Dimuon0_Upsilon_L1_4p5_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, process.HLT_Dimuon0_Upsilon_NoVertexing_v19, process.HLT_Dimuon0_LowMass_L1_0er1p5_v20, process.HLT_Dimuon0_LowMass_v20, process.HLT_Dimuon0_LowMass_L1_4_v20, process.HLT_Dimuon0_LowMass_L1_TM530_v18, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, process.HLT_TripleMu_10_5_5_DZ_v22, process.HLT_TripleMu_12_10_5_v22, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, process.HLT_DoubleMu4_3_LowMass_SS_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v19, process.HLT_DoubleMu4_Jpsi_NoVertexing_v19, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, process.HLT_DoubleMu4_JpsiTrk_Bc_v12, process.HLT_DoubleMu43NoFiltersNoVtx_v14, process.HLT_DoubleMu48NoFiltersNoVtx_v14, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, process.HLT_Ele28_HighEta_SC20_Mass55_v23, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, process.HLT_Ele15_IsoVVVL_PFHT450_v28, process.HLT_Ele50_IsoVVVL_PFHT450_v28, process.HLT_Ele15_IsoVVVL_PFHT600_v32, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, process.HLT_Mu15_IsoVVVL_PFHT450_v27, process.HLT_Mu50_IsoVVVL_PFHT450_v27, process.HLT_Mu15_IsoVVVL_PFHT600_v31, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, process.HLT_Dimuon10_Upsilon_y1p4_v13, process.HLT_Dimuon12_Upsilon_y1p4_v14, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, process.HLT_Dimuon25_Jpsi_v26, process.HLT_Dimuon14_PsiPrime_v25, process.HLT_Dimuon14_PsiPrime_noCorrL1_v17, process.HLT_Dimuon18_PsiPrime_v26, process.HLT_Dimuon18_PsiPrime_noCorrL1_v18, process.HLT_Dimuon24_Upsilon_noCorrL1_v18, process.HLT_Dimuon24_Phi_noCorrL1_v18, process.HLT_Dimuon25_Jpsi_noCorrL1_v18, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, process.HLT_DoubleIsoMu20_eta2p1_v19, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, process.HLT_Mu8_v24, process.HLT_Mu17_v25, process.HLT_Mu19_v16, process.HLT_Mu17_Photon30_IsoCaloId_v18, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, process.HLT_PFHT400_SixPFJet32_v21, process.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, process.HLT_PFHT450_SixPFJet36_v20, process.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, process.HLT_PFHT350_v31, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, process.HLT_ECALHT800_v20, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, process.HLT_Photon20_HoverELoose_v20, process.HLT_Photon30_HoverELoose_v20, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, process.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, process.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, process.HLT_Mu18_Mu9_SameSign_v16, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, process.HLT_QuadPFJet103_88_75_15_v17, process.HLT_QuadPFJet105_88_76_15_v17, process.HLT_QuadPFJet111_90_80_15_v17, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, process.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, process.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, process.HLT_PFHT250_QuadPFJet25_v6, process.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, process.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, process.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, process.HLT_QuadPFJet100_88_70_30_v10, process.HLT_QuadPFJet105_88_75_30_v9, process.HLT_QuadPFJet111_90_80_30_v9, process.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, process.HLT_AK8PFJet220_SoftDropMass40_v13, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, process.HLT_AK8PFJet230_SoftDropMass40_v13, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_Nch45_v6, process.HLT_AK8PFJet275_Nch40_v6, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PFHT250_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, process.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, process.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, process.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, process.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu10NoVtx_2Cha_v9, process.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_L3Mu10NoVtx_v10, process.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, process.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, process.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, process.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, process.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, process.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, process.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, process.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, process.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, process.HLT_L1Mu6HT240_v9, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, process.HLT_HT350_v7, process.HLT_HT425_v19, process.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT550_DisplacedDijet60_Inclusive_v23, process.HLT_HT650_DisplacedDijet60_Inclusive_v23, process.HLT_CaloMET60_DTCluster50_v11, process.HLT_CaloMET60_DTClusterNoMB1S50_v11, process.HLT_L1MET_DTCluster50_v11, process.HLT_L1MET_DTClusterNoMB1S50_v11, process.HLT_CscCluster_Loose_v10, process.HLT_CscCluster_Medium_v10, process.HLT_CscCluster_Tight_v10, process.HLT_CscCluster50_Photon20Unseeded_v4, process.HLT_CscCluster50_Photon30Unseeded_v4, process.HLT_CscCluster100_Ele5_v4, process.HLT_CscCluster100_Mu5_v6, process.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, process.HLT_DoubleCscCluster75_v7, process.HLT_IsoTrk200_L1SingleMuShower_v4, process.HLT_IsoTrk400_L1SingleMuShower_v4, process.HLT_DoubleCscCluster100_v7, process.HLT_L1CSCShower_DTCluster50_v10, process.HLT_L1CSCShower_DTCluster75_v10, process.HLT_PFMET105_IsoTrk50_v13, process.HLT_L1SingleLLPJet_v7, process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, process.HLT_DiPhoton10Time1ns_v10, process.HLT_DiPhoton10Time1p2ns_v10, process.HLT_DiPhoton10Time1p4ns_v10, process.HLT_DiPhoton10Time1p6ns_v10, process.HLT_DiPhoton10Time1p8ns_v10, process.HLT_DiPhoton10Time2ns_v10, process.HLT_DiPhoton10_CaloIdL_v10, process.HLT_DoubleEle6p5_eta1p22_mMax6_v10, process.HLT_DoubleEle8_eta1p22_mMax6_v10, process.HLT_DoubleEle10_eta1p22_mMax6_v10, process.HLT_SingleEle8_v9, process.HLT_SingleEle8_SingleEGL1_v9, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Mu50_L1SingleMuShower_v11, process.HLT_IsoMu24_OneProng32_v9, process.HLT_Photon32_OneProng32_M50To105_v10, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, process.HLT_VBF_DiPFJet125_45_Mjj1050_v8, process.HLT_VBF_DiPFJet125_45_Mjj1200_v6, process.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, process.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, process.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, process.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_PFJet200_TimeLtNeg2p5ns_v10, process.HLT_PFJet200_TimeGt2p5ns_v10, process.HLT_Photon50_TimeLtNeg2p5ns_v7, process.HLT_Photon50_TimeGt2p5ns_v7, process.HLT_PPSMaxTracksPerArm1_v9, process.HLT_PPSMaxTracksPerRP4_v9, process.HLT_PPSRandom_v1, process.HLT_HIL1NotBptxOR_v14, process.HLT_HIL1UnpairedBunchBptxPlus_v14, process.HLT_HIL1UnpairedBunchBptxMinus_v14, process.HLT_HIPhysics_v14, process.HLT_HIPhysicsForZS_v14, process.HLT_HIRandom_v7, process.HLT_HIRandom_HighRate_v3, process.HLT_HIHcalNZS_v14, process.HLT_HIHcalPhiSym_v14, process.HLT_HIZeroBias_v14, process.HLT_HIZeroBias_HighRate_v7, process.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, process.HLT_HIZeroBias_HighRateRAW_v4, process.HLT_HIMinimumBiasHF1AND_v7, process.HLT_HIMinimumBiasHF1AND_copy_v6, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, process.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1, process.HLT_HIL1Centrality30_50_v7, process.HLT_HIL1_UCC_0_0p5_v7, process.HLT_HIL1_UCC_0_1_v7, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet80Eta5p1_v14, process.HLT_HIPuAK4CaloJet100Eta5p1_v14, process.HLT_HIPuAK4CaloJet120Eta2p1_v7, process.HLT_HIPuAK4CaloJet120Eta5p1_v14, process.HLT_HIPuAK4CaloJet40Fwd_v7, process.HLT_HIPuAK4CaloJet60Fwd_v7, process.HLT_HIPuAK4CaloJet80Fwd_v7, process.HLT_HIPuAK4CaloJet100Fwd_v7, process.HLT_HIPuAK4CaloJet120Fwd_v7, process.HLT_HICsAK4PFJet60Eta1p5_v14, process.HLT_HICsAK4PFJet60Eta2p1_v7, process.HLT_HICsAK4PFJet80Eta1p5_v14, process.HLT_HICsAK4PFJet80Eta2p1_v7, process.HLT_HICsAK4PFJet100Eta1p5_v14, process.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v8, process.HLT_HICsAK4PFJet100Eta2p1_v7, process.HLT_HICsAK4PFJet120Eta1p5_v14, process.HLT_HICsAK4PFJet120Eta2p1_v7, process.HLT_HIGEDPhoton10_v14, process.HLT_HIGEDPhoton10_EB_v14, process.HLT_HIGEDPhoton20_v14, process.HLT_HIGEDPhoton20_EB_v14, process.HLT_HIGEDPhoton30_v14, process.HLT_HIGEDPhoton30_EB_v14, process.HLT_HIGEDPhoton40_v14, process.HLT_HIGEDPhoton40_EB_v14, process.HLT_HIGEDPhoton50_v14, process.HLT_HIGEDPhoton50_EB_v14, process.HLT_HIGEDPhoton60_v14, process.HLT_HIGEDPhoton60_EB_v14, process.HLT_HIDoubleGEDPhoton20_v7, process.HLT_HIEle10Gsf_v14, process.HLT_HIEle15Gsf_v14, process.HLT_HIEle20Gsf_v14, process.HLT_HIEle30Gsf_v14, process.HLT_HIEle40Gsf_v14, process.HLT_HIEle50Gsf_v14, process.HLT_HIEle15Ele10Gsf_v14, process.HLT_HIEle15Ele10GsfMass50_v14, process.HLT_HIDoubleEle10Gsf_v14, process.HLT_HIDoubleEle10GsfMass50_v14, process.HLT_HIDoubleEle15Gsf_v14, process.HLT_HIDoubleEle15GsfMass50_v14, process.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_NotMBHF2_v5, process.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, process.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, process.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, process.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_Random_HighRate_v1, process.HLT_HIUPC_HFafterglowCombined_v1, process.HLT_HIL1SingleMuOpen_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality40to100_v1, process.HLT_HIL1SingleMu0_v7, process.HLT_HIL1SingleMu0_Open_v7, process.HLT_HIL1SingleMu0_Cosmic_v7, process.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, process.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, process.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, process.HLT_HIL2DoubleMuOpen_SS_v1, process.HLT_HIL2DoubleMuOpen_OS_v1, process.HLT_HIL1DoubleMu0_v7, process.HLT_HIL2DoubleMu0_SQ_v1, process.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, process.HLT_HIL1DoubleMu0_SQ_v7, process.HLT_HIL2SingleMuOpen_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality40to100_v1, process.HLT_HIL2SingleMu3_Open_v7, process.HLT_HIL2SingleMu5_v7, process.HLT_HIL2SingleMu7_v7, process.HLT_HIL2SingleMu12_v1, process.HLT_HIL2DoubleMu0_Open_v7, process.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu0_M7to15_Open_v7, process.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu3_M7to15_Open_v7, process.HLT_HIL3SingleMu3_Open_v7, process.HLT_HIL3SingleMu5_v7, process.HLT_HIL3SingleMu7_v7, process.HLT_HIL3SingleMu12_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, process.HLT_HIL3DoubleMu0_M0toInf_Open_v7, process.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu0_M7to15_Open_v7, process.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, process.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu2_M7to15_Open_v7, process.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, process.HLT_HICscCluster_Loose_v7, process.HLT_HICscCluster_Medium_v7, process.HLT_HICscCluster_Tight_v7, process.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, process.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, process.HLT_HIL1NotBptxORForPPRef_v9, process.HLT_HIHT80_Beamspot_ppRef5TeV_v15, process.HLT_PPRefZeroBias_v6, process.HLT_AK4CaloJet40_v6, process.HLT_AK4CaloJet60_v6, process.HLT_AK4CaloJet70_v6, process.HLT_AK4CaloJet80_v6, process.HLT_AK4CaloJet100_v6, process.HLT_AK4CaloJet120_v6, process.HLT_AK4CaloJetFwd40_v6, process.HLT_AK4CaloJetFwd60_v6, process.HLT_AK4CaloJetFwd70_v6, process.HLT_AK4CaloJetFwd80_v6, process.HLT_AK4CaloJetFwd100_v6, process.HLT_AK4CaloJetFwd120_v6, process.HLT_AK4PFJet40_v8, process.HLT_AK4PFJet60_v8, process.HLT_AK4PFJet80_v8, process.HLT_AK4PFJet100_v8, process.HLT_AK4PFJet120_v8, process.HLT_AK4PFJetFwd40_v8, process.HLT_AK4PFJetFwd60_v8, process.HLT_AK4PFJetFwd80_v8, process.HLT_AK4PFJetFwd100_v8, process.HLT_AK4PFJetFwd120_v8, process.HLT_PPRefDoubleEle10Gsf_v6, process.HLT_PPRefDoubleEle10GsfMass50_v6, process.HLT_PPRefDoubleEle15Gsf_v6, process.HLT_PPRefDoubleEle15GsfMass50_v6, process.HLT_PPRefEle15Ele10Gsf_v6, process.HLT_PPRefEle15Ele10GsfMass50_v6, process.HLT_PPRefEle10Gsf_v6, process.HLT_PPRefEle15Gsf_v6, process.HLT_PPRefEle20Gsf_v7, process.HLT_PPRefEle30Gsf_v7, process.HLT_PPRefEle40Gsf_v6, process.HLT_PPRefEle50Gsf_v6, process.HLT_PPRefGEDPhoton10_v6, process.HLT_PPRefGEDPhoton10_EB_v6, process.HLT_PPRefGEDPhoton20_v6, process.HLT_PPRefGEDPhoton20_EB_v6, process.HLT_PPRefGEDPhoton30_v6, process.HLT_PPRefGEDPhoton30_EB_v6, process.HLT_PPRefGEDPhoton40_v6, process.HLT_PPRefGEDPhoton40_EB_v6, process.HLT_PPRefGEDPhoton50_v6, process.HLT_PPRefGEDPhoton50_EB_v6, process.HLT_PPRefGEDPhoton60_v6, process.HLT_PPRefGEDPhoton60_EB_v6, process.HLT_PPRefDoubleGEDPhoton20_v1, process.HLT_PPRefL1DoubleMu0_v6, process.HLT_PPRefL1DoubleMu0_SQ_v1, process.HLT_PPRefL1DoubleMu0_Open_v6, process.HLT_PPRefL1DoubleMu2_v1, process.HLT_PPRefL1DoubleMu2_SQ_v1, process.HLT_PPRefL1SingleMu0_Cosmics_v6, process.HLT_PPRefL1SingleMu7_v6, process.HLT_PPRefL1SingleMu12_v6, process.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, process.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, process.HLT_PPRefL2DoubleMu0_v6, process.HLT_PPRefL2DoubleMu0_Open_v6, process.HLT_PPRefL2SingleMu7_v6, process.HLT_PPRefL2SingleMu12_v6, process.HLT_PPRefL2SingleMu15_v6, process.HLT_PPRefL2SingleMu20_v6, process.HLT_PPRefL3DoubleMu0_v8, process.HLT_PPRefL3DoubleMu0_Open_v8, process.HLT_PPRefL3SingleMu3_v8, process.HLT_PPRefL3SingleMu5_v8, process.HLT_PPRefL3SingleMu7_v8, process.HLT_PPRefL3SingleMu12_v8, process.HLT_PPRefL3SingleMu15_v8, process.HLT_PPRefL3SingleMu20_v8, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, process.HLT_PPRefCscCluster_Loose_v6, process.HLT_PPRefCscCluster_Medium_v6, process.HLT_PPRefCscCluster_Tight_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt25_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt35_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt45_v6, process.HLT_PPRefDmesonTrackingGlobal_Dpt60_v6, process.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, process.HLT_PPRefUPC_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_ZDC1nOR_v1, process.HLT_PPRefZeroBias_FirstCollisionInTrain_v1, process.MC_ReducedIterativeTracking_v22, process.MC_AK4CaloJets_v19, process.MC_AK4CaloJetsFromPV_v18, process.MC_CaloHT_v18, process.MC_AK8CaloHT_v18, process.MC_CaloMHT_v18, process.MC_AK4PFJets_v29, process.MC_PFHT_v28, process.MC_AK8PFJets_v29, process.MC_AK8PFHT_v28, process.MC_CaloMET_v18, process.MC_CaloMET_JetIdCleaned_v19, process.MC_PFMET_v29, process.MC_PFMHT_v28, process.MC_AK4PFJetPNet_v5, process.MC_AK8PFJetPNet_v5, process.MC_Egamma_Open_v8, process.MC_Egamma_Open_Unseeded_v8, process.MC_Ele5_WPTight_Gsf_v18, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, process.MC_DoubleEle5_CaloIdL_MW_v26, process.MC_IsoMu_v27, process.MC_DoubleMu_TrkIsoVVL_DZ_v23, process.MC_DoubleMuNoFiltersNoVtx_v17, process.MC_PFScouting_v6, process.HLT_SpecialHLTPhysics_v7, process.AlCa_LumiPixelsCounts_RandomHighRate_v4, process.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, process.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, process.HLT_L1AXOVTight_v4, process.HLT_L1SingleMuOpen_v6, process.HLT_L1SingleMuOpen_DT_v6, process.HLT_L1SingleMu3_v5, process.HLT_L1SingleMu5_v5, process.HLT_L1SingleMu7_v5, process.HLT_L1DoubleMu0_v5, process.HLT_L1SingleJet8erHE_v5, process.HLT_L1SingleJet10erHE_v5, process.HLT_L1SingleJet12erHE_v5, process.HLT_L1SingleJet35_v5, process.HLT_L1SingleJet200_v5, process.HLT_L1SingleEG8er2p5_v4, process.HLT_L1SingleEG10er2p5_v4, process.HLT_L1SingleEG15er2p5_v4, process.HLT_L1SingleEG26er2p5_v4, process.HLT_L1SingleEG28er2p5_v4, process.HLT_L1SingleEG28er2p1_v4, process.HLT_L1SingleEG28er1p5_v4, process.HLT_L1SingleEG34er2p5_v4, process.HLT_L1SingleEG36er2p5_v4, process.HLT_L1SingleEG38er2p5_v4, process.HLT_L1SingleEG40er2p5_v4, process.HLT_L1SingleEG42er2p5_v4, process.HLT_L1SingleEG45er2p5_v4, process.HLT_L1SingleEG50_v4, process.HLT_L1SingleJet60_v4, process.HLT_L1SingleJet90_v4, process.HLT_L1SingleJet120_v4, process.HLT_L1SingleJet180_v4, process.HLT_L1HTT120er_v4, process.HLT_L1HTT160er_v4, process.HLT_L1HTT200er_v4, process.HLT_L1HTT255er_v4, process.HLT_L1HTT280er_v4, process.HLT_L1HTT320er_v4, process.HLT_L1HTT360er_v4, process.HLT_L1HTT400er_v4, process.HLT_L1HTT450er_v4, process.HLT_L1ETM120_v4, process.HLT_L1ETM150_v4, process.HLT_L1EXT_HCAL_LaserMon1_v5, process.HLT_L1EXT_HCAL_LaserMon4_v5, process.HLT_CscCluster_Cosmic_v4, process.HLT_HT60_Beamspot_v22, process.HLT_HT300_Beamspot_PixelClusters_WP2_v7, process.HLT_PixelClusters_WP2_v4, process.HLT_PixelClusters_WP1_v4, process.HLT_BptxOR_v6, process.HLT_L1SingleMuCosmics_EMTF_v4, process.HLT_L1SingleMuCosmics_CosmicTracking_v1, process.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, process.HLT_L1FatEvents_v5, process.HLT_Random_HighRate_v1, process.HLT_ZeroBias_HighRate_v4, process.HLT_ZeroBias_Gated_v4, process.HLT_SpecialZeroBias_v6, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.DQMHistograms, process.RatesMonitoring, process.Dataset_AlCaLowPtJet, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaLumiPixelsCountsPromptHighRate0, process.Dataset_AlCaLumiPixelsCountsPromptHighRate1, process.Dataset_AlCaLumiPixelsCountsPromptHighRate2, process.Dataset_AlCaLumiPixelsCountsPromptHighRate3, process.Dataset_AlCaLumiPixelsCountsPromptHighRate4, process.Dataset_AlCaLumiPixelsCountsPromptHighRate5, process.Dataset_AlCaLumiPixelsCountsGated, process.Dataset_AlCaP0, process.Dataset_AlCaPPSExpress, process.Dataset_AlCaPPSPrompt, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DQMPPSRandom, process.Dataset_DisplacedJet, process.Dataset_EGamma0, process.Dataset_EGamma1, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressCosmics, process.Dataset_ExpressPhysics, process.Dataset_HIDQMGPUvsCPU, process.Dataset_HIDQMOnlineBeamspot, process.Dataset_HIEmptyBX, process.Dataset_HIEphemeralHLTPhysics, process.Dataset_HIEphemeralZeroBias0, process.Dataset_HIEphemeralZeroBias1, process.Dataset_HIEventDisplay, process.Dataset_HIExpressAlignment, process.Dataset_HIExpressPhysics, process.Dataset_HIExpressPhysicsRawPrime, process.Dataset_HIForward0, process.Dataset_HIForward1, process.Dataset_HIForward2, process.Dataset_HIForward3, process.Dataset_HIForward4, process.Dataset_HIForward5, process.Dataset_HIForward6, process.Dataset_HIForward7, process.Dataset_HIForward8, process.Dataset_HIForward9, process.Dataset_HIForward10, process.Dataset_HIForward11, process.Dataset_HIForward12, process.Dataset_HIForward13, process.Dataset_HIForward14, process.Dataset_HIForward15, process.Dataset_HIForward16, process.Dataset_HIForward17, process.Dataset_HIForward18, process.Dataset_HIForward19, process.Dataset_HIHLTPhysics, process.Dataset_HIHcalNZS, process.Dataset_HIOnlineMonitor, process.Dataset_HIMinimumBias0, process.Dataset_HIMinimumBias1, process.Dataset_HIMinimumBias2, process.Dataset_HIMinimumBias3, process.Dataset_HIPhysicsRawPrime0, process.Dataset_HITrackerNZS, process.Dataset_HIZeroBias0, process.Dataset_HIZeroBias1, process.Dataset_HIZeroBias2, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_JetMET0, process.Dataset_JetMET1, process.Dataset_L1Accept, process.Dataset_MinimumBias, process.Dataset_MonteCarlo, process.Dataset_Muon0, process.Dataset_Muon1, process.Dataset_MuonEG, process.Dataset_MuonShower, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_PPRefDoubleMuon0, process.Dataset_PPRefDoubleMuon1, process.Dataset_PPRefDoubleMuon2, process.Dataset_PPRefDoubleMuon3, process.Dataset_PPRefHardProbes0, process.Dataset_PPRefSingleMuon0, process.Dataset_PPRefZeroBiasPlusForward0, process.Dataset_ParkingDoubleMuonLowMass0, process.Dataset_ParkingDoubleMuonLowMass1, process.Dataset_ParkingDoubleMuonLowMass2, process.Dataset_ParkingDoubleMuonLowMass3, process.Dataset_ParkingDoubleMuonLowMass4, process.Dataset_ParkingDoubleMuonLowMass5, process.Dataset_ParkingDoubleMuonLowMass6, process.Dataset_ParkingDoubleMuonLowMass7, process.Dataset_ParkingHH, process.Dataset_ParkingLLP, process.Dataset_ParkingSingleMuon0, process.Dataset_ParkingVBF0, process.Dataset_ParkingVBF1, process.Dataset_ParkingVBF2, process.Dataset_ParkingVBF3, process.Dataset_ParkingVBF4, process.Dataset_ParkingVBF5, process.Dataset_ParkingVBF6, process.Dataset_ParkingVBF7, process.Dataset_RPCMonitor, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.ALCALowPtJetOutput, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsGatedOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCALumiPixelsCountsPromptHighRate0Output, process.ALCALumiPixelsCountsPromptHighRate1Output, process.ALCALumiPixelsCountsPromptHighRate2Output, process.ALCALumiPixelsCountsPromptHighRate3Output, process.ALCALumiPixelsCountsPromptHighRate4Output, process.ALCALumiPixelsCountsPromptHighRate5Output, process.ALCAP0Output, process.ALCAPHISYMOutput, process.ALCAPPSExpressOutput, process.ALCAPPSPromptOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.DQMPPSRandomOutput, process.HIDQMOutput, process.HIDQMEventDisplayOutput, process.HIDQMGPUvsCPUOutput, process.HIDQMOnlineBeamspotOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.ExpressCosmicsOutput, process.HIExpressOutput, process.HIExpressAlignmentOutput, process.HIExpressRawPrimeOutput, process.HLTMonitorOutput, process.PhysicsHLTPhysics2Output, process.ParkingDoubleMuonLowMass0Output, process.ParkingDoubleMuonLowMass1Output, process.ParkingDoubleMuonLowMass2Output, process.ParkingDoubleMuonLowMass3Output, process.ParkingHHOutput, process.ParkingLLPOutput, process.ParkingSingleMuon0Output, process.ParkingSingleMuon1Output, process.ParkingSingleMuon2Output, process.ParkingSingleMuon3Output, process.ParkingSingleMuon4Output, process.ParkingSingleMuon5Output, process.ParkingSingleMuon6Output, process.ParkingSingleMuon7Output, process.ParkingSingleMuon8Output, process.ParkingSingleMuon9Output, process.ParkingSingleMuon10Output, process.ParkingSingleMuon11Output, process.ParkingVBF0Output, process.ParkingVBF1Output, process.ParkingVBF2Output, process.ParkingVBF3Output, process.PhysicsCommissioningOutput, process.PhysicsDispJetBTagMuEGTauOutput, process.PhysicsEGamma0Output, process.PhysicsEGamma1Output, process.PhysicsHICommissioningOutput, process.PhysicsHIForward0Output, process.PhysicsHIForward1Output, process.PhysicsHIForward2Output, process.PhysicsHIForward3Output, process.PhysicsHIForward4Output, process.PhysicsHIForward5Output, process.PhysicsHIForward6Output, process.PhysicsHIForward7Output, process.PhysicsHIForward8Output, process.PhysicsHIForward9Output, process.PhysicsHIForward10Output, process.PhysicsHIForward11Output, process.PhysicsHIForward12Output, process.PhysicsHIForward13Output, process.PhysicsHIForward14Output, process.PhysicsHIForward15Output, process.PhysicsHIForward16Output, process.PhysicsHIForward17Output, process.PhysicsHIForward18Output, process.PhysicsHIForward19Output, process.PhysicsHIHLTPhysicsOutput, process.PhysicsHIMinimumBias0Output, process.PhysicsHIMinimumBias1Output, process.PhysicsHIMinimumBias2Output, process.PhysicsHIMinimumBias3Output, process.PhysicsHIPhysicsRawPrime0Output, process.PhysicsHIPhysicsRawPrime1Output, process.PhysicsHIPhysicsRawPrime2Output, process.PhysicsHIPhysicsRawPrime3Output, process.PhysicsHIPhysicsRawPrime4Output, process.PhysicsHIPhysicsRawPrime5Output, process.PhysicsHIPhysicsRawPrime6Output, process.PhysicsHIPhysicsRawPrime7Output, process.PhysicsHIPhysicsRawPrime8Output, process.PhysicsHIPhysicsRawPrime9Output, process.PhysicsHIPhysicsRawPrime10Output, process.PhysicsHIPhysicsRawPrime11Output, process.PhysicsHIPhysicsRawPrime12Output, process.PhysicsHIPhysicsRawPrime13Output, process.PhysicsHIPhysicsRawPrime14Output, process.PhysicsHIPhysicsRawPrime15Output, process.PhysicsHIPhysicsRawPrime16Output, process.PhysicsHIPhysicsRawPrime17Output, process.PhysicsHIPhysicsRawPrime18Output, process.PhysicsHIPhysicsRawPrime19Output, process.PhysicsHIPhysicsRawPrime20Output, process.PhysicsHIPhysicsRawPrime21Output, process.PhysicsHIPhysicsRawPrime22Output, process.PhysicsHIPhysicsRawPrime23Output, process.PhysicsHIPhysicsRawPrime24Output, process.PhysicsHIPhysicsRawPrime25Output, process.PhysicsHIPhysicsRawPrime26Output, process.PhysicsHIPhysicsRawPrime27Output, process.PhysicsHIPhysicsRawPrime28Output, process.PhysicsHIPhysicsRawPrime29Output, process.PhysicsHIPhysicsRawPrime30Output, process.PhysicsHIPhysicsRawPrime31Output, process.PhysicsHITrackerNZSOutput, process.PhysicsHIZeroBiasOutput, process.PhysicsHIZeroBiasRAW0Output, process.PhysicsHIZeroBiasRAW1Output, process.PhysicsHIZeroBiasRAW2Output, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics3Output, process.PhysicsJetMET0Output, process.PhysicsJetMET1Output, process.PhysicsMuon0Output, process.PhysicsMuon1Output, process.PhysicsPPRefDoubleMuon0Output, process.PhysicsPPRefDoubleMuon1Output, process.PhysicsPPRefDoubleMuon2Output, process.PhysicsPPRefDoubleMuon3Output, process.PhysicsPPRefHardProbes0Output, process.PhysicsPPRefHardProbes1Output, process.PhysicsPPRefHardProbes2Output, process.PhysicsPPRefSingleMuon0Output, process.PhysicsPPRefSingleMuon1Output, process.PhysicsPPRefSingleMuon2Output, process.PhysicsPPRefZeroBiasPlusForward0Output, process.PhysicsPPRefZeroBiasPlusForward1Output, process.PhysicsPPRefZeroBiasPlusForward2Output, process.PhysicsPPRefZeroBiasPlusForward3Output, process.PhysicsPPRefZeroBiasPlusForward4Output, process.PhysicsPPRefZeroBiasPlusForward5Output, process.PhysicsPPRefZeroBiasPlusForward6Output, process.PhysicsPPRefZeroBiasPlusForward7Output, process.PhysicsPPRefZeroBiasPlusForward8Output, process.PhysicsPPRefZeroBiasPlusForward9Output, process.PhysicsScoutingPFMonitorOutput, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.NanoDSTOutput, process.RPCMONOutput, process.ScoutingPFOutput, process.PhysicsSpecialHLTPhysics0Output, process.PhysicsSpecialHLTPhysics1Output, process.PhysicsSpecialHLTPhysics2Output, process.PhysicsSpecialHLTPhysics3Output, process.PhysicsSpecialHLTPhysics4Output, process.PhysicsSpecialHLTPhysics5Output, process.PhysicsSpecialHLTPhysics6Output, process.PhysicsSpecialHLTPhysics7Output, process.PhysicsSpecialHLTPhysics8Output, process.PhysicsSpecialHLTPhysics9Output, process.PhysicsSpecialHLTPhysics10Output, process.PhysicsSpecialHLTPhysics11Output, process.PhysicsSpecialHLTPhysics12Output, process.PhysicsSpecialHLTPhysics13Output, process.PhysicsSpecialHLTPhysics14Output, process.PhysicsSpecialHLTPhysics15Output, process.PhysicsSpecialHLTPhysics16Output, process.PhysicsSpecialHLTPhysics17Output, process.PhysicsSpecialHLTPhysics18Output, process.PhysicsSpecialHLTPhysics19Output, process.PhysicsSpecialRandom0Output, process.PhysicsSpecialRandom1Output, process.PhysicsSpecialRandom2Output, process.PhysicsSpecialRandom3Output, process.PhysicsSpecialRandom4Output, process.PhysicsSpecialRandom5Output, process.PhysicsSpecialRandom6Output, process.PhysicsSpecialRandom7Output, process.PhysicsSpecialRandom8Output, process.PhysicsSpecialRandom9Output, process.PhysicsSpecialZeroBias0Output, process.PhysicsSpecialZeroBias1Output, process.PhysicsSpecialZeroBias2Output, process.PhysicsSpecialZeroBias3Output, process.PhysicsSpecialZeroBias4Output, process.PhysicsSpecialZeroBias5Output, process.PhysicsSpecialZeroBias6Output, process.PhysicsSpecialZeroBias7Output, process.PhysicsSpecialZeroBias8Output, process.PhysicsSpecialZeroBias9Output, process.PhysicsSpecialZeroBias10Output, process.PhysicsSpecialZeroBias11Output, process.PhysicsSpecialZeroBias12Output, process.PhysicsSpecialZeroBias13Output, process.PhysicsSpecialZeroBias14Output, process.PhysicsSpecialZeroBias15Output, process.Dataset_SpecialRandom0, process.Dataset_SpecialRandom1, process.Dataset_SpecialRandom2, process.Dataset_SpecialRandom3, process.Dataset_SpecialRandom4, process.Dataset_SpecialRandom5, process.Dataset_SpecialRandom6, process.Dataset_SpecialRandom7, process.Dataset_SpecialRandom8, process.Dataset_SpecialRandom9, process.Dataset_SpecialRandom10, process.Dataset_SpecialRandom11, process.Dataset_SpecialRandom12, process.Dataset_SpecialRandom13, process.Dataset_SpecialRandom14, process.Dataset_SpecialRandom15, process.Dataset_SpecialRandom16, process.Dataset_SpecialRandom17, process.Dataset_SpecialRandom18, process.Dataset_SpecialRandom19, process.Dataset_SpecialZeroBias0, process.Dataset_SpecialZeroBias1, process.Dataset_SpecialZeroBias2, process.Dataset_SpecialZeroBias3, process.Dataset_SpecialZeroBias4, process.Dataset_SpecialZeroBias5, process.Dataset_SpecialZeroBias6, process.Dataset_SpecialZeroBias7, process.Dataset_SpecialZeroBias8, process.Dataset_SpecialZeroBias9, process.Dataset_SpecialZeroBias10, process.Dataset_SpecialZeroBias11, process.Dataset_SpecialZeroBias12, process.Dataset_SpecialZeroBias13, process.Dataset_SpecialZeroBias14, process.Dataset_SpecialZeroBias15, process.Dataset_SpecialZeroBias16, process.Dataset_SpecialZeroBias17, process.Dataset_SpecialZeroBias18, process.Dataset_SpecialZeroBias19, process.Dataset_SpecialZeroBias20, process.Dataset_SpecialZeroBias21, process.Dataset_SpecialZeroBias22, process.Dataset_SpecialZeroBias23, process.Dataset_SpecialZeroBias24, process.Dataset_SpecialZeroBias25, process.Dataset_SpecialZeroBias26, process.Dataset_SpecialZeroBias27, process.Dataset_SpecialZeroBias28, process.Dataset_SpecialZeroBias29, process.Dataset_SpecialZeroBias30, process.Dataset_SpecialZeroBias31, process.Dataset_SpecialHLTPhysics0, process.Dataset_SpecialHLTPhysics1, process.Dataset_SpecialHLTPhysics2, process.Dataset_SpecialHLTPhysics3, process.Dataset_SpecialHLTPhysics4, process.Dataset_SpecialHLTPhysics5, process.Dataset_SpecialHLTPhysics6, process.Dataset_SpecialHLTPhysics7, process.Dataset_SpecialHLTPhysics8, process.Dataset_SpecialHLTPhysics9, process.Dataset_SpecialHLTPhysics10, process.Dataset_SpecialHLTPhysics11, process.Dataset_SpecialHLTPhysics12, process.Dataset_SpecialHLTPhysics13, process.Dataset_SpecialHLTPhysics14, process.Dataset_SpecialHLTPhysics15, process.Dataset_SpecialHLTPhysics16, process.Dataset_SpecialHLTPhysics17, process.Dataset_SpecialHLTPhysics18, process.Dataset_SpecialHLTPhysics19, process.Dataset_ParkingSingleMuon1, process.Dataset_ParkingSingleMuon2, process.Dataset_ParkingSingleMuon3, process.Dataset_ParkingSingleMuon4, process.Dataset_ParkingSingleMuon5, process.Dataset_ParkingSingleMuon6, process.Dataset_ParkingSingleMuon7, process.Dataset_ParkingSingleMuon8, process.Dataset_ParkingSingleMuon9, process.Dataset_ParkingSingleMuon10, process.Dataset_ParkingSingleMuon11, process.Dataset_PPRefZeroBiasPlusForward1, process.Dataset_PPRefZeroBiasPlusForward2, process.Dataset_PPRefZeroBiasPlusForward3, process.Dataset_PPRefZeroBiasPlusForward4, process.Dataset_PPRefZeroBiasPlusForward5, process.Dataset_PPRefZeroBiasPlusForward6, process.Dataset_PPRefZeroBiasPlusForward7, process.Dataset_PPRefZeroBiasPlusForward8, process.Dataset_PPRefZeroBiasPlusForward9, process.Dataset_PPRefZeroBiasPlusForward10, process.Dataset_PPRefZeroBiasPlusForward11, process.Dataset_PPRefZeroBiasPlusForward12, process.Dataset_PPRefZeroBiasPlusForward13, process.Dataset_PPRefZeroBiasPlusForward14, process.Dataset_PPRefZeroBiasPlusForward15, process.Dataset_PPRefZeroBiasPlusForward16, process.Dataset_PPRefZeroBiasPlusForward17, process.Dataset_PPRefZeroBiasPlusForward18, process.Dataset_PPRefZeroBiasPlusForward19, process.Dataset_PPRefZeroBiasPlusForward20, process.Dataset_PPRefZeroBiasPlusForward21, process.Dataset_PPRefZeroBiasPlusForward22, process.Dataset_PPRefZeroBiasPlusForward23, process.Dataset_PPRefZeroBiasPlusForward24, process.Dataset_PPRefSingleMuon1, process.Dataset_PPRefSingleMuon2, process.Dataset_PPRefSingleMuon3, process.Dataset_PPRefHardProbes1, process.Dataset_PPRefHardProbes2, process.Dataset_PPRefHardProbes3, process.Dataset_PPRefHardProbes4, process.PhysicsPPRefHardProbes3Output, process.PhysicsPPRefHardProbes4Output, process.PhysicsPPRefSingleMuon3Output, process.PhysicsPPRefZeroBiasPlusForward10Output, process.PhysicsPPRefZeroBiasPlusForward11Output, process.PhysicsPPRefZeroBiasPlusForward12Output, process.PhysicsPPRefZeroBiasPlusForward13Output, process.PhysicsPPRefZeroBiasPlusForward14Output, process.PhysicsPPRefZeroBiasPlusForward15Output, process.PhysicsPPRefZeroBiasPlusForward16Output, process.PhysicsPPRefZeroBiasPlusForward18Output, process.PhysicsPPRefZeroBiasPlusForward19Output, process.PhysicsPPRefZeroBiasPlusForward17Output, process.PhysicsPPRefZeroBiasPlusForward24Output, process.PhysicsPPRefZeroBiasPlusForward23Output, process.PhysicsPPRefZeroBiasPlusForward22Output, process.PhysicsPPRefZeroBiasPlusForward21Output, process.PhysicsPPRefZeroBiasPlusForward20Output, process.Dataset_HIPhysicsRawPrime1, process.Dataset_HIPhysicsRawPrime2, process.Dataset_HIPhysicsRawPrime3, process.Dataset_HIPhysicsRawPrime4, process.Dataset_HIPhysicsRawPrime5, process.Dataset_HIPhysicsRawPrime6, process.Dataset_HIPhysicsRawPrime7, process.Dataset_HIPhysicsRawPrime8, process.Dataset_HIPhysicsRawPrime9, process.Dataset_HIPhysicsRawPrime10, process.Dataset_HIPhysicsRawPrime11, process.Dataset_HIPhysicsRawPrime12, process.Dataset_HIPhysicsRawPrime13, process.Dataset_HIPhysicsRawPrime14, process.Dataset_HIPhysicsRawPrime15, process.Dataset_HIPhysicsRawPrime16, process.Dataset_HIPhysicsRawPrime17, process.Dataset_HIPhysicsRawPrime18, process.Dataset_HIPhysicsRawPrime19, process.Dataset_HIPhysicsRawPrime20, process.Dataset_HIPhysicsRawPrime21, process.Dataset_HIPhysicsRawPrime22, process.Dataset_HIPhysicsRawPrime23, process.Dataset_HIPhysicsRawPrime24, process.Dataset_HIPhysicsRawPrime25, process.Dataset_HIPhysicsRawPrime26, process.Dataset_HIPhysicsRawPrime27, process.Dataset_HIPhysicsRawPrime28, process.Dataset_HIPhysicsRawPrime29, process.Dataset_HIPhysicsRawPrime30, process.Dataset_HIPhysicsRawPrime31, process.Dataset_HIPhysicsRawPrime32, process.Dataset_HIPhysicsRawPrime33, process.Dataset_HIPhysicsRawPrime34, process.Dataset_HIPhysicsRawPrime35, process.Dataset_HIPhysicsRawPrime36, process.Dataset_HIPhysicsRawPrime37, process.Dataset_HIPhysicsRawPrime38, process.Dataset_HIPhysicsRawPrime39, process.Dataset_HIPhysicsRawPrime40, process.Dataset_HIPhysicsRawPrime41, process.Dataset_HIPhysicsRawPrime42, process.Dataset_HIPhysicsRawPrime43, process.Dataset_HIPhysicsRawPrime44, process.Dataset_HIPhysicsRawPrime45, process.Dataset_HIPhysicsRawPrime46, process.Dataset_HIPhysicsRawPrime47, process.Dataset_HIPhysicsRawPrime48, process.Dataset_HIPhysicsRawPrime49, process.Dataset_HIPhysicsRawPrime50, process.Dataset_HIPhysicsRawPrime51, process.Dataset_HIPhysicsRawPrime52, process.Dataset_HIPhysicsRawPrime53, process.Dataset_HIPhysicsRawPrime54, process.Dataset_HIPhysicsRawPrime55, process.Dataset_HIPhysicsRawPrime56, process.Dataset_HIPhysicsRawPrime57, process.Dataset_HIPhysicsRawPrime58, process.Dataset_HIPhysicsRawPrime59, process.PhysicsHIPhysicsRawPrime59Output, process.PhysicsHIPhysicsRawPrime58Output, process.PhysicsHIPhysicsRawPrime57Output, process.PhysicsHIPhysicsRawPrime56Output, process.PhysicsHIPhysicsRawPrime55Output, process.PhysicsHIPhysicsRawPrime54Output, process.PhysicsHIPhysicsRawPrime53Output, process.PhysicsHIPhysicsRawPrime52Output, process.PhysicsHIPhysicsRawPrime51Output, process.PhysicsHIPhysicsRawPrime50Output, process.PhysicsHIPhysicsRawPrime49Output, process.PhysicsHIPhysicsRawPrime48Output, process.PhysicsHIPhysicsRawPrime47Output, process.PhysicsHIPhysicsRawPrime46Output, process.PhysicsHIPhysicsRawPrime45Output, process.PhysicsHIPhysicsRawPrime44Output, process.PhysicsHIPhysicsRawPrime42Output, process.PhysicsHIPhysicsRawPrime41Output, process.PhysicsHIPhysicsRawPrime40Output, process.PhysicsHIPhysicsRawPrime39Output, process.PhysicsHIPhysicsRawPrime38Output, process.PhysicsHIPhysicsRawPrime37Output, process.PhysicsHIPhysicsRawPrime36Output, process.PhysicsHIPhysicsRawPrime35Output, process.PhysicsHIPhysicsRawPrime34Output, process.PhysicsHIPhysicsRawPrime33Output, process.PhysicsHIPhysicsRawPrime32Output, process.PhysicsHIPhysicsRawPrime43Output, )) +process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_EcalPhiSymForHI_v12, process.AlCa_EcalEtaEBonly_v25, process.AlCa_EcalEtaEEonly_v25, process.AlCa_EcalPi0EBonly_v25, process.AlCa_EcalPi0EEonly_v25, process.AlCa_EcalEtaEBonlyForHI_v13, process.AlCa_EcalEtaEEonlyForHI_v13, process.AlCa_EcalPi0EBonlyForHI_v13, process.AlCa_EcalPi0EEonlyForHI_v13, process.AlCa_HIEcalEtaEBonly_v12, process.AlCa_HIEcalEtaEEonly_v12, process.AlCa_HIEcalPi0EBonly_v12, process.AlCa_HIEcalPi0EEonly_v12, process.AlCa_RPCMuonNormalisation_v23, process.AlCa_RPCMuonNormalisationForHI_v11, process.AlCa_HIRPCMuonNormalisation_v11, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.AlCa_PFJet40_v32, process.AlCa_PFJet40_CPUOnly_v11, process.AlCa_AK8PFJet40_v27, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DQM_HIPixelReconstruction_v12, process.DQM_HIEcalReconstruction_v10, process.DQM_HIHcalReconstruction_v8, process.DQM_Random_v1, process.DQM_ZeroBias_v3, process.DST_ZeroBias_v11, process.DST_Physics_v16, process.DST_PFScouting_DoubleMuon_v6, process.DST_PFScouting_DoubleEG_v6, process.DST_PFScouting_JetHT_v6, process.DST_PFScouting_AXOVLoose_v4, process.DST_PFScouting_AXOLoose_v4, process.DST_PFScouting_AXONominal_v6, process.DST_PFScouting_AXOTight_v6, process.DST_PFScouting_AXOVTight_v4, process.DST_PFScouting_CICADAVLoose_v2, process.DST_PFScouting_CICADALoose_v2, process.DST_PFScouting_CICADAMedium_v2, process.DST_PFScouting_CICADATight_v2, process.DST_PFScouting_CICADAVTight_v2, process.DST_PFScouting_SingleMuon_v6, process.DST_PFScouting_SinglePhotonEB_v3, process.DST_PFScouting_ZeroBias_v4, process.HLT_EphemeralPhysics_v9, process.HLT_EphemeralZeroBias_v9, process.HLT_HIEphemeralPhysics_v5, process.HLT_HIEphemeralZeroBias_v5, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Alignment_v8, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_IsolatedBunches_v12, process.HLT_ZeroBias_FirstBXAfterTrain_v10, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_ZeroBias_FirstCollisionInTrain_v11, process.HLT_ZeroBias_LastCollisionInTrain_v10, process.HLT_HT300_Beamspot_v23, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_PFJet40_GPUvsCPU_v7, process.HLT_AK8PFJet380_SoftDropMass30_v6, process.HLT_AK8PFJet400_SoftDropMass30_v6, process.HLT_AK8PFJet425_SoftDropMass30_v6, process.HLT_AK8PFJet450_SoftDropMass30_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, process.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, process.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, process.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, process.HLT_CaloJet500_NoJetID_v22, process.HLT_CaloJet550_NoJetID_v17, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, process.HLT_DoubleEle25_CaloIdL_MW_v15, process.HLT_DoubleEle27_CaloIdL_MW_v15, process.HLT_DoubleEle33_CaloIdL_MW_v28, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, process.HLT_Mu27_Ele37_CaloIdL_MW_v17, process.HLT_Mu37_Ele27_CaloIdL_MW_v17, process.HLT_Mu37_TkMu27_v17, process.HLT_DoubleMu4_3_Bs_v27, process.HLT_DoubleMu4_3_Jpsi_v27, process.HLT_DoubleMu4_3_LowMass_v13, process.HLT_DoubleMu4_LowMass_Displaced_v13, process.HLT_Mu0_L1DoubleMu_v13, process.HLT_Mu4_L1DoubleMu_v13, process.HLT_DoubleMu2_Jpsi_LowPt_v6, process.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, process.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, process.HLT_DoubleMu3_Trk_Tau3mu_v24, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, process.HLT_DoubleMu4_MuMuTrk_Displaced_v27, process.HLT_Mu3_PFJet40_v28, process.HLT_Mu7p5_L2Mu2_Jpsi_v22, process.HLT_Mu7p5_L2Mu2_Upsilon_v22, process.HLT_Mu3_L1SingleMu5orSingleMu7_v13, process.HLT_Mu0_Barrel_v6, process.HLT_Mu0_Barrel_L1HP6_v3, process.HLT_Mu0_Barrel_L1HP7_v3, process.HLT_Mu0_Barrel_L1HP8_v4, process.HLT_Mu0_Barrel_L1HP9_v4, process.HLT_Mu0_Barrel_L1HP10_v6, process.HLT_Mu0_Barrel_L1HP11_v6, process.HLT_Mu0_Barrel_L1HP6_IP6_v3, process.HLT_Mu6_Barrel_L1HP7_IP6_v3, process.HLT_Mu7_Barrel_L1HP8_IP6_v4, process.HLT_Mu8_Barrel_L1HP9_IP6_v4, process.HLT_Mu9_Barrel_L1HP10_IP6_v6, process.HLT_Mu10_Barrel_L1HP11_IP6_v6, process.HLT_DoublePhoton33_CaloIdL_v17, process.HLT_DoublePhoton70_v17, process.HLT_DoublePhoton85_v25, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, process.HLT_Ele30_WPTight_Gsf_v11, process.HLT_Ele32_WPTight_Gsf_v25, process.HLT_Ele35_WPTight_Gsf_v19, process.HLT_Ele38_WPTight_Gsf_v19, process.HLT_Ele40_WPTight_Gsf_v19, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, process.HLT_IsoMu20_v27, process.HLT_IsoMu24_v25, process.HLT_IsoMu24_HLTTracking_v1, process.HLT_IsoMu24_eta2p1_v27, process.HLT_IsoMu27_v28, process.HLT_UncorrectedJetE30_NoBPTX_v14, process.HLT_UncorrectedJetE30_NoBPTX3BX_v14, process.HLT_UncorrectedJetE60_NoBPTX3BX_v14, process.HLT_UncorrectedJetE70_NoBPTX3BX_v14, process.HLT_L1SingleMuCosmics_v8, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, process.HLT_L2Mu10_NoVertex_NoBPTX_v15, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, process.HLT_L2Mu23NoVtx_2Cha_v10, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, process.HLT_DoubleL2Mu50_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, process.HLT_Mu30_TkMu0_Psi_v13, process.HLT_Mu30_TkMu0_Upsilon_v13, process.HLT_Mu25_TkMu0_Phi_v20, process.HLT_Mu15_v15, process.HLT_Mu20_v24, process.HLT_Mu27_v25, process.HLT_Mu50_v25, process.HLT_Mu55_v15, process.HLT_CascadeMu100_v13, process.HLT_HighPtTkMu100_v12, process.HLT_DiPFJetAve40_v26, process.HLT_DiPFJetAve60_v26, process.HLT_DiPFJetAve80_v26, process.HLT_DiPFJetAve140_v25, process.HLT_DiPFJetAve200_v25, process.HLT_DiPFJetAve260_v26, process.HLT_DiPFJetAve320_v26, process.HLT_DiPFJetAve400_v26, process.HLT_DiPFJetAve500_v26, process.HLT_DiPFJetAve60_HFJEC_v27, process.HLT_DiPFJetAve80_HFJEC_v29, process.HLT_DiPFJetAve100_HFJEC_v29, process.HLT_DiPFJetAve160_HFJEC_v28, process.HLT_DiPFJetAve220_HFJEC_v28, process.HLT_DiPFJetAve260_HFJEC_v11, process.HLT_DiPFJetAve300_HFJEC_v28, process.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, process.HLT_AK8PFJet40_v28, process.HLT_AK8PFJet60_v27, process.HLT_AK8PFJet80_v28, process.HLT_AK8PFJet140_v27, process.HLT_AK8PFJet200_v27, process.HLT_AK8PFJet260_v28, process.HLT_AK8PFJet320_v28, process.HLT_AK8PFJet400_v28, process.HLT_AK8PFJet450_v28, process.HLT_AK8PFJet500_v28, process.HLT_AK8PFJet550_v23, process.HLT_PFJet40_v33, process.HLT_PFJet60_v33, process.HLT_PFJet80_v33, process.HLT_PFJet110_v12, process.HLT_PFJet140_v31, process.HLT_PFJet200_v31, process.HLT_PFJet260_v32, process.HLT_PFJet320_v32, process.HLT_PFJet400_v32, process.HLT_PFJet450_v33, process.HLT_PFJet500_v33, process.HLT_PFJet550_v23, process.HLT_PFJetFwd40_v31, process.HLT_PFJetFwd60_v31, process.HLT_PFJetFwd80_v30, process.HLT_PFJetFwd140_v30, process.HLT_PFJetFwd200_v30, process.HLT_PFJetFwd260_v31, process.HLT_PFJetFwd320_v31, process.HLT_PFJetFwd400_v31, process.HLT_PFJetFwd450_v31, process.HLT_PFJetFwd500_v31, process.HLT_AK8PFJetFwd40_v27, process.HLT_AK8PFJetFwd60_v26, process.HLT_AK8PFJetFwd80_v26, process.HLT_AK8PFJetFwd140_v26, process.HLT_AK8PFJetFwd200_v26, process.HLT_AK8PFJetFwd260_v27, process.HLT_AK8PFJetFwd320_v27, process.HLT_AK8PFJetFwd400_v27, process.HLT_AK8PFJetFwd450_v27, process.HLT_AK8PFJetFwd500_v27, process.HLT_PFHT180_v29, process.HLT_PFHT250_v29, process.HLT_PFHT370_v29, process.HLT_PFHT430_v29, process.HLT_PFHT510_v29, process.HLT_PFHT590_v29, process.HLT_PFHT680_v29, process.HLT_PFHT780_v29, process.HLT_PFHT890_v29, process.HLT_PFHT1050_v30, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, process.HLT_PFMET120_PFMHT120_IDTight_v32, process.HLT_PFMET130_PFMHT130_IDTight_v32, process.HLT_PFMET140_PFMHT140_IDTight_v32, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, process.HLT_L1ETMHadSeeds_v10, process.HLT_CaloMHT90_v14, process.HLT_CaloMET90_NotCleaned_v14, process.HLT_CaloMET350_NotCleaned_v14, process.HLT_PFMET200_NotCleaned_v21, process.HLT_PFMET250_NotCleaned_v21, process.HLT_PFMET300_NotCleaned_v21, process.HLT_PFMET200_BeamHaloCleaned_v21, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, process.HLT_MET105_IsoTrk50_v19, process.HLT_MET120_IsoTrk50_v19, process.HLT_Mu12eta2p3_v13, process.HLT_Mu12eta2p3_PFJet40_v13, process.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Photon300_NoHE_v23, process.HLT_Mu8_TrkIsoVVL_v24, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, process.HLT_Mu17_TrkIsoVVL_v25, process.HLT_Mu19_TrkIsoVVL_v16, process.HLT_BTagMu_AK4DiJet20_Mu5_v25, process.HLT_BTagMu_AK4DiJet40_Mu5_v25, process.HLT_BTagMu_AK4DiJet70_Mu5_v25, process.HLT_BTagMu_AK4DiJet110_Mu5_v25, process.HLT_BTagMu_AK4DiJet170_Mu5_v24, process.HLT_BTagMu_AK4Jet300_Mu5_v24, process.HLT_BTagMu_AK8DiJet170_Mu5_v21, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, process.HLT_BTagMu_AK8Jet300_Mu5_v24, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, process.HLT_Photon33_v15, process.HLT_Photon50_v23, process.HLT_Photon75_v23, process.HLT_Photon90_v23, process.HLT_Photon120_v23, process.HLT_Photon150_v17, process.HLT_Photon175_v25, process.HLT_Photon200_v24, process.HLT_Photon45EB_v3, process.HLT_Photon40EB_v3, process.HLT_Photon50EB_v4, process.HLT_Photon30EB_TightID_TightIso_v12, process.HLT_Photon40EB_TightID_TightIso_v3, process.HLT_Photon45EB_TightID_TightIso_v3, process.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_v8, process.HLT_Photon55EB_TightID_TightIso_v4, process.HLT_Photon75EB_TightID_TightIso_v8, process.HLT_Photon90EB_TightID_TightIso_v8, process.HLT_Photon110EB_TightID_TightIso_v12, process.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon100EBHE10_v12, process.HLT_Photon50_R9Id90_HE10_IsoM_v24, process.HLT_Photon75_R9Id90_HE10_IsoM_v24, process.HLT_Photon90_R9Id90_HE10_IsoM_v24, process.HLT_Photon120_R9Id90_HE10_IsoM_v24, process.HLT_Photon165_R9Id90_HE10_IsoM_v25, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, process.HLT_DiphotonMVA14p25_Mass90_v3, process.HLT_DiphotonMVA14p25_Tight_Mass90_v3, process.HLT_Photon35_TwoProngs35_v13, process.HLT_IsoMu24_TwoProngs35_v13, process.HLT_Dimuon0_Jpsi_L1_NoOS_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, process.HLT_Dimuon0_Jpsi_v20, process.HLT_Dimuon0_Jpsi_NoVertexing_v20, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi3p5_Muon2_v17, process.HLT_Dimuon0_Upsilon_L1_4p5_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, process.HLT_Dimuon0_Upsilon_NoVertexing_v19, process.HLT_Dimuon0_LowMass_L1_0er1p5_v20, process.HLT_Dimuon0_LowMass_v20, process.HLT_Dimuon0_LowMass_L1_4_v20, process.HLT_Dimuon0_LowMass_L1_TM530_v18, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, process.HLT_TripleMu_10_5_5_DZ_v22, process.HLT_TripleMu_12_10_5_v22, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, process.HLT_DoubleMu4_3_LowMass_SS_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v19, process.HLT_DoubleMu4_Jpsi_NoVertexing_v19, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, process.HLT_DoubleMu4_JpsiTrk_Bc_v12, process.HLT_DoubleMu43NoFiltersNoVtx_v14, process.HLT_DoubleMu48NoFiltersNoVtx_v14, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, process.HLT_Ele28_HighEta_SC20_Mass55_v23, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, process.HLT_Ele15_IsoVVVL_PFHT450_v28, process.HLT_Ele50_IsoVVVL_PFHT450_v28, process.HLT_Ele15_IsoVVVL_PFHT600_v32, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, process.HLT_Mu15_IsoVVVL_PFHT450_v27, process.HLT_Mu50_IsoVVVL_PFHT450_v27, process.HLT_Mu15_IsoVVVL_PFHT600_v31, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, process.HLT_Dimuon10_Upsilon_y1p4_v13, process.HLT_Dimuon12_Upsilon_y1p4_v14, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, process.HLT_Dimuon25_Jpsi_v26, process.HLT_Dimuon14_PsiPrime_v25, process.HLT_Dimuon14_PsiPrime_noCorrL1_v17, process.HLT_Dimuon18_PsiPrime_v26, process.HLT_Dimuon18_PsiPrime_noCorrL1_v18, process.HLT_Dimuon24_Upsilon_noCorrL1_v18, process.HLT_Dimuon24_Phi_noCorrL1_v18, process.HLT_Dimuon25_Jpsi_noCorrL1_v18, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, process.HLT_DoubleIsoMu20_eta2p1_v19, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, process.HLT_Mu8_v24, process.HLT_Mu17_v25, process.HLT_Mu19_v16, process.HLT_Mu17_Photon30_IsoCaloId_v18, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, process.HLT_PFHT400_SixPFJet32_v21, process.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, process.HLT_PFHT450_SixPFJet36_v20, process.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, process.HLT_PFHT350_v31, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, process.HLT_ECALHT800_v20, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, process.HLT_Photon20_HoverELoose_v20, process.HLT_Photon30_HoverELoose_v20, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, process.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, process.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, process.HLT_Mu18_Mu9_SameSign_v16, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, process.HLT_QuadPFJet103_88_75_15_v17, process.HLT_QuadPFJet105_88_76_15_v17, process.HLT_QuadPFJet111_90_80_15_v17, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, process.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, process.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, process.HLT_PFHT250_QuadPFJet25_v6, process.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, process.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, process.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, process.HLT_QuadPFJet100_88_70_30_v10, process.HLT_QuadPFJet105_88_75_30_v9, process.HLT_QuadPFJet111_90_80_30_v9, process.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, process.HLT_AK8PFJet220_SoftDropMass40_v13, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, process.HLT_AK8PFJet230_SoftDropMass40_v13, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_Nch45_v6, process.HLT_AK8PFJet275_Nch40_v6, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PFHT250_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, process.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, process.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, process.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, process.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu10NoVtx_2Cha_v9, process.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_L3Mu10NoVtx_v10, process.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, process.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, process.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, process.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, process.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, process.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, process.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, process.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, process.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, process.HLT_L1Mu6HT240_v9, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, process.HLT_HT350_v7, process.HLT_HT425_v19, process.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT550_DisplacedDijet60_Inclusive_v23, process.HLT_HT650_DisplacedDijet60_Inclusive_v23, process.HLT_CaloMET60_DTCluster50_v11, process.HLT_CaloMET60_DTClusterNoMB1S50_v11, process.HLT_L1MET_DTCluster50_v11, process.HLT_L1MET_DTClusterNoMB1S50_v11, process.HLT_CscCluster_Loose_v10, process.HLT_CscCluster_Medium_v10, process.HLT_CscCluster_Tight_v10, process.HLT_CscCluster50_Photon20Unseeded_v4, process.HLT_CscCluster50_Photon30Unseeded_v4, process.HLT_CscCluster100_Ele5_v4, process.HLT_CscCluster100_Mu5_v6, process.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, process.HLT_DoubleCscCluster75_v7, process.HLT_IsoTrk200_L1SingleMuShower_v4, process.HLT_IsoTrk400_L1SingleMuShower_v4, process.HLT_DoubleCscCluster100_v7, process.HLT_L1CSCShower_DTCluster50_v10, process.HLT_L1CSCShower_DTCluster75_v10, process.HLT_PFMET105_IsoTrk50_v13, process.HLT_L1SingleLLPJet_v7, process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, process.HLT_DiPhoton10Time1ns_v10, process.HLT_DiPhoton10Time1p2ns_v10, process.HLT_DiPhoton10Time1p4ns_v10, process.HLT_DiPhoton10Time1p6ns_v10, process.HLT_DiPhoton10Time1p8ns_v10, process.HLT_DiPhoton10Time2ns_v10, process.HLT_DiPhoton10_CaloIdL_v10, process.HLT_DoubleEle6p5_eta1p22_mMax6_v10, process.HLT_DoubleEle8_eta1p22_mMax6_v10, process.HLT_DoubleEle10_eta1p22_mMax6_v10, process.HLT_SingleEle8_v9, process.HLT_SingleEle8_SingleEGL1_v9, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Mu50_L1SingleMuShower_v11, process.HLT_IsoMu24_OneProng32_v9, process.HLT_Photon32_OneProng32_M50To105_v10, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, process.HLT_VBF_DiPFJet125_45_Mjj1050_v8, process.HLT_VBF_DiPFJet125_45_Mjj1200_v6, process.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, process.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, process.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, process.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_PFJet200_TimeLtNeg2p5ns_v10, process.HLT_PFJet200_TimeGt2p5ns_v10, process.HLT_Photon50_TimeLtNeg2p5ns_v7, process.HLT_Photon50_TimeGt2p5ns_v7, process.HLT_PPSMaxTracksPerArm1_v9, process.HLT_PPSMaxTracksPerRP4_v9, process.HLT_PPSRandom_v1, process.HLT_HIL1NotBptxOR_v14, process.HLT_HIL1UnpairedBunchBptxPlus_v14, process.HLT_HIL1UnpairedBunchBptxMinus_v14, process.HLT_HIPhysics_v14, process.HLT_HIPhysicsForZS_v14, process.HLT_HIRandom_v7, process.HLT_HIRandom_HighRate_v3, process.HLT_HIHcalNZS_v14, process.HLT_HIHcalPhiSym_v14, process.HLT_HIZeroBias_v14, process.HLT_HIZeroBias_HighRate_v7, process.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v14, process.HLT_HIZeroBias_HighRateRAW_v4, process.HLT_HIMinimumBiasHF1AND_v7, process.HLT_HIMinimumBiasHF1AND_copy_v6, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_v7, process.HLT_HIMinimumBiasHF1ANDZDC1nOR_copy_v4, process.HLT_HIMinimumBiasHF1ANDZDC2nOR_copy_v6, process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v14, process.HLT_HICentrality50100MinimumBiasHF1AND_Beamspot_v1, process.HLT_HIL1Centrality30_50_v7, process.HLT_HIL1_UCC_0_0p5_v7, process.HLT_HIL1_UCC_0_1_v7, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet40Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_v6, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC1nOR_v4, process.HLT_HIPuAK4CaloJet60Eta5p1_MinBiasHF1AND_ZDC2nOR_v6, process.HLT_HIPuAK4CaloJet80Eta5p1_v14, process.HLT_HIPuAK4CaloJet100Eta5p1_v14, process.HLT_HIPuAK4CaloJet120Eta2p1_v7, process.HLT_HIPuAK4CaloJet120Eta5p1_v14, process.HLT_HIPuAK4CaloJet40Fwd_v7, process.HLT_HIPuAK4CaloJet60Fwd_v7, process.HLT_HIPuAK4CaloJet80Fwd_v7, process.HLT_HIPuAK4CaloJet100Fwd_v7, process.HLT_HIPuAK4CaloJet120Fwd_v7, process.HLT_HIGEDPhoton10_v14, process.HLT_HIGEDPhoton10_EB_v14, process.HLT_HIGEDPhoton20_v14, process.HLT_HIGEDPhoton20_EB_v14, process.HLT_HIGEDPhoton30_v14, process.HLT_HIGEDPhoton30_EB_v14, process.HLT_HIGEDPhoton40_v14, process.HLT_HIGEDPhoton40_EB_v14, process.HLT_HIGEDPhoton50_v14, process.HLT_HIGEDPhoton50_EB_v14, process.HLT_HIGEDPhoton60_v14, process.HLT_HIGEDPhoton60_EB_v14, process.HLT_HIDoubleGEDPhoton20_v7, process.HLT_HIEle10Gsf_v14, process.HLT_HIEle15Gsf_v14, process.HLT_HIEle20Gsf_v14, process.HLT_HIEle30Gsf_v14, process.HLT_HIEle40Gsf_v14, process.HLT_HIEle50Gsf_v14, process.HLT_HIEle15Ele10Gsf_v14, process.HLT_HIEle15Ele10GsfMass50_v14, process.HLT_HIDoubleEle10Gsf_v14, process.HLT_HIDoubleEle10GsfMass50_v14, process.HLT_HIDoubleEle15Gsf_v14, process.HLT_HIDoubleEle15GsfMass50_v14, process.HLT_HIUPC_ZeroBias_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZeroBias_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZeroBias_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_NotMBHF2_v5, process.HLT_HIUPC_ZDC1nOR_MinPixelCluster400_MaxPixelCluster10000_v13, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrackLowPt_MaxPixelCluster400_v12, process.HLT_HIUPC_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF1AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity20_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity30_v13, process.HLT_HIUPC_ZDC1nXOR_MBHF2AND_PixelTrackMultiplicity40_v13, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF1AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity20_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity30_v5, process.HLT_HIUPC_ZDC1nAsymXOR_MBHF2AND_PixelTrackMultiplicity40_v5, process.HLT_HIUPC_SingleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuCosmic_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v12, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_v10, process.HLT_HIUPC_SingleMuOpen_OR_SingleMuCosmic_EMTF_NotMBHF2OR_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuCosmic_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelCluster1000_v6, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_v10, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2AND_MaxPixelCluster1000_v6, process.HLT_HIUPC_SingleEG2_NotMBHF2AND_ZDC1nOR_SinglePixelTrack_MaxPixelTrack_v12, process.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_v12, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_SingleEG4_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v12, process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v15, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v14, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v12, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZeroBias_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MaxPixelCluster10000_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity20400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity30400_v2, process.HLT_HIUPC_ZDC1nOR_MBHF1AND_PixelTrackMultiplicity40400_v2, process.HLT_HIUPC_ZDC1nAND_NotMBHF2_MaxPixelCluster10000_v2, process.HLT_HIUPC_MinPixelThrust0p8_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleUncorrJet8_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_ZDC1nAsymXOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleUncorrJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_ZDC1nOR_RapGap_MaxPixelCluster10000_v2, process.HLT_HIUPC_SingleJet8_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_ZDC1nXOR_RapGap_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet8_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet12_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet16_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet20_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet24_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_SingleUncorrJet28_NotZDC_OR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotMBHF2AND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDCAND_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet8_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet12_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_DoubleJet16_DeltaPhi2p0_NotZDC1nOR_MaxPixelCluster10000_v1, process.HLT_HIUPC_Random_HighRate_v1, process.HLT_HIUPC_HFafterglowCombined_v1, process.HLT_HIL1SingleMuOpen_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality30to100_v1, process.HLT_HIL1SingleMu0_Centrality40to100_v1, process.HLT_HIL1SingleMu0_v7, process.HLT_HIL1SingleMu0_Open_v7, process.HLT_HIL1SingleMu0_Cosmic_v7, process.HLT_HIL1SingleMu5_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu5_SingleGEDPhoton20_v7, process.HLT_HIL1SingleMu7_SingleEG20Gsf_v7, process.HLT_HIL1SingleMu7_SingleGEDPhoton20_v1, process.HLT_HIL2DoubleMuOpen_Centrality40to100_v1, process.HLT_HIL2DoubleMuOpen_SS_v1, process.HLT_HIL2DoubleMuOpen_OS_v1, process.HLT_HIL1DoubleMu0_v7, process.HLT_HIL2DoubleMu0_SQ_v1, process.HLT_HIL1DoubleMu0_MaxDr3p5_Open_v7, process.HLT_HIL1DoubleMu0_SQ_v7, process.HLT_HIL2SingleMuOpen_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality30to100_v1, process.HLT_HIL2SingleMu0_Centrality40to100_v1, process.HLT_HIL2SingleMu3_Open_v7, process.HLT_HIL2SingleMu5_v7, process.HLT_HIL2SingleMu7_v7, process.HLT_HIL2SingleMu12_v1, process.HLT_HIL2DoubleMu0_Open_v7, process.HLT_HIL2DoubleMu0_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu0_M7to15_Open_v7, process.HLT_HIL2DoubleMu2p8_M1p5to6_Open_v7, process.HLT_HIL2DoubleMu3_M7to15_Open_v7, process.HLT_HIL3SingleMu3_Open_v7, process.HLT_HIL3SingleMu5_v7, process.HLT_HIL3SingleMu7_v7, process.HLT_HIL3SingleMu12_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu3_SinglePuAK4CaloJet80_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet40_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet60_v7, process.HLT_HIL3SingleMu5_SinglePuAK4CaloJet80_v7, process.HLT_HIL3DoubleMu0_M0toInf_Open_v7, process.HLT_HIL3DoubleMu0_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu0_M7to15_Open_v7, process.HLT_HIL3DoubleMu0_Quarkonia_Open_v7, process.HLT_HIL3DoubleMu2_M2to4p5_Open_v7, process.HLT_HIL3DoubleMu2_M7to15_Open_v7, process.HLT_HIL3DoubleMu2_Quarkonia_Open_v7, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt30_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt45_v8, process.HLT_HIDmesonPPOnAATrackingGlobal_Dpt60_v8, process.HLT_HICscCluster_Loose_v7, process.HLT_HICscCluster_Medium_v7, process.HLT_HICscCluster_Tight_v7, process.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v9, process.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v9, process.HLT_HIL1NotBptxORForPPRef_v9, process.HLT_HIHT80_Beamspot_ppRef5TeV_v15, process.HLT_PPRefZeroBias_v6, process.HLT_AK4CaloJet40_v6, process.HLT_AK4CaloJet60_v6, process.HLT_AK4CaloJet70_v6, process.HLT_AK4CaloJet80_v6, process.HLT_AK4CaloJet100_v6, process.HLT_AK4CaloJet120_v6, process.HLT_AK4CaloJetFwd40_v6, process.HLT_AK4CaloJetFwd60_v6, process.HLT_AK4CaloJetFwd70_v6, process.HLT_AK4CaloJetFwd80_v6, process.HLT_AK4CaloJetFwd100_v6, process.HLT_AK4CaloJetFwd120_v6, process.HLT_AK4PFJet40_v8, process.HLT_AK4PFJet60_v8, process.HLT_AK4PFJet80_v8, process.HLT_AK4PFJet100_v8, process.HLT_AK4PFJet120_v8, process.HLT_AK4PFJetFwd40_v8, process.HLT_AK4PFJetFwd60_v8, process.HLT_AK4PFJetFwd80_v8, process.HLT_AK4PFJetFwd100_v8, process.HLT_AK4PFJetFwd120_v8, process.HLT_PPRefDoubleEle10Gsf_v6, process.HLT_PPRefDoubleEle10GsfMass50_v6, process.HLT_PPRefDoubleEle15Gsf_v6, process.HLT_PPRefDoubleEle15GsfMass50_v6, process.HLT_PPRefEle15Ele10Gsf_v6, process.HLT_PPRefEle15Ele10GsfMass50_v6, process.HLT_PPRefEle10Gsf_v6, process.HLT_PPRefEle15Gsf_v6, process.HLT_PPRefEle20Gsf_v7, process.HLT_PPRefEle30Gsf_v7, process.HLT_PPRefEle40Gsf_v6, process.HLT_PPRefEle50Gsf_v6, process.HLT_PPRefGEDPhoton10_v6, process.HLT_PPRefGEDPhoton10_EB_v6, process.HLT_PPRefGEDPhoton20_v6, process.HLT_PPRefGEDPhoton20_EB_v6, process.HLT_PPRefGEDPhoton30_v6, process.HLT_PPRefGEDPhoton30_EB_v6, process.HLT_PPRefGEDPhoton40_v6, process.HLT_PPRefGEDPhoton40_EB_v6, process.HLT_PPRefGEDPhoton50_v6, process.HLT_PPRefGEDPhoton50_EB_v6, process.HLT_PPRefGEDPhoton60_v6, process.HLT_PPRefGEDPhoton60_EB_v6, process.HLT_PPRefDoubleGEDPhoton20_v1, process.HLT_PPRefL1DoubleMu0_v6, process.HLT_PPRefL1DoubleMu0_SQ_v1, process.HLT_PPRefL1DoubleMu0_Open_v6, process.HLT_PPRefL1DoubleMu2_v1, process.HLT_PPRefL1DoubleMu2_SQ_v1, process.HLT_PPRefL1SingleMu0_Cosmics_v6, process.HLT_PPRefL1SingleMu7_v6, process.HLT_PPRefL1SingleMu12_v6, process.HLT_PPRefL1SingleMu5_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu5_GEDPhoton20_v1, process.HLT_PPRefL1SingleMu7_Ele20Gsf_v1, process.HLT_PPRefL1SingleMu7_GEDPhoton10_v1, process.HLT_PPRefL2DoubleMu0_v6, process.HLT_PPRefL2DoubleMu0_Open_v6, process.HLT_PPRefL2SingleMu7_v6, process.HLT_PPRefL2SingleMu12_v6, process.HLT_PPRefL2SingleMu15_v6, process.HLT_PPRefL2SingleMu20_v6, process.HLT_PPRefL3DoubleMu0_v8, process.HLT_PPRefL3DoubleMu0_Open_v8, process.HLT_PPRefL3SingleMu3_v8, process.HLT_PPRefL3SingleMu5_v8, process.HLT_PPRefL3SingleMu7_v8, process.HLT_PPRefL3SingleMu12_v8, process.HLT_PPRefL3SingleMu15_v8, process.HLT_PPRefL3SingleMu20_v8, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu3_SingleAK4CaloJet80_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet40_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet60_v1, process.HLT_PPRefL3SingleMu5_SingleAK4CaloJet80_v1, process.HLT_PPRefCscCluster_Loose_v6, process.HLT_PPRefCscCluster_Medium_v6, process.HLT_PPRefCscCluster_Tight_v6, process.HLT_PPRefUPC_SingleJet8_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_SingleJet8_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet12_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet16_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet20_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet24_ZDC1nOR_v1, process.HLT_PPRefUPC_SingleJet28_ZDC1nOR_v1, process.HLT_PPRefUPC_ZDC1nAsymXOR_v1, process.HLT_PPRefUPC_ZDC1nOR_v1, process.HLT_PPRefZeroBias_FirstCollisionInTrain_v1, process.MC_ReducedIterativeTracking_v22, process.MC_AK4CaloJets_v19, process.MC_AK4CaloJetsFromPV_v18, process.MC_CaloHT_v18, process.MC_AK8CaloHT_v18, process.MC_CaloMHT_v18, process.MC_AK4PFJets_v29, process.MC_PFHT_v28, process.MC_AK8PFJets_v29, process.MC_AK8PFHT_v28, process.MC_CaloMET_v18, process.MC_CaloMET_JetIdCleaned_v19, process.MC_PFMET_v29, process.MC_PFMHT_v28, process.MC_AK4PFJetPNet_v5, process.MC_AK8PFJetPNet_v5, process.MC_Egamma_Open_v8, process.MC_Egamma_Open_Unseeded_v8, process.MC_Ele5_WPTight_Gsf_v18, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, process.MC_DoubleEle5_CaloIdL_MW_v26, process.MC_IsoMu_v27, process.MC_DoubleMu_TrkIsoVVL_DZ_v23, process.MC_DoubleMuNoFiltersNoVtx_v17, process.MC_PFScouting_v6, process.HLT_SpecialHLTPhysics_v7, process.AlCa_LumiPixelsCounts_RandomHighRate_v4, process.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, process.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, process.HLT_L1AXOVTight_v4, process.HLT_L1SingleMuOpen_v6, process.HLT_L1SingleMuOpen_DT_v6, process.HLT_L1SingleMu3_v5, process.HLT_L1SingleMu5_v5, process.HLT_L1SingleMu7_v5, process.HLT_L1DoubleMu0_v5, process.HLT_L1SingleJet8erHE_v5, process.HLT_L1SingleJet10erHE_v5, process.HLT_L1SingleJet12erHE_v5, process.HLT_L1SingleJet35_v5, process.HLT_L1SingleJet200_v5, process.HLT_L1SingleEG8er2p5_v4, process.HLT_L1SingleEG10er2p5_v4, process.HLT_L1SingleEG15er2p5_v4, process.HLT_L1SingleEG26er2p5_v4, process.HLT_L1SingleEG28er2p5_v4, process.HLT_L1SingleEG28er2p1_v4, process.HLT_L1SingleEG28er1p5_v4, process.HLT_L1SingleEG34er2p5_v4, process.HLT_L1SingleEG36er2p5_v4, process.HLT_L1SingleEG38er2p5_v4, process.HLT_L1SingleEG40er2p5_v4, process.HLT_L1SingleEG42er2p5_v4, process.HLT_L1SingleEG45er2p5_v4, process.HLT_L1SingleEG50_v4, process.HLT_L1SingleJet60_v4, process.HLT_L1SingleJet90_v4, process.HLT_L1SingleJet120_v4, process.HLT_L1SingleJet180_v4, process.HLT_L1HTT120er_v4, process.HLT_L1HTT160er_v4, process.HLT_L1HTT200er_v4, process.HLT_L1HTT255er_v4, process.HLT_L1HTT280er_v4, process.HLT_L1HTT320er_v4, process.HLT_L1HTT360er_v4, process.HLT_L1HTT400er_v4, process.HLT_L1HTT450er_v4, process.HLT_L1ETM120_v4, process.HLT_L1ETM150_v4, process.HLT_L1EXT_HCAL_LaserMon1_v5, process.HLT_L1EXT_HCAL_LaserMon4_v5, process.HLT_CscCluster_Cosmic_v4, process.HLT_HT60_Beamspot_v22, process.HLT_HT300_Beamspot_PixelClusters_WP2_v7, process.HLT_PixelClusters_WP2_v4, process.HLT_PixelClusters_WP1_v4, process.HLT_BptxOR_v6, process.HLT_L1SingleMuCosmics_EMTF_v4, process.HLT_L1SingleMuCosmics_CosmicTracking_v1, process.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, process.HLT_L1FatEvents_v5, process.HLT_Random_HighRate_v1, process.HLT_ZeroBias_HighRate_v4, process.HLT_ZeroBias_Gated_v4, process.HLT_SpecialZeroBias_v6, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.DQMHistograms, process.RatesMonitoring, process.Dataset_AlCaLowPtJet, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaLumiPixelsCountsPromptHighRate0, process.Dataset_AlCaLumiPixelsCountsPromptHighRate1, process.Dataset_AlCaLumiPixelsCountsPromptHighRate2, process.Dataset_AlCaLumiPixelsCountsPromptHighRate3, process.Dataset_AlCaLumiPixelsCountsPromptHighRate4, process.Dataset_AlCaLumiPixelsCountsPromptHighRate5, process.Dataset_AlCaLumiPixelsCountsGated, process.Dataset_AlCaP0, process.Dataset_AlCaPPSExpress, process.Dataset_AlCaPPSPrompt, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DQMPPSRandom, process.Dataset_DisplacedJet, process.Dataset_EGamma0, process.Dataset_EGamma1, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressCosmics, process.Dataset_ExpressPhysics, process.Dataset_HIDQMGPUvsCPU, process.Dataset_HIDQMOnlineBeamspot, process.Dataset_HIEmptyBX, process.Dataset_HIEphemeralHLTPhysics, process.Dataset_HIEphemeralZeroBias0, process.Dataset_HIEphemeralZeroBias1, process.Dataset_HIEventDisplay, process.Dataset_HIExpressAlignment, process.Dataset_HIExpressPhysics, process.Dataset_HIExpressPhysicsRawPrime, process.Dataset_HIForward0, process.Dataset_HIForward1, process.Dataset_HIForward2, process.Dataset_HIForward3, process.Dataset_HIForward4, process.Dataset_HIForward5, process.Dataset_HIForward6, process.Dataset_HIForward7, process.Dataset_HIForward8, process.Dataset_HIForward9, process.Dataset_HIForward10, process.Dataset_HIForward11, process.Dataset_HIForward12, process.Dataset_HIForward13, process.Dataset_HIForward14, process.Dataset_HIForward15, process.Dataset_HIForward16, process.Dataset_HIForward17, process.Dataset_HIForward18, process.Dataset_HIForward19, process.Dataset_HIHLTPhysics, process.Dataset_HIHcalNZS, process.Dataset_HIOnlineMonitor, process.Dataset_HIMinimumBias0, process.Dataset_HIMinimumBias1, process.Dataset_HIMinimumBias2, process.Dataset_HIMinimumBias3, process.Dataset_HIPhysicsRawPrime0, process.Dataset_HITrackerNZS, process.Dataset_HIZeroBias0, process.Dataset_HIZeroBias1, process.Dataset_HIZeroBias2, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_JetMET0, process.Dataset_JetMET1, process.Dataset_L1Accept, process.Dataset_MinimumBias, process.Dataset_MonteCarlo, process.Dataset_Muon0, process.Dataset_Muon1, process.Dataset_MuonEG, process.Dataset_MuonShower, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_PPRefDoubleMuon0, process.Dataset_PPRefDoubleMuon1, process.Dataset_PPRefDoubleMuon2, process.Dataset_PPRefDoubleMuon3, process.Dataset_PPRefHardProbes0, process.Dataset_PPRefSingleMuon0, process.Dataset_PPRefZeroBiasPlusForward0, process.Dataset_ParkingDoubleMuonLowMass0, process.Dataset_ParkingDoubleMuonLowMass1, process.Dataset_ParkingDoubleMuonLowMass2, process.Dataset_ParkingDoubleMuonLowMass3, process.Dataset_ParkingDoubleMuonLowMass4, process.Dataset_ParkingDoubleMuonLowMass5, process.Dataset_ParkingDoubleMuonLowMass6, process.Dataset_ParkingDoubleMuonLowMass7, process.Dataset_ParkingHH, process.Dataset_ParkingLLP, process.Dataset_ParkingSingleMuon0, process.Dataset_ParkingVBF0, process.Dataset_ParkingVBF1, process.Dataset_ParkingVBF2, process.Dataset_ParkingVBF3, process.Dataset_ParkingVBF4, process.Dataset_ParkingVBF5, process.Dataset_ParkingVBF6, process.Dataset_ParkingVBF7, process.Dataset_RPCMonitor, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_VRRandom0, process.Dataset_VRRandom1, process.Dataset_VRRandom2, process.Dataset_VRRandom3, process.Dataset_VRRandom4, process.Dataset_VRRandom5, process.Dataset_VRRandom6, process.Dataset_VRRandom7, process.Dataset_VRRandom8, process.Dataset_VRRandom9, process.Dataset_VRRandom10, process.Dataset_VRRandom11, process.Dataset_VRRandom12, process.Dataset_VRRandom13, process.Dataset_VRRandom14, process.Dataset_VRRandom15, process.Dataset_ZeroBias, process.ALCALowPtJetOutput, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsGatedOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCALumiPixelsCountsPromptHighRate0Output, process.ALCALumiPixelsCountsPromptHighRate1Output, process.ALCALumiPixelsCountsPromptHighRate2Output, process.ALCALumiPixelsCountsPromptHighRate3Output, process.ALCALumiPixelsCountsPromptHighRate4Output, process.ALCALumiPixelsCountsPromptHighRate5Output, process.ALCAP0Output, process.ALCAPHISYMOutput, process.ALCAPPSExpressOutput, process.ALCAPPSPromptOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.DQMPPSRandomOutput, process.HIDQMOutput, process.HIDQMEventDisplayOutput, process.HIDQMGPUvsCPUOutput, process.HIDQMOnlineBeamspotOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.ExpressCosmicsOutput, process.HIExpressOutput, process.HIExpressAlignmentOutput, process.HIExpressRawPrimeOutput, process.HLTMonitorOutput, process.PhysicsHLTPhysics2Output, process.ParkingDoubleMuonLowMass0Output, process.ParkingDoubleMuonLowMass1Output, process.ParkingDoubleMuonLowMass2Output, process.ParkingDoubleMuonLowMass3Output, process.ParkingHHOutput, process.ParkingLLPOutput, process.ParkingSingleMuon0Output, process.ParkingSingleMuon1Output, process.ParkingSingleMuon2Output, process.ParkingSingleMuon3Output, process.ParkingSingleMuon4Output, process.ParkingSingleMuon5Output, process.ParkingSingleMuon6Output, process.ParkingSingleMuon7Output, process.ParkingSingleMuon8Output, process.ParkingSingleMuon9Output, process.ParkingSingleMuon10Output, process.ParkingSingleMuon11Output, process.ParkingVBF0Output, process.ParkingVBF1Output, process.ParkingVBF2Output, process.ParkingVBF3Output, process.PhysicsCommissioningOutput, process.PhysicsDispJetBTagMuEGTauOutput, process.PhysicsEGamma0Output, process.PhysicsEGamma1Output, process.PhysicsHICommissioningOutput, process.PhysicsHIForward0Output, process.PhysicsHIForward1Output, process.PhysicsHIForward2Output, process.PhysicsHIForward3Output, process.PhysicsHIForward4Output, process.PhysicsHIForward5Output, process.PhysicsHIForward6Output, process.PhysicsHIForward7Output, process.PhysicsHIForward8Output, process.PhysicsHIForward9Output, process.PhysicsHIForward10Output, process.PhysicsHIForward11Output, process.PhysicsHIForward12Output, process.PhysicsHIForward13Output, process.PhysicsHIForward14Output, process.PhysicsHIForward15Output, process.PhysicsHIForward16Output, process.PhysicsHIForward17Output, process.PhysicsHIForward18Output, process.PhysicsHIForward19Output, process.PhysicsHIHLTPhysicsOutput, process.PhysicsHIMinimumBias0Output, process.PhysicsHIMinimumBias1Output, process.PhysicsHIMinimumBias2Output, process.PhysicsHIMinimumBias3Output, process.PhysicsHIPhysicsRawPrime0Output, process.PhysicsHIPhysicsRawPrime1Output, process.PhysicsHIPhysicsRawPrime2Output, process.PhysicsHIPhysicsRawPrime3Output, process.PhysicsHIPhysicsRawPrime4Output, process.PhysicsHIPhysicsRawPrime5Output, process.PhysicsHIPhysicsRawPrime6Output, process.PhysicsHIPhysicsRawPrime7Output, process.PhysicsHIPhysicsRawPrime8Output, process.PhysicsHIPhysicsRawPrime9Output, process.PhysicsHIPhysicsRawPrime10Output, process.PhysicsHIPhysicsRawPrime11Output, process.PhysicsHIPhysicsRawPrime12Output, process.PhysicsHIPhysicsRawPrime13Output, process.PhysicsHIPhysicsRawPrime14Output, process.PhysicsHIPhysicsRawPrime15Output, process.PhysicsHIPhysicsRawPrime16Output, process.PhysicsHIPhysicsRawPrime17Output, process.PhysicsHIPhysicsRawPrime18Output, process.PhysicsHIPhysicsRawPrime19Output, process.PhysicsHIPhysicsRawPrime20Output, process.PhysicsHIPhysicsRawPrime21Output, process.PhysicsHIPhysicsRawPrime22Output, process.PhysicsHIPhysicsRawPrime23Output, process.PhysicsHIPhysicsRawPrime24Output, process.PhysicsHIPhysicsRawPrime25Output, process.PhysicsHIPhysicsRawPrime26Output, process.PhysicsHIPhysicsRawPrime27Output, process.PhysicsHIPhysicsRawPrime28Output, process.PhysicsHIPhysicsRawPrime29Output, process.PhysicsHIPhysicsRawPrime30Output, process.PhysicsHIPhysicsRawPrime31Output, process.PhysicsHITrackerNZSOutput, process.PhysicsHIZeroBiasOutput, process.PhysicsHIZeroBiasRAW0Output, process.PhysicsHIZeroBiasRAW1Output, process.PhysicsHIZeroBiasRAW2Output, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics3Output, process.PhysicsJetMET0Output, process.PhysicsJetMET1Output, process.PhysicsMuon0Output, process.PhysicsMuon1Output, process.PhysicsPPRefDoubleMuon0Output, process.PhysicsPPRefDoubleMuon1Output, process.PhysicsPPRefDoubleMuon2Output, process.PhysicsPPRefDoubleMuon3Output, process.PhysicsPPRefHardProbes0Output, process.PhysicsPPRefHardProbes1Output, process.PhysicsPPRefHardProbes2Output, process.PhysicsPPRefSingleMuon0Output, process.PhysicsPPRefSingleMuon1Output, process.PhysicsPPRefSingleMuon2Output, process.PhysicsPPRefZeroBiasPlusForward0Output, process.PhysicsPPRefZeroBiasPlusForward1Output, process.PhysicsPPRefZeroBiasPlusForward2Output, process.PhysicsPPRefZeroBiasPlusForward3Output, process.PhysicsPPRefZeroBiasPlusForward4Output, process.PhysicsPPRefZeroBiasPlusForward5Output, process.PhysicsPPRefZeroBiasPlusForward6Output, process.PhysicsPPRefZeroBiasPlusForward7Output, process.PhysicsPPRefZeroBiasPlusForward8Output, process.PhysicsPPRefZeroBiasPlusForward9Output, process.PhysicsScoutingPFMonitorOutput, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.NanoDSTOutput, process.RPCMONOutput, process.ScoutingPFOutput, process.PhysicsSpecialHLTPhysics0Output, process.PhysicsSpecialHLTPhysics1Output, process.PhysicsSpecialHLTPhysics2Output, process.PhysicsSpecialHLTPhysics3Output, process.PhysicsSpecialHLTPhysics4Output, process.PhysicsSpecialHLTPhysics5Output, process.PhysicsSpecialHLTPhysics6Output, process.PhysicsSpecialHLTPhysics7Output, process.PhysicsSpecialHLTPhysics8Output, process.PhysicsSpecialHLTPhysics9Output, process.PhysicsSpecialHLTPhysics10Output, process.PhysicsSpecialHLTPhysics11Output, process.PhysicsSpecialHLTPhysics12Output, process.PhysicsSpecialHLTPhysics13Output, process.PhysicsSpecialHLTPhysics14Output, process.PhysicsSpecialHLTPhysics15Output, process.PhysicsSpecialHLTPhysics16Output, process.PhysicsSpecialHLTPhysics17Output, process.PhysicsSpecialHLTPhysics18Output, process.PhysicsSpecialHLTPhysics19Output, process.PhysicsSpecialRandom0Output, process.PhysicsSpecialRandom1Output, process.PhysicsSpecialRandom2Output, process.PhysicsSpecialRandom3Output, process.PhysicsSpecialRandom4Output, process.PhysicsSpecialRandom5Output, process.PhysicsSpecialRandom6Output, process.PhysicsSpecialRandom7Output, process.PhysicsSpecialRandom8Output, process.PhysicsSpecialRandom9Output, process.PhysicsSpecialZeroBias0Output, process.PhysicsSpecialZeroBias1Output, process.PhysicsSpecialZeroBias2Output, process.PhysicsSpecialZeroBias3Output, process.PhysicsSpecialZeroBias4Output, process.PhysicsSpecialZeroBias5Output, process.PhysicsSpecialZeroBias6Output, process.PhysicsSpecialZeroBias7Output, process.PhysicsSpecialZeroBias8Output, process.PhysicsSpecialZeroBias9Output, process.PhysicsSpecialZeroBias10Output, process.PhysicsSpecialZeroBias11Output, process.PhysicsSpecialZeroBias12Output, process.PhysicsSpecialZeroBias13Output, process.PhysicsSpecialZeroBias14Output, process.PhysicsSpecialZeroBias15Output, process.Dataset_SpecialRandom0, process.Dataset_SpecialRandom1, process.Dataset_SpecialRandom2, process.Dataset_SpecialRandom3, process.Dataset_SpecialRandom4, process.Dataset_SpecialRandom5, process.Dataset_SpecialRandom6, process.Dataset_SpecialRandom7, process.Dataset_SpecialRandom8, process.Dataset_SpecialRandom9, process.Dataset_SpecialRandom10, process.Dataset_SpecialRandom11, process.Dataset_SpecialRandom12, process.Dataset_SpecialRandom13, process.Dataset_SpecialRandom14, process.Dataset_SpecialRandom15, process.Dataset_SpecialRandom16, process.Dataset_SpecialRandom17, process.Dataset_SpecialRandom18, process.Dataset_SpecialRandom19, process.Dataset_SpecialZeroBias0, process.Dataset_SpecialZeroBias1, process.Dataset_SpecialZeroBias2, process.Dataset_SpecialZeroBias3, process.Dataset_SpecialZeroBias4, process.Dataset_SpecialZeroBias5, process.Dataset_SpecialZeroBias6, process.Dataset_SpecialZeroBias7, process.Dataset_SpecialZeroBias8, process.Dataset_SpecialZeroBias9, process.Dataset_SpecialZeroBias10, process.Dataset_SpecialZeroBias11, process.Dataset_SpecialZeroBias12, process.Dataset_SpecialZeroBias13, process.Dataset_SpecialZeroBias14, process.Dataset_SpecialZeroBias15, process.Dataset_SpecialZeroBias16, process.Dataset_SpecialZeroBias17, process.Dataset_SpecialZeroBias18, process.Dataset_SpecialZeroBias19, process.Dataset_SpecialZeroBias20, process.Dataset_SpecialZeroBias21, process.Dataset_SpecialZeroBias22, process.Dataset_SpecialZeroBias23, process.Dataset_SpecialZeroBias24, process.Dataset_SpecialZeroBias25, process.Dataset_SpecialZeroBias26, process.Dataset_SpecialZeroBias27, process.Dataset_SpecialZeroBias28, process.Dataset_SpecialZeroBias29, process.Dataset_SpecialZeroBias30, process.Dataset_SpecialZeroBias31, process.Dataset_SpecialHLTPhysics0, process.Dataset_SpecialHLTPhysics1, process.Dataset_SpecialHLTPhysics2, process.Dataset_SpecialHLTPhysics3, process.Dataset_SpecialHLTPhysics4, process.Dataset_SpecialHLTPhysics5, process.Dataset_SpecialHLTPhysics6, process.Dataset_SpecialHLTPhysics7, process.Dataset_SpecialHLTPhysics8, process.Dataset_SpecialHLTPhysics9, process.Dataset_SpecialHLTPhysics10, process.Dataset_SpecialHLTPhysics11, process.Dataset_SpecialHLTPhysics12, process.Dataset_SpecialHLTPhysics13, process.Dataset_SpecialHLTPhysics14, process.Dataset_SpecialHLTPhysics15, process.Dataset_SpecialHLTPhysics16, process.Dataset_SpecialHLTPhysics17, process.Dataset_SpecialHLTPhysics18, process.Dataset_SpecialHLTPhysics19, process.Dataset_ParkingSingleMuon1, process.Dataset_ParkingSingleMuon2, process.Dataset_ParkingSingleMuon3, process.Dataset_ParkingSingleMuon4, process.Dataset_ParkingSingleMuon5, process.Dataset_ParkingSingleMuon6, process.Dataset_ParkingSingleMuon7, process.Dataset_ParkingSingleMuon8, process.Dataset_ParkingSingleMuon9, process.Dataset_ParkingSingleMuon10, process.Dataset_ParkingSingleMuon11, process.Dataset_PPRefZeroBiasPlusForward1, process.Dataset_PPRefZeroBiasPlusForward2, process.Dataset_PPRefZeroBiasPlusForward3, process.Dataset_PPRefZeroBiasPlusForward4, process.Dataset_PPRefZeroBiasPlusForward5, process.Dataset_PPRefZeroBiasPlusForward6, process.Dataset_PPRefZeroBiasPlusForward7, process.Dataset_PPRefZeroBiasPlusForward8, process.Dataset_PPRefZeroBiasPlusForward9, process.Dataset_PPRefZeroBiasPlusForward10, process.Dataset_PPRefZeroBiasPlusForward11, process.Dataset_PPRefZeroBiasPlusForward12, process.Dataset_PPRefZeroBiasPlusForward13, process.Dataset_PPRefZeroBiasPlusForward14, process.Dataset_PPRefZeroBiasPlusForward15, process.Dataset_PPRefZeroBiasPlusForward16, process.Dataset_PPRefZeroBiasPlusForward17, process.Dataset_PPRefZeroBiasPlusForward18, process.Dataset_PPRefZeroBiasPlusForward19, process.Dataset_PPRefZeroBiasPlusForward20, process.Dataset_PPRefZeroBiasPlusForward21, process.Dataset_PPRefZeroBiasPlusForward22, process.Dataset_PPRefZeroBiasPlusForward23, process.Dataset_PPRefZeroBiasPlusForward24, process.Dataset_PPRefSingleMuon1, process.Dataset_PPRefSingleMuon2, process.Dataset_PPRefSingleMuon3, process.Dataset_PPRefHardProbes1, process.Dataset_PPRefHardProbes2, process.Dataset_PPRefHardProbes3, process.Dataset_PPRefHardProbes4, process.PhysicsPPRefHardProbes3Output, process.PhysicsPPRefHardProbes4Output, process.PhysicsPPRefSingleMuon3Output, process.PhysicsPPRefZeroBiasPlusForward10Output, process.PhysicsPPRefZeroBiasPlusForward11Output, process.PhysicsPPRefZeroBiasPlusForward12Output, process.PhysicsPPRefZeroBiasPlusForward13Output, process.PhysicsPPRefZeroBiasPlusForward14Output, process.PhysicsPPRefZeroBiasPlusForward15Output, process.PhysicsPPRefZeroBiasPlusForward16Output, process.PhysicsPPRefZeroBiasPlusForward18Output, process.PhysicsPPRefZeroBiasPlusForward19Output, process.PhysicsPPRefZeroBiasPlusForward17Output, process.PhysicsPPRefZeroBiasPlusForward24Output, process.PhysicsPPRefZeroBiasPlusForward23Output, process.PhysicsPPRefZeroBiasPlusForward22Output, process.PhysicsPPRefZeroBiasPlusForward21Output, process.PhysicsPPRefZeroBiasPlusForward20Output, process.Dataset_HIPhysicsRawPrime1, process.Dataset_HIPhysicsRawPrime2, process.Dataset_HIPhysicsRawPrime3, process.Dataset_HIPhysicsRawPrime4, process.Dataset_HIPhysicsRawPrime5, process.Dataset_HIPhysicsRawPrime6, process.Dataset_HIPhysicsRawPrime7, process.Dataset_HIPhysicsRawPrime8, process.Dataset_HIPhysicsRawPrime9, process.Dataset_HIPhysicsRawPrime10, process.Dataset_HIPhysicsRawPrime11, process.Dataset_HIPhysicsRawPrime12, process.Dataset_HIPhysicsRawPrime13, process.Dataset_HIPhysicsRawPrime14, process.Dataset_HIPhysicsRawPrime15, process.Dataset_HIPhysicsRawPrime16, process.Dataset_HIPhysicsRawPrime17, process.Dataset_HIPhysicsRawPrime18, process.Dataset_HIPhysicsRawPrime19, process.Dataset_HIPhysicsRawPrime20, process.Dataset_HIPhysicsRawPrime21, process.Dataset_HIPhysicsRawPrime22, process.Dataset_HIPhysicsRawPrime23, process.Dataset_HIPhysicsRawPrime24, process.Dataset_HIPhysicsRawPrime25, process.Dataset_HIPhysicsRawPrime26, process.Dataset_HIPhysicsRawPrime27, process.Dataset_HIPhysicsRawPrime28, process.Dataset_HIPhysicsRawPrime29, process.Dataset_HIPhysicsRawPrime30, process.Dataset_HIPhysicsRawPrime31, process.Dataset_HIPhysicsRawPrime32, process.Dataset_HIPhysicsRawPrime33, process.Dataset_HIPhysicsRawPrime34, process.Dataset_HIPhysicsRawPrime35, process.Dataset_HIPhysicsRawPrime36, process.Dataset_HIPhysicsRawPrime37, process.Dataset_HIPhysicsRawPrime38, process.Dataset_HIPhysicsRawPrime39, process.Dataset_HIPhysicsRawPrime40, process.Dataset_HIPhysicsRawPrime41, process.Dataset_HIPhysicsRawPrime42, process.Dataset_HIPhysicsRawPrime43, process.Dataset_HIPhysicsRawPrime44, process.Dataset_HIPhysicsRawPrime45, process.Dataset_HIPhysicsRawPrime46, process.Dataset_HIPhysicsRawPrime47, process.Dataset_HIPhysicsRawPrime48, process.Dataset_HIPhysicsRawPrime49, process.Dataset_HIPhysicsRawPrime50, process.Dataset_HIPhysicsRawPrime51, process.Dataset_HIPhysicsRawPrime52, process.Dataset_HIPhysicsRawPrime53, process.Dataset_HIPhysicsRawPrime54, process.Dataset_HIPhysicsRawPrime55, process.Dataset_HIPhysicsRawPrime56, process.Dataset_HIPhysicsRawPrime57, process.Dataset_HIPhysicsRawPrime58, process.Dataset_HIPhysicsRawPrime59, process.PhysicsHIPhysicsRawPrime59Output, process.PhysicsHIPhysicsRawPrime58Output, process.PhysicsHIPhysicsRawPrime57Output, process.PhysicsHIPhysicsRawPrime56Output, process.PhysicsHIPhysicsRawPrime55Output, process.PhysicsHIPhysicsRawPrime54Output, process.PhysicsHIPhysicsRawPrime53Output, process.PhysicsHIPhysicsRawPrime52Output, process.PhysicsHIPhysicsRawPrime51Output, process.PhysicsHIPhysicsRawPrime50Output, process.PhysicsHIPhysicsRawPrime49Output, process.PhysicsHIPhysicsRawPrime48Output, process.PhysicsHIPhysicsRawPrime47Output, process.PhysicsHIPhysicsRawPrime46Output, process.PhysicsHIPhysicsRawPrime45Output, process.PhysicsHIPhysicsRawPrime44Output, process.PhysicsHIPhysicsRawPrime42Output, process.PhysicsHIPhysicsRawPrime41Output, process.PhysicsHIPhysicsRawPrime40Output, process.PhysicsHIPhysicsRawPrime39Output, process.PhysicsHIPhysicsRawPrime38Output, process.PhysicsHIPhysicsRawPrime37Output, process.PhysicsHIPhysicsRawPrime36Output, process.PhysicsHIPhysicsRawPrime35Output, process.PhysicsHIPhysicsRawPrime34Output, process.PhysicsHIPhysicsRawPrime33Output, process.PhysicsHIPhysicsRawPrime32Output, process.PhysicsHIPhysicsRawPrime43Output, process.PhysicsVRRandom1Output, process.PhysicsVRRandom0Output, process.PhysicsVRRandom2Output, process.PhysicsVRRandom3Output, process.PhysicsVRRandom4Output, process.PhysicsVRRandom5Output, process.PhysicsVRRandom6Output, process.PhysicsVRRandom7Output, )) # source module (EDM inputs) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake.py index 525b35e9bd767..19be69906ab5a 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake.py @@ -1,13 +1,13 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/Fake --full --data --type Fake --unprescale --process HLTFake --globaltag auto:run1_hlt_Fake --input file:RelVal_Raw_Fake_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/Fake --full --data --type Fake --unprescale --process HLTFake --globaltag auto:run1_hlt_Fake --input file:RelVal_Raw_Fake_DATA.root -# /dev/CMSSW_14_1_0/Fake/V12 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/Fake/V5 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Fake/V12") + tableName = cms.string("/dev/CMSSW_14_2_0/Fake/V5") ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py index e118b6f96545a..c2df3f4aefafb 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py @@ -1,13 +1,13 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/Fake1 --full --data --type Fake1 --unprescale --process HLTFake1 --globaltag auto:run2_hlt_Fake1 --input file:RelVal_Raw_Fake1_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/Fake1 --full --data --type Fake1 --unprescale --process HLTFake1 --globaltag auto:run2_hlt_Fake1 --input file:RelVal_Raw_Fake1_DATA.root -# /dev/CMSSW_14_1_0/Fake1/V12 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/Fake1/V5 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake1" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Fake1/V12") + tableName = cms.string("/dev/CMSSW_14_2_0/Fake1/V5") ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py index 661c3156ffce7..5ff44eee835f5 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py @@ -1,13 +1,13 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/Fake2 --full --data --type Fake2 --unprescale --process HLTFake2 --globaltag auto:run2_hlt_Fake2 --input file:RelVal_Raw_Fake2_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/Fake2 --full --data --type Fake2 --unprescale --process HLTFake2 --globaltag auto:run2_hlt_Fake2 --input file:RelVal_Raw_Fake2_DATA.root -# /dev/CMSSW_14_1_0/Fake2/V12 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/Fake2/V5 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake2" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Fake2/V12") + tableName = cms.string("/dev/CMSSW_14_2_0/Fake2/V5") ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py index f633088769340..112479590cd2b 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/GRun --full --data --type GRun --unprescale --process HLTGRun --globaltag auto:run3_hlt_GRun --input file:RelVal_Raw_GRun_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/GRun --full --data --type GRun --unprescale --process HLTGRun --globaltag auto:run3_hlt_GRun --input file:RelVal_Raw_GRun_DATA.root -# /dev/CMSSW_14_1_0/GRun/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/GRun/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/GRun/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/GRun/V10") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1859,9 +1859,12 @@ 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v23', 'HLT_HT550_DisplacedDijet60_Inclusive_v23', + 'HLT_IsoMu24_HLTTracking_v1', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1', 'HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13', @@ -8758,6 +8761,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -9336,6 +9340,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -10137,6 +10142,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -12169,6 +12175,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -12704,6 +12711,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter3IterL3FromL1MuonPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -13505,6 +13513,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersSerialSync" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoubletsSerialSync = cms.EDProducer( "HitPairEDProducer", @@ -17078,7 +17087,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombinedUnseeded = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsUnseeded','hltElePixelSeedsTripletsUnseeded' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeedsUnseeded = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedUnseeded" ), @@ -20984,7 +20994,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombined = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeeds = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombined" ), @@ -31572,6 +31583,10 @@ DepTag = cms.VInputTag( 'hltMuonTkRelIsolationCut0p14Map' ), IsolatorPSet = cms.PSet( ) ) +process.hltPreIsoMu24HLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreIsoMu24eta2p1 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -33380,6 +33395,10 @@ MinPixHitsForDZ = cms.int32( 0 ), checkSC = cms.bool( False ) ) +process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZHLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZ = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -33561,6 +33580,10 @@ propagatorAny = cms.ESInputTag( "","SteppingHelixPropagatorAny" ), propagatorOpposite = cms.ESInputTag( "","hltESPSteppingHelixPropagatorOpposite" ) ) +process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8HLTTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8CaloJet30 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -70995,6 +71018,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PixelLessHitDoubletsForGlbDisplacedMuons = cms.EDProducer( "HitPairEDProducer", @@ -71236,6 +71260,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PixelLessHitDoubletsForDisplacedTkMuons = cms.EDProducer( "HitPairEDProducer", @@ -72650,6 +72675,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PFlowPixelLessHitDoubletsForTau = cms.EDProducer( "HitPairEDProducer", @@ -75704,6 +75730,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter1PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -76004,6 +76031,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter2PFlowPixelHitDoubletsForDisplaced = cms.EDProducer( "HitPairEDProducer", @@ -76923,6 +76951,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersRegForDisplaced" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDisplacedhltIter4PFlowPixelLessHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -86390,9 +86419,12 @@ 'HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v23', 'HLT_HT550_DisplacedDijet60_Inclusive_v23', + 'HLT_IsoMu24_HLTTracking_v1', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9', 'HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1', + 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1', 'HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9', 'HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13', @@ -88031,6 +88063,7 @@ 'keep *_hltL3NoFiltersNoVtxMuonCandidates_*_*', 'keep *_hltMergedTracks_*_*', 'keep *_hltOnlineBeamSpot_*_*', + 'keep *_hltParticleNetDiscriminatorsJetTags_*_*', 'keep *_hltPixelTracks_*_*', 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelClusters_*_*', @@ -88084,10 +88117,6 @@ ), SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_DQMGPUvsCPU' ) ), outputCommands = cms.untracked.vstring( 'drop *', - 'keep *Cluster*_hltSiPixelClustersSerialSync_*_*', - 'keep *Cluster*_hltSiPixelClusters_*_*', - 'keep *RecHit*_hltSiPixelRecHitsSerialSync_*_*', - 'keep *RecHit*_hltSiPixelRecHits_*_*', 'keep *_hltEcalDigisSerialSync_*_*', 'keep *_hltEcalDigis_*_*', 'keep *_hltEcalUncalibRecHitSerialSync_*_*', @@ -88096,10 +88125,6 @@ 'keep *_hltHbhereco_*_*', 'keep *_hltParticleFlowClusterHCALSerialSync_*_*', 'keep *_hltParticleFlowClusterHCAL_*_*', - 'keep *_hltPixelTracksSerialSync_*_*', - 'keep *_hltPixelTracks_*_*', - 'keep *_hltPixelVerticesSerialSync_*_*', - 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelDigiErrorsSerialSync_*_*', 'keep *_hltSiPixelDigiErrors_*_*' ) ) @@ -89528,6 +89553,7 @@ process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGor + process.hltPreEle32WPTightGsfL1DoubleEG + process.HLTEle32L1DoubleEGWPTightGsfSequence + process.HLTEndSequence ) process.HLT_IsoMu20_v27 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu18 + process.hltPreIsoMu20 + process.hltL1fL1sMu18L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sMu18L1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu18L1Filtered0) + process.hltL3fL1sMu18L1f0L2f10QL3Filtered20Q + process.HLTMu20IsolationSequence + process.hltL3crIsoL1sMu18L1f0L2f10QL3f20QL3trkIsoFiltered + process.HLTEndSequence ) process.HLT_IsoMu24_v25 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu22 + process.hltPreIsoMu24 + process.hltL1fL1sMu22L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sSingleMu22L1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu22L1Filtered0) + process.hltL3fL1sSingleMu22L1f0L2f10QL3Filtered24Q + process.HLTMu24IsolationSequence + process.hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered + process.HLTEndSequence ) +process.HLT_IsoMu24_HLTTracking_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu22 + process.hltPreIsoMu24HLTTracking + process.hltL1fL1sMu22L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sSingleMu22L1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu22L1Filtered0) + process.hltL3fL1sSingleMu22L1f0L2f10QL3Filtered24Q + process.HLTMu24IsolationSequence + process.hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered + process.HLTIterativeTrackingIter02 + process.HLTEndSequence ) process.HLT_IsoMu24_eta2p1_v27 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu22 + process.hltPreIsoMu24eta2p1 + process.hltL1fL1sMu22erL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sSingleMu22erL1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu22erL1Filtered0) + process.hltL3fL1sSingleMu22erL1f0L2f10QL3Filtered24Q + process.HLTMu24Eta2p1IsolationSequence + process.hltL3crIsoL1sSingleMu22erL1f0L2f10QL3f24QL3trkIsoFiltered + process.HLTEndSequence ) process.HLT_IsoMu27_v28 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu22or25 + process.hltPreIsoMu27 + process.hltL1fL1sMu22or25L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sMu22or25L1f0L2Filtered10Q) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu22or25L1Filtered0) + process.hltL3fL1sMu22Or25L1f0L2f10QL3Filtered27Q + process.HLTMu27IsolationSequence + process.hltL3crIsoL1sMu22Or25L1f0L2f10QL3f27QL3trkIsoFiltered + process.HLTEndSequence ) process.HLT_UncorrectedJetE30_NoBPTX_v14 = cms.Path( process.HLTBeginSequence + process.hltL1sV0SingleJetC20NotBptxOR + process.hltPreUncorrectedJetE30NoBPTX + process.HLTStoppedHSCPLocalHcalReco + process.HLTStoppedHSCPJetSequence + process.hltStoppedHSCP1CaloJetEnergy30 + process.HLTEndSequence ) @@ -89553,11 +89579,13 @@ process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVL + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.HLTEndSequence ) process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu19TrkIsoVVLMu9TrkIsoVVL + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered9 + process.hltL3fL1DoubleMu155fFiltered19 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon199RelTrkIsoVVLFiltered + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZ + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.HLTEndSequence ) +process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZHLTTracking + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.HLTIterativeTrackingIter02 + process.HLTEndSequence ) process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZ + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered9 + process.hltL3fL1DoubleMu155fFiltered19 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon199RelTrkIsoVVLFiltered + process.hltDiMuon199RelTrkIsoVVLFilteredDzFiltered0p2 + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8PFJet30 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTAK4CaloJetsSequence + process.hltSingleCaloJet10 + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets10 + process.hltSinglePFJet30 + process.HLTEndSequence ) process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu19TrkIsoVVLMu9TrkIsoVVLDZMass8 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered9 + process.hltL3fL1DoubleMu155fFiltered19 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon199RelTrkIsoVVLFiltered + process.hltDiMuon199RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon199Mass8Filtered + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass3p8Filtered + process.HLTEndSequence ) +process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass3p8HLTTracking + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass3p8Filtered + process.HLTIterativeTrackingIter02 + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8CaloJet30 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTAK4CaloJetsSequence + process.hltSingleCaloJet30 + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8AK8PFJet30 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTAK8CaloJetsSequence + process.hltSingleCaloJet10AK8 + process.HLTAK8PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets10AK8 + process.hltSinglePFJet30AK8 + process.HLTEndSequence ) process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu125to157 + process.hltPreMu17TrkIsoVVLMu8TrkIsoVVLDZMass8AK8CaloJet30 + process.hltL1fL1sDoubleMu155L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu155L1f0L2PreFiltered0) + cms.ignore(process.hltL2fL1sDoubleMu155L1f0L2Filtered10OneMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu155L1Filtered0) + process.hltL3fL1DoubleMu155fPreFiltered8 + process.hltL3fL1DoubleMu155fFiltered17 + process.HLTL3muontrkisovvlSequence + process.hltDiMuon178RelTrkIsoVVLFiltered + process.hltDiMuon178RelTrkIsoVVLFilteredDzFiltered0p2 + process.hltDiMuon178Mass8Filtered + process.HLTAK8CaloJetsSequence + process.hltSingleCaloJet30AK8 + process.HLTEndSequence ) @@ -90338,7 +90366,7 @@ process.Dataset_ParkingSingleMuon11 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetParkingSingleMuon + process.hltPreDatasetParkingSingleMuon11 ) -process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_EcalEtaEBonly_v25, process.AlCa_EcalEtaEEonly_v25, process.AlCa_EcalPi0EBonly_v25, process.AlCa_EcalPi0EEonly_v25, process.AlCa_RPCMuonNormalisation_v23, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.AlCa_PFJet40_v32, process.AlCa_PFJet40_CPUOnly_v11, process.AlCa_AK8PFJet40_v27, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DST_ZeroBias_v11, process.DST_Physics_v16, process.DST_PFScouting_DoubleMuon_v6, process.DST_PFScouting_DoubleEG_v6, process.DST_PFScouting_JetHT_v6, process.DST_PFScouting_AXOVLoose_v4, process.DST_PFScouting_AXOLoose_v4, process.DST_PFScouting_AXONominal_v6, process.DST_PFScouting_AXOTight_v6, process.DST_PFScouting_AXOVTight_v4, process.DST_PFScouting_CICADAVLoose_v2, process.DST_PFScouting_CICADALoose_v2, process.DST_PFScouting_CICADAMedium_v2, process.DST_PFScouting_CICADATight_v2, process.DST_PFScouting_CICADAVTight_v2, process.DST_PFScouting_SingleMuon_v6, process.DST_PFScouting_SinglePhotonEB_v3, process.DST_PFScouting_ZeroBias_v4, process.HLT_EphemeralPhysics_v9, process.HLT_EphemeralZeroBias_v9, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Alignment_v8, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_IsolatedBunches_v12, process.HLT_ZeroBias_FirstBXAfterTrain_v10, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_ZeroBias_FirstCollisionInTrain_v11, process.HLT_ZeroBias_LastCollisionInTrain_v10, process.HLT_HT300_Beamspot_v23, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_PFJet40_GPUvsCPU_v7, process.HLT_AK8PFJet380_SoftDropMass30_v6, process.HLT_AK8PFJet400_SoftDropMass30_v6, process.HLT_AK8PFJet425_SoftDropMass30_v6, process.HLT_AK8PFJet450_SoftDropMass30_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, process.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, process.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, process.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, process.HLT_CaloJet500_NoJetID_v22, process.HLT_CaloJet550_NoJetID_v17, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, process.HLT_DoubleEle25_CaloIdL_MW_v15, process.HLT_DoubleEle27_CaloIdL_MW_v15, process.HLT_DoubleEle33_CaloIdL_MW_v28, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, process.HLT_Mu27_Ele37_CaloIdL_MW_v17, process.HLT_Mu37_Ele27_CaloIdL_MW_v17, process.HLT_Mu37_TkMu27_v17, process.HLT_DoubleMu4_3_Bs_v27, process.HLT_DoubleMu4_3_Jpsi_v27, process.HLT_DoubleMu4_3_LowMass_v13, process.HLT_DoubleMu4_LowMass_Displaced_v13, process.HLT_Mu0_L1DoubleMu_v13, process.HLT_Mu4_L1DoubleMu_v13, process.HLT_DoubleMu2_Jpsi_LowPt_v6, process.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, process.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, process.HLT_DoubleMu3_Trk_Tau3mu_v24, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, process.HLT_DoubleMu4_MuMuTrk_Displaced_v27, process.HLT_Mu3_PFJet40_v28, process.HLT_Mu7p5_L2Mu2_Jpsi_v22, process.HLT_Mu7p5_L2Mu2_Upsilon_v22, process.HLT_Mu3_L1SingleMu5orSingleMu7_v13, process.HLT_Mu0_Barrel_v6, process.HLT_Mu0_Barrel_L1HP6_v3, process.HLT_Mu0_Barrel_L1HP7_v3, process.HLT_Mu0_Barrel_L1HP8_v4, process.HLT_Mu0_Barrel_L1HP9_v4, process.HLT_Mu0_Barrel_L1HP10_v6, process.HLT_Mu0_Barrel_L1HP11_v6, process.HLT_Mu0_Barrel_L1HP6_IP6_v3, process.HLT_Mu6_Barrel_L1HP7_IP6_v3, process.HLT_Mu7_Barrel_L1HP8_IP6_v4, process.HLT_Mu8_Barrel_L1HP9_IP6_v4, process.HLT_Mu9_Barrel_L1HP10_IP6_v6, process.HLT_Mu10_Barrel_L1HP11_IP6_v6, process.HLT_DoublePhoton33_CaloIdL_v17, process.HLT_DoublePhoton70_v17, process.HLT_DoublePhoton85_v25, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, process.HLT_Ele30_WPTight_Gsf_v11, process.HLT_Ele32_WPTight_Gsf_v25, process.HLT_Ele35_WPTight_Gsf_v19, process.HLT_Ele38_WPTight_Gsf_v19, process.HLT_Ele40_WPTight_Gsf_v19, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, process.HLT_IsoMu20_v27, process.HLT_IsoMu24_v25, process.HLT_IsoMu24_eta2p1_v27, process.HLT_IsoMu27_v28, process.HLT_UncorrectedJetE30_NoBPTX_v14, process.HLT_UncorrectedJetE30_NoBPTX3BX_v14, process.HLT_UncorrectedJetE60_NoBPTX3BX_v14, process.HLT_UncorrectedJetE70_NoBPTX3BX_v14, process.HLT_L1SingleMuCosmics_v8, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, process.HLT_L2Mu10_NoVertex_NoBPTX_v15, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, process.HLT_L2Mu23NoVtx_2Cha_v10, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, process.HLT_DoubleL2Mu50_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, process.HLT_Mu30_TkMu0_Psi_v13, process.HLT_Mu30_TkMu0_Upsilon_v13, process.HLT_Mu25_TkMu0_Phi_v20, process.HLT_Mu15_v15, process.HLT_Mu20_v24, process.HLT_Mu27_v25, process.HLT_Mu50_v25, process.HLT_Mu55_v15, process.HLT_CascadeMu100_v13, process.HLT_HighPtTkMu100_v12, process.HLT_DiPFJetAve40_v26, process.HLT_DiPFJetAve60_v26, process.HLT_DiPFJetAve80_v26, process.HLT_DiPFJetAve140_v25, process.HLT_DiPFJetAve200_v25, process.HLT_DiPFJetAve260_v26, process.HLT_DiPFJetAve320_v26, process.HLT_DiPFJetAve400_v26, process.HLT_DiPFJetAve500_v26, process.HLT_DiPFJetAve60_HFJEC_v27, process.HLT_DiPFJetAve80_HFJEC_v29, process.HLT_DiPFJetAve100_HFJEC_v29, process.HLT_DiPFJetAve160_HFJEC_v28, process.HLT_DiPFJetAve220_HFJEC_v28, process.HLT_DiPFJetAve260_HFJEC_v11, process.HLT_DiPFJetAve300_HFJEC_v28, process.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, process.HLT_AK8PFJet40_v28, process.HLT_AK8PFJet60_v27, process.HLT_AK8PFJet80_v28, process.HLT_AK8PFJet140_v27, process.HLT_AK8PFJet200_v27, process.HLT_AK8PFJet260_v28, process.HLT_AK8PFJet320_v28, process.HLT_AK8PFJet400_v28, process.HLT_AK8PFJet450_v28, process.HLT_AK8PFJet500_v28, process.HLT_AK8PFJet550_v23, process.HLT_PFJet40_v33, process.HLT_PFJet60_v33, process.HLT_PFJet80_v33, process.HLT_PFJet110_v12, process.HLT_PFJet140_v31, process.HLT_PFJet200_v31, process.HLT_PFJet260_v32, process.HLT_PFJet320_v32, process.HLT_PFJet400_v32, process.HLT_PFJet450_v33, process.HLT_PFJet500_v33, process.HLT_PFJet550_v23, process.HLT_PFJetFwd40_v31, process.HLT_PFJetFwd60_v31, process.HLT_PFJetFwd80_v30, process.HLT_PFJetFwd140_v30, process.HLT_PFJetFwd200_v30, process.HLT_PFJetFwd260_v31, process.HLT_PFJetFwd320_v31, process.HLT_PFJetFwd400_v31, process.HLT_PFJetFwd450_v31, process.HLT_PFJetFwd500_v31, process.HLT_AK8PFJetFwd40_v27, process.HLT_AK8PFJetFwd60_v26, process.HLT_AK8PFJetFwd80_v26, process.HLT_AK8PFJetFwd140_v26, process.HLT_AK8PFJetFwd200_v26, process.HLT_AK8PFJetFwd260_v27, process.HLT_AK8PFJetFwd320_v27, process.HLT_AK8PFJetFwd400_v27, process.HLT_AK8PFJetFwd450_v27, process.HLT_AK8PFJetFwd500_v27, process.HLT_PFHT180_v29, process.HLT_PFHT250_v29, process.HLT_PFHT370_v29, process.HLT_PFHT430_v29, process.HLT_PFHT510_v29, process.HLT_PFHT590_v29, process.HLT_PFHT680_v29, process.HLT_PFHT780_v29, process.HLT_PFHT890_v29, process.HLT_PFHT1050_v30, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, process.HLT_PFMET120_PFMHT120_IDTight_v32, process.HLT_PFMET130_PFMHT130_IDTight_v32, process.HLT_PFMET140_PFMHT140_IDTight_v32, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, process.HLT_L1ETMHadSeeds_v10, process.HLT_CaloMHT90_v14, process.HLT_CaloMET90_NotCleaned_v14, process.HLT_CaloMET350_NotCleaned_v14, process.HLT_PFMET200_NotCleaned_v21, process.HLT_PFMET250_NotCleaned_v21, process.HLT_PFMET300_NotCleaned_v21, process.HLT_PFMET200_BeamHaloCleaned_v21, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, process.HLT_MET105_IsoTrk50_v19, process.HLT_MET120_IsoTrk50_v19, process.HLT_Mu12eta2p3_v13, process.HLT_Mu12eta2p3_PFJet40_v13, process.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Photon300_NoHE_v23, process.HLT_Mu8_TrkIsoVVL_v24, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, process.HLT_Mu17_TrkIsoVVL_v25, process.HLT_Mu19_TrkIsoVVL_v16, process.HLT_BTagMu_AK4DiJet20_Mu5_v25, process.HLT_BTagMu_AK4DiJet40_Mu5_v25, process.HLT_BTagMu_AK4DiJet70_Mu5_v25, process.HLT_BTagMu_AK4DiJet110_Mu5_v25, process.HLT_BTagMu_AK4DiJet170_Mu5_v24, process.HLT_BTagMu_AK4Jet300_Mu5_v24, process.HLT_BTagMu_AK8DiJet170_Mu5_v21, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, process.HLT_BTagMu_AK8Jet300_Mu5_v24, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, process.HLT_Photon33_v15, process.HLT_Photon50_v23, process.HLT_Photon75_v23, process.HLT_Photon90_v23, process.HLT_Photon120_v23, process.HLT_Photon150_v17, process.HLT_Photon175_v25, process.HLT_Photon200_v24, process.HLT_Photon45EB_v3, process.HLT_Photon40EB_v3, process.HLT_Photon50EB_v4, process.HLT_Photon30EB_TightID_TightIso_v12, process.HLT_Photon40EB_TightID_TightIso_v3, process.HLT_Photon45EB_TightID_TightIso_v3, process.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_v8, process.HLT_Photon55EB_TightID_TightIso_v4, process.HLT_Photon75EB_TightID_TightIso_v8, process.HLT_Photon90EB_TightID_TightIso_v8, process.HLT_Photon110EB_TightID_TightIso_v12, process.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon100EBHE10_v12, process.HLT_Photon50_R9Id90_HE10_IsoM_v24, process.HLT_Photon75_R9Id90_HE10_IsoM_v24, process.HLT_Photon90_R9Id90_HE10_IsoM_v24, process.HLT_Photon120_R9Id90_HE10_IsoM_v24, process.HLT_Photon165_R9Id90_HE10_IsoM_v25, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, process.HLT_DiphotonMVA14p25_Mass90_v3, process.HLT_DiphotonMVA14p25_Tight_Mass90_v3, process.HLT_Photon35_TwoProngs35_v13, process.HLT_IsoMu24_TwoProngs35_v13, process.HLT_Dimuon0_Jpsi_L1_NoOS_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, process.HLT_Dimuon0_Jpsi_v20, process.HLT_Dimuon0_Jpsi_NoVertexing_v20, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi3p5_Muon2_v17, process.HLT_Dimuon0_Upsilon_L1_4p5_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, process.HLT_Dimuon0_Upsilon_NoVertexing_v19, process.HLT_Dimuon0_LowMass_L1_0er1p5_v20, process.HLT_Dimuon0_LowMass_v20, process.HLT_Dimuon0_LowMass_L1_4_v20, process.HLT_Dimuon0_LowMass_L1_TM530_v18, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, process.HLT_TripleMu_10_5_5_DZ_v22, process.HLT_TripleMu_12_10_5_v22, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, process.HLT_DoubleMu4_3_LowMass_SS_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v19, process.HLT_DoubleMu4_Jpsi_NoVertexing_v19, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, process.HLT_DoubleMu4_JpsiTrk_Bc_v12, process.HLT_DoubleMu43NoFiltersNoVtx_v14, process.HLT_DoubleMu48NoFiltersNoVtx_v14, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, process.HLT_Ele28_HighEta_SC20_Mass55_v23, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, process.HLT_Ele15_IsoVVVL_PFHT450_v28, process.HLT_Ele50_IsoVVVL_PFHT450_v28, process.HLT_Ele15_IsoVVVL_PFHT600_v32, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, process.HLT_Mu15_IsoVVVL_PFHT450_v27, process.HLT_Mu50_IsoVVVL_PFHT450_v27, process.HLT_Mu15_IsoVVVL_PFHT600_v31, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, process.HLT_Dimuon10_Upsilon_y1p4_v13, process.HLT_Dimuon12_Upsilon_y1p4_v14, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, process.HLT_Dimuon25_Jpsi_v26, process.HLT_Dimuon14_PsiPrime_v25, process.HLT_Dimuon14_PsiPrime_noCorrL1_v17, process.HLT_Dimuon18_PsiPrime_v26, process.HLT_Dimuon18_PsiPrime_noCorrL1_v18, process.HLT_Dimuon24_Upsilon_noCorrL1_v18, process.HLT_Dimuon24_Phi_noCorrL1_v18, process.HLT_Dimuon25_Jpsi_noCorrL1_v18, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, process.HLT_DoubleIsoMu20_eta2p1_v19, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, process.HLT_Mu8_v24, process.HLT_Mu17_v25, process.HLT_Mu19_v16, process.HLT_Mu17_Photon30_IsoCaloId_v18, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, process.HLT_PFHT400_SixPFJet32_v21, process.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, process.HLT_PFHT450_SixPFJet36_v20, process.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, process.HLT_PFHT350_v31, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, process.HLT_ECALHT800_v20, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, process.HLT_Photon20_HoverELoose_v20, process.HLT_Photon30_HoverELoose_v20, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, process.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, process.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, process.HLT_Mu18_Mu9_SameSign_v16, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, process.HLT_QuadPFJet103_88_75_15_v17, process.HLT_QuadPFJet105_88_76_15_v17, process.HLT_QuadPFJet111_90_80_15_v17, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, process.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, process.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, process.HLT_PFHT250_QuadPFJet25_v6, process.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, process.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, process.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, process.HLT_QuadPFJet100_88_70_30_v10, process.HLT_QuadPFJet105_88_75_30_v9, process.HLT_QuadPFJet111_90_80_30_v9, process.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, process.HLT_AK8PFJet220_SoftDropMass40_v13, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, process.HLT_AK8PFJet230_SoftDropMass40_v13, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_Nch45_v6, process.HLT_AK8PFJet275_Nch40_v6, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PFHT250_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, process.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, process.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, process.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, process.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu10NoVtx_2Cha_v9, process.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_L3Mu10NoVtx_v10, process.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, process.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, process.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, process.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, process.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, process.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, process.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, process.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, process.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, process.HLT_L1Mu6HT240_v9, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, process.HLT_HT350_v7, process.HLT_HT425_v19, process.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT550_DisplacedDijet60_Inclusive_v23, process.HLT_HT650_DisplacedDijet60_Inclusive_v23, process.HLT_CaloMET60_DTCluster50_v11, process.HLT_CaloMET60_DTClusterNoMB1S50_v11, process.HLT_L1MET_DTCluster50_v11, process.HLT_L1MET_DTClusterNoMB1S50_v11, process.HLT_CscCluster_Loose_v10, process.HLT_CscCluster_Medium_v10, process.HLT_CscCluster_Tight_v10, process.HLT_CscCluster50_Photon20Unseeded_v4, process.HLT_CscCluster50_Photon30Unseeded_v4, process.HLT_CscCluster100_Ele5_v4, process.HLT_CscCluster100_Mu5_v6, process.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, process.HLT_DoubleCscCluster75_v7, process.HLT_IsoTrk200_L1SingleMuShower_v4, process.HLT_IsoTrk400_L1SingleMuShower_v4, process.HLT_DoubleCscCluster100_v7, process.HLT_L1CSCShower_DTCluster50_v10, process.HLT_L1CSCShower_DTCluster75_v10, process.HLT_PFMET105_IsoTrk50_v13, process.HLT_L1SingleLLPJet_v7, process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, process.HLT_DiPhoton10Time1ns_v10, process.HLT_DiPhoton10Time1p2ns_v10, process.HLT_DiPhoton10Time1p4ns_v10, process.HLT_DiPhoton10Time1p6ns_v10, process.HLT_DiPhoton10Time1p8ns_v10, process.HLT_DiPhoton10Time2ns_v10, process.HLT_DiPhoton10_CaloIdL_v10, process.HLT_DoubleEle6p5_eta1p22_mMax6_v10, process.HLT_DoubleEle8_eta1p22_mMax6_v10, process.HLT_DoubleEle10_eta1p22_mMax6_v10, process.HLT_SingleEle8_v9, process.HLT_SingleEle8_SingleEGL1_v9, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Mu50_L1SingleMuShower_v11, process.HLT_IsoMu24_OneProng32_v9, process.HLT_Photon32_OneProng32_M50To105_v10, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, process.HLT_VBF_DiPFJet125_45_Mjj1050_v8, process.HLT_VBF_DiPFJet125_45_Mjj1200_v6, process.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, process.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, process.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, process.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_PFJet200_TimeLtNeg2p5ns_v10, process.HLT_PFJet200_TimeGt2p5ns_v10, process.HLT_Photon50_TimeLtNeg2p5ns_v7, process.HLT_Photon50_TimeGt2p5ns_v7, process.HLT_PPSMaxTracksPerArm1_v9, process.HLT_PPSMaxTracksPerRP4_v9, process.HLT_PPSRandom_v1, process.MC_ReducedIterativeTracking_v22, process.MC_AK4CaloJets_v19, process.MC_AK4CaloJetsFromPV_v18, process.MC_CaloHT_v18, process.MC_AK8CaloHT_v18, process.MC_CaloMHT_v18, process.MC_AK4PFJets_v29, process.MC_PFHT_v28, process.MC_AK8PFJets_v29, process.MC_AK8PFHT_v28, process.MC_CaloMET_v18, process.MC_CaloMET_JetIdCleaned_v19, process.MC_PFMET_v29, process.MC_PFMHT_v28, process.MC_AK4PFJetPNet_v5, process.MC_AK8PFJetPNet_v5, process.MC_Egamma_Open_v8, process.MC_Egamma_Open_Unseeded_v8, process.MC_Ele5_WPTight_Gsf_v18, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, process.MC_DoubleEle5_CaloIdL_MW_v26, process.MC_IsoMu_v27, process.MC_DoubleMu_TrkIsoVVL_DZ_v23, process.MC_DoubleMuNoFiltersNoVtx_v17, process.MC_PFScouting_v6, process.HLT_L1AXOVTight_v4, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.Dataset_AlCaLowPtJet, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaP0, process.Dataset_AlCaPPSExpress, process.Dataset_AlCaPPSPrompt, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DQMPPSRandom, process.Dataset_DisplacedJet, process.Dataset_EGamma0, process.Dataset_EGamma1, process.Dataset_EcalLaser, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressPhysics, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_JetMET0, process.Dataset_JetMET1, process.Dataset_L1Accept, process.Dataset_MonteCarlo, process.Dataset_Muon0, process.Dataset_Muon1, process.Dataset_MuonEG, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_ParkingDoubleMuonLowMass0, process.Dataset_ParkingDoubleMuonLowMass1, process.Dataset_ParkingDoubleMuonLowMass2, process.Dataset_ParkingDoubleMuonLowMass3, process.Dataset_ParkingDoubleMuonLowMass4, process.Dataset_ParkingDoubleMuonLowMass5, process.Dataset_ParkingDoubleMuonLowMass6, process.Dataset_ParkingDoubleMuonLowMass7, process.Dataset_ParkingHH, process.Dataset_ParkingLLP, process.Dataset_ParkingSingleMuon0, process.Dataset_ParkingVBF0, process.Dataset_ParkingVBF1, process.Dataset_ParkingVBF2, process.Dataset_ParkingVBF3, process.Dataset_ParkingVBF4, process.Dataset_ParkingVBF5, process.Dataset_ParkingVBF6, process.Dataset_ParkingVBF7, process.Dataset_RPCMonitor, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.ALCALowPtJetOutput, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCAP0Output, process.ALCAPHISYMOutput, process.ALCAPPSExpressOutput, process.ALCAPPSPromptOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.DQMPPSRandomOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.HLTMonitorOutput, process.PhysicsHLTPhysics2Output, process.ParkingDoubleMuonLowMass0Output, process.ParkingDoubleMuonLowMass1Output, process.ParkingDoubleMuonLowMass2Output, process.ParkingDoubleMuonLowMass3Output, process.ParkingHHOutput, process.ParkingLLPOutput, process.ParkingSingleMuon0Output, process.ParkingSingleMuon1Output, process.ParkingSingleMuon2Output, process.ParkingSingleMuon3Output, process.ParkingSingleMuon4Output, process.ParkingSingleMuon5Output, process.ParkingSingleMuon6Output, process.ParkingSingleMuon7Output, process.ParkingSingleMuon8Output, process.ParkingSingleMuon9Output, process.ParkingSingleMuon10Output, process.ParkingSingleMuon11Output, process.ParkingVBF0Output, process.ParkingVBF1Output, process.ParkingVBF2Output, process.ParkingVBF3Output, process.PhysicsCommissioningOutput, process.PhysicsDispJetBTagMuEGTauOutput, process.PhysicsEGamma0Output, process.PhysicsEGamma1Output, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics3Output, process.PhysicsJetMET0Output, process.PhysicsJetMET1Output, process.PhysicsMuon0Output, process.PhysicsMuon1Output, process.PhysicsScoutingPFMonitorOutput, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.NanoDSTOutput, process.RPCMONOutput, process.ScoutingPFOutput, process.Dataset_ParkingSingleMuon1, process.Dataset_ParkingSingleMuon2, process.Dataset_ParkingSingleMuon3, process.Dataset_ParkingSingleMuon4, process.Dataset_ParkingSingleMuon5, process.Dataset_ParkingSingleMuon6, process.Dataset_ParkingSingleMuon7, process.Dataset_ParkingSingleMuon8, process.Dataset_ParkingSingleMuon9, process.Dataset_ParkingSingleMuon10, process.Dataset_ParkingSingleMuon11, )) +process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_EcalEtaEBonly_v25, process.AlCa_EcalEtaEEonly_v25, process.AlCa_EcalPi0EBonly_v25, process.AlCa_EcalPi0EEonly_v25, process.AlCa_RPCMuonNormalisation_v23, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.AlCa_PFJet40_v32, process.AlCa_PFJet40_CPUOnly_v11, process.AlCa_AK8PFJet40_v27, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DST_ZeroBias_v11, process.DST_Physics_v16, process.DST_PFScouting_DoubleMuon_v6, process.DST_PFScouting_DoubleEG_v6, process.DST_PFScouting_JetHT_v6, process.DST_PFScouting_AXOVLoose_v4, process.DST_PFScouting_AXOLoose_v4, process.DST_PFScouting_AXONominal_v6, process.DST_PFScouting_AXOTight_v6, process.DST_PFScouting_AXOVTight_v4, process.DST_PFScouting_CICADAVLoose_v2, process.DST_PFScouting_CICADALoose_v2, process.DST_PFScouting_CICADAMedium_v2, process.DST_PFScouting_CICADATight_v2, process.DST_PFScouting_CICADAVTight_v2, process.DST_PFScouting_SingleMuon_v6, process.DST_PFScouting_SinglePhotonEB_v3, process.DST_PFScouting_ZeroBias_v4, process.HLT_EphemeralPhysics_v9, process.HLT_EphemeralZeroBias_v9, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Alignment_v8, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_IsolatedBunches_v12, process.HLT_ZeroBias_FirstBXAfterTrain_v10, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_ZeroBias_FirstCollisionInTrain_v11, process.HLT_ZeroBias_LastCollisionInTrain_v10, process.HLT_HT300_Beamspot_v23, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_PFJet40_GPUvsCPU_v7, process.HLT_AK8PFJet380_SoftDropMass30_v6, process.HLT_AK8PFJet400_SoftDropMass30_v6, process.HLT_AK8PFJet425_SoftDropMass30_v6, process.HLT_AK8PFJet450_SoftDropMass30_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass40_v6, process.HLT_AK8DiPFJet250_250_SoftDropMass50_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass30_v6, process.HLT_AK8DiPFJet260_260_SoftDropMass40_v6, process.HLT_AK8DiPFJet270_270_SoftDropMass30_v6, process.HLT_AK8DiPFJet280_280_SoftDropMass30_v12, process.HLT_AK8DiPFJet290_290_SoftDropMass30_v6, process.HLT_CaloJet500_NoJetID_v22, process.HLT_CaloJet550_NoJetID_v17, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v16, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v16, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v17, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v14, process.HLT_DoubleEle25_CaloIdL_MW_v15, process.HLT_DoubleEle27_CaloIdL_MW_v15, process.HLT_DoubleEle33_CaloIdL_MW_v28, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v17, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v32, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v32, process.HLT_Mu27_Ele37_CaloIdL_MW_v17, process.HLT_Mu37_Ele27_CaloIdL_MW_v17, process.HLT_Mu37_TkMu27_v17, process.HLT_DoubleMu4_3_Bs_v27, process.HLT_DoubleMu4_3_Jpsi_v27, process.HLT_DoubleMu4_3_LowMass_v13, process.HLT_DoubleMu4_LowMass_Displaced_v13, process.HLT_Mu0_L1DoubleMu_v13, process.HLT_Mu4_L1DoubleMu_v13, process.HLT_DoubleMu2_Jpsi_LowPt_v6, process.HLT_DoubleMu4_3_Photon4_BsToMMG_v12, process.HLT_DoubleMu4_3_Displaced_Photon4_BsToMMG_v12, process.HLT_DoubleMu3_Trk_Tau3mu_v24, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v16, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v20, process.HLT_DoubleMu4_MuMuTrk_Displaced_v27, process.HLT_Mu3_PFJet40_v28, process.HLT_Mu7p5_L2Mu2_Jpsi_v22, process.HLT_Mu7p5_L2Mu2_Upsilon_v22, process.HLT_Mu3_L1SingleMu5orSingleMu7_v13, process.HLT_Mu0_Barrel_v6, process.HLT_Mu0_Barrel_L1HP6_v3, process.HLT_Mu0_Barrel_L1HP7_v3, process.HLT_Mu0_Barrel_L1HP8_v4, process.HLT_Mu0_Barrel_L1HP9_v4, process.HLT_Mu0_Barrel_L1HP10_v6, process.HLT_Mu0_Barrel_L1HP11_v6, process.HLT_Mu0_Barrel_L1HP6_IP6_v3, process.HLT_Mu6_Barrel_L1HP7_IP6_v3, process.HLT_Mu7_Barrel_L1HP8_IP6_v4, process.HLT_Mu8_Barrel_L1HP9_IP6_v4, process.HLT_Mu9_Barrel_L1HP10_IP6_v6, process.HLT_Mu10_Barrel_L1HP11_IP6_v6, process.HLT_DoublePhoton33_CaloIdL_v17, process.HLT_DoublePhoton70_v17, process.HLT_DoublePhoton85_v25, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v14, process.HLT_Ele30_WPTight_Gsf_v11, process.HLT_Ele32_WPTight_Gsf_v25, process.HLT_Ele35_WPTight_Gsf_v19, process.HLT_Ele38_WPTight_Gsf_v19, process.HLT_Ele40_WPTight_Gsf_v19, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v19, process.HLT_IsoMu20_v27, process.HLT_IsoMu24_v25, process.HLT_IsoMu24_HLTTracking_v1, process.HLT_IsoMu24_eta2p1_v27, process.HLT_IsoMu27_v28, process.HLT_UncorrectedJetE30_NoBPTX_v14, process.HLT_UncorrectedJetE30_NoBPTX3BX_v14, process.HLT_UncorrectedJetE60_NoBPTX3BX_v14, process.HLT_UncorrectedJetE70_NoBPTX3BX_v14, process.HLT_L1SingleMuCosmics_v8, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, process.HLT_L2Mu10_NoVertex_NoBPTX_v15, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, process.HLT_L2Mu23NoVtx_2Cha_v10, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v10, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v11, process.HLT_DoubleL2Mu50_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v11, process.HLT_DoubleL2Mu23NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_v11, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v11, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v26, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v27, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_HLTTracking_v1, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_PFJet30_v6, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v15, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v17, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_HLTTracking_v1, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_CaloJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8PFJet30_v5, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_AK8CaloJet30_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v15, process.HLT_Mu30_TkMu0_Psi_v13, process.HLT_Mu30_TkMu0_Upsilon_v13, process.HLT_Mu25_TkMu0_Phi_v20, process.HLT_Mu15_v15, process.HLT_Mu20_v24, process.HLT_Mu27_v25, process.HLT_Mu50_v25, process.HLT_Mu55_v15, process.HLT_CascadeMu100_v13, process.HLT_HighPtTkMu100_v12, process.HLT_DiPFJetAve40_v26, process.HLT_DiPFJetAve60_v26, process.HLT_DiPFJetAve80_v26, process.HLT_DiPFJetAve140_v25, process.HLT_DiPFJetAve200_v25, process.HLT_DiPFJetAve260_v26, process.HLT_DiPFJetAve320_v26, process.HLT_DiPFJetAve400_v26, process.HLT_DiPFJetAve500_v26, process.HLT_DiPFJetAve60_HFJEC_v27, process.HLT_DiPFJetAve80_HFJEC_v29, process.HLT_DiPFJetAve100_HFJEC_v29, process.HLT_DiPFJetAve160_HFJEC_v28, process.HLT_DiPFJetAve220_HFJEC_v28, process.HLT_DiPFJetAve260_HFJEC_v11, process.HLT_DiPFJetAve300_HFJEC_v28, process.HLT_DiPFJetAve180_PPSMatch_Xi0p3_QuadJet_Max2ProtPerRP_v6, process.HLT_AK8PFJet40_v28, process.HLT_AK8PFJet60_v27, process.HLT_AK8PFJet80_v28, process.HLT_AK8PFJet140_v27, process.HLT_AK8PFJet200_v27, process.HLT_AK8PFJet260_v28, process.HLT_AK8PFJet320_v28, process.HLT_AK8PFJet400_v28, process.HLT_AK8PFJet450_v28, process.HLT_AK8PFJet500_v28, process.HLT_AK8PFJet550_v23, process.HLT_PFJet40_v33, process.HLT_PFJet60_v33, process.HLT_PFJet80_v33, process.HLT_PFJet110_v12, process.HLT_PFJet140_v31, process.HLT_PFJet200_v31, process.HLT_PFJet260_v32, process.HLT_PFJet320_v32, process.HLT_PFJet400_v32, process.HLT_PFJet450_v33, process.HLT_PFJet500_v33, process.HLT_PFJet550_v23, process.HLT_PFJetFwd40_v31, process.HLT_PFJetFwd60_v31, process.HLT_PFJetFwd80_v30, process.HLT_PFJetFwd140_v30, process.HLT_PFJetFwd200_v30, process.HLT_PFJetFwd260_v31, process.HLT_PFJetFwd320_v31, process.HLT_PFJetFwd400_v31, process.HLT_PFJetFwd450_v31, process.HLT_PFJetFwd500_v31, process.HLT_AK8PFJetFwd40_v27, process.HLT_AK8PFJetFwd60_v26, process.HLT_AK8PFJetFwd80_v26, process.HLT_AK8PFJetFwd140_v26, process.HLT_AK8PFJetFwd200_v26, process.HLT_AK8PFJetFwd260_v27, process.HLT_AK8PFJetFwd320_v27, process.HLT_AK8PFJetFwd400_v27, process.HLT_AK8PFJetFwd450_v27, process.HLT_AK8PFJetFwd500_v27, process.HLT_PFHT180_v29, process.HLT_PFHT250_v29, process.HLT_PFHT370_v29, process.HLT_PFHT430_v29, process.HLT_PFHT510_v29, process.HLT_PFHT590_v29, process.HLT_PFHT680_v29, process.HLT_PFHT780_v29, process.HLT_PFHT890_v29, process.HLT_PFHT1050_v30, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v24, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v24, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v24, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v24, process.HLT_PFMET120_PFMHT120_IDTight_v32, process.HLT_PFMET130_PFMHT130_IDTight_v32, process.HLT_PFMET140_PFMHT140_IDTight_v32, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v21, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v21, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v23, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v32, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v31, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v31, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_FilterHF_v12, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_FilterHF_v12, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_FilterHF_v12, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_FilterHF_v12, process.HLT_L1ETMHadSeeds_v10, process.HLT_CaloMHT90_v14, process.HLT_CaloMET90_NotCleaned_v14, process.HLT_CaloMET350_NotCleaned_v14, process.HLT_PFMET200_NotCleaned_v21, process.HLT_PFMET250_NotCleaned_v21, process.HLT_PFMET300_NotCleaned_v21, process.HLT_PFMET200_BeamHaloCleaned_v21, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v21, process.HLT_MET105_IsoTrk50_v19, process.HLT_MET120_IsoTrk50_v19, process.HLT_Mu12eta2p3_v13, process.HLT_Mu12eta2p3_PFJet40_v13, process.HLT_Mu12_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets40_PNetBTag_0p11_v6, process.HLT_DoublePFJets100_PNetBTag_0p11_v6, process.HLT_DoublePFJets200_PNetBTag_0p11_v6, process.HLT_DoublePFJets350_PNetBTag_0p11_v6, process.HLT_DoublePFJets116MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_DoublePFJets128MaxDeta1p6_PNet2BTag_0p11_v6, process.HLT_Photon300_NoHE_v23, process.HLT_Mu8_TrkIsoVVL_v24, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v30, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v30, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v31, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v31, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v23, process.HLT_Mu17_TrkIsoVVL_v25, process.HLT_Mu19_TrkIsoVVL_v16, process.HLT_BTagMu_AK4DiJet20_Mu5_v25, process.HLT_BTagMu_AK4DiJet40_Mu5_v25, process.HLT_BTagMu_AK4DiJet70_Mu5_v25, process.HLT_BTagMu_AK4DiJet110_Mu5_v25, process.HLT_BTagMu_AK4DiJet170_Mu5_v24, process.HLT_BTagMu_AK4Jet300_Mu5_v24, process.HLT_BTagMu_AK8DiJet170_Mu5_v21, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v14, process.HLT_BTagMu_AK8Jet300_Mu5_v24, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v29, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v29, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v27, process.HLT_Mu12_IsoVVL_PFHT150_PNetBTag0p53_v5, process.HLT_Photon33_v15, process.HLT_Photon50_v23, process.HLT_Photon75_v23, process.HLT_Photon90_v23, process.HLT_Photon120_v23, process.HLT_Photon150_v17, process.HLT_Photon175_v25, process.HLT_Photon200_v24, process.HLT_Photon45EB_v3, process.HLT_Photon40EB_v3, process.HLT_Photon50EB_v4, process.HLT_Photon30EB_TightID_TightIso_v12, process.HLT_Photon40EB_TightID_TightIso_v3, process.HLT_Photon45EB_TightID_TightIso_v3, process.HLT_Photon50EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon50EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon50EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon50EB_TightID_TightIso_v8, process.HLT_Photon55EB_TightID_TightIso_v4, process.HLT_Photon75EB_TightID_TightIso_v8, process.HLT_Photon90EB_TightID_TightIso_v8, process.HLT_Photon110EB_TightID_TightIso_v12, process.HLT_Photon110EB_TightID_TightIso_PFJet30_v6, process.HLT_Photon110EB_TightID_TightIso_CaloJet30_v3, process.HLT_Photon110EB_TightID_TightIso_AK8PFJet30_v5, process.HLT_Photon110EB_TightID_TightIso_AK8CaloJet30_v3, process.HLT_Photon100EBHE10_v12, process.HLT_Photon50_R9Id90_HE10_IsoM_v24, process.HLT_Photon75_R9Id90_HE10_IsoM_v24, process.HLT_Photon90_R9Id90_HE10_IsoM_v24, process.HLT_Photon120_R9Id90_HE10_IsoM_v24, process.HLT_Photon165_R9Id90_HE10_IsoM_v25, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v23, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v23, process.HLT_DiphotonMVA14p25_Mass90_v3, process.HLT_DiphotonMVA14p25_Tight_Mass90_v3, process.HLT_Photon35_TwoProngs35_v13, process.HLT_IsoMu24_TwoProngs35_v13, process.HLT_Dimuon0_Jpsi_L1_NoOS_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v19, process.HLT_Dimuon0_Jpsi_v20, process.HLT_Dimuon0_Jpsi_NoVertexing_v20, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v19, process.HLT_Dimuon0_Jpsi3p5_Muon2_v17, process.HLT_Dimuon0_Upsilon_L1_4p5_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v21, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v19, process.HLT_Dimuon0_Upsilon_NoVertexing_v19, process.HLT_Dimuon0_LowMass_L1_0er1p5_v20, process.HLT_Dimuon0_LowMass_v20, process.HLT_Dimuon0_LowMass_L1_4_v20, process.HLT_Dimuon0_LowMass_L1_TM530_v18, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v18, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v20, process.HLT_TripleMu_10_5_5_DZ_v22, process.HLT_TripleMu_12_10_5_v22, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v16, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v16, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v22, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v22, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v18, process.HLT_DoubleMu4_3_LowMass_SS_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v19, process.HLT_DoubleMu4_Jpsi_NoVertexing_v19, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v19, process.HLT_DoubleMu4_JpsiTrk_Bc_v12, process.HLT_DoubleMu43NoFiltersNoVtx_v14, process.HLT_DoubleMu48NoFiltersNoVtx_v14, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v15, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v15, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v11, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v11, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v25, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v25, process.HLT_Ele28_HighEta_SC20_Mass55_v23, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v28, process.HLT_Ele15_IsoVVVL_PFHT450_v28, process.HLT_Ele50_IsoVVVL_PFHT450_v28, process.HLT_Ele15_IsoVVVL_PFHT600_v32, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v27, process.HLT_Mu15_IsoVVVL_PFHT450_v27, process.HLT_Mu50_IsoVVVL_PFHT450_v27, process.HLT_Mu15_IsoVVVL_PFHT600_v31, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v14, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v14, process.HLT_Dimuon10_Upsilon_y1p4_v13, process.HLT_Dimuon12_Upsilon_y1p4_v14, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v19, process.HLT_Dimuon25_Jpsi_v26, process.HLT_Dimuon14_PsiPrime_v25, process.HLT_Dimuon14_PsiPrime_noCorrL1_v17, process.HLT_Dimuon18_PsiPrime_v26, process.HLT_Dimuon18_PsiPrime_noCorrL1_v18, process.HLT_Dimuon24_Upsilon_noCorrL1_v18, process.HLT_Dimuon24_Phi_noCorrL1_v18, process.HLT_Dimuon25_Jpsi_noCorrL1_v18, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v29, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v29, process.HLT_DoubleIsoMu20_eta2p1_v19, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v17, process.HLT_Mu8_v24, process.HLT_Mu17_v25, process.HLT_Mu19_v16, process.HLT_Mu17_Photon30_IsoCaloId_v18, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v28, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele14_eta2p5_IsoVVVL_Gsf_PFHT200_PNetBTag0p53_v5, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v30, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v28, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v30, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v30, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v25, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v18, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v21, process.HLT_PFHT400_SixPFJet32_v21, process.HLT_PFHT400_SixPFJet32_PNet2BTagMean0p50_v9, process.HLT_PFHT450_SixPFJet36_v20, process.HLT_PFHT450_SixPFJet36_PNetBTag0p35_v9, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_v6, process.HLT_PFHT350_v31, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT380_v10, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT400_v10, process.HLT_ECALHT800_v20, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v24, process.HLT_Photon20_HoverELoose_v20, process.HLT_Photon30_HoverELoose_v20, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v9, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v19, process.HLT_VBF_DoubleMediumDeepTauPFTauHPS20_eta2p1_v13, process.HLT_Photon60_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v9, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v17, process.HLT_Mu18_Mu9_SameSign_v16, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v18, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v22, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_v6, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_Mass2p0_noDCA_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v15, process.HLT_QuadPFJet103_88_75_15_v17, process.HLT_QuadPFJet105_88_76_15_v17, process.HLT_QuadPFJet111_90_80_15_v17, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_v11, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_Mass55_v11, process.HLT_DoubleMediumDeepTauPFTauHPS35_L2NN_eta2p1_v12, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Tight_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Medium_eta2p3_CrossL1_v6, process.HLT_Ele24_eta2p1_WPTight_Gsf_PNetTauhPFJet30_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v13, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v13, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v13, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_4p3_v5, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_PNet3BTag_2p0_v5, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_5p6_v6, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_PNet2BTag_4p3_v6, process.HLT_QuadPFJet103_88_75_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet103_88_75_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet105_88_76_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet105_88_76_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_QuadPFJet111_90_80_15_PNetBTag_0p4_VBF2_v6, process.HLT_QuadPFJet111_90_80_15_PNet2BTag_0p4_0p12_VBF1_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v13, process.HLT_PFHT250_QuadPFJet25_v6, process.HLT_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet25_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT250_QuadPFJet30_PNet2BTagMean0p55_v6, process.HLT_PFHT250_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_PNet1BTag0p20_PNet1Tauh0p50_v6, process.HLT_PFHT280_QuadPFJet30_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_PFHT280_QuadPFJet30_PNet2BTagMean0p60_v9, process.HLT_PFHT280_QuadPFJet35_PNet2BTagMean0p60_v9, process.HLT_PFHT340_QuadPFJet70_50_40_40_PNet2BTagMean0p70_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT280_QuadPFJet30_PNet2BTagMean0p55_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PNet2BTagMean0p50_v9, process.HLT_QuadPFJet100_88_70_30_v10, process.HLT_QuadPFJet105_88_75_30_v9, process.HLT_QuadPFJet111_90_80_30_v9, process.HLT_QuadPFJet100_88_70_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet105_88_75_30_PNet1CvsAll0p5_VBF3Tight_v10, process.HLT_QuadPFJet111_90_80_30_PNet1CvsAll0p6_VBF3Tight_v10, process.HLT_AK8PFJet220_SoftDropMass40_v13, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p53_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p55_v9, process.HLT_AK8PFJet220_SoftDropMass40_PNetBB0p06_DoubleAK4PFJet60_30_PNet2BTagMean0p60_v9, process.HLT_AK8PFJet230_SoftDropMass40_v13, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet230_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet250_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p06_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetBB0p10_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p03_v9, process.HLT_AK8PFJet275_SoftDropMass40_PNetTauTau0p05_v9, process.HLT_AK8PFJet275_Nch45_v6, process.HLT_AK8PFJet275_Nch40_v6, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_v12, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_IsoMu50_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet220_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_v12, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p06_v9, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_AK8PFJet230_SoftDropMass40_PNetBB0p10_v9, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_DoubleAK4PFJet60_30_PNet2BTagMean0p50_v10, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet2BTagMean0p55_v6, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFHT250_QuadPFJet25_PNet1BTag0p20_v6, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_v12, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet60_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_PFJet75_CrossL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS20_eta2p1_SingleL1_v12, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS45_L2NN_eta2p1_CrossL1_v12, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet60_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet26_L2NN_eta2p3_CrossL1_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Tight_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Medium_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet30_Loose_eta2p3_CrossL1_ETau_Monitoring_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Tight_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Medium_eta2p3_CrossL1_v6, process.HLT_IsoMu20_eta2p1_PNetTauhPFJet27_Loose_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet20_eta2p2_SingleL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet45_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PFHT250_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_v6, process.HLT_IsoMu24_eta2p1_PFHT250_QuadPFJet25_PNet1Tauh0p50_v6, process.HLT_IsoMu24_eta2p1_SinglePFJet25_PNet1Tauh0p50_v6, process.HLT_DoublePNetTauhPFJet30_Medium_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet30_Tight_L2NN_eta2p3_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet60_v6, process.HLT_DoublePNetTauhPFJet26_L2NN_eta2p3_PFJet75_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Loose_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Medium_L2NN_eta2p3_CrossL1_v6, process.HLT_IsoMu24_eta2p1_PNetTauhPFJet130_Tight_L2NN_eta2p3_CrossL1_v6, process.HLT_SinglePNetTauhPFJet130_Loose_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Medium_L2NN_eta2p3_v6, process.HLT_SinglePNetTauhPFJet130_Tight_L2NN_eta2p3_v6, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v12, process.HLT_DoubleL2Mu12NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu14NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v11, process.HLT_DoubleL3Mu18_10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL3Mu20_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu10NoVtx_2Cha_v9, process.HLT_L2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v11, process.HLT_L3Mu10NoVtx_v10, process.HLT_L3Mu10NoVtx_DxyMin0p01cm_v10, process.HLT_DoubleL2Mu_L3Mu16NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu_L3Mu18NoVtx_VetoL3Mu0DxyMax0p1cm_v10, process.HLT_DoubleL2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL2Mu12NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_v9, process.HLT_L2Mu10NoVtx_2Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v11, process.HLT_DoubleL3dTksMu16_10NoVtx_DxyMin0p01cm_v10, process.HLT_L2Mu50NoVtx_3Cha_CosmicSeed_VetoL3Mu0DxyMax1cm_v4, process.HLT_L2Mu50NoVtx_3Cha_VetoL3Mu0DxyMax1cm_v4, process.HLT_L3Mu30NoVtx_DxyMin0p01cm_v3, process.HLT_L3Mu50NoVtx_DxyMin0p01cm_v3, process.HLT_L3dTksMu10_NoVtx_DxyMin0p01cm_v10, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v11, process.HLT_DisplacedMu24_MediumChargedIsoDisplacedPFTauHPS24_v8, process.HLT_Photon34_R9Id90_CaloIdL_IsoL_DisplacedIdL_MediumChargedIsoDisplacedPFTauHPS34_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v13, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS36_Trk1_eta2p1_v8, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_noDxy_v8, process.HLT_IsoMu27_MediumChargedIsoDisplacedPFTauHPS24_eta2p1_SingleL1_v8, process.HLT_HT350_DelayedJet40_SingleDelay1p5To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p6To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay1p75To3p5nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p25nsInclusive_v7, process.HLT_HT350_DelayedJet40_SingleDelay3p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay1To1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p1To1p6nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p25To1p75nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsInclusive_v9, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT430_DelayedJet40_SingleDelay2p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay2p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_SingleDelay0p5nsTrackless_v9, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT430_DelayedJet40_SingleDelay1p25nsTrackless_v7, process.HLT_HT430_DelayedJet40_SingleDelay1p5nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsInclusive_v10, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT430_DelayedJet40_DoubleDelay1p25nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT430_DelayedJet40_DoubleDelay0p75nsTrackless_v7, process.HLT_HT430_DelayedJet40_DoubleDelay1nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p6To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75To4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3p5nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay3p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay4nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay2p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_SingleDelay2p75nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_SingleDelay3nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p75nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsInclusive_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p75nsInclusive_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay0p5nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1nsTrackless_v9, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p25nsTrackless_v7, process.HLT_L1Tau_DelayedJet40_DoubleDelay1p5nsTrackless_v7, process.HLT_L1Mu6HT240_v9, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v11, process.HLT_Mu6HT240_DisplacedDijet45_Inclusive0PtrkShortSig5_v11, process.HLT_Mu6HT240_DisplacedDijet50_Inclusive0PtrkShortSig5_v11, process.HLT_HT350_v7, process.HLT_HT425_v19, process.HLT_HT360_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT360_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT390_DisplacedDijet45_Inclusive1PtrkShortSig5_v7, process.HLT_HT390eta2p0_DisplacedDijet40_Inclusive1PtrkShortSig5_v7, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v23, process.HLT_HT550_DisplacedDijet60_Inclusive_v23, process.HLT_HT650_DisplacedDijet60_Inclusive_v23, process.HLT_CaloMET60_DTCluster50_v11, process.HLT_CaloMET60_DTClusterNoMB1S50_v11, process.HLT_L1MET_DTCluster50_v11, process.HLT_L1MET_DTClusterNoMB1S50_v11, process.HLT_CscCluster_Loose_v10, process.HLT_CscCluster_Medium_v10, process.HLT_CscCluster_Tight_v10, process.HLT_CscCluster50_Photon20Unseeded_v4, process.HLT_CscCluster50_Photon30Unseeded_v4, process.HLT_CscCluster100_Ele5_v4, process.HLT_CscCluster100_Mu5_v6, process.HLT_CscCluster100_PNetTauhPFJet10_Loose_v6, process.HLT_DoubleCscCluster75_v7, process.HLT_IsoTrk200_L1SingleMuShower_v4, process.HLT_IsoTrk400_L1SingleMuShower_v4, process.HLT_DoubleCscCluster100_v7, process.HLT_L1CSCShower_DTCluster50_v10, process.HLT_L1CSCShower_DTCluster75_v10, process.HLT_PFMET105_IsoTrk50_v13, process.HLT_L1SingleLLPJet_v7, process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v11, process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v11, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v11, process.HLT_HT240_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT280_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v8, process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v11, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v11, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p7_v6, process.HLT_HT200_L1SingleLLPJet_PFJet60_NeutralHadronFrac0p8_v6, process.HLT_DiPhoton10Time1ns_v10, process.HLT_DiPhoton10Time1p2ns_v10, process.HLT_DiPhoton10Time1p4ns_v10, process.HLT_DiPhoton10Time1p6ns_v10, process.HLT_DiPhoton10Time1p8ns_v10, process.HLT_DiPhoton10Time2ns_v10, process.HLT_DiPhoton10_CaloIdL_v10, process.HLT_DoubleEle6p5_eta1p22_mMax6_v10, process.HLT_DoubleEle8_eta1p22_mMax6_v10, process.HLT_DoubleEle10_eta1p22_mMax6_v10, process.HLT_SingleEle8_v9, process.HLT_SingleEle8_SingleEGL1_v9, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton20_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HE_AND_IsoTCaloIdT_v10, process.HLT_Diphoton22_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_14_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Diphoton24_16_eta1p5_R9IdL_AND_HET_AND_IsoTCaloIdT_v10, process.HLT_Mu50_L1SingleMuShower_v11, process.HLT_IsoMu24_OneProng32_v9, process.HLT_Photon32_OneProng32_M50To105_v10, process.HLT_DoubleMediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_v8, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS30_L2NN_eta2p1_OneProng_CrossL1_v8, process.HLT_VBF_DiPFJet125_45_Mjj1050_v8, process.HLT_VBF_DiPFJet125_45_Mjj1200_v6, process.HLT_VBF_DiPFJet75_45_Mjj800_DiPFJet60_v6, process.HLT_VBF_DiPFJet75_45_Mjj850_DiPFJet60_v6, process.HLT_VBF_DiPFJet80_45_Mjj650_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet80_45_Mjj750_PFMETNoMu85_v6, process.HLT_VBF_DiPFJet95_45_Mjj750_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet95_45_Mjj850_Mu3_TrkIsoVVL_v6, process.HLT_VBF_DiPFJet50_Mjj650_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj750_Photon22_v6, process.HLT_VBF_DiPFJet50_Mjj600_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet50_Mjj650_Ele22_eta2p1_WPTight_Gsf_v6, process.HLT_VBF_DiPFJet45_Mjj650_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DiPFJet45_Mjj750_MediumDeepTauPFTauHPS45_L2NN_eta2p1_v6, process.HLT_VBF_DoublePNetTauhPFJet20_eta2p2_v6, process.HLT_VBF_DiPFJet45_Mjj650_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_VBF_DiPFJet45_Mjj750_PNetTauhPFJet45_L2NN_eta2p3_v6, process.HLT_PFJet200_TimeLtNeg2p5ns_v10, process.HLT_PFJet200_TimeGt2p5ns_v10, process.HLT_Photon50_TimeLtNeg2p5ns_v7, process.HLT_Photon50_TimeGt2p5ns_v7, process.HLT_PPSMaxTracksPerArm1_v9, process.HLT_PPSMaxTracksPerRP4_v9, process.HLT_PPSRandom_v1, process.MC_ReducedIterativeTracking_v22, process.MC_AK4CaloJets_v19, process.MC_AK4CaloJetsFromPV_v18, process.MC_CaloHT_v18, process.MC_AK8CaloHT_v18, process.MC_CaloMHT_v18, process.MC_AK4PFJets_v29, process.MC_PFHT_v28, process.MC_AK8PFJets_v29, process.MC_AK8PFHT_v28, process.MC_CaloMET_v18, process.MC_CaloMET_JetIdCleaned_v19, process.MC_PFMET_v29, process.MC_PFMHT_v28, process.MC_AK4PFJetPNet_v5, process.MC_AK8PFJetPNet_v5, process.MC_Egamma_Open_v8, process.MC_Egamma_Open_Unseeded_v8, process.MC_Ele5_WPTight_Gsf_v18, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v25, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v23, process.MC_DoubleEle5_CaloIdL_MW_v26, process.MC_IsoMu_v27, process.MC_DoubleMu_TrkIsoVVL_DZ_v23, process.MC_DoubleMuNoFiltersNoVtx_v17, process.MC_PFScouting_v6, process.HLT_L1AXOVTight_v4, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.Dataset_AlCaLowPtJet, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaP0, process.Dataset_AlCaPPSExpress, process.Dataset_AlCaPPSPrompt, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DQMPPSRandom, process.Dataset_DisplacedJet, process.Dataset_EGamma0, process.Dataset_EGamma1, process.Dataset_EcalLaser, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressPhysics, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_JetMET0, process.Dataset_JetMET1, process.Dataset_L1Accept, process.Dataset_MonteCarlo, process.Dataset_Muon0, process.Dataset_Muon1, process.Dataset_MuonEG, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_ParkingDoubleMuonLowMass0, process.Dataset_ParkingDoubleMuonLowMass1, process.Dataset_ParkingDoubleMuonLowMass2, process.Dataset_ParkingDoubleMuonLowMass3, process.Dataset_ParkingDoubleMuonLowMass4, process.Dataset_ParkingDoubleMuonLowMass5, process.Dataset_ParkingDoubleMuonLowMass6, process.Dataset_ParkingDoubleMuonLowMass7, process.Dataset_ParkingHH, process.Dataset_ParkingLLP, process.Dataset_ParkingSingleMuon0, process.Dataset_ParkingVBF0, process.Dataset_ParkingVBF1, process.Dataset_ParkingVBF2, process.Dataset_ParkingVBF3, process.Dataset_ParkingVBF4, process.Dataset_ParkingVBF5, process.Dataset_ParkingVBF6, process.Dataset_ParkingVBF7, process.Dataset_RPCMonitor, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.ALCALowPtJetOutput, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCAP0Output, process.ALCAPHISYMOutput, process.ALCAPPSExpressOutput, process.ALCAPPSPromptOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.DQMPPSRandomOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.HLTMonitorOutput, process.PhysicsHLTPhysics2Output, process.ParkingDoubleMuonLowMass0Output, process.ParkingDoubleMuonLowMass1Output, process.ParkingDoubleMuonLowMass2Output, process.ParkingDoubleMuonLowMass3Output, process.ParkingHHOutput, process.ParkingLLPOutput, process.ParkingSingleMuon0Output, process.ParkingSingleMuon1Output, process.ParkingSingleMuon2Output, process.ParkingSingleMuon3Output, process.ParkingSingleMuon4Output, process.ParkingSingleMuon5Output, process.ParkingSingleMuon6Output, process.ParkingSingleMuon7Output, process.ParkingSingleMuon8Output, process.ParkingSingleMuon9Output, process.ParkingSingleMuon10Output, process.ParkingSingleMuon11Output, process.ParkingVBF0Output, process.ParkingVBF1Output, process.ParkingVBF2Output, process.ParkingVBF3Output, process.PhysicsCommissioningOutput, process.PhysicsDispJetBTagMuEGTauOutput, process.PhysicsEGamma0Output, process.PhysicsEGamma1Output, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics3Output, process.PhysicsJetMET0Output, process.PhysicsJetMET1Output, process.PhysicsMuon0Output, process.PhysicsMuon1Output, process.PhysicsScoutingPFMonitorOutput, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.NanoDSTOutput, process.RPCMONOutput, process.ScoutingPFOutput, process.Dataset_ParkingSingleMuon1, process.Dataset_ParkingSingleMuon2, process.Dataset_ParkingSingleMuon3, process.Dataset_ParkingSingleMuon4, process.Dataset_ParkingSingleMuon5, process.Dataset_ParkingSingleMuon6, process.Dataset_ParkingSingleMuon7, process.Dataset_ParkingSingleMuon8, process.Dataset_ParkingSingleMuon9, process.Dataset_ParkingSingleMuon10, process.Dataset_ParkingSingleMuon11, )) # source module (EDM inputs) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py index 8ab0d5e8ef626..f92abca057ec1 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/HIon --full --data --type HIon --unprescale --process HLTHIon --globaltag auto:run3_hlt_HIon --input file:RelVal_Raw_HIon_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/HIon --full --data --type HIon --unprescale --process HLTHIon --globaltag auto:run3_hlt_HIon --input file:RelVal_Raw_HIon_DATA.root -# /dev/CMSSW_14_1_0/HIon/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/HIon/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/HIon/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/HIon/V10") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -13854,6 +13854,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksPPOnAASoA" ) @@ -13927,6 +13928,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksPPOnAASoASerialSync" ) @@ -17122,6 +17124,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter0PixelHitDoubletsPreSplittingPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -17275,7 +17278,12 @@ forceYError = cms.double( 150.0 ), fractionalWidth = cms.double( 0.4 ), chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) + centralMIPCharge = cms.double( 26000.0 ), + expSizeXAtLorentzAngleIncidence = cms.double( 1.5 ), + expSizeXDeltaPerTanAlpha = cms.double( 0.0 ), + expSizeYAtNormalIncidence = cms.double( 1.3 ), + tanLorentzAngle = cms.double( 0.0 ), + tanLorentzAngleBarrelLayer1 = cms.double( 0.0 ) ) process.hltSiPixelClustersCacheAfterSplittingPPOnAA = cms.EDProducer( "SiPixelClusterShapeCacheProducer", src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), @@ -17375,6 +17383,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter0PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -17606,6 +17615,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter1PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -17937,6 +17947,7 @@ MaxNumberOfPixelClusters = cms.uint32( 150000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "strip < 1000000 && pixel < 150000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter2PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -18172,6 +18183,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAA" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -21023,7 +21035,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombinedPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsPPOnAA','hltElePixelSeedsTripletsPPOnAA' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoubletsPPOnAA','hltElePixelSeedsTripletsPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeedsPPOnAA = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombinedPPOnAA" ), @@ -23176,6 +23189,7 @@ MaxNumberOfPixelClusters = cms.uint32( 10000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( True ) ) process.hltPixelTracksHitDoubletsLowPtForUPCPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -27407,6 +27421,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersPPOnAA" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter0PixelHitDoubletsPreSplittingPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -27560,7 +27575,12 @@ forceYError = cms.double( 150.0 ), fractionalWidth = cms.double( 0.4 ), chargePerUnit = cms.double( 2000.0 ), - centralMIPCharge = cms.double( 26000.0 ) + centralMIPCharge = cms.double( 26000.0 ), + expSizeXAtLorentzAngleIncidence = cms.double( 1.5 ), + expSizeXDeltaPerTanAlpha = cms.double( 0.0 ), + expSizeYAtNormalIncidence = cms.double( 1.3 ), + tanLorentzAngle = cms.double( 0.0 ), + tanLorentzAngleBarrelLayer1 = cms.double( 0.0 ) ) process.hltSiPixelClustersCacheAfterSplittingPPOnAAForDmeson = cms.EDProducer( "SiPixelClusterShapeCacheProducer", src = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), @@ -27633,6 +27653,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter0PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -27864,6 +27885,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter1PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -28068,6 +28090,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter2PixelHitDoubletsPPOnAAForDmeson = cms.EDProducer( "HitPairEDProducer", @@ -28270,6 +28293,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter3PixelHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -28467,6 +28491,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter7MixedHitDoubletsAPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -28609,7 +28634,8 @@ ) ) process.hltFullIter7MixedSeedsPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPOnAA','hltFullIter7MixedSeedsBPPOnAA' ) + seedCollections = cms.VInputTag( 'hltFullIter7MixedSeedsAPPOnAA','hltFullIter7MixedSeedsBPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltFullIter7CkfTrackCandidatesPPOnAA = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -28810,6 +28836,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter8PixelLessHitDoubletsPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -29023,6 +29050,7 @@ MaxNumberOfPixelClusters = cms.uint32( 120000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClustersAfterSplittingPPOnAAForDmeson" ), cut = cms.string( "strip > 0 && pixel > 0 && strip < 500000 && pixel < 120000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + strip/2.)" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltFullIter9TobTecHitDoubletsTriplPPOnAA = cms.EDProducer( "HitPairEDProducer", @@ -29209,7 +29237,8 @@ ) ) process.hltFullIter9TobTecSeedsPPOnAA = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPOnAA','hltFullIter9TobTecSeedsPairPPOnAA' ) + seedCollections = cms.VInputTag( 'hltFullIter9TobTecSeedsTriplPPOnAA','hltFullIter9TobTecSeedsPairPPOnAA' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltFullIter9CkfTrackCandidatesPPOnAA = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py index d9bb137b681fd..ffb14f47b5411 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/PIon --full --data --type PIon --unprescale --process HLTPIon --globaltag auto:run3_hlt_PIon --input file:RelVal_Raw_PIon_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/PIon --full --data --type PIon --unprescale --process HLTPIon --globaltag auto:run3_hlt_PIon --input file:RelVal_Raw_PIon_DATA.root -# /dev/CMSSW_14_1_0/PIon/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/PIon/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/PIon/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/PIon/V10") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -4023,6 +4023,7 @@ 'keep *_hltL3NoFiltersNoVtxMuonCandidates_*_*', 'keep *_hltMergedTracks_*_*', 'keep *_hltOnlineBeamSpot_*_*', + 'keep *_hltParticleNetDiscriminatorsJetTags_*_*', 'keep *_hltPixelTracks_*_*', 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelClusters_*_*', diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py index edf6ba9311658..5d6877c849e56 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/PRef --full --data --type PRef --unprescale --process HLTPRef --globaltag auto:run3_hlt_PRef --input file:RelVal_Raw_PRef_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/PRef --full --data --type PRef --unprescale --process HLTPRef --globaltag auto:run3_hlt_PRef --input file:RelVal_Raw_PRef_DATA.root -# /dev/CMSSW_14_1_0/PRef/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/PRef/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/PRef/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/PRef/V10") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -5744,6 +5744,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -5818,6 +5819,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -8179,6 +8181,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -8980,6 +8983,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -12172,7 +12176,8 @@ SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) ) process.hltElePixelSeedsCombined = cms.EDProducer( "SeedCombiner", - seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ) + seedCollections = cms.VInputTag( 'hltElePixelSeedsDoublets','hltElePixelSeedsTriplets' ), + clusterRemovalInfos = cms.VInputTag( ) ) process.hltEgammaElectronPixelSeeds = cms.EDProducer( "ElectronNHitSeedProducer", initialSeeds = cms.InputTag( "hltElePixelSeedsCombined" ), @@ -17043,6 +17048,7 @@ 'keep *_hltL3NoFiltersNoVtxMuonCandidates_*_*', 'keep *_hltMergedTracks_*_*', 'keep *_hltOnlineBeamSpot_*_*', + 'keep *_hltParticleNetDiscriminatorsJetTags_*_*', 'keep *_hltPixelTracks_*_*', 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelClusters_*_*', @@ -17096,10 +17102,6 @@ ), SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_DQMGPUvsCPU' ) ), outputCommands = cms.untracked.vstring( 'drop *', - 'keep *Cluster*_hltSiPixelClustersSerialSync_*_*', - 'keep *Cluster*_hltSiPixelClusters_*_*', - 'keep *RecHit*_hltSiPixelRecHitsSerialSync_*_*', - 'keep *RecHit*_hltSiPixelRecHits_*_*', 'keep *_hltEcalDigisSerialSync_*_*', 'keep *_hltEcalDigis_*_*', 'keep *_hltEcalUncalibRecHitSerialSync_*_*', @@ -17108,10 +17110,6 @@ 'keep *_hltHbhereco_*_*', 'keep *_hltParticleFlowClusterHCALSerialSync_*_*', 'keep *_hltParticleFlowClusterHCAL_*_*', - 'keep *_hltPixelTracksSerialSync_*_*', - 'keep *_hltPixelTracks_*_*', - 'keep *_hltPixelVerticesSerialSync_*_*', - 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelDigiErrorsSerialSync_*_*', 'keep *_hltSiPixelDigiErrors_*_*' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Special.py b/HLTrigger/Configuration/test/OnLine_HLT_Special.py index 372912f71aaa1..66d537033f8c3 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Special.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Special.py @@ -1,6 +1,6 @@ -# hltGetConfiguration /dev/CMSSW_14_1_0/Special --full --data --type Special --unprescale --process HLTSpecial --globaltag auto:run3_hlt_Special --input file:RelVal_Raw_Special_DATA.root +# hltGetConfiguration /dev/CMSSW_14_2_0/Special --full --data --type Special --unprescale --process HLTSpecial --globaltag auto:run3_hlt_Special --input file:RelVal_Raw_Special_DATA.root -# /dev/CMSSW_14_1_0/Special/V50 (CMSSW_14_1_1) +# /dev/CMSSW_14_2_0/Special/V10 (CMSSW_14_2_0) import FWCore.ParameterSet.Config as cms @@ -9,7 +9,7 @@ process.load("Configuration.StandardSequences.Accelerators_cff") process.HLTConfigVersion = cms.PSet( - tableName = cms.string("/dev/CMSSW_14_1_0/Special/V50") + tableName = cms.string("/dev/CMSSW_14_2_0/Special/V10") ) process.HLTGroupedCkfTrajectoryBuilderP5 = cms.PSet( @@ -1503,6 +1503,22 @@ 'SpecialZeroBias17' ), PhysicsSpecialZeroBias9 = cms.vstring( 'SpecialZeroBias18', 'SpecialZeroBias19' ), + PhysicsVRRandom0 = cms.vstring( 'VRRandom0', + 'VRRandom1' ), + PhysicsVRRandom1 = cms.vstring( 'VRRandom2', + 'VRRandom3' ), + PhysicsVRRandom2 = cms.vstring( 'VRRandom4', + 'VRRandom5' ), + PhysicsVRRandom3 = cms.vstring( 'VRRandom6', + 'VRRandom7' ), + PhysicsVRRandom4 = cms.vstring( 'VRRandom8', + 'VRRandom9' ), + PhysicsVRRandom5 = cms.vstring( 'VRRandom10', + 'VRRandom11' ), + PhysicsVRRandom6 = cms.vstring( 'VRRandom12', + 'VRRandom13' ), + PhysicsVRRandom7 = cms.vstring( 'VRRandom14', + 'VRRandom15' ), RPCMON = cms.vstring( 'RPCMonitor' ) ) process.datasets = cms.PSet( @@ -1865,6 +1881,22 @@ 'HLT_HcalCalibration_v6' ), TestEnablesEcalHcalDQM = cms.vstring( 'HLT_EcalCalibration_v4', 'HLT_HcalCalibration_v6' ), + VRRandom0 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom1 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom10 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom11 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom12 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom13 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom14 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom15 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom2 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom3 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom4 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom5 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom6 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom7 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom8 = cms.vstring( 'HLT_Random_HighRate_v1' ), + VRRandom9 = cms.vstring( 'HLT_Random_HighRate_v1' ), ZeroBias = cms.vstring( 'HLT_Random_v3', 'HLT_ZeroBias_Alignment_v8', 'HLT_ZeroBias_FirstBXAfterTrain_v10', @@ -5271,6 +5303,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoA" ), @@ -5345,6 +5378,7 @@ eps = cms.double( 0.07 ), errmax = cms.double( 0.01 ), chi2max = cms.double( 9.0 ), + maxVertices = cms.int32( 256 ), PtMin = cms.double( 0.5 ), PtMax = cms.double( 75.0 ), pixelTrackSrc = cms.InputTag( "hltPixelTracksSoASerialSync" ) @@ -7722,6 +7756,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltIter3IterL3FromL1MuonPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -8523,6 +8558,7 @@ MaxNumberOfPixelClusters = cms.uint32( 40000 ), PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), cut = cms.string( "" ), + DontCountDetsAboveNClusters = cms.uint32( 0 ), silentClusterCheck = cms.untracked.bool( False ) ) process.hltDoubletRecoveryPFlowPixelHitDoublets = cms.EDProducer( "HitPairEDProducer", @@ -11025,6 +11061,22 @@ process.hltCombinatorialcosmicseedfinderP5 = cms.EDProducer( "CtfSpecialSeedGenerator", SeedMomentum = cms.double( 5.0 ), ErrorRescaling = cms.double( 50.0 ), + UseScintillatorsConstraint = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + SeedsFromPositiveY = cms.bool( True ), + SeedsFromNegativeY = cms.bool( False ), + CheckHitsAreOnDifferentLayers = cms.bool( False ), + SetMomentum = cms.bool( True ), + requireBOFF = cms.bool( True ), + maxSeeds = cms.int32( 10000 ), + doClusterCheck = cms.bool( True ), + MaxNumberOfStripClusters = cms.uint32( 300 ), + ClusterCollectionLabel = cms.InputTag( "hltFullSiStripRawToClustersFacility" ), + MaxNumberOfPixelClusters = cms.uint32( 1000 ), + PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), + cut = cms.string( "strip < 400000 && pixel < 40000 && (strip < 50000 + 10*pixel) && (pixel < 5000 + 0.1*strip)" ), + DontCountDetsAboveNClusters = cms.uint32( 20 ), + Charges = cms.vint32( -1 ), RegionFactoryPSet = cms.PSet( RegionPSet = cms.PSet( ptMin = cms.double( 0.9 ), @@ -11038,7 +11090,20 @@ ), ComponentName = cms.string( "GlobalRegionProducer" ) ), - Charges = cms.vint32( -1 ), + UpperScintillatorParameters = cms.PSet( + WidthInX = cms.double( 100.0 ), + GlobalX = cms.double( 0.0 ), + GlobalY = cms.double( 300.0 ), + GlobalZ = cms.double( 50.0 ), + LenghtInZ = cms.double( 100.0 ) + ), + LowerScintillatorParameters = cms.PSet( + WidthInX = cms.double( 100.0 ), + GlobalX = cms.double( 0.0 ), + GlobalY = cms.double( -100.0 ), + GlobalZ = cms.double( 50.0 ), + LenghtInZ = cms.double( 100.0 ) + ), OrderedHitsFactoryPSets = cms.VPSet( cms.PSet( LayerSrc = cms.InputTag( "hltCombinatorialcosmicseedingtripletsP5" ), NavigationDirection = cms.string( "outsideIn" ), @@ -11070,40 +11135,11 @@ PropagationDirection = cms.string( "alongMomentum" ), ComponentName = cms.string( "GenericPairGenerator" ) ) - ), - UseScintillatorsConstraint = cms.bool( False ), - TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), - SeedsFromPositiveY = cms.bool( True ), - SeedsFromNegativeY = cms.bool( False ), - doClusterCheck = cms.bool( True ), - ClusterCollectionLabel = cms.InputTag( "hltFullSiStripRawToClustersFacility" ), - MaxNumberOfStripClusters = cms.uint32( 300 ), - MaxNumberOfPixelClusters = cms.uint32( 1000 ), - PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), - CheckHitsAreOnDifferentLayers = cms.bool( False ), - SetMomentum = cms.bool( True ), - requireBOFF = cms.bool( True ), - maxSeeds = cms.int32( 10000 ), - DontCountDetsAboveNClusters = cms.untracked.uint32( 20 ), - UpperScintillatorParameters = cms.PSet( - WidthInX = cms.double( 100.0 ), - GlobalX = cms.double( 0.0 ), - GlobalY = cms.double( 300.0 ), - GlobalZ = cms.double( 50.0 ), - LenghtInZ = cms.double( 100.0 ) - ), - LowerScintillatorParameters = cms.PSet( - WidthInX = cms.double( 100.0 ), - GlobalX = cms.double( 0.0 ), - GlobalY = cms.double( -100.0 ), - GlobalZ = cms.double( 50.0 ), - LenghtInZ = cms.double( 100.0 ) ) ) process.hltCombinedP5SeedsForCTF = cms.EDProducer( "SeedCombiner", seedCollections = cms.VInputTag( 'hltCombinatorialcosmicseedfinderP5','hltSimpleCosmicBONSeeds' ), - PairCollection = cms.untracked.InputTag( "hltCombinatorialcosmicseedfinderP5" ), - TripletCollection = cms.untracked.InputTag( "hltSimpleCosmicBONSeeds" ) + clusterRemovalInfos = cms.VInputTag( ) ) process.hltCkfTrackCandidatesP5 = cms.EDProducer( "CkfTrackCandidateMaker", cleanTrajectoryAfterInOut = cms.bool( True ), @@ -11798,6 +11834,78 @@ offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) +process.hltDatasetVRRandom = cms.EDFilter( "TriggerResultsFilter", + usePathStatus = cms.bool( True ), + hltResults = cms.InputTag( "" ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMaskAndPrescale = cms.bool( False ), + throw = cms.bool( True ), + triggerConditions = cms.vstring( 'HLT_Random_HighRate_v1' ) +) +process.hltPreDatasetVRRandom0 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom1 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 1 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom2 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 2 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom3 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 3 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom4 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 4 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 5 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom6 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 6 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom7 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 7 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom8 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 8 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom9 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 9 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom10 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 10 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom11 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 11 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom12 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 12 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom13 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 13 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom14 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 14 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreDatasetVRRandom15 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 15 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltDatasetZeroBias = cms.EDFilter( "TriggerResultsFilter", usePathStatus = cms.bool( True ), hltResults = cms.InputTag( "" ), @@ -12365,6 +12473,7 @@ 'keep *_hltL3NoFiltersNoVtxMuonCandidates_*_*', 'keep *_hltMergedTracks_*_*', 'keep *_hltOnlineBeamSpot_*_*', + 'keep *_hltParticleNetDiscriminatorsJetTags_*_*', 'keep *_hltPixelTracks_*_*', 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelClusters_*_*', @@ -12418,10 +12527,6 @@ ), SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_DQMGPUvsCPU' ) ), outputCommands = cms.untracked.vstring( 'drop *', - 'keep *Cluster*_hltSiPixelClustersSerialSync_*_*', - 'keep *Cluster*_hltSiPixelClusters_*_*', - 'keep *RecHit*_hltSiPixelRecHitsSerialSync_*_*', - 'keep *RecHit*_hltSiPixelRecHits_*_*', 'keep *_hltEcalDigisSerialSync_*_*', 'keep *_hltEcalDigis_*_*', 'keep *_hltEcalUncalibRecHitSerialSync_*_*', @@ -12430,10 +12535,6 @@ 'keep *_hltHbhereco_*_*', 'keep *_hltParticleFlowClusterHCALSerialSync_*_*', 'keep *_hltParticleFlowClusterHCAL_*_*', - 'keep *_hltPixelTracksSerialSync_*_*', - 'keep *_hltPixelTracks_*_*', - 'keep *_hltPixelVerticesSerialSync_*_*', - 'keep *_hltPixelVertices_*_*', 'keep *_hltSiPixelDigiErrorsSerialSync_*_*', 'keep *_hltSiPixelDigiErrors_*_*' ) ) @@ -13395,6 +13496,142 @@ 'keep edmTriggerResults_*_*_*', 'keep triggerTriggerEvent_*_*_*' ) ) +process.hltOutputPhysicsVRRandom1 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom1.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom2', + 'Dataset_VRRandom3' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom0 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom0.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom0', + 'Dataset_VRRandom1' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom2 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom2.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom4', + 'Dataset_VRRandom5' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom3 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom3.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom6', + 'Dataset_VRRandom7' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom4 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom4.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom8', + 'Dataset_VRRandom9' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom5 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom5.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom10', + 'Dataset_VRRandom11' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom6 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom6.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom12', + 'Dataset_VRRandom13' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) +process.hltOutputPhysicsVRRandom7 = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( "outputPhysicsVRRandom7.root" ), + compressionAlgorithm = cms.untracked.string( "ZSTD" ), + compressionLevel = cms.untracked.int32( 3 ), + fastCloning = cms.untracked.bool( False ), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string( "" ), + dataTier = cms.untracked.string( "RAW" ) + ), + SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring( 'Dataset_VRRandom14', + 'Dataset_VRRandom15' ) ), + outputCommands = cms.untracked.vstring( 'drop *', + 'keep FEDRawDataCollection_rawDataCollector_*_*', + 'keep GlobalObjectMapRecord_hltGtStage2ObjectMap_*_*', + 'keep edmTriggerResults_*_*_*', + 'keep triggerTriggerEvent_*_*_*' ) +) process.HLTL1UnpackerSequence = cms.Sequence( process.hltGtStage2Digis + process.hltGtStage2ObjectMap ) process.HLTBeamSpot = cms.Sequence( process.hltOnlineMetaDataDigis + process.hltOnlineBeamSpot ) @@ -13597,6 +13834,22 @@ process.Dataset_RPCMonitor = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetRPCMonitor + process.hltPreDatasetRPCMonitor ) process.Dataset_TestEnablesEcalHcal = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetTestEnablesEcalHcal + process.hltPreDatasetTestEnablesEcalHcal ) process.Dataset_TestEnablesEcalHcalDQM = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetTestEnablesEcalHcalDQM + process.hltPreDatasetTestEnablesEcalHcalDQM ) +process.Dataset_VRRandom0 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom0 ) +process.Dataset_VRRandom1 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom1 ) +process.Dataset_VRRandom2 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom2 ) +process.Dataset_VRRandom3 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom3 ) +process.Dataset_VRRandom4 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom4 ) +process.Dataset_VRRandom5 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom5 ) +process.Dataset_VRRandom6 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom6 ) +process.Dataset_VRRandom7 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom7 ) +process.Dataset_VRRandom8 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom8 ) +process.Dataset_VRRandom9 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom9 ) +process.Dataset_VRRandom10 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom10 ) +process.Dataset_VRRandom11 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom11 ) +process.Dataset_VRRandom12 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom12 ) +process.Dataset_VRRandom13 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom13 ) +process.Dataset_VRRandom14 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom14 ) +process.Dataset_VRRandom15 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetVRRandom + process.hltPreDatasetVRRandom15 ) process.Dataset_ZeroBias = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetZeroBias + process.hltPreDatasetZeroBias ) process.ALCALumiPixelsCountsExpressOutput = cms.FinalPath( process.hltOutputALCALumiPixelsCountsExpress ) process.ALCALumiPixelsCountsGatedOutput = cms.FinalPath( process.hltOutputALCALumiPixelsCountsGated ) @@ -13751,9 +14004,17 @@ process.Dataset_SpecialHLTPhysics17 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetSpecialHLTPhysics + process.hltPreDatasetSpecialHLTPhysics17 ) process.Dataset_SpecialHLTPhysics18 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetSpecialHLTPhysics + process.hltPreDatasetSpecialHLTPhysics18 ) process.Dataset_SpecialHLTPhysics19 = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetSpecialHLTPhysics + process.hltPreDatasetSpecialHLTPhysics19 ) +process.PhysicsVRRandom1Output = cms.FinalPath( process.hltOutputPhysicsVRRandom1 ) +process.PhysicsVRRandom0Output = cms.FinalPath( process.hltOutputPhysicsVRRandom0 ) +process.PhysicsVRRandom2Output = cms.FinalPath( process.hltOutputPhysicsVRRandom2 ) +process.PhysicsVRRandom3Output = cms.FinalPath( process.hltOutputPhysicsVRRandom3 ) +process.PhysicsVRRandom4Output = cms.FinalPath( process.hltOutputPhysicsVRRandom4 ) +process.PhysicsVRRandom5Output = cms.FinalPath( process.hltOutputPhysicsVRRandom5 ) +process.PhysicsVRRandom6Output = cms.FinalPath( process.hltOutputPhysicsVRRandom6 ) +process.PhysicsVRRandom7Output = cms.FinalPath( process.hltOutputPhysicsVRRandom7 ) -process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_EcalEtaEBonly_v25, process.AlCa_EcalEtaEEonly_v25, process.AlCa_EcalPi0EBonly_v25, process.AlCa_EcalPi0EEonly_v25, process.AlCa_RPCMuonNormalisation_v23, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DQM_Random_v1, process.DQM_ZeroBias_v3, process.DST_ZeroBias_v11, process.DST_Physics_v16, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Alignment_v8, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_IsolatedBunches_v12, process.HLT_ZeroBias_FirstBXAfterTrain_v10, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_ZeroBias_FirstCollisionInTrain_v11, process.HLT_ZeroBias_LastCollisionInTrain_v10, process.HLT_HT300_Beamspot_v23, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_L1SingleMuCosmics_v8, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, process.HLT_L2Mu10_NoVertex_NoBPTX_v15, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_PPSMaxTracksPerArm1_v9, process.HLT_PPSMaxTracksPerRP4_v9, process.HLT_PPSRandom_v1, process.HLT_SpecialHLTPhysics_v7, process.AlCa_LumiPixelsCounts_RandomHighRate_v4, process.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, process.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, process.HLT_L1SingleMuOpen_v6, process.HLT_L1SingleMuOpen_DT_v6, process.HLT_L1SingleMu3_v5, process.HLT_L1SingleMu5_v5, process.HLT_L1SingleMu7_v5, process.HLT_L1DoubleMu0_v5, process.HLT_L1SingleJet8erHE_v5, process.HLT_L1SingleJet10erHE_v5, process.HLT_L1SingleJet12erHE_v5, process.HLT_L1SingleJet35_v5, process.HLT_L1SingleJet200_v5, process.HLT_L1SingleEG8er2p5_v4, process.HLT_L1SingleEG10er2p5_v4, process.HLT_L1SingleEG15er2p5_v4, process.HLT_L1SingleEG26er2p5_v4, process.HLT_L1SingleEG28er2p5_v4, process.HLT_L1SingleEG28er2p1_v4, process.HLT_L1SingleEG28er1p5_v4, process.HLT_L1SingleEG34er2p5_v4, process.HLT_L1SingleEG36er2p5_v4, process.HLT_L1SingleEG38er2p5_v4, process.HLT_L1SingleEG40er2p5_v4, process.HLT_L1SingleEG42er2p5_v4, process.HLT_L1SingleEG45er2p5_v4, process.HLT_L1SingleEG50_v4, process.HLT_L1SingleJet60_v4, process.HLT_L1SingleJet90_v4, process.HLT_L1SingleJet120_v4, process.HLT_L1SingleJet180_v4, process.HLT_L1HTT120er_v4, process.HLT_L1HTT160er_v4, process.HLT_L1HTT200er_v4, process.HLT_L1HTT255er_v4, process.HLT_L1HTT280er_v4, process.HLT_L1HTT320er_v4, process.HLT_L1HTT360er_v4, process.HLT_L1HTT400er_v4, process.HLT_L1HTT450er_v4, process.HLT_L1ETM120_v4, process.HLT_L1ETM150_v4, process.HLT_L1EXT_HCAL_LaserMon1_v5, process.HLT_L1EXT_HCAL_LaserMon4_v5, process.HLT_CscCluster_Cosmic_v4, process.HLT_HT60_Beamspot_v22, process.HLT_HT300_Beamspot_PixelClusters_WP2_v7, process.HLT_PixelClusters_WP2_v4, process.HLT_PixelClusters_WP1_v4, process.HLT_BptxOR_v6, process.HLT_L1SingleMuCosmics_EMTF_v4, process.HLT_L1SingleMuCosmics_CosmicTracking_v1, process.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, process.HLT_L1FatEvents_v5, process.HLT_Random_HighRate_v1, process.HLT_ZeroBias_HighRate_v4, process.HLT_ZeroBias_Gated_v4, process.HLT_SpecialZeroBias_v6, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaLumiPixelsCountsPromptHighRate0, process.Dataset_AlCaLumiPixelsCountsPromptHighRate1, process.Dataset_AlCaLumiPixelsCountsPromptHighRate2, process.Dataset_AlCaLumiPixelsCountsPromptHighRate3, process.Dataset_AlCaLumiPixelsCountsPromptHighRate4, process.Dataset_AlCaLumiPixelsCountsPromptHighRate5, process.Dataset_AlCaLumiPixelsCountsGated, process.Dataset_AlCaP0, process.Dataset_AlCaPPSExpress, process.Dataset_AlCaPPSPrompt, process.Dataset_AlCaPhiSym, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DQMPPSRandom, process.Dataset_EcalLaser, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressCosmics, process.Dataset_ExpressPhysics, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_L1Accept, process.Dataset_MinimumBias, process.Dataset_MuonShower, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_RPCMonitor, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsGatedOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCALumiPixelsCountsPromptHighRate0Output, process.ALCALumiPixelsCountsPromptHighRate1Output, process.ALCALumiPixelsCountsPromptHighRate2Output, process.ALCALumiPixelsCountsPromptHighRate3Output, process.ALCALumiPixelsCountsPromptHighRate4Output, process.ALCALumiPixelsCountsPromptHighRate5Output, process.ALCAP0Output, process.ALCAPHISYMOutput, process.ALCAPPSExpressOutput, process.ALCAPPSPromptOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.DQMPPSRandomOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.ExpressCosmicsOutput, process.HLTMonitorOutput, process.PhysicsCommissioningOutput, process.NanoDSTOutput, process.RPCMONOutput, process.PhysicsSpecialHLTPhysics0Output, process.PhysicsSpecialHLTPhysics1Output, process.PhysicsSpecialHLTPhysics2Output, process.PhysicsSpecialHLTPhysics3Output, process.PhysicsSpecialHLTPhysics4Output, process.PhysicsSpecialHLTPhysics5Output, process.PhysicsSpecialHLTPhysics6Output, process.PhysicsSpecialHLTPhysics7Output, process.PhysicsSpecialHLTPhysics8Output, process.PhysicsSpecialHLTPhysics9Output, process.PhysicsSpecialHLTPhysics10Output, process.PhysicsSpecialHLTPhysics11Output, process.PhysicsSpecialHLTPhysics12Output, process.PhysicsSpecialHLTPhysics13Output, process.PhysicsSpecialHLTPhysics14Output, process.PhysicsSpecialHLTPhysics15Output, process.PhysicsSpecialHLTPhysics16Output, process.PhysicsSpecialHLTPhysics17Output, process.PhysicsSpecialHLTPhysics18Output, process.PhysicsSpecialHLTPhysics19Output, process.PhysicsSpecialRandom0Output, process.PhysicsSpecialRandom1Output, process.PhysicsSpecialRandom2Output, process.PhysicsSpecialRandom3Output, process.PhysicsSpecialRandom4Output, process.PhysicsSpecialRandom5Output, process.PhysicsSpecialRandom6Output, process.PhysicsSpecialRandom7Output, process.PhysicsSpecialRandom8Output, process.PhysicsSpecialRandom9Output, process.PhysicsSpecialZeroBias0Output, process.PhysicsSpecialZeroBias1Output, process.PhysicsSpecialZeroBias2Output, process.PhysicsSpecialZeroBias3Output, process.PhysicsSpecialZeroBias4Output, process.PhysicsSpecialZeroBias5Output, process.PhysicsSpecialZeroBias6Output, process.PhysicsSpecialZeroBias7Output, process.PhysicsSpecialZeroBias8Output, process.PhysicsSpecialZeroBias9Output, process.PhysicsSpecialZeroBias10Output, process.PhysicsSpecialZeroBias11Output, process.PhysicsSpecialZeroBias12Output, process.PhysicsSpecialZeroBias13Output, process.PhysicsSpecialZeroBias14Output, process.PhysicsSpecialZeroBias15Output, process.Dataset_SpecialRandom0, process.Dataset_SpecialRandom1, process.Dataset_SpecialRandom2, process.Dataset_SpecialRandom3, process.Dataset_SpecialRandom4, process.Dataset_SpecialRandom5, process.Dataset_SpecialRandom6, process.Dataset_SpecialRandom7, process.Dataset_SpecialRandom8, process.Dataset_SpecialRandom9, process.Dataset_SpecialRandom10, process.Dataset_SpecialRandom11, process.Dataset_SpecialRandom12, process.Dataset_SpecialRandom13, process.Dataset_SpecialRandom14, process.Dataset_SpecialRandom15, process.Dataset_SpecialRandom16, process.Dataset_SpecialRandom17, process.Dataset_SpecialRandom18, process.Dataset_SpecialRandom19, process.Dataset_SpecialZeroBias0, process.Dataset_SpecialZeroBias1, process.Dataset_SpecialZeroBias2, process.Dataset_SpecialZeroBias3, process.Dataset_SpecialZeroBias4, process.Dataset_SpecialZeroBias5, process.Dataset_SpecialZeroBias6, process.Dataset_SpecialZeroBias7, process.Dataset_SpecialZeroBias8, process.Dataset_SpecialZeroBias9, process.Dataset_SpecialZeroBias10, process.Dataset_SpecialZeroBias11, process.Dataset_SpecialZeroBias12, process.Dataset_SpecialZeroBias13, process.Dataset_SpecialZeroBias14, process.Dataset_SpecialZeroBias15, process.Dataset_SpecialZeroBias16, process.Dataset_SpecialZeroBias17, process.Dataset_SpecialZeroBias18, process.Dataset_SpecialZeroBias19, process.Dataset_SpecialZeroBias20, process.Dataset_SpecialZeroBias21, process.Dataset_SpecialZeroBias22, process.Dataset_SpecialZeroBias23, process.Dataset_SpecialZeroBias24, process.Dataset_SpecialZeroBias25, process.Dataset_SpecialZeroBias26, process.Dataset_SpecialZeroBias27, process.Dataset_SpecialZeroBias28, process.Dataset_SpecialZeroBias29, process.Dataset_SpecialZeroBias30, process.Dataset_SpecialZeroBias31, process.Dataset_SpecialHLTPhysics0, process.Dataset_SpecialHLTPhysics1, process.Dataset_SpecialHLTPhysics2, process.Dataset_SpecialHLTPhysics3, process.Dataset_SpecialHLTPhysics4, process.Dataset_SpecialHLTPhysics5, process.Dataset_SpecialHLTPhysics6, process.Dataset_SpecialHLTPhysics7, process.Dataset_SpecialHLTPhysics8, process.Dataset_SpecialHLTPhysics9, process.Dataset_SpecialHLTPhysics10, process.Dataset_SpecialHLTPhysics11, process.Dataset_SpecialHLTPhysics12, process.Dataset_SpecialHLTPhysics13, process.Dataset_SpecialHLTPhysics14, process.Dataset_SpecialHLTPhysics15, process.Dataset_SpecialHLTPhysics16, process.Dataset_SpecialHLTPhysics17, process.Dataset_SpecialHLTPhysics18, process.Dataset_SpecialHLTPhysics19, )) +process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.AlCa_EcalPhiSym_v20, process.AlCa_EcalEtaEBonly_v25, process.AlCa_EcalEtaEEonly_v25, process.AlCa_EcalPi0EBonly_v25, process.AlCa_EcalPi0EEonly_v25, process.AlCa_RPCMuonNormalisation_v23, process.AlCa_LumiPixelsCounts_Random_v10, process.AlCa_LumiPixelsCounts_ZeroBias_v12, process.DQM_PixelReconstruction_v12, process.DQM_EcalReconstruction_v12, process.DQM_HcalReconstruction_v10, process.DQM_Random_v1, process.DQM_ZeroBias_v3, process.DST_ZeroBias_v11, process.DST_Physics_v16, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v6, process.HLT_HcalNZS_v21, process.HLT_HcalPhiSym_v23, process.HLT_Random_v3, process.HLT_Physics_v14, process.HLT_ZeroBias_v13, process.HLT_ZeroBias_Alignment_v8, process.HLT_ZeroBias_Beamspot_v16, process.HLT_ZeroBias_IsolatedBunches_v12, process.HLT_ZeroBias_FirstBXAfterTrain_v10, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v12, process.HLT_ZeroBias_FirstCollisionInTrain_v11, process.HLT_ZeroBias_LastCollisionInTrain_v10, process.HLT_HT300_Beamspot_v23, process.HLT_IsoTrackHB_v14, process.HLT_IsoTrackHE_v14, process.HLT_L1SingleMuCosmics_v8, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v14, process.HLT_L2Mu10_NoVertex_NoBPTX_v15, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v13, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v14, process.HLT_CDC_L2cosmic_10_er1p0_v10, process.HLT_CDC_L2cosmic_5p5_er1p0_v10, process.HLT_PPSMaxTracksPerArm1_v9, process.HLT_PPSMaxTracksPerRP4_v9, process.HLT_PPSRandom_v1, process.HLT_SpecialHLTPhysics_v7, process.AlCa_LumiPixelsCounts_RandomHighRate_v4, process.AlCa_LumiPixelsCounts_ZeroBiasVdM_v4, process.AlCa_LumiPixelsCounts_ZeroBiasGated_v5, process.HLT_L1SingleMuOpen_v6, process.HLT_L1SingleMuOpen_DT_v6, process.HLT_L1SingleMu3_v5, process.HLT_L1SingleMu5_v5, process.HLT_L1SingleMu7_v5, process.HLT_L1DoubleMu0_v5, process.HLT_L1SingleJet8erHE_v5, process.HLT_L1SingleJet10erHE_v5, process.HLT_L1SingleJet12erHE_v5, process.HLT_L1SingleJet35_v5, process.HLT_L1SingleJet200_v5, process.HLT_L1SingleEG8er2p5_v4, process.HLT_L1SingleEG10er2p5_v4, process.HLT_L1SingleEG15er2p5_v4, process.HLT_L1SingleEG26er2p5_v4, process.HLT_L1SingleEG28er2p5_v4, process.HLT_L1SingleEG28er2p1_v4, process.HLT_L1SingleEG28er1p5_v4, process.HLT_L1SingleEG34er2p5_v4, process.HLT_L1SingleEG36er2p5_v4, process.HLT_L1SingleEG38er2p5_v4, process.HLT_L1SingleEG40er2p5_v4, process.HLT_L1SingleEG42er2p5_v4, process.HLT_L1SingleEG45er2p5_v4, process.HLT_L1SingleEG50_v4, process.HLT_L1SingleJet60_v4, process.HLT_L1SingleJet90_v4, process.HLT_L1SingleJet120_v4, process.HLT_L1SingleJet180_v4, process.HLT_L1HTT120er_v4, process.HLT_L1HTT160er_v4, process.HLT_L1HTT200er_v4, process.HLT_L1HTT255er_v4, process.HLT_L1HTT280er_v4, process.HLT_L1HTT320er_v4, process.HLT_L1HTT360er_v4, process.HLT_L1HTT400er_v4, process.HLT_L1HTT450er_v4, process.HLT_L1ETM120_v4, process.HLT_L1ETM150_v4, process.HLT_L1EXT_HCAL_LaserMon1_v5, process.HLT_L1EXT_HCAL_LaserMon4_v5, process.HLT_CscCluster_Cosmic_v4, process.HLT_HT60_Beamspot_v22, process.HLT_HT300_Beamspot_PixelClusters_WP2_v7, process.HLT_PixelClusters_WP2_v4, process.HLT_PixelClusters_WP1_v4, process.HLT_BptxOR_v6, process.HLT_L1SingleMuCosmics_EMTF_v4, process.HLT_L1SingleMuCosmics_CosmicTracking_v1, process.HLT_L1SingleMuCosmics_PointingCosmicTracking_v1, process.HLT_L1FatEvents_v5, process.HLT_Random_HighRate_v1, process.HLT_ZeroBias_HighRate_v4, process.HLT_ZeroBias_Gated_v4, process.HLT_SpecialZeroBias_v6, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.Dataset_AlCaLumiPixelsCountsExpress, process.Dataset_AlCaLumiPixelsCountsPrompt, process.Dataset_AlCaLumiPixelsCountsPromptHighRate0, process.Dataset_AlCaLumiPixelsCountsPromptHighRate1, process.Dataset_AlCaLumiPixelsCountsPromptHighRate2, process.Dataset_AlCaLumiPixelsCountsPromptHighRate3, process.Dataset_AlCaLumiPixelsCountsPromptHighRate4, process.Dataset_AlCaLumiPixelsCountsPromptHighRate5, process.Dataset_AlCaLumiPixelsCountsGated, process.Dataset_AlCaP0, process.Dataset_AlCaPPSExpress, process.Dataset_AlCaPPSPrompt, process.Dataset_AlCaPhiSym, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DQMPPSRandom, process.Dataset_EcalLaser, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressCosmics, process.Dataset_ExpressPhysics, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_L1Accept, process.Dataset_MinimumBias, process.Dataset_MuonShower, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_RPCMonitor, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_VRRandom0, process.Dataset_VRRandom1, process.Dataset_VRRandom2, process.Dataset_VRRandom3, process.Dataset_VRRandom4, process.Dataset_VRRandom5, process.Dataset_VRRandom6, process.Dataset_VRRandom7, process.Dataset_VRRandom8, process.Dataset_VRRandom9, process.Dataset_VRRandom10, process.Dataset_VRRandom11, process.Dataset_VRRandom12, process.Dataset_VRRandom13, process.Dataset_VRRandom14, process.Dataset_VRRandom15, process.Dataset_ZeroBias, process.ALCALumiPixelsCountsExpressOutput, process.ALCALumiPixelsCountsGatedOutput, process.ALCALumiPixelsCountsPromptOutput, process.ALCALumiPixelsCountsPromptHighRate0Output, process.ALCALumiPixelsCountsPromptHighRate1Output, process.ALCALumiPixelsCountsPromptHighRate2Output, process.ALCALumiPixelsCountsPromptHighRate3Output, process.ALCALumiPixelsCountsPromptHighRate4Output, process.ALCALumiPixelsCountsPromptHighRate5Output, process.ALCAP0Output, process.ALCAPHISYMOutput, process.ALCAPPSExpressOutput, process.ALCAPPSPromptOutput, process.CalibrationOutput, process.DQMOutput, process.DQMCalibrationOutput, process.DQMEventDisplayOutput, process.DQMGPUvsCPUOutput, process.DQMOnlineBeamspotOutput, process.DQMPPSRandomOutput, process.EcalCalibrationOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.ExpressCosmicsOutput, process.HLTMonitorOutput, process.PhysicsCommissioningOutput, process.NanoDSTOutput, process.RPCMONOutput, process.PhysicsSpecialHLTPhysics0Output, process.PhysicsSpecialHLTPhysics1Output, process.PhysicsSpecialHLTPhysics2Output, process.PhysicsSpecialHLTPhysics3Output, process.PhysicsSpecialHLTPhysics4Output, process.PhysicsSpecialHLTPhysics5Output, process.PhysicsSpecialHLTPhysics6Output, process.PhysicsSpecialHLTPhysics7Output, process.PhysicsSpecialHLTPhysics8Output, process.PhysicsSpecialHLTPhysics9Output, process.PhysicsSpecialHLTPhysics10Output, process.PhysicsSpecialHLTPhysics11Output, process.PhysicsSpecialHLTPhysics12Output, process.PhysicsSpecialHLTPhysics13Output, process.PhysicsSpecialHLTPhysics14Output, process.PhysicsSpecialHLTPhysics15Output, process.PhysicsSpecialHLTPhysics16Output, process.PhysicsSpecialHLTPhysics17Output, process.PhysicsSpecialHLTPhysics18Output, process.PhysicsSpecialHLTPhysics19Output, process.PhysicsSpecialRandom0Output, process.PhysicsSpecialRandom1Output, process.PhysicsSpecialRandom2Output, process.PhysicsSpecialRandom3Output, process.PhysicsSpecialRandom4Output, process.PhysicsSpecialRandom5Output, process.PhysicsSpecialRandom6Output, process.PhysicsSpecialRandom7Output, process.PhysicsSpecialRandom8Output, process.PhysicsSpecialRandom9Output, process.PhysicsSpecialZeroBias0Output, process.PhysicsSpecialZeroBias1Output, process.PhysicsSpecialZeroBias2Output, process.PhysicsSpecialZeroBias3Output, process.PhysicsSpecialZeroBias4Output, process.PhysicsSpecialZeroBias5Output, process.PhysicsSpecialZeroBias6Output, process.PhysicsSpecialZeroBias7Output, process.PhysicsSpecialZeroBias8Output, process.PhysicsSpecialZeroBias9Output, process.PhysicsSpecialZeroBias10Output, process.PhysicsSpecialZeroBias11Output, process.PhysicsSpecialZeroBias12Output, process.PhysicsSpecialZeroBias13Output, process.PhysicsSpecialZeroBias14Output, process.PhysicsSpecialZeroBias15Output, process.Dataset_SpecialRandom0, process.Dataset_SpecialRandom1, process.Dataset_SpecialRandom2, process.Dataset_SpecialRandom3, process.Dataset_SpecialRandom4, process.Dataset_SpecialRandom5, process.Dataset_SpecialRandom6, process.Dataset_SpecialRandom7, process.Dataset_SpecialRandom8, process.Dataset_SpecialRandom9, process.Dataset_SpecialRandom10, process.Dataset_SpecialRandom11, process.Dataset_SpecialRandom12, process.Dataset_SpecialRandom13, process.Dataset_SpecialRandom14, process.Dataset_SpecialRandom15, process.Dataset_SpecialRandom16, process.Dataset_SpecialRandom17, process.Dataset_SpecialRandom18, process.Dataset_SpecialRandom19, process.Dataset_SpecialZeroBias0, process.Dataset_SpecialZeroBias1, process.Dataset_SpecialZeroBias2, process.Dataset_SpecialZeroBias3, process.Dataset_SpecialZeroBias4, process.Dataset_SpecialZeroBias5, process.Dataset_SpecialZeroBias6, process.Dataset_SpecialZeroBias7, process.Dataset_SpecialZeroBias8, process.Dataset_SpecialZeroBias9, process.Dataset_SpecialZeroBias10, process.Dataset_SpecialZeroBias11, process.Dataset_SpecialZeroBias12, process.Dataset_SpecialZeroBias13, process.Dataset_SpecialZeroBias14, process.Dataset_SpecialZeroBias15, process.Dataset_SpecialZeroBias16, process.Dataset_SpecialZeroBias17, process.Dataset_SpecialZeroBias18, process.Dataset_SpecialZeroBias19, process.Dataset_SpecialZeroBias20, process.Dataset_SpecialZeroBias21, process.Dataset_SpecialZeroBias22, process.Dataset_SpecialZeroBias23, process.Dataset_SpecialZeroBias24, process.Dataset_SpecialZeroBias25, process.Dataset_SpecialZeroBias26, process.Dataset_SpecialZeroBias27, process.Dataset_SpecialZeroBias28, process.Dataset_SpecialZeroBias29, process.Dataset_SpecialZeroBias30, process.Dataset_SpecialZeroBias31, process.Dataset_SpecialHLTPhysics0, process.Dataset_SpecialHLTPhysics1, process.Dataset_SpecialHLTPhysics2, process.Dataset_SpecialHLTPhysics3, process.Dataset_SpecialHLTPhysics4, process.Dataset_SpecialHLTPhysics5, process.Dataset_SpecialHLTPhysics6, process.Dataset_SpecialHLTPhysics7, process.Dataset_SpecialHLTPhysics8, process.Dataset_SpecialHLTPhysics9, process.Dataset_SpecialHLTPhysics10, process.Dataset_SpecialHLTPhysics11, process.Dataset_SpecialHLTPhysics12, process.Dataset_SpecialHLTPhysics13, process.Dataset_SpecialHLTPhysics14, process.Dataset_SpecialHLTPhysics15, process.Dataset_SpecialHLTPhysics16, process.Dataset_SpecialHLTPhysics17, process.Dataset_SpecialHLTPhysics18, process.Dataset_SpecialHLTPhysics19, process.PhysicsVRRandom1Output, process.PhysicsVRRandom0Output, process.PhysicsVRRandom2Output, process.PhysicsVRRandom3Output, process.PhysicsVRRandom4Output, process.PhysicsVRRandom5Output, process.PhysicsVRRandom6Output, process.PhysicsVRRandom7Output, )) # source module (EDM inputs) diff --git a/HLTrigger/Configuration/test/getFrozenHLT.sh b/HLTrigger/Configuration/test/getFrozenHLT.sh index 0aa53bc38b9ef..abd6d9ccda915 100755 --- a/HLTrigger/Configuration/test/getFrozenHLT.sh +++ b/HLTrigger/Configuration/test/getFrozenHLT.sh @@ -9,10 +9,10 @@ # Configuration/HLT/python/autoCondHLT.py , and # HLTrigger/Configuration/python/Tools/options.py declare -A TABLES=( - ["Fake"]="/dev/CMSSW_14_1_0/Fake" - ["Fake1"]="/dev/CMSSW_14_1_0/Fake1" - ["Fake2"]="/dev/CMSSW_14_1_0/Fake2" - ["2024v14"]="/frozen/2024/2e34/v1.4/CMSSW_14_1_X/HLT" + ["Fake"]="/dev/CMSSW_14_2_0/Fake" + ["Fake1"]="/dev/CMSSW_14_2_0/Fake1" + ["Fake2"]="/dev/CMSSW_14_2_0/Fake2" + ["2024v14"]="/frozen/2024/2e34/v1.4/CMSSW_14_2_X/HLT" ) # command-line arguments diff --git a/HLTrigger/Configuration/test/getHLT.sh b/HLTrigger/Configuration/test/getHLT.sh index 5c3eb7238fcce..59c1e54be91c5 100755 --- a/HLTrigger/Configuration/test/getHLT.sh +++ b/HLTrigger/Configuration/test/getHLT.sh @@ -1,7 +1,7 @@ #!/bin/bash # ConfDB directory hosting the HLT configurations -CONFDBDIR="/dev/CMSSW_14_1_0" +CONFDBDIR="/dev/CMSSW_14_2_0" # ConfDB configurations to use # - if no explicit version, the most recent one is taken From 83963d9165a6d988e4bd22d45af1d01f22985841 Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 3 Dec 2024 19:39:56 +0100 Subject: [PATCH 252/418] update input files for TSG tests to more modern datasets (2024I) --- Configuration/HLT/python/addOnTestsHLT.py | 8 ++++---- HLTrigger/Configuration/test/cmsDriver.csh | 2 +- .../test/testAccessToEDMInputsOfHLTTests_filelist.txt | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Configuration/HLT/python/addOnTestsHLT.py b/Configuration/HLT/python/addOnTestsHLT.py index 78b21cb48e4e3..999e2968f73f7 100644 --- a/Configuration/HLT/python/addOnTestsHLT.py +++ b/Configuration/HLT/python/addOnTestsHLT.py @@ -34,19 +34,19 @@ def addOnTestsHLT(): 'hlt_data_Fake2': ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run2_hlt_Fake2 --relval 9000,50 --datatier "RAW" --eventcontent RAW --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run2_2016 --fileout file:RelVal_Raw_Fake2_DATA.root --filein /store/data/Run2016B/JetHT/RAW/v1/000/272/762/00000/C666CDE2-E013-E611-B15A-02163E011DBE.root', 'HLTrigger/Configuration/test/OnLine_HLT_Fake2.py', 'cmsDriver.py RelVal -s HLT:Fake2,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run2_data_Fake2 --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --customise=HLTrigger/Configuration/CustomConfigs.HLTRECO --era Run2_2016 --processName=HLTRECO --filein file:RelVal_Raw_Fake2_DATA.root --fileout file:RelVal_Raw_Fake2_DATA_HLT_RECO.root'], - 'hlt_data_GRun' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_GRun --relval 9000,50 --datatier "RAW" --eventcontent RAW --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_2024 --fileout file:RelVal_Raw_GRun_DATA.root --filein /store/data/Run2024H/EphemeralHLTPhysics0/RAW/v1/000/386/071/00000/3a502248-b2ac-4e8a-b9bf-5f98d5c688dd.root', + 'hlt_data_GRun' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_GRun --relval 9000,50 --datatier "RAW" --eventcontent RAW --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_2024 --fileout file:RelVal_Raw_GRun_DATA.root --filein /store/data/Run2024I/EphemeralHLTPhysics0/RAW/v1/000/386/593/00000/91a08676-199e-404c-9957-f72772ef1354.root', 'HLTrigger/Configuration/test/OnLine_HLT_GRun.py', 'cmsDriver.py RelVal -s HLT:GRun,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_GRun --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --customise=HLTrigger/Configuration/CustomConfigs.HLTRECO --customise=HLTrigger/Configuration/CustomConfigs.customiseGlobalTagForOnlineBeamSpot --era Run3_2024 --processName=HLTRECO --filein file:RelVal_Raw_GRun_DATA.root --fileout file:RelVal_Raw_GRun_DATA_HLT_RECO.root'], 'hlt_data_HIon' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_HIon --relval 9000,50 --datatier "RAW" --eventcontent RAW --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_pp_on_PbPb_2024 --fileout file:RelVal_Raw_HIon_DATA.root --filein /store/hidata/HIRun2022A/HITestRaw0/RAW/v1/000/362/321/00000/f467ee64-fc64-47a6-9d8a-7ca73ebca2bd.root --customise=HLTrigger/Configuration/CustomConfigs.customiseL1TforHIonRepackedRAW', 'HLTrigger/Configuration/test/OnLine_HLT_HIon.py', 'cmsDriver.py RelVal -s HLT:HIon,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_HIon --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --customise=HLTrigger/Configuration/CustomConfigs.HLTRECO --customise=HLTrigger/Configuration/CustomConfigs.customiseGlobalTagForOnlineBeamSpot --era Run3_pp_on_PbPb_2024 --processName=HLTRECO --filein file:RelVal_Raw_HIon_DATA.root --fileout file:RelVal_Raw_HIon_DATA_HLT_RECO.root'], - 'hlt_data_PIon' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_PIon --relval 9000,50 --datatier "RAW" --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_2024 --eventcontent RAW --fileout file:RelVal_Raw_PIon_DATA.root --filein /store/data/Run2024H/EphemeralHLTPhysics0/RAW/v1/000/386/071/00000/3a502248-b2ac-4e8a-b9bf-5f98d5c688dd.root', + 'hlt_data_PIon' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_PIon --relval 9000,50 --datatier "RAW" --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_2024 --eventcontent RAW --fileout file:RelVal_Raw_PIon_DATA.root --filein /store/data/Run2024I/EphemeralHLTPhysics0/RAW/v1/000/386/593/00000/91a08676-199e-404c-9957-f72772ef1354.root', 'HLTrigger/Configuration/test/OnLine_HLT_PIon.py', 'cmsDriver.py RelVal -s HLT:PIon,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_PIon --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --customise=HLTrigger/Configuration/CustomConfigs.HLTRECO --customise=HLTrigger/Configuration/CustomConfigs.customiseGlobalTagForOnlineBeamSpot --era Run3_2024 --processName=HLTRECO --filein file:RelVal_Raw_PIon_DATA.root --fileout file:RelVal_Raw_PIon_DATA_HLT_RECO.root'], - 'hlt_data_PRef' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_PRef --relval 9000,50 --datatier "RAW" --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_2024 --eventcontent RAW --fileout file:RelVal_Raw_PRef_DATA.root --filein /store/data/Run2024H/EphemeralHLTPhysics0/RAW/v1/000/386/071/00000/3a502248-b2ac-4e8a-b9bf-5f98d5c688dd.root', + 'hlt_data_PRef' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_PRef --relval 9000,50 --datatier "RAW" --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_2024 --eventcontent RAW --fileout file:RelVal_Raw_PRef_DATA.root --filein /store/data/Run2024I/EphemeralHLTPhysics0/RAW/v1/000/386/593/00000/91a08676-199e-404c-9957-f72772ef1354.root', 'HLTrigger/Configuration/test/OnLine_HLT_PRef.py', 'cmsDriver.py RelVal -s HLT:PRef,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_PRef --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --customise=HLTrigger/Configuration/CustomConfigs.HLTRECO --customise=HLTrigger/Configuration/CustomConfigs.customiseGlobalTagForOnlineBeamSpot --era Run3_2024 --processName=HLTRECO --filein file:RelVal_Raw_PRef_DATA.root --fileout file:RelVal_Raw_PRef_DATA_HLT_RECO.root'], - 'hlt_data_Special' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_Special --relval 9000,50 --datatier "RAW" --eventcontent RAW --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_2024 --fileout file:RelVal_Raw_Special_DATA.root --filein /store/data/Run2024H/EphemeralHLTPhysics0/RAW/v1/000/386/071/00000/3a502248-b2ac-4e8a-b9bf-5f98d5c688dd.root', + 'hlt_data_Special' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_Special --relval 9000,50 --datatier "RAW" --eventcontent RAW --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_2024 --fileout file:RelVal_Raw_Special_DATA.root --filein /store/data/Run2024I/EphemeralHLTPhysics0/RAW/v1/000/386/593/00000/91a08676-199e-404c-9957-f72772ef1354.root', 'HLTrigger/Configuration/test/OnLine_HLT_Special.py', 'cmsDriver.py RelVal -s HLT:Special,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_Special --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --customise=HLTrigger/Configuration/CustomConfigs.HLTRECO --customise=HLTrigger/Configuration/CustomConfigs.customiseGlobalTagForOnlineBeamSpot --era Run3_2024 --processName=HLTRECO --filein file:RelVal_Raw_Special_DATA.root --fileout file:RelVal_Raw_Special_DATA_HLT_RECO.root'], } diff --git a/HLTrigger/Configuration/test/cmsDriver.csh b/HLTrigger/Configuration/test/cmsDriver.csh index 697019d101095..68482166c6d23 100755 --- a/HLTrigger/Configuration/test/cmsDriver.csh +++ b/HLTrigger/Configuration/test/cmsDriver.csh @@ -42,7 +42,7 @@ set InputGenSimSpec3 = $InputGenSimGRun3 set InputLHCRawGRun0 = /store/data/Run2012A/MuEG/RAW/v1/000/191/718/14932935-E289-E111-830C-5404A6388697.root set InputLHCRawGRun1 = /store/data/Run2015D/MuonEG/RAW/v1/000/256/677/00000/80950A90-745D-E511-92FD-02163E011C5D.root set InputLHCRawGRun2 = /store/data/Run2016B/JetHT/RAW/v1/000/272/762/00000/C666CDE2-E013-E611-B15A-02163E011DBE.root -set InputLHCRawGRun3 = /store/data/Run2024H/EphemeralHLTPhysics0/RAW/v1/000/386/071/00000/3a502248-b2ac-4e8a-b9bf-5f98d5c688dd.root +set InputLHCRawGRun3 = /store/data/Run2024I/EphemeralHLTPhysics0/RAW/v1/000/386/593/00000/91a08676-199e-404c-9957-f72772ef1354.root set InputLHCRawHIon1 = /store/hidata/HIRun2015/HIHardProbes/RAW/v1/000/263/718/00000/08057733-02A5-E511-9C7D-02163E014606.root set InputLHCRawHIon2 = /store/hidata/HIRun2018A/HIHardProbes/RAW/v1/000/326/479/00000/0E2CC5D5-9D87-7348-9219-B00CD718C847.root set InputLHCRawHIon3 = /store/hidata/HIRun2022A/HITestRaw0/RAW/v1/000/362/321/00000/f467ee64-fc64-47a6-9d8a-7ca73ebca2bd.root diff --git a/HLTrigger/Configuration/test/testAccessToEDMInputsOfHLTTests_filelist.txt b/HLTrigger/Configuration/test/testAccessToEDMInputsOfHLTTests_filelist.txt index a79abbe9c8828..9c286c8b03449 100644 --- a/HLTrigger/Configuration/test/testAccessToEDMInputsOfHLTTests_filelist.txt +++ b/HLTrigger/Configuration/test/testAccessToEDMInputsOfHLTTests_filelist.txt @@ -7,6 +7,7 @@ /store/data/Run2022B/HLTPhysics/RAW/v1/000/355/456/00000/69b26b27-4bd1-4524-bc18-45f7b9b5e076.root /store/data/Run2023D/EphemeralHLTPhysics0/RAW/v1/000/370/293/00000/2ef73d2a-1fb7-4dac-9961-149525f9e887.root /store/data/Run2024H/EphemeralHLTPhysics0/RAW/v1/000/386/071/00000/3a502248-b2ac-4e8a-b9bf-5f98d5c688dd.root +/store/data/Run2024I/EphemeralHLTPhysics0/RAW/v1/000/386/593/00000/91a08676-199e-404c-9957-f72772ef1354.root /store/group/dpg_trigger/comm_trigger/TriggerStudiesGroup/STORM/GEN-SIM/CMSSW_5/143C21CD-E8A2-E311-87BE-0025904C66E8.root /store/group/dpg_trigger/comm_trigger/TriggerStudiesGroup/STORM/GEN-SIM/CMSSW_7/72B2C6B5-9740-E411-8FF7-002618FDA26D.root /store/group/dpg_trigger/comm_trigger/TriggerStudiesGroup/STORM/GEN-SIM/CMSSW_7/8C172C6B-28FD-E311-8A62-0026189438F4.root From 6dbf82d6ac36d9a917295b04c3fd0d0628fca7f2 Mon Sep 17 00:00:00 2001 From: iarspider Date: Thu, 12 Dec 2024 10:48:38 +0100 Subject: [PATCH 253/418] Fix DQM config test: Increase number of sequences to process --- DQMOffline/Configuration/test/BuildFile.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DQMOffline/Configuration/test/BuildFile.xml b/DQMOffline/Configuration/test/BuildFile.xml index c9647b162fdf5..ce57c5a838afd 100644 --- a/DQMOffline/Configuration/test/BuildFile.xml +++ b/DQMOffline/Configuration/test/BuildFile.xml @@ -4,12 +4,12 @@ - + - + From f0e3769fc8507ee0a76ea0e1107290476ec86a4f Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 12 Dec 2024 10:53:24 +0100 Subject: [PATCH 254/418] update hltPathOwners.json and README file --- HLTrigger/Configuration/scripts/utils/hltPathOwners.json | 3 ++- HLTrigger/Configuration/scripts/utils/readme.md | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/HLTrigger/Configuration/scripts/utils/hltPathOwners.json b/HLTrigger/Configuration/scripts/utils/hltPathOwners.json index dcce569263929..24abfefd6e455 100644 --- a/HLTrigger/Configuration/scripts/utils/hltPathOwners.json +++ b/HLTrigger/Configuration/scripts/utils/hltPathOwners.json @@ -5402,7 +5402,8 @@ "HLT_Mu10_Barrel_L1HP11_IP6_v": { "online?": true, "owners": [ - "BPH" + "BPH", + "EXO" ] }, "HLT_Mu12_DoublePFJets100_PNetBTag_0p11_v": { diff --git a/HLTrigger/Configuration/scripts/utils/readme.md b/HLTrigger/Configuration/scripts/utils/readme.md index cec01022881ad..93e39b3528955 100644 --- a/HLTrigger/Configuration/scripts/utils/readme.md +++ b/HLTrigger/Configuration/scripts/utils/readme.md @@ -22,7 +22,7 @@ Instructions for creating a spreadsheet for the release of a HLT menu. 1. Check if there are Paths without owners in the target configuration. ``` - ./hltListPathsWithoutOwners /dev/CMSSW_14_1_0/GRun --meta hltPathOwners.json + ./hltListPathsWithoutOwners /dev/CMSSW_14_2_0/GRun --meta hltPathOwners.json ``` 2. If there are Paths without owners, update the JSON file accordingly. @@ -39,7 +39,7 @@ Instructions for creating a spreadsheet for the release of a HLT menu. 3. Create the `.csv` files summarising the content of the HLT menu. ```bash - ./hltMenuContentToCSVs /dev/CMSSW_14_1_0/GRun --meta hltPathOwners.json --prescale 2p0E34 + ./hltMenuContentToCSVs /dev/CMSSW_14_2_0/GRun --meta hltPathOwners.json --prescale 2p0E34 ``` In the command above, provide as argument to `--prescale` the name of the PS column to be considered as the main/default PS column for that HLT menu. From 83675c370b091966b3b0a28ac7963b67bae65903 Mon Sep 17 00:00:00 2001 From: iarspider Date: Thu, 12 Dec 2024 16:18:50 +0100 Subject: [PATCH 255/418] Update BuildFile.xml --- DQMOffline/Configuration/test/BuildFile.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DQMOffline/Configuration/test/BuildFile.xml b/DQMOffline/Configuration/test/BuildFile.xml index ce57c5a838afd..411dd57cdf3c8 100644 --- a/DQMOffline/Configuration/test/BuildFile.xml +++ b/DQMOffline/Configuration/test/BuildFile.xml @@ -4,12 +4,12 @@ - + - + From 3121f3729d255dfbd1732f8194a68bcabc3f53e6 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Mon, 2 Dec 2024 13:29:18 -0600 Subject: [PATCH 256/418] Added ModuleEventAllocMonitor Service - refactored code used from ModuleAllocMonitor --- PerfTools/AllocMonitor/README.md | 29 +- .../plugins/ModuleAllocMonitor.cc | 102 +--- .../plugins/ModuleEventAllocMonitor.cc | 438 ++++++++++++++++++ .../AllocMonitor/plugins/ThreadTracker.cc | 32 ++ .../AllocMonitor/plugins/ThreadTracker.h | 132 ++++++ PerfTools/AllocMonitor/plugins/mea_AllocMap.h | 98 ++++ .../edmModuleEventAllocMonitorAnalyze.py | 245 ++++++++++ .../AllocMonitor/test/test_catch2_allocmap.cc | 81 ++++ 8 files changed, 1052 insertions(+), 105 deletions(-) create mode 100644 PerfTools/AllocMonitor/plugins/ModuleEventAllocMonitor.cc create mode 100644 PerfTools/AllocMonitor/plugins/ThreadTracker.cc create mode 100644 PerfTools/AllocMonitor/plugins/ThreadTracker.h create mode 100644 PerfTools/AllocMonitor/plugins/mea_AllocMap.h create mode 100755 PerfTools/AllocMonitor/scripts/edmModuleEventAllocMonitorAnalyze.py create mode 100644 PerfTools/AllocMonitor/test/test_catch2_allocmap.cc diff --git a/PerfTools/AllocMonitor/README.md b/PerfTools/AllocMonitor/README.md index 02a51dbe44b12..4236cf0178ccc 100644 --- a/PerfTools/AllocMonitor/README.md +++ b/PerfTools/AllocMonitor/README.md @@ -85,8 +85,8 @@ This service is multi-thread safe. Note that when run multi-threaded the maximum This service registers a monitor when the service is created (after python parsing is finished but before any modules have been loaded into cmsRun) and prints its accumulated information to the specified file at specified intervals. Both the file name and interval are specified by setting parameters of the service in the configuration. The parameters are -- filename: name of file to which to write reports -- millisecondsPerMeasurement: number of milliseconds to wait between making each report +- `filename`: name of file to which to write reports +- `millisecondsPerMeasurement`: number of milliseconds to wait between making each report The output file contains the following information on each line - The time, in milliseconds, since the service was created @@ -108,10 +108,27 @@ This service registers a monitor when the service is created (after python parsi have been loaded into cmsRun) and writes module related information to the specified file. The file name, an optional list of module names, and an optional number of initial events to skip are specified by setting parameters of the service in the configuration. The parameters are -- filename: name of file to which to write reports -- moduleNames: list of modules which should have their information added to the file. An empty list specifies all modules should be included. -- nEventsToSkip: the number of initial events that must be processed before reporting happens. +- `filename`: name of file to which to write reports +- `moduleNames`: list of modules which should have their information added to the file. An empty list specifies all modules should be included. +- `nEventsToSkip`: the number of initial events that must be processed before reporting happens. The beginning of the file contains a description of the structure and contents of the file. -This service is multi-thread safe. \ No newline at end of file +This service is multi-thread safe. + + +### ModuleEventAllocMonitor +This service registers a monitor when the service is created (after python parsing is finished but before any modules +have been loaded into cmsRun) and writes event based module related information to the specified file. The service +keeps track of the address of each allocation requested during an event from each module and pairs them with any +deallocation using the same address. The list of addresses are kept until the event data products are deleted at which +time the dallocations are paired with allocations done in a module. The list of addresses are then cleared (to keep memory usage down) but the amount of unassociated deallocations for each module is recorded per event. +The file name, an optional list of module names, and an optional number of initial events to skip are specified by setting parameters of the +service in the configuration. The parameters are +- `filename`: name of file to which to write reports +- `moduleNames`: list of modules which should have their information added to the file. An empty list specifies all modules should be included. +- `nEventsToSkip`: the number of initial events that must be processed before reporting happens. + +The beginning of the file contains a description of the structure and contents of the file. The file can be analyzed with the helper script `edmModuleEventAllocMonitorAnalyze.py`. The script can be used to find modules where the memory is being retained between Events as well as modules where the memory appears to be growing Event to Event. Use `--help` with the script for a full description. + +This service is multi-thread safe. diff --git a/PerfTools/AllocMonitor/plugins/ModuleAllocMonitor.cc b/PerfTools/AllocMonitor/plugins/ModuleAllocMonitor.cc index e6fb72ccefb70..014f25df18f2c 100644 --- a/PerfTools/AllocMonitor/plugins/ModuleAllocMonitor.cc +++ b/PerfTools/AllocMonitor/plugins/ModuleAllocMonitor.cc @@ -32,106 +32,10 @@ #include "moduleAlloc_setupFile.h" #include "ThreadAllocInfo.h" +#include "ThreadTracker.h" namespace { - inline auto thread_id() { -#if defined(ALLOC_USE_PTHREADS) - /*NOTE: if use pthread_self, the values returned by linux had - lots of hash collisions when using a simple % hash. Worked - better if first divided value by 0x700 and then did %. - [test done on el8] - */ - return pthread_self(); -#else - return syscall(SYS_gettid); -#endif - } - - struct ThreadTracker { - static constexpr unsigned int kHashedEntries = 128; - static constexpr unsigned int kExtraEntries = 128; - static constexpr unsigned int kTotalEntries = kHashedEntries + kExtraEntries; - using entry_type = decltype(thread_id()); - static constexpr entry_type kUnusedEntry = ~entry_type(0); - std::array, kHashedEntries> hashed_threads_; - std::array, kExtraEntries> extra_threads_; - - ThreadTracker() { - //put a value which will not match the % used when looking up the entry - entry_type entry = 0; - for (auto& v : hashed_threads_) { - v = ++entry; - } - //assume kUsedEntry is not a valid thread-id - for (auto& v : extra_threads_) { - v = kUnusedEntry; - } - } - - std::size_t thread_index() { - auto id = thread_id(); - auto index = thread_index_guess(id); - auto used_id = hashed_threads_[index].load(); - - if (id == used_id) { - return index; - } - //try to be first thread to grab the index - auto expected = entry_type(index + 1); - if (used_id == expected) { - if (hashed_threads_[index].compare_exchange_strong(expected, id)) { - return index; - } else { - //another thread just beat us so have to go to non-hash storage - return find_new_index(id); - } - } - //search in non-hash storage - return find_index(id); - } - - private: - std::size_t thread_index_guess(entry_type id) const { -#if defined(ALLOC_USE_PTHREADS) - return (id / 0x700) % kHashedEntries; -#else - return id % kHashedEntries; -#endif - } - - std::size_t find_new_index(entry_type id) { - std::size_t index = 0; - for (auto& v : extra_threads_) { - entry_type expected = kUnusedEntry; - if (v == expected) { - if (v.compare_exchange_strong(expected, id)) { - return index + kHashedEntries; - } - } - ++index; - } - //failed to find an open entry - abort(); - return 0; - } - - std::size_t find_index(entry_type id) { - std::size_t index = 0; - for (auto const& v : extra_threads_) { - if (v == id) { - return index + kHashedEntries; - } - ++index; - } - return find_new_index(id); - } - }; - - static ThreadTracker& getTracker() { - static ThreadTracker s_tracker; - return s_tracker; - } - + using namespace cms::perftools::allocMon; using namespace edm::service::moduleAlloc; class MonitorAdaptor : public cms::perftools::AllocMonitorBase { public: @@ -149,7 +53,7 @@ namespace { private: static ThreadAllocInfo& threadAllocInfo() { static ThreadAllocInfo s_info[ThreadTracker::kTotalEntries]; - return s_info[getTracker().thread_index()]; + return s_info[ThreadTracker::instance().thread_index()]; } void allocCalled(size_t iRequested, size_t iActual, void const*) final { auto& allocInfo = threadAllocInfo(); diff --git a/PerfTools/AllocMonitor/plugins/ModuleEventAllocMonitor.cc b/PerfTools/AllocMonitor/plugins/ModuleEventAllocMonitor.cc new file mode 100644 index 0000000000000..8d23f5f2082b1 --- /dev/null +++ b/PerfTools/AllocMonitor/plugins/ModuleEventAllocMonitor.cc @@ -0,0 +1,438 @@ +// -*- C++ -*- +// +// Package: PerfTools/AllocMonitor +// Class : ModuleEventAllocMonitor +// +// Implementation: +// [Notes on implementation] +// +// Original Author: Christopher Jones +// Created: Mon, 21 Aug 2023 20:31:57 GMT +// + +// system include files +#include +#include + +// user include files +#include "PerfTools/AllocMonitor/interface/AllocMonitorBase.h" +#include "PerfTools/AllocMonitor/interface/AllocMonitorRegistry.h" +#include "FWCore/Framework/interface/ComponentDescription.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ServiceRegistry/interface/ServiceRegistry.h" +#include "FWCore/ServiceRegistry/interface/ServiceMaker.h" +#include "FWCore/ServiceRegistry/interface/SystemBounds.h" +#include "FWCore/ServiceRegistry/interface/ModuleCallingContext.h" +#include "DataFormats/Provenance/interface/ModuleDescription.h" +#include "FWCore/Concurrency/interface/ThreadSafeOutputFileStream.h" +#include "FWCore/Utilities/interface/thread_safety_macros.h" + +#include "monitor_file_utilities.h" +#include "mea_AllocMap.h" +#include "ThreadTracker.h" + +#define DEBUGGER_BREAK + +#if defined(DEBUGGER_BREAK) +extern "C" { +void break_on_unmatched_dealloc() {} +} +#endif +namespace { + using namespace edm::service::moduleEventAlloc; + using namespace edm::moduleAlloc::monitor_file_utilities; + + struct ThreadAllocInfo { + AllocMap allocMap_; + std::vector unmatched_; + + //corresponds to temporary memory used + std::size_t totalMatchedDeallocSize_ = 0; + //corresponds to memory held over from previous allocation + std::size_t totalUnmatchedDealloc_ = 0; + std::size_t numMatchedDeallocs_ = 0; + std::size_t numUnmatchedDeallocs_ = 0; + + bool active_ = false; + void alloc(void const* iAddress, std::size_t iSize) { allocMap_.insert(iAddress, iSize); } + + void dealloc(void const* iAddress, std::size_t iSize) { + auto size = allocMap_.erase(iAddress); + if (size == 0) { +#if defined(DEBUGGER_BREAK) + break_on_unmatched_dealloc(); +#endif + totalUnmatchedDealloc_ += iSize; + ++numUnmatchedDeallocs_; + unmatched_.push_back(iAddress); + } else { + totalMatchedDeallocSize_ += iSize; + ++numMatchedDeallocs_; + } + } + + void reset() { + totalMatchedDeallocSize_ = 0; + totalUnmatchedDealloc_ = 0; + numMatchedDeallocs_ = 0; + numUnmatchedDeallocs_ = 0; + allocMap_.clear(); + unmatched_.clear(); + active_ = true; + } + + void reset(AllocMap const& iBefore) { + totalMatchedDeallocSize_ = 0; + totalUnmatchedDealloc_ = 0; + numMatchedDeallocs_ = 0; + numUnmatchedDeallocs_ = 0; + //Need to call this before active_ = true + allocMap_ = iBefore; + unmatched_.clear(); + active_ = true; + } + + void deactivate() { active_ = false; } + }; + class MonitorAdaptor : public cms::perftools::AllocMonitorBase { + public: + static void startOnThread() { threadAllocInfo().reset(); } + static void startOnThread(AllocMap const& iBefore) { threadAllocInfo().reset(iBefore); } + + static ThreadAllocInfo const& stopOnThread() { + auto& t = threadAllocInfo(); + if (not t.active_) { + t.reset(); + } else { + t.deactivate(); + } + return t; + } + + private: + static ThreadAllocInfo& threadAllocInfo() { + using namespace cms::perftools::allocMon; + CMS_THREAD_SAFE static ThreadAllocInfo s_info[ThreadTracker::kTotalEntries]; + return s_info[ThreadTracker::instance().thread_index()]; + } + void allocCalled(size_t iRequested, size_t iActual, void const* iAddress) final { + auto& allocInfo = threadAllocInfo(); + if (not allocInfo.active_) { + return; + } + allocInfo.alloc(iAddress, iActual); + } + void deallocCalled(size_t iActual, void const* iAddress) final { + auto& allocInfo = threadAllocInfo(); + if (not allocInfo.active_) { + return; + } + + allocInfo.dealloc(iAddress, iActual); + } + }; + + class Filter { + public: + //a negative module id corresponds to an ES module + Filter(std::vector const* moduleIDs); + //returns true if should keep this + //F has an operator() that returns a AllocMap + template + bool startOnThread(int moduleID, F&&) const; + const ThreadAllocInfo* stopOnThread(int moduleID) const; + + bool startOnThread() const; + const ThreadAllocInfo* stopOnThread() const; + + void setGlobalKeep(bool iShouldKeep); + bool globalKeep() const { return globalKeep_.load(); } + + bool keepModuleInfo(int moduleID) const; + + private: + std::atomic globalKeep_ = true; + std::vector const* moduleIDs_ = nullptr; + }; + + Filter::Filter(std::vector const* moduleIDs) : moduleIDs_{moduleIDs} {} + + template + bool Filter::startOnThread(int moduleID, F&& iInfoFunctor) const { + if (not globalKeep_.load()) { + return false; + } + if (keepModuleInfo(moduleID)) { + MonitorAdaptor::startOnThread(iInfoFunctor()); + return true; + } + return false; + } + + const ThreadAllocInfo* Filter::stopOnThread(int moduleID) const { + if (not globalKeep_.load()) { + return nullptr; + } + + if (keepModuleInfo(moduleID)) { + return &MonitorAdaptor::stopOnThread(); + } + return nullptr; + } + + bool Filter::startOnThread() const { + if (not globalKeep_.load()) { + return false; + } + MonitorAdaptor::startOnThread(); + return true; + } + + const ThreadAllocInfo* Filter::stopOnThread() const { + if (not globalKeep_.load()) { + return nullptr; + } + return &MonitorAdaptor::stopOnThread(); + } + + void Filter::setGlobalKeep(bool iShouldKeep) { globalKeep_.store(iShouldKeep); } + + bool Filter::keepModuleInfo(int moduleID) const { + if ((nullptr == moduleIDs_) or (moduleIDs_->empty()) or + (std::binary_search(moduleIDs_->begin(), moduleIDs_->end(), moduleID))) { + return true; + } + return false; + } +} // namespace + +class ModuleEventAllocMonitor { +public: + ModuleEventAllocMonitor(edm::ParameterSet const& iPS, edm::ActivityRegistry& iAR) + : moduleNames_(iPS.getUntrackedParameter>("moduleNames")), + nEventsToSkip_(iPS.getUntrackedParameter("nEventsToSkip")), + filter_(&moduleIDs_) { + (void)cms::perftools::AllocMonitorRegistry::instance().createAndRegisterMonitor(); + + if (nEventsToSkip_ > 0) { + filter_.setGlobalKeep(false); + } + auto file = std::make_shared(iPS.getUntrackedParameter("fileName")); + { + std::stringstream s; + s << "#Format\n" + "# --------\n" + "# prefixes\n" + "# #: comment\n" + "# @: module info\n" + "# A: memory info for call to 'acquire'\n" + "# M: memory info for standard module method (i.e. produce, analyze or filter)\n" + "# D: memory reclaimed when Event products are being deleted at end of Event processing\n" + "# --------\n" + "# line formats\n" + "#@ \n" + "#A <# temp allocations> <# unmatched deallocations> <# " + "unmatched allocations [also copied]>\n" + "#M <# temp allocations> <# unmatched deallocations> <# unmatched allocations>\n" + "#D <# matched deallocations>\n"; + file->write(s.str()); + } + if (not moduleNames_.empty()) { + iAR.watchPreModuleConstruction([this, file](auto const& description) { + auto found = std::find(moduleNames_.begin(), moduleNames_.end(), description.moduleLabel()); + if (found != moduleNames_.end()) { + moduleIDs_.push_back(description.id()); + nModules_ = moduleIDs_.size(); + std::sort(moduleIDs_.begin(), moduleIDs_.end()); + std::stringstream s; + s << "@ " << description.moduleLabel() << " " << description.moduleName() << " " << description.id() << "\n"; + file->write(s.str()); + } + }); + } else { + iAR.watchPreModuleConstruction([this, file](auto const& description) { + if (description.id() + 1 > nModules_) { + nModules_ = description.id() + 1; + } + std::stringstream s; + s << "@ " << description.moduleLabel() << " " << description.moduleName() << " " << description.id() << "\n"; + file->write(s.str()); + }); + } + if (nEventsToSkip_ > 0) { + iAR.watchPreSourceEvent([this](auto) { + ++nEventsStarted_; + if (nEventsStarted_ > nEventsToSkip_) { + filter_.setGlobalKeep(true); + } + }); + } + iAR.watchPreallocate([this](auto const& alloc) { nStreams_ = alloc.maxNumberOfStreams(); }); + iAR.watchPreBeginJob([this](auto const&, auto const&) { + streamModuleAllocs_.resize(nStreams_ * nModules_); + streamModuleInAcquire_ = std::vector>(nStreams_ * nModules_); + streamSync_ = std::vector>(nStreams_); + }); + + iAR.watchPreModuleEvent([this](auto const& iStream, auto const& iMod) { + auto mod_id = module_id(iMod); + auto acquireInfo = [this, iStream, mod_id]() { + //acquire might have started stuff + streamSync_[iStream.streamID().value()].load(); + auto index = moduleIndex(mod_id); + auto const& inAcquire = streamModuleInAcquire_[nModules_ * iStream.streamID().value() + index]; + while (inAcquire.load()) + ; + return streamModuleAllocs_[nModules_ * iStream.streamID().value() + index]; + }; + filter_.startOnThread(mod_id, acquireInfo); + }); + iAR.watchPostModuleEvent([this, file](auto const& iStream, auto const& iMod) { + auto mod_id = module_id(iMod); + auto info = filter_.stopOnThread(mod_id); + if (info) { + auto v = std::accumulate(info->allocMap_.allocationSizes().begin(), info->allocMap_.allocationSizes().end(), 0); + std::stringstream s; + s << "M " << mod_id << " " << iStream.streamID().value() << " " << info->totalMatchedDeallocSize_ << " " + << info->numMatchedDeallocs_ << " " << info->totalUnmatchedDealloc_ << " " << info->numUnmatchedDeallocs_ + << " " << v << " " << info->allocMap_.allocationSizes().size() << "\n"; + file->write(s.str()); + auto index = moduleIndex(mod_id); + streamModuleAllocs_[nModules_ * iStream.streamID().value() + index] = info->allocMap_; + ++streamSync_[iStream.streamID().value()]; + } + }); + + iAR.watchPreModuleEventAcquire([this](auto const& iStream, auto const& iMod) { + auto index = moduleIndex(module_id(iMod)); + auto acquireInfo = [index, this, iStream]() { + streamModuleInAcquire_[nModules_ * iStream.streamID().value() + index].store(true); + return AllocMap(); + }; + filter_.startOnThread(module_id(iMod), acquireInfo); + }); + iAR.watchPostModuleEventAcquire([this, file](auto const& iStream, auto const& iMod) { + auto mod_id = module_id(iMod); + auto info = filter_.stopOnThread(mod_id); + if (info) { + assert(info->allocMap_.allocationSizes().size() == info->allocMap_.size()); + auto v = std::accumulate(info->allocMap_.allocationSizes().begin(), info->allocMap_.allocationSizes().end(), 0); + std::stringstream s; + s << "A " << mod_id << " " << iStream.streamID().value() << " " << info->totalMatchedDeallocSize_ << " " + << info->numMatchedDeallocs_ << " " << info->totalUnmatchedDealloc_ << " " << info->numUnmatchedDeallocs_ + << " " << v << " " << info->allocMap_.allocationSizes().size() << "\n"; + file->write(s.str()); + auto index = mod_id; + if (not moduleIDs_.empty()) { + auto it = std::lower_bound(moduleIDs_.begin(), moduleIDs_.end(), mod_id); + index = it - moduleIDs_.begin(); + } + { + auto const& alloc = streamModuleAllocs_[nModules_ * iStream.streamID().value() + index]; + assert(alloc.size() == alloc.allocationSizes().size()); + } + streamModuleAllocs_[nModules_ * iStream.streamID().value() + index] = info->allocMap_; + { + auto const& alloc = streamModuleAllocs_[nModules_ * iStream.streamID().value() + index]; + assert(alloc.size() == alloc.allocationSizes().size()); + } + ++streamSync_[iStream.streamID().value()]; + streamModuleInAcquire_[nModules_ * iStream.streamID().value() + index].store(false); + } + }); + //NOTE: the following watch points may need to be used in the future if allocations occurring during these + // transition points are confusing the findings. + /* + iRegistry.watchPreModuleEventDelayedGet( + StreamEDModuleState(logFile, beginTime, iFilter)); + iRegistry.watchPostModuleEventDelayedGet( + StreamEDModuleState(logFile, beginTime, iFilter)); + iRegistry.watchPreEventReadFromSource( + StreamEDModuleState(logFile, beginTime, iFilter)); + iRegistry.watchPostEventReadFromSource( + StreamEDModuleState(logFile, beginTime, iFilter)); + */ + iAR.watchPreClearEvent([this](auto const& iStream) { filter_.startOnThread(); }); + iAR.watchPostClearEvent([this, file](auto const& iStream) { + auto info = filter_.stopOnThread(); + if (info) { + streamSync_[iStream.streamID().value()].load(); + auto itBegin = streamModuleAllocs_.begin() + nModules_ * iStream.streamID().value(); + auto const itEnd = itBegin + nModules_; + + { + std::vector moduleDeallocSize(nModules_); + std::vector moduleDeallocCount(nModules_); + for (auto& address : info->unmatched_) { + decltype(itBegin->findOffset(address)) offset; + auto found = std::find_if(itBegin, itEnd, [&address, &offset](auto const& elem) { + return elem.size() != 0 and (offset = elem.findOffset(address)) != elem.size(); + }); + if (found != itEnd) { + auto index = std::distance(itBegin, found); + moduleDeallocSize[index] += found->allocationSizes()[offset]; + moduleDeallocCount[index] += 1; + } + } + for (unsigned int index = 0; index < nModules_; ++index) { + if (moduleDeallocCount[index] != 0) { + auto id = moduleIDs_.empty() ? index : moduleIDs_[index]; + std::stringstream s; + s << "D " << id << " " << iStream.streamID().value() << " " << moduleDeallocSize[index] << " " + << moduleDeallocCount[index] << "\n"; + file->write(s.str()); + } + } + } + + for (auto it = itBegin; it != itEnd; ++it) { + it->clear(); + } + } + }); + } + + static void fillDescriptions(edm::ConfigurationDescriptions& iDesc) { + edm::ParameterSetDescription ps; + ps.addUntracked("fileName")->setComment("Name of file to write allocation info."); + ps.addUntracked>("moduleNames", std::vector()) + ->setComment( + "Module labels for modules which should have their allocations monitored. If empty all modules will be " + "monitored."); + ps.addUntracked("nEventsToSkip", 0) + ->setComment( + "Number of events to skip before turning on monitoring. If used in a multi-threaded application, " + "monitoring may be started for previous events which are still running at the time this threshold is " + "reached."); + iDesc.addDefault(ps); + } + +private: + unsigned int moduleIndex(unsigned int mod_id) const { + auto index = mod_id; + if (not moduleIDs_.empty()) { + auto it = std::lower_bound(moduleIDs_.begin(), moduleIDs_.end(), mod_id); + index = it - moduleIDs_.begin(); + } + return index; + } + + bool forThisModule(unsigned int iID) const { + return (moduleNames_.empty() or std::binary_search(moduleIDs_.begin(), moduleIDs_.end(), iID)); + } + //The size is (#streams)*(#modules) + CMS_THREAD_GUARD(streamSync_) std::vector streamModuleAllocs_; + CMS_THREAD_GUARD(streamSync_) std::vector> streamModuleInAcquire_; + std::vector> streamSync_; + std::vector moduleNames_; + std::vector moduleIDs_; + unsigned int nStreams_ = 0; + unsigned int nModules_ = 0; + unsigned int nEventsToSkip_ = 0; + std::atomic nEventsStarted_{0}; + Filter filter_; +}; + +DEFINE_FWK_SERVICE(ModuleEventAllocMonitor); diff --git a/PerfTools/AllocMonitor/plugins/ThreadTracker.cc b/PerfTools/AllocMonitor/plugins/ThreadTracker.cc new file mode 100644 index 0000000000000..f5ab9e9801faa --- /dev/null +++ b/PerfTools/AllocMonitor/plugins/ThreadTracker.cc @@ -0,0 +1,32 @@ +// -*- C++ -*- +// +// Package: PerfTools/AllocMonitor +// Class : ThreadTracker +// +// Implementation: +// [Notes on implementation] +// +// Original Author: Christopher Jones +// Created: Mon, 11 Nov 2024 22:54:23 GMT +// + +// system include files +#include "FWCore/Utilities/interface/thread_safety_macros.h" + +// user include files +#include "ThreadTracker.h" + +// +// constants, enums and typedefs +// + +// +// static data member definitions +// + +namespace cms::perftools::allocMon { + ThreadTracker& ThreadTracker::instance() { + CMS_THREAD_SAFE static ThreadTracker s_tracker; + return s_tracker; + } +} // namespace cms::perftools::allocMon diff --git a/PerfTools/AllocMonitor/plugins/ThreadTracker.h b/PerfTools/AllocMonitor/plugins/ThreadTracker.h new file mode 100644 index 0000000000000..40d8d81e143d2 --- /dev/null +++ b/PerfTools/AllocMonitor/plugins/ThreadTracker.h @@ -0,0 +1,132 @@ +#ifndef PerfTools_AllocMonitor_ThreadTracker_h +#define PerfTools_AllocMonitor_ThreadTracker_h +// -*- C++ -*- +// +// Package: PerfTools/AllocMonitor +// Class : ThreadTracker +// +/**\class ThreadTracker ThreadTracker.h "ThreadTracker.h" + + Description: [one line class summary] + + Usage: + + +*/ +// +// Original Author: Christopher Jones +// Created: Mon, 11 Nov 2024 22:54:21 GMT +// + +// system include files +#if defined(ALLOC_USE_PTHREADS) +#include +#else +#include +#include +#endif + +#include +#include +#include +// user include files + +// forward declarations + +namespace cms::perftools::allocMon { + inline auto thread_id() { +#if defined(ALLOC_USE_PTHREADS) + /*NOTE: if use pthread_self, the values returned by linux had + lots of hash collisions when using a simple % hash. Worked + better if first divided value by 0x700 and then did %. + [test done on el8] + */ + return pthread_self(); +#else + return syscall(SYS_gettid); +#endif + } + + struct ThreadTracker { + static constexpr unsigned int kHashedEntries = 128; + static constexpr unsigned int kExtraEntries = 128; + static constexpr unsigned int kTotalEntries = kHashedEntries + kExtraEntries; + using entry_type = decltype(thread_id()); + static constexpr entry_type kUnusedEntry = ~entry_type(0); + std::array, kHashedEntries> hashed_threads_; + std::array, kExtraEntries> extra_threads_; + + std::size_t thread_index() { + auto id = thread_id(); + auto index = thread_index_guess(id); + auto used_id = hashed_threads_[index].load(); + + if (id == used_id) { + return index; + } + //try to be first thread to grab the index + auto expected = entry_type(index + 1); + if (used_id == expected) { + if (hashed_threads_[index].compare_exchange_strong(expected, id)) { + return index; + } else { + //another thread just beat us so have to go to non-hash storage + return find_new_index(id); + } + } + //search in non-hash storage + return find_index(id); + } + + static ThreadTracker& instance(); + + private: + ThreadTracker() { + //put a value which will not match the % used when looking up the entry + entry_type entry = 0; + for (auto& v : hashed_threads_) { + v = ++entry; + } + //assume kUsedEntry is not a valid thread-id + for (auto& v : extra_threads_) { + v = kUnusedEntry; + } + } + + std::size_t thread_index_guess(entry_type id) const { +#if defined(ALLOC_USE_PTHREADS) + return (id / 0x700) % kHashedEntries; +#else + return id % kHashedEntries; +#endif + } + + std::size_t find_new_index(entry_type id) { + std::size_t index = 0; + for (auto& v : extra_threads_) { + entry_type expected = kUnusedEntry; + if (v == expected) { + if (v.compare_exchange_strong(expected, id)) { + return index + kHashedEntries; + } + } + ++index; + } + //failed to find an open entry + abort(); + return 0; + } + + std::size_t find_index(entry_type id) { + std::size_t index = 0; + for (auto const& v : extra_threads_) { + if (v == id) { + return index + kHashedEntries; + } + ++index; + } + return find_new_index(id); + } + }; +} // namespace cms::perftools::allocMon +#endif diff --git a/PerfTools/AllocMonitor/plugins/mea_AllocMap.h b/PerfTools/AllocMonitor/plugins/mea_AllocMap.h new file mode 100644 index 0000000000000..ec827e0db6952 --- /dev/null +++ b/PerfTools/AllocMonitor/plugins/mea_AllocMap.h @@ -0,0 +1,98 @@ +#ifndef PerfTools_AllocMonitor_mea_AllocMap_h +#define PerfTools_AllocMonitor_mea_AllocMap_h +// -*- C++ -*- +// +// Package: PerfTools/AllocMonitor +// Class : AllocMap +// +/**\class mea_AllocMap mea_AllocMap.h "PerfTools/AllocMonitor/interface/mea_AllocMap.h" + + Description: [one line class summary] + + Usage: + + +*/ +// +// Original Author: Christopher Jones +// Created: Fri, 11 Oct 2024 19:15:46 GMT +// + +// system include files +#include +#include + +// user include files + +// forward declarations + +namespace edm::service::moduleEventAlloc { + class AllocMap { + public: + AllocMap() = default; + AllocMap(AllocMap const&) = default; + AllocMap& operator=(AllocMap const&) = default; + AllocMap(AllocMap&&) = default; + AllocMap& operator=(AllocMap&&) = default; + + // ---------- const member functions --------------------- + std::size_t size() const { return keys_.size(); } + + //returns size() if not here + std::size_t findOffset(void const* iKey) const { + auto bound = std::lower_bound(keys_.begin(), keys_.end(), iKey); + if (bound == keys_.end() or *bound != iKey) { + return size(); + } + return bound - keys_.begin(); + } + + std::vector const& allocationSizes() const { return values_; } + // ---------- static member functions -------------------- + + // ---------- member functions --------------------------- + void insert(void const* iKey, std::size_t iValue) { + auto offset = insertOffset(iKey); + if (offset != size() and keys_[offset] == iKey) { + values_[offset] = iValue; + return; + } + keys_.insert(keys_.begin() + offset, iKey); + values_.insert(values_.begin() + offset, iValue); + } + //returns 0 if not here else returns allocation size + std::size_t erase(void const* iKey) { + assert(keys_.size() == values_.size()); + auto offset = findOffset(iKey); + if (offset == size()) { + return 0; + } + auto v = values_[offset]; + values_.erase(values_.begin() + offset); + keys_.erase(keys_.begin() + offset); + + return v; + } + void clearSizes() { + values_.clear(); + values_.shrink_to_fit(); + } + + void clear() { + clearSizes(); + keys_.clear(); + keys_.shrink_to_fit(); + } + + private: + // ---------- member data -------------------------------- + std::size_t insertOffset(void const* key) const { + auto bound = std::lower_bound(keys_.begin(), keys_.end(), key); + return bound - keys_.begin(); + } + + std::vector keys_; + std::vector values_; + }; +} // namespace edm::service::moduleEventAlloc +#endif diff --git a/PerfTools/AllocMonitor/scripts/edmModuleEventAllocMonitorAnalyze.py b/PerfTools/AllocMonitor/scripts/edmModuleEventAllocMonitorAnalyze.py new file mode 100755 index 0000000000000..df4032c3cd126 --- /dev/null +++ b/PerfTools/AllocMonitor/scripts/edmModuleEventAllocMonitorAnalyze.py @@ -0,0 +1,245 @@ +#!/usr/bin/env python3 +class ModuleInfo(object): + def __init__(self, label, type_): + self._label = label + self._type = type_ + self._streamInfo = dict() + self._eventInfo = list() + def __repr__(self): + return self._label+" "+self._type+" "+str(self._eventInfo) +class ModuleCall(object): + def __init__(self, data): + self._temp = data[0] + self._nTemp = data[1] + self._unmatched = data[2] + self._nUnmatched = data[3] + self._new = data[4] + self._nNew = data[5] + +class ModuleEventInfo(object): + def __init__(self, modCall, data, streamID): + self._temp = modCall._temp + self._nTemp = modCall._nTemp + self._unmatched = modCall._unmatched + self._nUnmatched = modCall._nUnmatched + self._dataProdAlloc = data[0] + self._nDataProdAlloc = data[1] + self._new = modCall._new - self._dataProdAlloc + self._nNew = modCall._nNew - self._nDataProdAlloc + self._streamID = streamID + def __repr__(self): + return "temp("+str(self._temp)+","+str(self._nTemp)+") un("+str(self._unmatched)+","+str(self._nUnmatched)+") prod("+str(self._dataProdAlloc)+","+str(self._nDataProdAlloc)+") new("+str(self._new)+","+str(self._nNew)+")" +class FileParser(object): + def __init__(self): + self.modules = dict() + self.acquires = dict() + self.nStreams = 0 + pass + def parse(self,file): + for l in file: + self._parseLine(l[:-1]) + def _parseLine(self, line): + if len(line) == 0: + return + if line[0] == '#': + return + if line[0] == '@': + self.addModule(line[2:]) + if line[0] == 'M': + self.moduleCall(line[2:]) + if line[0] == 'A': + self.moduleAcquireCall(line[2:]) + if line[0] == 'D': + self.eventDeallocCall(line[2:]) + def addModule(self, l): + d = l.split(" ") + name, type_, index = d[0:3] + self.modules[int(index)] = ModuleInfo(name,type_) + def moduleCall(self, l): + d = [int(x) for x in l.split(" ")] + m = ModuleCall(d[2:]) + moduleName, streamID = d[0:2] + if streamID+1 > self.nStreams: + self.nStreams = streamID + 1 + self.modules[moduleName]._streamInfo[streamID] = m + if d[0] in self.acquires: + a = self.acquires[moduleName][streamID] + m._temp += a._temp + m._nTemp += a._nTemp + m._unmatched += a._unmatched + m._nUnmatched += a._nUnmatched + def moduleAcquireCall(self,l): + d = [int(x) for x in l.split(" ")] + moduleName, streamID = d[0:2] + m = self.modules[moduleName] + self.acquires.setdefault(moduleName,dict())[streamID] = ModuleCall(d[2:]) + pass + def eventDeallocCall(self,l): + d = [int(x) for x in l.split(" ")] + moduleName, streamID = d[0:2] + streamInfo = self.modules[moduleName]._streamInfo[streamID] + del self.modules[moduleName]._streamInfo[streamID] + self.modules[moduleName]._eventInfo.append(ModuleEventInfo(streamInfo,d[2:],streamID)) + +def reportModulesWithMemoryGrowth(fileParser, showEvents): + ret = [] + for m in fileParser.modules.values(): + mem = 0 + if len(m._eventInfo): + l = list() + previousNewInStream = [0]*fileParser.nStreams + #skip first event as they often have initialization memory + for e in m._eventInfo: + l.append((previousNewInStream[e._streamID], e._unmatched)) + mem += previousNewInStream[e._streamID] - e._unmatched + previousNewInStream[e._streamID] = e._new + if mem and mem > m._eventInfo[0]._new: + increment = [] + for n,u in l: + if len(increment): + increment[-1] -= u + increment.append(n) + if showEvents: + ret.append((m._label,m._type, mem,increment)) + else: + ret.append((m._label, m._type, mem)) + return ret + +def reportModuleDataProductMemory(fileParser, showEvents): + ret = [] + for m in fileParser.modules.values(): + l = list() + retained = False + sum = 0 + for e in m._eventInfo: + l.append(e._dataProdAlloc) + if e._dataProdAlloc > 0: + sum += e._dataProdAlloc + retained = True + if retained: + if showEvents: + ret.append((m._label, m._type, float(sum)/len(l), l)) + else: + ret.append((m._label, m._type, float(sum)/len(l))) + return ret + +def reportModuleRetainingMemory(fileParser, showEvents): + ret =[] + for m in fileParser.modules.values(): + l = list() + retained = False + sum = 0 + for e in m._eventInfo[1:]: + l.append(e._new) + if e._new > 0: + sum += e._new + retained = True + if retained: + if showEvents: + ret.append((m._label, m._type, float(sum)/len(l), l)) + else: + ret.append((m._label, m._type, float(sum)/len(l))) + return ret + +def reportModuleTemporary(fileParser, showEvents): + ret = [] + for m in fileParser.modules.values(): + l = list() + retained = False + sum = 0 + for e in m._eventInfo: + l.append(e._temp) + if e._temp > 0: + sum += e._temp + retained = True + if retained: + if showEvents: + ret.append((m._label, m._type, float(sum)/len(l), l)) + else: + ret.append((m._label, m._type, float(sum)/len(l))) + return ret + +def reportModuleNTemporary(fileParser, showEvents): + ret = [] + for m in fileParser.modules.values(): + l = list() + retained = False + sum = 0 + for e in m._eventInfo: + l.append(e._nTemp) + if e._temp > 0: + sum += e._nTemp + retained = True + if retained: + if showEvents: + ret.append((m._label, m._type, float(sum)/len(l), l)) + else: + ret.append((m._label, m._type, float(sum)/len(l))) + return ret + + +def printReport(values, showEvents, summary, eventSummary, maxColumn): + values.sort(key=lambda x: x[2]) + label = "module label" + classType = "module class type" + if maxColumn == 0: + columnWidths = [len(label),len(classType),len(summary)] + for v in values: + for c in (0,1,2): + if c == 2: + width = len(f"{v[c]}:.2f") + else: + width = len(v[c]) + if width > columnWidths[c]: + columnWidths[c] = width + else: + columnWidths = [maxColumn, maxColumn, maxColumn] + label = label[:maxColumn] + classType = classType[:maxColumn] + print(f"{label:{columnWidths[0]}} {classType:{columnWidths[1]}} {summary:{columnWidths[2]}}") + if showEvents: + print(f" [{eventSummary}]") + + for v in values: + label = v[0] + classType = v[1] + if maxColumn: + label = label[:maxColumn] + classType = classType[:maxColumn] + print(f"{label:{columnWidths[0]}} {classType:{columnWidths[1]}} {v[2]:{columnWidths[2]}.2f}") + if showEvents: + print(f" {v[3]}") + +if __name__=="__main__": + import argparse + + parser = argparse.ArgumentParser(description='Parses files generated from ModuleEventAlloc service') + parser.add_argument('filename', + type=argparse.FileType('r'), # open file + help='file to process') + parser.add_argument('--grew', help='report which modules retained more memory over the job', action='store_true') + parser.add_argument('--retained', help='report which modules retained memory between events (might be deleted at begin of next event)', action='store_true') + parser.add_argument('--product', help="report how much memory each module put into the Event as data products", action='store_true') + parser.add_argument('--tempSize', help="report how much temporary allocated memory each module used when processing the Event", action='store_true') + parser.add_argument('--nTemp', help="report number of temporary allocations each module used when processing the Event", action='store_true') + + parser.add_argument('--eventData', help='for each report, show the per event data associated to the report', action='store_true') + parser.add_argument('--maxColumn', type=int, help='maximum column width for report, 0 for no constraint', default=0) + args = parser.parse_args() + + inputfile = args.filename + + fileParser = FileParser() + fileParser.parse(inputfile) + + if args.grew: + printReport(reportModulesWithMemoryGrowth(fileParser, args.eventData), args.eventData, "total memory growth", "growth each event", args.maxColumn) + if args.retained: + printReport(reportModuleRetainingMemory(fileParser, args.eventData), args.eventData, "average retained", "retained each event", args.maxColumn) + if args.product: + printReport(reportModuleDataProductMemory(fileParser, args.eventData), args.eventData, "average data products size", "data products size each event", args.maxColumn) + if args.tempSize: + printReport(reportModuleTemporary(fileParser, args.eventData), args.eventData, "average temporary allocation size", "temporary allocation size each event", args.maxColumn) + if args.nTemp: + printReport(reportModuleNTemporary(fileParser, args.eventData), args.eventData, "average # of temporary allocation", "# of temporary allocations each event", args.maxColumn) + #print(fileParser.modules) diff --git a/PerfTools/AllocMonitor/test/test_catch2_allocmap.cc b/PerfTools/AllocMonitor/test/test_catch2_allocmap.cc new file mode 100644 index 0000000000000..cec2b237e07c2 --- /dev/null +++ b/PerfTools/AllocMonitor/test/test_catch2_allocmap.cc @@ -0,0 +1,81 @@ +#include "catch.hpp" + +#include "PerfTools/AllocMonitor/plugins/mea_AllocMap.h" + +using namespace edm::service::moduleEventAlloc; + +namespace { + void* address(int i) { return reinterpret_cast(i); } +} // namespace + +TEST_CASE("Test ema::AllocMap", "[AllocMap]") { + SECTION("empty") { + AllocMap map; + CHECK(map.size() == 0); + CHECK(map.findOffset(nullptr) == 0); + CHECK(map.allocationSizes().empty()); + } + + SECTION("insert in order") { + AllocMap map; + map.insert(address(1), 1); + CHECK(map.size() == 1); + CHECK(map.findOffset(address(1)) == 0); + CHECK(map.allocationSizes() == std::vector({1})); + map.insert(address(2), 2); + CHECK(map.size() == 2); + CHECK(map.findOffset(address(1)) == 0); + CHECK(map.findOffset(address(2)) == 1); + CHECK(map.allocationSizes() == std::vector({1, 2})); + map.insert(address(3), 3); + CHECK(map.size() == 3); + CHECK(map.findOffset(address(1)) == 0); + CHECK(map.findOffset(address(2)) == 1); + CHECK(map.findOffset(address(3)) == 2); + CHECK(map.allocationSizes() == std::vector({1, 2, 3})); + + SECTION("missing find in front") { CHECK(map.findOffset(nullptr) == map.size()); } + SECTION("missing find off end") { CHECK(map.findOffset(address(4)) == map.size()); } + SECTION("overwrite value") { + map.insert(address(2), 4); + CHECK(map.allocationSizes() == std::vector({1, 4, 3})); + } + } + SECTION("insert in reverse order") { + AllocMap map; + map.insert(address(3), 3); + CHECK(map.size() == 1); + CHECK(map.findOffset(address(3)) == 0); + CHECK(map.allocationSizes() == std::vector({3})); + map.insert(address(2), 2); + CHECK(map.size() == 2); + CHECK(map.findOffset(address(2)) == 0); + CHECK(map.findOffset(address(3)) == 1); + CHECK(map.allocationSizes() == std::vector({2, 3})); + map.insert(address(1), 1); + CHECK(map.size() == 3); + CHECK(map.findOffset(address(1)) == 0); + CHECK(map.findOffset(address(2)) == 1); + CHECK(map.findOffset(address(3)) == 2); + CHECK(map.allocationSizes() == std::vector({1, 2, 3})); + } + SECTION("insert in middle") { + AllocMap map; + map.insert(address(1), 1); + CHECK(map.size() == 1); + CHECK(map.findOffset(address(1)) == 0); + CHECK(map.allocationSizes() == std::vector({1})); + map.insert(address(3), 3); + CHECK(map.size() == 2); + CHECK(map.findOffset(address(1)) == 0); + CHECK(map.findOffset(address(3)) == 1); + CHECK(map.allocationSizes() == std::vector({1, 3})); + SECTION("missing findOffset") { CHECK(map.findOffset(address(2)) == map.size()); } + map.insert(address(2), 2); + CHECK(map.size() == 3); + CHECK(map.findOffset(address(1)) == 0); + CHECK(map.findOffset(address(2)) == 1); + CHECK(map.findOffset(address(3)) == 2); + CHECK(map.allocationSizes() == std::vector({1, 2, 3})); + } +} From 5a35f2cb03203e56641c6e12c5cbbc25f879e74c Mon Sep 17 00:00:00 2001 From: sihyunjeon Date: Mon, 5 Aug 2024 04:22:52 +0200 Subject: [PATCH 257/418] move to cmssw_14_1_x fix clean up fix errors lets not forget the format check rename Hit to DigiHitRecord address comments from mmusich build check rename rename rename rename add some descriptions rename format split it and ot repos Update Phase2PixelQCoreNtuple.cc Remove dummies Update Phase2PixelQCoreNtuple.cc remove unnecessary revert ... --- .../interface/Phase2ITChip.h | 31 + .../interface/Phase2ITChipBitStream.h | 25 + .../interface/Phase2ITDigiHit.h | 21 + .../interface/Phase2ITQCore.h | 61 ++ .../Phase2TrackerDigi/src/Phase2ITChip.cc | 130 +++ .../Phase2TrackerDigi/src/Phase2ITDigiHit.cc | 8 + .../Phase2TrackerDigi/src/Phase2ITQCore.cc | 167 ++++ DataFormats/Phase2TrackerDigi/src/classes.h | 2 + .../Phase2TrackerDigi/src/classes_def.xml | 8 + .../Phase2PixelRawToDigi/BuildFile.xml | 6 + .../plugins/BuildFile.xml | 14 + .../plugins/Phase2ITQCoreProducer.cc | 226 +++++ .../test/Phase2ITDigiToRaw_cfg.py | 95 ++ .../test/plugins/Phase2PixelQCoreNtuple.cc | 900 ++++++++++++++++++ .../Phase2TrackerRawToDigi/test/BuildFile.xml | 14 + 15 files changed, 1708 insertions(+) create mode 100644 DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h create mode 100644 DataFormats/Phase2TrackerDigi/interface/Phase2ITChipBitStream.h create mode 100644 DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h create mode 100644 DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h create mode 100644 DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc create mode 100644 DataFormats/Phase2TrackerDigi/src/Phase2ITDigiHit.cc create mode 100644 DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc create mode 100644 EventFilter/Phase2PixelRawToDigi/BuildFile.xml create mode 100644 EventFilter/Phase2PixelRawToDigi/plugins/BuildFile.xml create mode 100644 EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc create mode 100644 EventFilter/Phase2PixelRawToDigi/test/Phase2ITDigiToRaw_cfg.py create mode 100644 EventFilter/Phase2PixelRawToDigi/test/plugins/Phase2PixelQCoreNtuple.cc diff --git a/DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h b/DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h new file mode 100644 index 0000000000000..ce2ec737167ee --- /dev/null +++ b/DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h @@ -0,0 +1,31 @@ +#ifndef DataFormats_Phase2TrackerDigi_Phase2ITChip_H +#define DataFormats_Phase2TrackerDigi_Phase2ITChip_H +#include +#include +#include +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h" + +class Phase2ITChip { + // Quarter cores collected into a chip (only active quarter cores with hits gets collected) + std::vector hitList; + int rocnum_; + +public: + Phase2ITChip(int rocnum, std::vector hl); + + unsigned int size(); + int rocnum() const { return rocnum_; } + + std::vector get_organized_QCores(); + std::vector get_chip_code(); + +private: + std::pair get_QCore_pos(Phase2ITDigiHit hit); + + Phase2ITQCore get_QCore_from_hit(Phase2ITDigiHit pixel); + std::vector rem_duplicates(std::vector qcores); + std::vector organize_QCores(std::vector qcores); +}; + +#endif // DataFormats_Phase2TrackerDigi_Phase2ITChip_H diff --git a/DataFormats/Phase2TrackerDigi/interface/Phase2ITChipBitStream.h b/DataFormats/Phase2TrackerDigi/interface/Phase2ITChipBitStream.h new file mode 100644 index 0000000000000..09fb37dce0267 --- /dev/null +++ b/DataFormats/Phase2TrackerDigi/interface/Phase2ITChipBitStream.h @@ -0,0 +1,25 @@ +#ifndef DataFormats_Phase2TrackerDigi_Phase2ITChipBitStream_H +#define DataFormats_Phase2TrackerDigi_Phase2ITChipBitStream_H +#include + +class Phase2ITChipBitStream { + // Encoded bit stream output from chips +public: + Phase2ITChipBitStream(int rocid, const std::vector& bitstream) { + rocid_ = rocid; + bitstream_ = bitstream; + } + + Phase2ITChipBitStream() { rocid_ = -1; } + + int get_rocid() const { return rocid_; } + + const std::vector& get_bitstream() const { return bitstream_; } + + const bool operator<(const Phase2ITChipBitStream& other) { return rocid_ < other.rocid_; } + +private: + int rocid_; // Chip index + std::vector bitstream_; // Chip bit stream output +}; +#endif // DataFormats_Phase2TrackerDigi_Phase2ITChipBitStream_H diff --git a/DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h b/DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h new file mode 100644 index 0000000000000..cc6d41b6ab0ce --- /dev/null +++ b/DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h @@ -0,0 +1,21 @@ +#ifndef DataFormats_Phase2TrackerDigi_Phase2ITDigiHit_H +#define DataFormats_Phase2TrackerDigi_Phase2ITDigiHit_H + +class Phase2ITDigiHit { +private: + int row_; // Hit position row + int col_; // Hit position column + int adc_; // Hit position adc + +public: + Phase2ITDigiHit(int row_num, int col_num, int adc_num); + + void set_row(int row) { row_ = row; } + void set_col(int col) { col_ = col; } + + int row() const { return row_; } + int col() const { return col_; } + int adc() const { return adc_; } +}; + +#endif // DataFormats_Phase2TrackerDigi_Phase2ITDigiHit_H diff --git a/DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h b/DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h new file mode 100644 index 0000000000000..e433da5f926f6 --- /dev/null +++ b/DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h @@ -0,0 +1,61 @@ +#ifndef DataFormats_Phase2TrackerDigi_Phase2ITQCore_H +#define DataFormats_Phase2TrackerDigi_Phase2ITQCore_H +#include + +class Phase2ITQCore { + // Collects hits and creates a quarter core (16 pixel positions) +private: + std::vector adcs; // Full array of adc values in a quarter core + std::vector hits; // Full array of hit occurrences + bool islast_; // RD53 chip encoding bits + bool isneighbour_; // RD53 chip encoding bits + int rocid_; // Chip index number + int ccol; // QCore position column + int qcrow; // QCore position row + +public: + Phase2ITQCore(int rocid, + int ccol_in, + int qcrow_in, + bool isneighbour_in, + bool islast_in, + std::vector adcs_in, + std::vector hits_in); + + Phase2ITQCore() { + rocid_ = -1; + islast_ = false; + isneighbour_ = false; + ccol = -1; + qcrow = -1; + } + + void setIsLast(bool islast) { islast_ = islast; } + bool islast() const { return islast_; } + + void setIsNeighbour(bool isneighbour) { isneighbour_ = isneighbour; } + + int rocid() const { return rocid_; } + int get_col() const { return ccol; } + int get_row() const { return qcrow; } + + std::vector getHitmap(); + std::vector getADCs(); + std::vector encodeQCore(bool is_new_col); + + const bool operator<(const Phase2ITQCore& other) { + if (ccol == other.ccol) { + return (ccol < other.ccol); + } else { + return (qcrow < other.qcrow); + } + } + +private: + std::vector toRocCoordinates(std::vector& hitmap); + std::vector intToBinary(int num, int length); + bool containsHit(std::vector& hitmap); + std::vector getHitmapCode(std::vector hitmap); +}; + +#endif // DataFormats_Phase2TrackerDigi_Phase2ITQCore_H diff --git a/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc b/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc new file mode 100644 index 0000000000000..6bd9688d05574 --- /dev/null +++ b/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc @@ -0,0 +1,130 @@ +#include +#include +#include +#include +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h" + +Phase2ITChip::Phase2ITChip(int rocnum, std::vector hl) { + hitList = hl; + rocnum_ = rocnum; +} + +unsigned int Phase2ITChip::size() { return hitList.size(); } + +//Returns the position (row,col) of the 4x4 QCores that contains a hit +std::pair Phase2ITChip::get_QCore_pos(Phase2ITDigiHit hit) { + int row = hit.row() / 4; + int col = hit.col() / 4; + return {row, col}; +} + +//Takes a hit and returns the 4x4 QCore that contains it +Phase2ITQCore Phase2ITChip::get_QCore_from_hit(Phase2ITDigiHit pixel) { + std::vector adcs(16, 0), hits(16, 0); + std::pair pos = get_QCore_pos(pixel); + + for (const auto& hit : hitList) { + if (get_QCore_pos(hit) == pos) { + int i = (4 * (hit.row() % 4) + (hit.col() % 4) + 8) % 16; + adcs[i] = hit.adc(); + hits[i] = 1; + } + } + + Phase2ITQCore qcore(0, pos.second, pos.first, false, false, adcs, hits); + return qcore; +} + +//Removes duplicated Phase2ITQCores +std::vector Phase2ITChip::rem_duplicates(std::vector qcores) { + std::vector list = {}; + + size_t i = 0; + while (i < qcores.size()) { + for (size_t j = i + 1; j < qcores.size();) { + if (qcores[j].get_col() == qcores[i].get_col() && qcores[j].get_row() == qcores[i].get_row()) { + qcores.erase(qcores.begin() + j); + } else { + ++j; + } + } + list.push_back(qcores[i]); + ++i; + } + + return list; +} + +//Returns a list of the qcores with hits arranged by increasing column and then row numbers +std::vector Phase2ITChip::organize_QCores(std::vector qcores) { + std::vector organized_list = {}; + while (qcores.size() > 0) { + int min = 0; + + for (size_t i = 1; i < qcores.size(); i++) { + if (qcores[i].get_col() < qcores[min].get_col()) { + min = i; + } else if (qcores[i].get_col() == qcores[min].get_col() && qcores[i].get_row() < qcores[min].get_row()) { + min = i; + } + } + + organized_list.push_back(qcores[min]); + qcores.erase(qcores.begin() + min); + } + + return organized_list; +} + +//Takes in an oranized list of Phase2ITQCores and sets the islast and isneighbor properties of those qcores +std::vector link_QCores(std::vector qcores) { + for (size_t i = 1; i < qcores.size(); i++) { + if (qcores[i].get_row() == qcores[i - 1].get_row()) { + qcores[i].setIsNeighbour(true); + } + } + + //.size() is unsigned. If size is zero size()-1 is a huge number hence this needs to be protected + if (qcores.size() > 0) { + for (size_t i = 0; i < qcores.size() - 1; i++) { + if (qcores[i].get_col() != qcores[i + 1].get_col()) { + qcores[i].setIsLast(true); + } + } + qcores[qcores.size() - 1].setIsLast(true); + } + + return qcores; +} + +//Takes in a list of hits and organizes them into the 4x4 QCores that contains them +std::vector Phase2ITChip::get_organized_QCores() { + std::vector qcores = {}; + + for (const auto& hit : hitList) { + qcores.push_back(get_QCore_from_hit(hit)); + } + + return (link_QCores(organize_QCores(rem_duplicates(qcores)))); +} + +//Returns the encoding of the readout chip +std::vector Phase2ITChip::get_chip_code() { + std::vector code = {}; + + if (hitList.size() > 0) { + std::vector qcores = get_organized_QCores(); + bool is_new_col = true; + + for (auto& qcore : qcores) { + std::vector qcore_code = qcore.encodeQCore(is_new_col); + code.insert(code.end(), qcore_code.begin(), qcore_code.end()); + + is_new_col = qcore.islast(); + } + } + + return code; +} diff --git a/DataFormats/Phase2TrackerDigi/src/Phase2ITDigiHit.cc b/DataFormats/Phase2TrackerDigi/src/Phase2ITDigiHit.cc new file mode 100644 index 0000000000000..6c4497ff9350f --- /dev/null +++ b/DataFormats/Phase2TrackerDigi/src/Phase2ITDigiHit.cc @@ -0,0 +1,8 @@ +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h" + +// Describes the 4x4=16 bit hitmap with its row and column numbers and the ADC values +Phase2ITDigiHit::Phase2ITDigiHit(int row_num, int col_num, int adc_num) { + row_ = row_num; + col_ = col_num; + adc_ = adc_num; +} diff --git a/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc b/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc new file mode 100644 index 0000000000000..292d1d3e5d189 --- /dev/null +++ b/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc @@ -0,0 +1,167 @@ +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h" +#include +#include +#include + +//4x4 region of hits in sensor coordinates +Phase2ITQCore::Phase2ITQCore(int rocid, + int ccol_in, + int qcrow_in, + bool isneighbour_in, + bool islast_in, + std::vector adcs_in, + std::vector hits_in) { + rocid_ = rocid; + ccol = ccol_in; + qcrow = qcrow_in; + isneighbour_ = isneighbour_in; + islast_ = islast_in; + adcs = adcs_in; + hits = hits_in; +} + +//Takes a hitmap in sensor coordinates in 4x4 and converts it to readout chip coordinates with 2x8 +std::vector Phase2ITQCore::toRocCoordinates(std::vector& hitmap) { + std::vector ROC_hitmap(16, 0); + + for (size_t i = 0; i < hitmap.size(); i++) { + int row = std::floor(i / 4); + int col = i % 4; + int new_row; + int new_col; + + if (row % 2 == 0) { + new_row = row / 2; + new_col = 2 * col; + } else { + new_row = std::floor(row / 2); + new_col = 2 * col + 1; + } + + int new_index = 8 * new_row + new_col; + ROC_hitmap[new_index] = hitmap[i]; + } + + return ROC_hitmap; +} + +//Returns the hitmap for the Phase2ITQCore in 4x4 sensor coordinates +std::vector Phase2ITQCore::getHitmap() { + std::vector hitmap = {}; + + for (auto hit : hits) { + hitmap.push_back(hit > 0); + } + + return (toRocCoordinates(hitmap)); +} + +std::vector Phase2ITQCore::getADCs() { + std::vector adcmap = {}; + + for (auto adc : adcs) { + adcmap.push_back(adc); + } + + return adcmap; +} + +//Converts an integer into a binary, and formats it with the given length +std::vector Phase2ITQCore::intToBinary(int num, int length) { + int n = num; + std::vector bi_num(length, 0); + + for (int i = length; i > 0; i--) { + if (n >= pow(2, i - 1)) { + bi_num[length - i] = 1; + n -= pow(2, i - 1); + } else { + bi_num[length - i] = 0; + } + } + + return bi_num; +} + +//Takes a hitmap and returns true if it contains any hits +bool Phase2ITQCore::containsHit(std::vector& hitmap) { + bool foundHit = false; + for (size_t i = 0; i < hitmap.size(); i++) { + if (hitmap[i]) { + foundHit = true; + break; + } + } + + return foundHit; +} + +//Returns the Huffman encoded hitmap, created iteratively within this function +std::vector Phase2ITQCore::getHitmapCode(std::vector hitmap) { + std::vector code = {}; + // If hitmap is a single bit, there is no need to further split the bits + if (hitmap.size() == 1) { + return code; + } + + std::vector left_hitmap = std::vector(hitmap.begin(), hitmap.begin() + hitmap.size() / 2); + std::vector right_hitmap = std::vector(hitmap.begin() + hitmap.size() / 2, hitmap.end()); + + bool hit_left = containsHit(left_hitmap); + bool hit_right = containsHit(right_hitmap); + + if (hit_left && hit_right) { + code.push_back(1); + code.push_back(1); + + std::vector left_code = getHitmapCode(left_hitmap); + std::vector right_code = getHitmapCode(right_hitmap); + + code.insert(code.end(), left_code.begin(), left_code.end()); + code.insert(code.end(), right_code.begin(), right_code.end()); + + } else if (hit_right) { + //Huffman encoding compresses 01 into 0 + code.push_back(0); + + std::vector right_code = getHitmapCode(right_hitmap); + code.insert(code.end(), right_code.begin(), right_code.end()); + + } else if (hit_left) { + code.push_back(1); + code.push_back(0); + + std::vector left_code = getHitmapCode(left_hitmap); + code.insert(code.end(), left_code.begin(), left_code.end()); + } + + return code; +} + +//Returns the bit code associated with the Phase2ITQCore +std::vector Phase2ITQCore::encodeQCore(bool is_new_col) { + std::vector code = {}; + + if (is_new_col) { + std::vector col_code = intToBinary(ccol, 6); + code.insert(code.end(), col_code.begin(), col_code.end()); + } + + code.push_back(islast_); + code.push_back(isneighbour_); + + if (!isneighbour_) { + std::vector row_code = intToBinary(qcrow, 8); + code.insert(code.end(), row_code.begin(), row_code.end()); + } + + std::vector hitmap_code = getHitmapCode(getHitmap()); + code.insert(code.end(), hitmap_code.begin(), hitmap_code.end()); + + for (auto adc : adcs) { + std::vector adc_code = intToBinary(adc, 4); + code.insert(code.end(), adc_code.begin(), adc_code.end()); + } + + return code; +} diff --git a/DataFormats/Phase2TrackerDigi/src/classes.h b/DataFormats/Phase2TrackerDigi/src/classes.h index 7f6d6c995a67d..37bf4d4087960 100644 --- a/DataFormats/Phase2TrackerDigi/src/classes.h +++ b/DataFormats/Phase2TrackerDigi/src/classes.h @@ -2,6 +2,8 @@ #define PHASE2TRACKERDIGI_CLASSES_H #include "DataFormats/Phase2TrackerDigi/interface/Phase2TrackerDigi.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITChipBitStream.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h" #include "DataFormats/Common/interface/Wrapper.h" #include "DataFormats/Common/interface/DetSetVector.h" #include "DataFormats/Common/interface/DetSetVectorNew.h" diff --git a/DataFormats/Phase2TrackerDigi/src/classes_def.xml b/DataFormats/Phase2TrackerDigi/src/classes_def.xml index 1738169b5f698..16e654356cc74 100644 --- a/DataFormats/Phase2TrackerDigi/src/classes_def.xml +++ b/DataFormats/Phase2TrackerDigi/src/classes_def.xml @@ -5,12 +5,20 @@ + + + + + + + + diff --git a/EventFilter/Phase2PixelRawToDigi/BuildFile.xml b/EventFilter/Phase2PixelRawToDigi/BuildFile.xml new file mode 100644 index 0000000000000..1b3cfd15f9375 --- /dev/null +++ b/EventFilter/Phase2PixelRawToDigi/BuildFile.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/EventFilter/Phase2PixelRawToDigi/plugins/BuildFile.xml b/EventFilter/Phase2PixelRawToDigi/plugins/BuildFile.xml new file mode 100644 index 0000000000000..8583f6fc74feb --- /dev/null +++ b/EventFilter/Phase2PixelRawToDigi/plugins/BuildFile.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc b/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc new file mode 100644 index 0000000000000..d0512eaa153af --- /dev/null +++ b/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc @@ -0,0 +1,226 @@ +// -*- C++ -*- +// Package: EventFilter/Phase2PixelRawToDigi +// Class: Phase2ITQCoreProducer +// Description: Make Phase2ITQCore objects for digis +// Maintainer: Si Hyun Jeon, shjeon@cern.ch +// Original Author: Rohan Misra +// Created: Thu, 30 Sep 2021 02:04:06 GMT +// + +// system include files +#include + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/Utilities/interface/transform.h" +#include "FWCore/Utilities/interface/StreamID.h" +#include "DataFormats/Math/interface/Point3D.h" +#include "DataFormats/Common/interface/DetSetVector.h" +#include "DataFormats/DetId/interface/DetId.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITChipBitStream.h" +#include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" +#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" +#include "DataFormats/SiPixelDigi/interface/PixelDigi.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" + +class Phase2ITQCoreProducer : public edm::stream::EDProducer<> { +public: + Phase2ITQCoreProducer(const edm::ParameterSet&); + ~Phase2ITQCoreProducer() override = default; + +private: + virtual void beginJob(const edm::EventSetup&); + virtual void produce(edm::Event&, const edm::EventSetup&); + virtual void endJob(); + + const edm::InputTag src_; + const edm::EDGetTokenT> pixelDigi_token_; + const edm::ESGetToken tTopoToken_; + typedef math::XYZPointD Point; + typedef std::vector PointCollection; +}; + +Phase2ITQCoreProducer::Phase2ITQCoreProducer(const edm::ParameterSet& iConfig) + : src_(iConfig.getParameter("src")), + pixelDigi_token_(consumes>(iConfig.getParameter("siPixelDigi"))), + tTopoToken_(esConsumes()) { + produces>(); + produces>(); +} + +namespace { + // Dimension for 2 chips module = 672 X 434 = 672 X (216 + 1 + 216 + 1) + // Dimension for 4 chips module = 1354 X 434 = (672 + 5 + 672 + 5) X (216 + 1 + 216 + 1) + // Spacing 1 in column and 5 in row is introduced for each chip in between + // if neighboring chip exists + const int kQCoresInChipRow = (672); + const int kQCoresInChipColumn = (216); + const int kQCoresInChipRowGap = (5); + const int kQCoresInChipColumnGap = (10); +} // namespace + +Phase2ITDigiHit updateHitCoordinatesForLargePixels(Phase2ITDigiHit& hit) { + /* + In-place modification of Hit coordinates to take into account large pixels + Hits corresponding to large pixels are remapped so they lie on the boundary of the chip + Note that this operation can produce multiple hits with the same row/column coordinates + Duplicates get removed later on + */ + + // Current values before remapping + int row = hit.row(); + int col = hit.col(); + + // Values after remapping + int updated_row = 0; + int updated_col = 0; + + // Remapping of the row coordinate + if (row < kQCoresInChipRow) { + updated_row = row; + } else if (row < (kQCoresInChipRow + kQCoresInChipRowGap)) { + updated_row = kQCoresInChipRow - 1; + } // This will be ignored for 2 chips module + else if (row < (kQCoresInChipRow + 2 * kQCoresInChipRowGap)) { + updated_row = kQCoresInChipRow; + } else { + updated_row = (hit.row() - 2 * kQCoresInChipRowGap); + } + + // Remapping of the column coordinate + if (col < kQCoresInChipColumn) { + updated_col = col; + } else if (col < kQCoresInChipColumn + kQCoresInChipColumnGap) { + updated_col = kQCoresInChipColumn - kQCoresInChipColumnGap; + } else if (col < (kQCoresInChipColumn + 2 * kQCoresInChipColumn)) { + updated_col = kQCoresInChipColumn; + } else { + updated_col = (hit.col() - 2 * kQCoresInChipColumnGap); + } + + hit.set_row(updated_row); + hit.set_col(updated_col); + + return hit; +} + +std::vector adjustEdges(std::vector hitList) { + /* + In-place modification of Hit coordinates to take into account large pixels + */ + std::for_each(hitList.begin(), hitList.end(), &updateHitCoordinatesForLargePixels); + return hitList; +} + +std::vector splitByChip(std::vector hitList) { + // Split the hit list by read out chip + std::vector> hits_per_chip(4); + for (auto hit : hitList) { + int chip_index = (hit.col() < kQCoresInChipColumn) ? 0 : 1; + if (hit.row() >= kQCoresInChipRow) { + chip_index += 2; + } + hits_per_chip[chip_index].push_back(hit); + } + + // Generate Phase2ITChip objects from the hit lists + std::vector chips; + for (int chip_index = 0; chip_index < 4; chip_index++) { + chips.push_back(Phase2ITChip(chip_index, hits_per_chip[chip_index])); + } + + return chips; +} + +std::vector processHits(std::vector hitList) { + std::vector newHitList; + newHitList = adjustEdges(hitList); + + std::vector chips = splitByChip(newHitList); + std::vector code; + + for (size_t i = 0; i < chips.size(); i++) { + Phase2ITChip chip = chips[i]; + code = chip.get_chip_code(); + } + + return chips; +} + +// ------------ method called to produce the data ------------ +void Phase2ITQCoreProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { + using namespace edm; + using namespace std; + + unique_ptr> aQCoreVector = make_unique>(); + unique_ptr> aBitStreamVector = + make_unique>(); + + auto const& tTopo = iSetup.getData(tTopoToken_); + + edm::Handle> pixelDigiHandle; + iEvent.getByToken(pixelDigi_token_, pixelDigiHandle); + + edm::DetSetVector::const_iterator iterDet; + for (iterDet = pixelDigiHandle->begin(); iterDet != pixelDigiHandle->end(); iterDet++) { + DetId tkId = iterDet->id; + edm::DetSet theDigis = (*pixelDigiHandle)[tkId]; + std::vector hitlist; + std::vector id; + + if (tkId.subdetId() == PixelSubdetector::PixelBarrel) { + int layer_num = tTopo.pxbLayer(tkId.rawId()); + int ladder_num = tTopo.pxbLadder(tkId.rawId()); + int module_num = tTopo.pxbModule(tkId.rawId()); + id = {tkId.subdetId(), layer_num, ladder_num, module_num}; + } else if (tkId.subdetId() == PixelSubdetector::PixelEndcap) { + int module_num = tTopo.pxfModule(tkId()); + int disk_num = tTopo.pxfDisk(tkId()); + int blade_num = tTopo.pxfBlade(tkId()); + int panel_num = tTopo.pxfPanel(tkId()); + int side_num = tTopo.pxfSide(tkId()); + id = {tkId.subdetId(), module_num, disk_num, blade_num, panel_num, side_num}; + } + + for (auto iterDigi = theDigis.begin(); iterDigi != theDigis.end(); ++iterDigi) { + hitlist.emplace_back(Phase2ITDigiHit(iterDigi->row(), iterDigi->column(), iterDigi->adc())); + } + + std::vector chips = processHits(hitlist); + + DetSet DetSetQCores(tkId); + DetSet DetSetBitStream(tkId); + + for (size_t i = 0; i < chips.size(); i++) { + Phase2ITChip chip = chips[i]; + std::vector qcores = chip.get_organized_QCores(); + for (auto& qcore : qcores) { + DetSetQCores.push_back(qcore); + } + + Phase2ITChipBitStream aChipBitStream(i, chip.get_chip_code()); + DetSetBitStream.push_back(aChipBitStream); + } + + aBitStreamVector->insert(DetSetBitStream); + aQCoreVector->insert(DetSetQCores); + } + + iEvent.put(std::move(aQCoreVector)); + iEvent.put(std::move(aBitStreamVector)); +} + +void Phase2ITQCoreProducer::beginJob(edm::EventSetup const&) {} + +void Phase2ITQCoreProducer::endJob() {} + +DEFINE_FWK_MODULE(Phase2ITQCoreProducer); diff --git a/EventFilter/Phase2PixelRawToDigi/test/Phase2ITDigiToRaw_cfg.py b/EventFilter/Phase2PixelRawToDigi/test/Phase2ITDigiToRaw_cfg.py new file mode 100644 index 0000000000000..618b30fb9416b --- /dev/null +++ b/EventFilter/Phase2PixelRawToDigi/test/Phase2ITDigiToRaw_cfg.py @@ -0,0 +1,95 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C17I13M9_cff import Phase2C17I13M9 +process = cms.Process('USER',Phase2C17I13M9) + +# import of standard configurations +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mixNoPU_cfi') +#process.load('SimGeneral.MixingModule.mix_POISSON_average_cfi') +process.load('Configuration.Geometry.GeometryExtended2026D91Reco_cff') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.Digi_cff') +process.load('Configuration.StandardSequences.SimL1Emulator_cff') +process.load('Configuration.StandardSequences.L1TrackTrigger_cff') +process.load('Configuration.StandardSequences.DigiToRaw_cff') +process.load('HLTrigger.Configuration.HLT_Fake2_cff') +process.load('Configuration.StandardSequences.RawToDigi_cff') +process.load('Configuration.StandardSequences.L1Reco_cff') +process.load('Configuration.StandardSequences.Reconstruction_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(3) +) + +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring( +"file:/eos/cms/store/relval/CMSSW_13_1_0_pre3/RelValTTbar_14TeV/GEN-SIM-DIGI-RAW/PU_131X_mcRun4_realistic_v2_PDMVRELVALS146-v7/2580000/1320a7f8-658e-48b4-80cd-ace713889f8c.root" + ) +) + + +process.options = cms.untracked.PSet( + +) + +# Production Info +process.configurationMetadata = cms.untracked.PSet( + annotation = cms.untracked.string('step2 nevts:10'), + name = cms.untracked.string('Applications'), + version = cms.untracked.string('$Revision: 1.19 $') +) + +# MC vertice analyzer +process.load("Validation.RecoVertex.mcverticesanalyzer_cfi") +process.mcverticesanalyzer.pileupSummaryCollection = cms.InputTag("addPileupInfo","","HLT") + +process.Phase2ITQCoreProducer = cms.EDProducer('Phase2ITQCoreProducer', src = cms.InputTag("generalTracks"), siPixelDigi = cms.InputTag("simSiPixelDigis", "Pixel")) + +# # # -- Trajectory producer +process.load("RecoTracker.TrackProducer.TrackRefitters_cff") +process.TrackRefitter.src = "generalTracks" +process.TrackRefitter.NavigationSchool = "" + +# Additional output definition + +# Other statements +process.mix.digitizers = cms.PSet(process.theDigitizersValid) +# This pset is specific for producing simulated events for the designers of the PROC (InnerTracker) +# They need pixel RecHits where the charge is stored with high-granularity and large dynamic range + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T30', '') + +# Path and EndPath definitions +process.digitisation_step = cms.Path(process.pdigi_valid) +process.L1simulation_step = cms.Path(process.SimL1Emulator) +process.L1TrackTrigger_step = cms.Path(process.L1TrackTrigger) +process.digi2raw_step = cms.Path(process.DigiToRaw) +process.raw2digi_step = cms.Path(process.RawToDigi) +process.L1Reco_step = cms.Path(process.L1Reco) +process.reconstruction_step = cms.Path(process.reconstruction) +process.user_step = cms.Path(process.TrackRefitter * process.Phase2ITQCoreProducer) +process.endjob_step = cms.EndPath(process.endOfProcess) + +# Schedule definition +process.schedule = cms.Schedule(process.digitisation_step,process.L1simulation_step,process.L1TrackTrigger_step,process.digi2raw_step) +process.schedule.extend([process.raw2digi_step,process.L1Reco_step,process.reconstruction_step,process.user_step,process.endjob_step]) + +# Have logErrorHarvester wait for the same EDProducers to finish as those providing data for the OutputModule +from FWCore.Modules.logErrorHarvester_cff import customiseLogErrorHarvesterUsingOutputCommands +process = customiseLogErrorHarvesterUsingOutputCommands(process) +# Add early deletion of temporary data products to reduce peak memory need +from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete +process = customiseEarlyDelete(process) + +# End adding early deletion +process.TFileService = cms.Service('TFileService', + fileName = cms.string("pixelbitstream.root") +) + diff --git a/EventFilter/Phase2PixelRawToDigi/test/plugins/Phase2PixelQCoreNtuple.cc b/EventFilter/Phase2PixelRawToDigi/test/plugins/Phase2PixelQCoreNtuple.cc new file mode 100644 index 0000000000000..c440c908df78d --- /dev/null +++ b/EventFilter/Phase2PixelRawToDigi/test/plugins/Phase2PixelQCoreNtuple.cc @@ -0,0 +1,900 @@ +/* + class Phase2PixelQCoreNtuple +*/ +// DataFormats +#include "DataFormats/Common/interface/DetSetVector.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" + +#include "DataFormats/DetId/interface/DetId.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" +#include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h" +#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITChipBitStream.h" + +#include "DataFormats/TrackReco/interface/Track.h" + +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "TrackingTools/Records/interface/TransientRecHitRecord.h" + +#include "TrackingTools/TransientTrack/interface/TransientTrack.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" +#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" +#include "TrackingTools/TrackFitters/interface/TrajectoryStateCombiner.h" +#include "RecoTracker/TransientTrackingRecHit/interface/TkTransientTrackingRecHitBuilder.h" + +#include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h" +#include "TrackingTools/PatternTools/interface/Trajectory.h" +#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" +#include "TrackingTools/TransientTrack/interface/TransientTrack.h" +#include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" + +#include "SimDataFormats/TrackingHit/interface/PSimHit.h" +#include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" +#include "SimTracker/TrackerHitAssociation/interface/TrackerHitAssociator.h" +#include "SimDataFormats/Track/interface/SimTrack.h" +#include "SimDataFormats/Track/interface/SimTrackContainer.h" +#include "SimDataFormats/Vertex/interface/SimVertex.h" +#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" + +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +// Geometry +#include "MagneticField/Engine/interface/MagneticField.h" +#include "Geometry/CommonDetUnit/interface/GeomDetType.h" +#include "Geometry/CommonDetUnit/interface/GeomDet.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" +#include "Geometry/CommonDetUnit/interface/PixelGeomDetType.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/TrackerGeometryBuilder/interface/RectangularPixelTopology.h" +#include "Geometry/TrackerGeometryBuilder/interface/PixelTopologyBuilder.h" + +// For ROOT +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" +#include + +// STD +#include +#include +#include + +// CLHEP (for speed of light) +#include "CLHEP/Units/PhysicalConstants.h" +#include "CLHEP/Units/SystemOfUnits.h" + +//#define EDM_ML_DEBUG + +using namespace std; +using namespace edm; +using namespace reco; + +class Phase2PixelQCoreNtuple : public edm::one::EDAnalyzer<> { +public: + explicit Phase2PixelQCoreNtuple(const edm::ParameterSet& conf); + virtual ~Phase2PixelQCoreNtuple(); + virtual void beginJob(); + virtual void endJob(); + virtual void analyze(const edm::Event& e, const edm::EventSetup& es); + +protected: + void fillEvt(const edm::Event&); + void fillPRecHit(const int detid_db, + const int subid, + const int layer_num, + const int ladder_num, + const int module_num, + const int disk_num, + const int blade_num, + const int panel_num, + const int side_num, + SiPixelRecHitCollection::DetSet::const_iterator pixeliter, + const int num_simhit, + const PSimHit* closest_simhit, + const GeomDet* PixGeom); + void fillPRecHit(const int detid_db, + const int subid, + const int layer_num, + const int ladder_num, + const int module_num, + const int disk_num, + const int blade_num, + const int panel_num, + const int side_num, + const TrackingRecHit* transRecHit, + const SiPixelRecHit* pixHit, + const int num_simhit, + const PSimHit* closest_simhit, + const GeomDet* PixGeom, + const TrajectoryStateOnSurface tsos); + + void processHits(const std::vector>& hitList); + + std::pair computeAnglesFromDetPosition(const SiPixelCluster& cl, + const PixelTopology& top, + const GeomDetUnit& det) const; + +private: + edm::ParameterSet const conf_; + edm::ESGetToken tTopoToken_; + edm::ESGetToken geomToken_; + TrackerHitAssociator::Config trackerHitAssociatorConfig_; + edm::EDGetTokenT> pixelRecHits_token_; + edm::EDGetTokenT> qcore_token_; + edm::EDGetTokenT> bitstream_token_; + edm::EDGetTokenT> pixelDigi_token_; + edm::EDGetTokenT> recoTracks_token_; + edm::EDGetTokenT tta_token_; + + bool verbose_; + bool picky_; + static const int DGPERCLMAX = 100; + + float trkPt_, trkEta_, trkTheta_, trkPhi_; + int trkIsHighPurity_; + + //--- Structures for ntupling: + struct evt { + int run; + int evtnum; + + void init(); + } evt_; + + struct RecHit { + int pdgid; + int process; + float q; + float x; + float y; + float xx; + float xy; + float yy; + + float probQ; + float probXY; + + float row; + float col; + float gx; + float gy; + float gz; + int subid, module; + int layer, ladder; // BPix + int disk, blade, panel, side; // FPix + int nsimhit; + int spreadx, spready; + float hx, hy, ht; + float hrow, hcol; + float tx, ty, tz; + float theta, phi; + + // detector topology + int nRowsInDet; + int nColsInDet; + float pitchx; + float pitchy; + float thickness; + + // local angles from det position + float cotAlphaFromDet, cotBetaFromDet; + // local angles from track trajectory + float cotAlphaFromTrack, cotBetaFromTrack; + + // digis + int fDgN; + int fDgRow[DGPERCLMAX], fDgCol[DGPERCLMAX]; + int fDgDetId[DGPERCLMAX]; + float fDgAdc[DGPERCLMAX], fDgCharge[DGPERCLMAX]; + + void init(); + } recHit_; + + edm::Service tFileService; + TTree* pixeltree_; + TTree* pixeltreeOnTrack_; +}; + +Phase2PixelQCoreNtuple::Phase2PixelQCoreNtuple(edm::ParameterSet const& conf) + : tTopoToken_(esConsumes()), + geomToken_(esConsumes()), + trackerHitAssociatorConfig_(conf, consumesCollector()), + pixelRecHits_token_(consumes>(edm::InputTag("siPixelRecHits"))), + qcore_token_(consumes>(edm::InputTag("Phase2ITQCore"))), + bitstream_token_(consumes>(edm::InputTag("Phase2ITQCore"))), + pixelDigi_token_(consumes>(conf.getParameter("siPixelDigi"))), + recoTracks_token_(consumes>(conf.getParameter("trackProducer"))), + tta_token_(consumes(conf.getParameter("trajectoryInput"))), + verbose_(conf.getUntrackedParameter("verbose", false)), + picky_(conf.getUntrackedParameter("picky", false)), + pixeltree_(0), + pixeltreeOnTrack_(0) {} + +Phase2PixelQCoreNtuple::~Phase2PixelQCoreNtuple() {} + +void Phase2PixelQCoreNtuple::endJob() {} + +void Phase2PixelQCoreNtuple::beginJob() { + pixeltree_ = tFileService->make("PixelNtuple", "Pixel hit analyzer ntuple"); + pixeltreeOnTrack_ = tFileService->make("PixelNtupleOnTrack", "On-Track Pixel hit analyzer ntuple"); + + int bufsize = 64000; + //Common Branch + pixeltree_->Branch("evt", &evt_, "run/I:evtnum/I", bufsize); + pixeltree_->Branch("pdgid", &recHit_.pdgid, "pdgid/I"); + pixeltree_->Branch("process", &recHit_.process, "process/I"); + pixeltree_->Branch("q", &recHit_.q, "q/F"); + pixeltree_->Branch("x", &recHit_.x, "x/F"); + pixeltree_->Branch("y", &recHit_.y, "y/F"); + pixeltree_->Branch("xx", &recHit_.xx, "xx/F"); + pixeltree_->Branch("xy", &recHit_.xy, "xy/F"); + pixeltree_->Branch("yy", &recHit_.yy, "yy/F"); + pixeltree_->Branch("row", &recHit_.row, "row/F"); + pixeltree_->Branch("col", &recHit_.col, "col/F"); + pixeltree_->Branch("gx", &recHit_.gx, "gx/F"); + pixeltree_->Branch("gy", &recHit_.gy, "gy/F"); + pixeltree_->Branch("gz", &recHit_.gz, "gz/F"); + pixeltree_->Branch("subid", &recHit_.subid, "subid/I"); + pixeltree_->Branch("module", &recHit_.module, "module/I"); + pixeltree_->Branch("layer", &recHit_.layer, "layer/I"); + pixeltree_->Branch("ladder", &recHit_.ladder, "ladder/I"); + pixeltree_->Branch("disk", &recHit_.disk, "disk/I"); + pixeltree_->Branch("blade", &recHit_.blade, "blade/I"); + pixeltree_->Branch("panel", &recHit_.panel, "panel/I"); + pixeltree_->Branch("side", &recHit_.side, "side/I"); + pixeltree_->Branch("nsimhit", &recHit_.nsimhit, "nsimhit/I"); + pixeltree_->Branch("spreadx", &recHit_.spreadx, "spreadx/I"); + pixeltree_->Branch("spready", &recHit_.spready, "spready/I"); + pixeltree_->Branch("hx", &recHit_.hx, "hx/F"); + pixeltree_->Branch("hy", &recHit_.hy, "hy/F"); + pixeltree_->Branch("ht", &recHit_.ht, "ht/F"); + pixeltree_->Branch("hrow", &recHit_.hrow, "hrow/F"); + pixeltree_->Branch("hcol", &recHit_.hcol, "hcol/F"); + pixeltree_->Branch("tx", &recHit_.tx, "tx/F"); + pixeltree_->Branch("ty", &recHit_.ty, "ty/F"); + pixeltree_->Branch("tz", &recHit_.tz, "tz/F"); + pixeltree_->Branch("theta", &recHit_.theta, "theta/F"); + pixeltree_->Branch("phi", &recHit_.phi, "phi/F"); + pixeltree_->Branch("nRowsInDet", &recHit_.nRowsInDet, "nRowsInDet/I"); + pixeltree_->Branch("nColsInDet", &recHit_.nColsInDet, "nColsInDet/I"); + pixeltree_->Branch("pitchx", &recHit_.pitchx, "pitchx/F"); + pixeltree_->Branch("pitchy", &recHit_.pitchy, "pitchy/F"); + pixeltree_->Branch("thickness", &recHit_.thickness, "thickness/F"); + pixeltree_->Branch("cotAlphaFromDet", &recHit_.cotAlphaFromDet, "cotAlphaFromDet/F"); + pixeltree_->Branch("cotBetaFromDet", &recHit_.cotBetaFromDet, "cotBetaFromDet/F"); + + pixeltree_->Branch("DgN", &recHit_.fDgN, "DgN/I"); + pixeltree_->Branch("DgRow", recHit_.fDgRow, "DgRow[DgN]/I"); + pixeltree_->Branch("DgCol", recHit_.fDgCol, "DgCol[DgN]/I"); + pixeltree_->Branch("DgDetId", recHit_.fDgDetId, "DgDetId[DgN]/I"); + pixeltree_->Branch("DgAdc", recHit_.fDgAdc, "DgAdc[DgN]/F"); + pixeltree_->Branch("DgCharge", recHit_.fDgCharge, "DgCharge[DgN]/F"); + + //Common Branch (on-track) + pixeltreeOnTrack_->Branch("evt", &evt_, "run/I:evtnum/I", bufsize); + pixeltreeOnTrack_->Branch("pdgid", &recHit_.pdgid, "pdgid/I"); + pixeltreeOnTrack_->Branch("process", &recHit_.process, "process/I"); + pixeltreeOnTrack_->Branch("q", &recHit_.q, "q/F"); + pixeltreeOnTrack_->Branch("x", &recHit_.x, "x/F"); + pixeltreeOnTrack_->Branch("y", &recHit_.y, "y/F"); + pixeltreeOnTrack_->Branch("xx", &recHit_.xx, "xx/F"); + pixeltreeOnTrack_->Branch("xy", &recHit_.xy, "xy/F"); + pixeltreeOnTrack_->Branch("yy", &recHit_.yy, "yy/F"); + pixeltreeOnTrack_->Branch("probQ", &recHit_.probQ); + pixeltreeOnTrack_->Branch("probXY", &recHit_.probXY); + + pixeltreeOnTrack_->Branch("row", &recHit_.row, "row/F"); + pixeltreeOnTrack_->Branch("col", &recHit_.col, "col/F"); + pixeltreeOnTrack_->Branch("gx", &recHit_.gx, "gx/F"); + pixeltreeOnTrack_->Branch("gy", &recHit_.gy, "gy/F"); + pixeltreeOnTrack_->Branch("gz", &recHit_.gz, "gz/F"); + pixeltreeOnTrack_->Branch("subid", &recHit_.subid, "subid/I"); + pixeltreeOnTrack_->Branch("module", &recHit_.module, "module/I"); + pixeltreeOnTrack_->Branch("layer", &recHit_.layer, "layer/I"); + pixeltreeOnTrack_->Branch("ladder", &recHit_.ladder, "ladder/I"); + pixeltreeOnTrack_->Branch("disk", &recHit_.disk, "disk/I"); + pixeltreeOnTrack_->Branch("blade", &recHit_.blade, "blade/I"); + pixeltreeOnTrack_->Branch("panel", &recHit_.panel, "panel/I"); + pixeltreeOnTrack_->Branch("side", &recHit_.side, "side/I"); + pixeltreeOnTrack_->Branch("nsimhit", &recHit_.nsimhit, "nsimhit/I"); + pixeltreeOnTrack_->Branch("spreadx", &recHit_.spreadx, "spreadx/I"); + pixeltreeOnTrack_->Branch("spready", &recHit_.spready, "spready/I"); + pixeltreeOnTrack_->Branch("hx", &recHit_.hx, "hx/F"); + pixeltreeOnTrack_->Branch("hy", &recHit_.hy, "hy/F"); + pixeltreeOnTrack_->Branch("ht", &recHit_.ht, "ht/F"); + pixeltreeOnTrack_->Branch("hrow", &recHit_.hrow, "hrow/F"); + pixeltreeOnTrack_->Branch("hcol", &recHit_.hcol, "hcol/F"); + pixeltreeOnTrack_->Branch("tx", &recHit_.tx, "tx/F"); + pixeltreeOnTrack_->Branch("ty", &recHit_.ty, "ty/F"); + pixeltreeOnTrack_->Branch("tz", &recHit_.tz, "tz/F"); + pixeltreeOnTrack_->Branch("theta", &recHit_.theta, "theta/F"); + pixeltreeOnTrack_->Branch("phi", &recHit_.phi, "phi/F"); + pixeltreeOnTrack_->Branch("nRowsInDet", &recHit_.nRowsInDet, "nRowsInDet/I"); + pixeltreeOnTrack_->Branch("nColsInDet", &recHit_.nColsInDet, "nColsInDet/I"); + pixeltreeOnTrack_->Branch("pitchx", &recHit_.pitchx, "pitchx/F"); + pixeltreeOnTrack_->Branch("pitchy", &recHit_.pitchy, "pitchy/F"); + pixeltreeOnTrack_->Branch("thickness", &recHit_.thickness, "thickness/F"); + pixeltreeOnTrack_->Branch("cotAlphaFromDet", &recHit_.cotAlphaFromDet, "cotAlphaFromDet/F"); + pixeltreeOnTrack_->Branch("cotBetaFromDet", &recHit_.cotBetaFromDet, "cotBetaFromDet/F"); + + pixeltreeOnTrack_->Branch("trkPt", &trkPt_); + pixeltreeOnTrack_->Branch("trkEta", &trkEta_); + pixeltreeOnTrack_->Branch("trkTheta", &trkTheta_); + pixeltreeOnTrack_->Branch("trkPhi", &trkPhi_); + pixeltreeOnTrack_->Branch("trkIsHighPurity", &trkIsHighPurity_); + pixeltreeOnTrack_->Branch("cotAlphaFromTrack", &recHit_.cotAlphaFromTrack, "cotAlphaFromTrack/F"); + pixeltreeOnTrack_->Branch("cotBetaFromTrack", &recHit_.cotBetaFromTrack, "cotBetaFromTrack/F"); + + pixeltreeOnTrack_->Branch("DgN", &recHit_.fDgN, "DgN/I"); + pixeltreeOnTrack_->Branch("DgRow", recHit_.fDgRow, "DgRow[DgN]/I"); + pixeltreeOnTrack_->Branch("DgCol", recHit_.fDgCol, "DgCol[DgN]/I"); + pixeltreeOnTrack_->Branch("DgDetId", recHit_.fDgDetId, "DgDetId[DgN]/I"); + pixeltreeOnTrack_->Branch("DgAdc", recHit_.fDgAdc, "DgAdc[DgN]/F"); + pixeltreeOnTrack_->Branch("DgCharge", recHit_.fDgCharge, "DgCharge[DgN]/F"); +} + +// Functions that gets called by framework every event +void Phase2PixelQCoreNtuple::analyze(const edm::Event& e, const edm::EventSetup& es) { + //Retrieve tracker topology from geometry + const TrackerTopology* const tTopo = &es.getData(tTopoToken_); + + // geometry setup + const TrackerGeometry* const theGeometry = &es.getData(geomToken_); + + std::vector matched; + const PSimHit* closest_simhit = nullptr; + + edm::Handle recHitColl; + e.getByToken(pixelRecHits_token_, recHitColl); + + edm::Handle> aQCoreVector; + e.getByToken(qcore_token_, aQCoreVector); + + edm::Handle> aBitStreamVector; + e.getByToken(bitstream_token_, aBitStreamVector); + + // for finding matched simhit + TrackerHitAssociator associate(e, trackerHitAssociatorConfig_); + + edm::Handle> pixelDigiHandle; + e.getByToken(pixelDigi_token_, pixelDigiHandle); + + if ((recHitColl.product())->dataSize() > 0) { + std::string detname; + + evt_.init(); + fillEvt(e); + + // Loop over Detector IDs + for (auto recHitIdIterator : *(recHitColl.product())) { + SiPixelRecHitCollection::DetSet detset = recHitIdIterator; + + if (detset.empty()) + continue; + DetId detId = DetId(detset.detId()); // Get the Detid object + + const GeomDet* geomDet(theGeometry->idToDet(detId)); + + // Loop over rechits for this detid + for (auto iterRecHit : detset) { + // get matched simhit + matched.clear(); + matched = associate.associateHit(iterRecHit); + if (!matched.empty()) { + float closest = 9999.9; + LocalPoint lp = iterRecHit.localPosition(); + float rechit_x = lp.x(); + float rechit_y = lp.y(); + //loop over simhits and find closest + for (auto const& m : matched) { + float sim_x1 = m.entryPoint().x(); + float sim_x2 = m.exitPoint().x(); + float sim_xpos = 0.5 * (sim_x1 + sim_x2); + float sim_y1 = m.entryPoint().y(); + float sim_y2 = m.exitPoint().y(); + float sim_ypos = 0.5 * (sim_y1 + sim_y2); + + float x_res = sim_xpos - rechit_x; + float y_res = sim_ypos - rechit_y; + float dist = sqrt(x_res * x_res + y_res * y_res); + if (dist < closest) { + closest = dist; + closest_simhit = &m; + } + } // end of simhit loop + } // end matched emtpy + unsigned int subid = detId.subdetId(); + int detid_db = detId.rawId(); + int layer_num = -99, ladder_num = -99, module_num = -99, disk_num = -99, blade_num = -99, panel_num = -99, + side_num = -99; + if ((subid == PixelSubdetector::PixelBarrel) || (subid == PixelSubdetector::PixelEndcap)) { + // 1 = PXB, 2 = PXF + if (subid == PixelSubdetector::PixelBarrel) { + layer_num = tTopo->pxbLayer(detId.rawId()); + ladder_num = tTopo->pxbLadder(detId.rawId()); + module_num = tTopo->pxbModule(detId.rawId()); + } else if (subid == PixelSubdetector::PixelEndcap) { + module_num = tTopo->pxfModule(detId()); + disk_num = tTopo->pxfDisk(detId()); + blade_num = tTopo->pxfBlade(detId()); + panel_num = tTopo->pxfPanel(detId()); + side_num = tTopo->pxfSide(detId()); + } + int num_simhit = matched.size(); + recHit_.init(); + // filling in on ALL track rechits + fillPRecHit(detid_db, + subid, + layer_num, + ladder_num, + module_num, + disk_num, + blade_num, + panel_num, + side_num, + &iterRecHit, + num_simhit, + closest_simhit, + geomDet); + pixeltree_->Fill(); + } + } // end of rechit loop + } // end of detid loop + } // end of loop test on recHitColl size + + // Now loop over recotracks + edm::Handle> trackCollection; + e.getByToken(recoTracks_token_, trackCollection); + + // -- Track trajectory association map + edm::Handle hTTAC; + e.getByToken(tta_token_, hTTAC); + TrajectoryStateCombiner tsoscomb; + + if (!trackCollection.isValid()) { + if (picky_) { + throw cms::Exception("ProductNotValid") << "TrackCollection product not valid"; + } else { + std::cout << "TrackCollection product not valid" << endl; + } + + } else if (!hTTAC.isValid()) { + if (picky_) { + throw cms::Exception("ProductNotValid") << "TrajectoryAssociationCollection product not valid"; + } else { + std::cout << "TrajectoryAssociationCollection product not valid" << endl; + } + + } else { + const TrajTrackAssociationCollection ttac = *(hTTAC.product()); + for (TrajTrackAssociationCollection::const_iterator it = ttac.begin(); it != ttac.end(); ++it) { + const edm::Ref> refTraj = it->key; + auto track = it->val; + trkIsHighPurity_ = track->quality(reco::TrackBase::highPurity); + trkPt_ = track->pt(); + trkEta_ = track->eta(); + trkTheta_ = track->theta(); + trkPhi_ = track->phi(); + + std::vector tmeasColl = refTraj->measurements(); + for (auto const& tmeasIt : tmeasColl) { + if (!tmeasIt.updatedState().isValid()) + continue; + if (!tmeasIt.recHit()->isValid()) + continue; + + const TrackingRecHit* hit = tmeasIt.recHit()->hit(); + const SiPixelRecHit* pixhit = dynamic_cast(hit); + if (pixhit == nullptr) + continue; + if (!pixhit->isValid()) + continue; + TrajectoryStateOnSurface tsos = tsoscomb(tmeasIt.forwardPredictedState(), tmeasIt.backwardPredictedState()); + const DetId& detId = hit->geographicalId(); + const GeomDet* geomDet(theGeometry->idToDet(detId)); + + if (pixhit) { + // get matched simhit + matched.clear(); + matched = associate.associateHit(*pixhit); + + if (!matched.empty()) { + float closest = 9999.9; + LocalPoint lp = pixhit->localPosition(); + float rechit_x = lp.x(); + float rechit_y = lp.y(); + + //loop over simhits and find closest + //for (std::vector::const_iterator m = matched.begin(); mpxbLayer(detId.rawId()); + ladder_num = tTopo->pxbLadder(detId.rawId()); + module_num = tTopo->pxbModule(detId.rawId()); + } else if (subid == PixelSubdetector::PixelEndcap) { + module_num = tTopo->pxfModule(detId()); + disk_num = tTopo->pxfDisk(detId()); + blade_num = tTopo->pxfBlade(detId()); + panel_num = tTopo->pxfPanel(detId()); + side_num = tTopo->pxfSide(detId()); + } + + recHit_.init(); + // fill on track rechits + fillPRecHit(detid_db, + subid, + layer_num, + ladder_num, + module_num, + disk_num, + blade_num, + panel_num, + side_num, + hit, // TransientTrackingRecHit * + pixhit, // SiPixelRecHit * + num_simhit, + closest_simhit, + geomDet, + tsos); + pixeltreeOnTrack_->Fill(); + } // if ( (subid==1)||(subid==2) ) + } // if cast is possible to SiPixelHit + } //end of loop on tracking rechits + } // end of loop on recotracks + } // else track collection is valid +} // end analyze function + +// Function for filling in all the rechits +// I know it is lazy to pass everything, but I'm doing it anyway. -EB +void Phase2PixelQCoreNtuple::fillPRecHit(const int detid_db, + const int subid, + const int layer_num, + const int ladder_num, + const int module_num, + const int disk_num, + const int blade_num, + const int panel_num, + const int side_num, + SiPixelRecHitCollection::DetSet::const_iterator pixeliter, + const int num_simhit, + const PSimHit* closest_simhit, + const GeomDet* PixGeom) { + LocalPoint lp = pixeliter->localPosition(); + LocalError le = pixeliter->localPositionError(); + + recHit_.x = lp.x(); + recHit_.y = lp.y(); + recHit_.xx = le.xx(); + recHit_.xy = le.xy(); + recHit_.yy = le.yy(); + GlobalPoint GP = PixGeom->surface().toGlobal(lp); + recHit_.gx = GP.x(); + recHit_.gy = GP.y(); + recHit_.gz = GP.z(); + GlobalPoint GP0 = PixGeom->surface().toGlobal(LocalPoint(0, 0, 0)); + recHit_.theta = GP0.theta(); + recHit_.phi = GP0.phi(); + + SiPixelRecHit::ClusterRef const& Cluster = pixeliter->cluster(); + recHit_.q = Cluster->charge(); + recHit_.spreadx = Cluster->sizeX(); + recHit_.spready = Cluster->sizeY(); + + recHit_.subid = subid; + recHit_.nsimhit = num_simhit; + + recHit_.layer = layer_num; + recHit_.ladder = ladder_num; + recHit_.module = module_num; + recHit_.module = module_num; + recHit_.disk = disk_num; + recHit_.blade = blade_num; + recHit_.panel = panel_num; + recHit_.side = side_num; + + /*-- module topology --*/ + const PixelGeomDetUnit* theGeomDet = dynamic_cast(PixGeom); + const PixelTopology* topol = &(theGeomDet->specificTopology()); + recHit_.nRowsInDet = topol->nrows(); + recHit_.nColsInDet = topol->ncolumns(); + recHit_.pitchx = topol->pitch().first; + recHit_.pitchy = topol->pitch().second; + recHit_.thickness = theGeomDet->surface().bounds().thickness(); + + MeasurementPoint mp = topol->measurementPosition(LocalPoint(recHit_.x, recHit_.y)); + recHit_.row = mp.x(); + recHit_.col = mp.y(); + + if (Cluster.isNonnull()) { + // compute local angles from det position + std::pair local_angles = computeAnglesFromDetPosition(*Cluster, *topol, *theGeomDet); + recHit_.cotAlphaFromDet = local_angles.first; + recHit_.cotBetaFromDet = local_angles.second; + + // -- Get digis of this cluster + const std::vector& pixvector = Cluster->pixels(); + for (unsigned int i = 0; i < pixvector.size(); ++i) { + if (recHit_.fDgN > DGPERCLMAX - 1) + break; + SiPixelCluster::Pixel holdpix = pixvector[i]; + + recHit_.fDgRow[recHit_.fDgN] = holdpix.x; + recHit_.fDgCol[recHit_.fDgN] = holdpix.y; + recHit_.fDgDetId[recHit_.fDgN] = detid_db; + recHit_.fDgAdc[recHit_.fDgN] = -99.; + recHit_.fDgCharge[recHit_.fDgN] = holdpix.adc / 1000.; + ++recHit_.fDgN; + } + } // if ( Cluster.isNonnull() ) + + if (num_simhit > 0) { + recHit_.pdgid = closest_simhit->particleType(); + recHit_.process = closest_simhit->processType(); + + float sim_x1 = closest_simhit->entryPoint().x(); + float sim_x2 = closest_simhit->exitPoint().x(); + recHit_.hx = 0.5 * (sim_x1 + sim_x2); + float sim_y1 = closest_simhit->entryPoint().y(); + float sim_y2 = closest_simhit->exitPoint().y(); + recHit_.hy = 0.5 * (sim_y1 + sim_y2); + + float time_to_detid_ns = GP0.mag() / (CLHEP::c_light * CLHEP::ns / CLHEP::cm); // speed of light in ns + recHit_.ht = closest_simhit->timeOfFlight() - time_to_detid_ns; + + recHit_.tx = closest_simhit->localDirection().x(); + recHit_.ty = closest_simhit->localDirection().y(); + recHit_.tz = closest_simhit->localDirection().z(); + + MeasurementPoint hmp = topol->measurementPosition(LocalPoint(recHit_.hx, recHit_.hy)); + recHit_.hrow = hmp.x(); + recHit_.hcol = hmp.y(); + + // Leaving the comment below, useful for future reference + // alpha: angle with respect to local x axis in local (x,z) plane + // float cotalpha = sim_xdir/sim_zdir; + // beta: angle with respect to local y axis in local (y,z) plane + // float cotbeta = sim_ydir/sim_zdir; + } +} + +// Function for filling in on track rechits +void Phase2PixelQCoreNtuple::fillPRecHit(const int detid_db, + const int subid, + const int layer_num, + const int ladder_num, + const int module_num, + const int disk_num, + const int blade_num, + const int panel_num, + const int side_num, + const TrackingRecHit* recHit, + const SiPixelRecHit* pixHit, + const int num_simhit, + const PSimHit* closest_simhit, + const GeomDet* PixGeom, + const TrajectoryStateOnSurface tsos) { + LocalPoint lp = recHit->localPosition(); + LocalError le = recHit->localPositionError(); + + recHit_.x = lp.x(); + recHit_.y = lp.y(); + recHit_.xx = le.xx(); + recHit_.xy = le.xy(); + recHit_.yy = le.yy(); + + recHit_.probQ = pixHit->probabilityQ(); + recHit_.probXY = pixHit->probabilityXY(); + + GlobalPoint GP = PixGeom->surface().toGlobal(recHit->localPosition()); + recHit_.gx = GP.x(); + recHit_.gy = GP.y(); + recHit_.gz = GP.z(); + GlobalPoint GP0 = PixGeom->surface().toGlobal(LocalPoint(0, 0, 0)); + recHit_.theta = GP0.theta(); + recHit_.phi = GP0.phi(); + recHit_.subid = subid; + + SiPixelRecHit::ClusterRef const& Cluster = pixHit->cluster(); + recHit_.q = Cluster->charge(); + recHit_.spreadx = Cluster->sizeX(); + recHit_.spready = Cluster->sizeY(); + + recHit_.nsimhit = num_simhit; + + recHit_.layer = layer_num; + recHit_.ladder = ladder_num; + recHit_.module = module_num; + recHit_.module = module_num; + recHit_.disk = disk_num; + recHit_.blade = blade_num; + recHit_.panel = panel_num; + recHit_.side = side_num; + + /*-- module topology --*/ + const PixelGeomDetUnit* theGeomDet = dynamic_cast(PixGeom); + const PixelTopology* topol = &(theGeomDet->specificTopology()); + recHit_.nRowsInDet = topol->nrows(); + recHit_.nColsInDet = topol->ncolumns(); + recHit_.pitchx = topol->pitch().first; + recHit_.pitchy = topol->pitch().second; + recHit_.thickness = theGeomDet->surface().bounds().thickness(); + + if (Cluster.isNonnull()) { + // compute local angles from det position + std::pair local_angles = computeAnglesFromDetPosition(*Cluster, *topol, *theGeomDet); + recHit_.cotAlphaFromDet = local_angles.first; + recHit_.cotBetaFromDet = local_angles.second; + + // compute local angles from track trajectory + recHit_.cotAlphaFromTrack = tsos.localParameters().dxdz(); + recHit_.cotBetaFromTrack = tsos.localParameters().dydz(); + + // -- Get digis of this cluster + const std::vector& pixvector = Cluster->pixels(); + for (unsigned int i = 0; i < pixvector.size(); ++i) { + if (recHit_.fDgN > DGPERCLMAX - 1) + break; + SiPixelCluster::Pixel holdpix = pixvector[i]; + + recHit_.fDgRow[recHit_.fDgN] = holdpix.x; + recHit_.fDgCol[recHit_.fDgN] = holdpix.y; + recHit_.fDgDetId[recHit_.fDgN] = detid_db; + recHit_.fDgAdc[recHit_.fDgN] = -99.; + recHit_.fDgCharge[recHit_.fDgN] = holdpix.adc / 1000.; + ++recHit_.fDgN; + } + } // if ( Cluster.isNonnull() ) + + if (num_simhit > 0) { + recHit_.pdgid = closest_simhit->particleType(); + recHit_.process = closest_simhit->processType(); + + float sim_x1 = closest_simhit->entryPoint().x(); + float sim_x2 = closest_simhit->exitPoint().x(); + recHit_.hx = 0.5 * (sim_x1 + sim_x2); + float sim_y1 = closest_simhit->entryPoint().y(); + float sim_y2 = closest_simhit->exitPoint().y(); + recHit_.hy = 0.5 * (sim_y1 + sim_y2); + + float time_to_detid_ns = GP0.mag() / (CLHEP::c_light * CLHEP::ns / CLHEP::cm); // speed of light in ns + recHit_.ht = closest_simhit->timeOfFlight() - time_to_detid_ns; + + recHit_.tx = closest_simhit->localDirection().x(); + recHit_.ty = closest_simhit->localDirection().y(); + recHit_.tz = closest_simhit->localDirection().z(); + + MeasurementPoint hmp = topol->measurementPosition(LocalPoint(recHit_.hx, recHit_.hy)); + recHit_.hrow = hmp.x(); + recHit_.hcol = hmp.y(); + + // Leaving the comment below, useful for future reference + // alpha: angle with respect to local x axis in local (x,z) plane + // float cotalpha = sim_xdir/sim_zdir; + // beta: angle with respect to local y axis in local (y,z) plane + // float cotbeta = sim_ydir/sim_zdir; + } +} + +void Phase2PixelQCoreNtuple::fillEvt(const edm::Event& E) { + evt_.run = E.id().run(); + evt_.evtnum = E.id().event(); +} + +void Phase2PixelQCoreNtuple::evt::init() { + int dummy_int = 9999; + run = dummy_int; + evtnum = dummy_int; +} + +void Phase2PixelQCoreNtuple::RecHit::init() { + float dummy_float = 9999.0; + + pdgid = 0; + process = 0; + q = dummy_float; + x = dummy_float; + y = dummy_float; + xx = dummy_float; + xy = dummy_float; + yy = dummy_float; + + row = dummy_float; + col = dummy_float; + gx = dummy_float; + gy = dummy_float; + gz = dummy_float; + nsimhit = 0; + subid = -99; + module = -99; + layer = -99; + ladder = -99; + disk = -99; + blade = -99; + panel = -99; + side = -99; + spreadx = 0; + spready = 0; + hx = dummy_float; + hy = dummy_float; + ht = dummy_float; + tx = dummy_float; + ty = dummy_float; + tz = dummy_float; + theta = dummy_float; + phi = dummy_float; + + fDgN = DGPERCLMAX; + for (int i = 0; i < fDgN; ++i) { + fDgRow[i] = fDgCol[i] = -9999; + fDgAdc[i] = fDgCharge[i] = -9999.; + // fDgRoc[i] = fDgRocR[i] = fDgRocC[i] = -9999; + } + fDgN = 0; +} +std::pair Phase2PixelQCoreNtuple::computeAnglesFromDetPosition(const SiPixelCluster& cl, + const PixelTopology& theTopol, + const GeomDetUnit& theDet) const { + // get cluster center of gravity (of charge) + float xcenter = cl.x(); + float ycenter = cl.y(); + + // get the cluster position in local coordinates (cm) + + // ggiurgiu@jhu.edu 12/09/2010 : This function is called without track info, therefore there are no track + // angles to provide here. Call the default localPosition (without track info) + LocalPoint lp = theTopol.localPosition(MeasurementPoint(xcenter, ycenter)); + const Local3DPoint origin = theDet.surface().toLocal(GlobalPoint(0, 0, 0)); // can be computed once... + + auto gvx = lp.x() - origin.x(); + auto gvy = lp.y() - origin.y(); + auto gvz = -1.f / origin.z(); + // normalization not required as only ratio used... + + // calculate angles + float cotalpha_ = gvx * gvz; + float cotbeta_ = gvy * gvz; + return std::make_pair(cotalpha_, cotbeta_); +} + +void Phase2PixelQCoreNtuple::processHits(const std::vector>& hitList) {} + +//define this as a plug-in +DEFINE_FWK_MODULE(Phase2PixelQCoreNtuple); diff --git a/EventFilter/Phase2TrackerRawToDigi/test/BuildFile.xml b/EventFilter/Phase2TrackerRawToDigi/test/BuildFile.xml index 3f7cb6c741495..a63f51311e57a 100644 --- a/EventFilter/Phase2TrackerRawToDigi/test/BuildFile.xml +++ b/EventFilter/Phase2TrackerRawToDigi/test/BuildFile.xml @@ -1,4 +1,5 @@ + @@ -6,5 +7,18 @@ + + + + + + + + + + + + + From 63fae6f57b252d4da55b1c265b1cea60c34f0300 Mon Sep 17 00:00:00 2001 From: sihyunjeon Date: Thu, 12 Dec 2024 06:26:13 +0100 Subject: [PATCH 258/418] remove Phase2PixelQCoreNtuple.cc --- .../test/plugins/Phase2PixelQCoreNtuple.cc | 900 ------------------ 1 file changed, 900 deletions(-) delete mode 100644 EventFilter/Phase2PixelRawToDigi/test/plugins/Phase2PixelQCoreNtuple.cc diff --git a/EventFilter/Phase2PixelRawToDigi/test/plugins/Phase2PixelQCoreNtuple.cc b/EventFilter/Phase2PixelRawToDigi/test/plugins/Phase2PixelQCoreNtuple.cc deleted file mode 100644 index c440c908df78d..0000000000000 --- a/EventFilter/Phase2PixelRawToDigi/test/plugins/Phase2PixelQCoreNtuple.cc +++ /dev/null @@ -1,900 +0,0 @@ -/* - class Phase2PixelQCoreNtuple -*/ -// DataFormats -#include "DataFormats/Common/interface/DetSetVector.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" - -#include "DataFormats/DetId/interface/DetId.h" -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" -#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" -#include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" -#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h" -#include "DataFormats/Phase2TrackerDigi/interface/Phase2ITChipBitStream.h" - -#include "DataFormats/TrackReco/interface/Track.h" - -#include "TrackingTools/Records/interface/TransientTrackRecord.h" -#include "TrackingTools/Records/interface/TransientRecHitRecord.h" - -#include "TrackingTools/TransientTrack/interface/TransientTrack.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHitBuilder.h" -#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" -#include "TrackingTools/TrackFitters/interface/TrajectoryStateCombiner.h" -#include "RecoTracker/TransientTrackingRecHit/interface/TkTransientTrackingRecHitBuilder.h" - -#include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h" -#include "TrackingTools/PatternTools/interface/Trajectory.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" -#include "TrackingTools/TransientTrack/interface/TransientTrack.h" -#include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" - -#include "SimDataFormats/TrackingHit/interface/PSimHit.h" -#include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" -#include "SimTracker/TrackerHitAssociation/interface/TrackerHitAssociator.h" -#include "SimDataFormats/Track/interface/SimTrack.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" - -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -// Geometry -#include "MagneticField/Engine/interface/MagneticField.h" -#include "Geometry/CommonDetUnit/interface/GeomDetType.h" -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "Geometry/Records/interface/IdealGeometryRecord.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" -#include "Geometry/CommonDetUnit/interface/PixelGeomDetType.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "Geometry/TrackerGeometryBuilder/interface/RectangularPixelTopology.h" -#include "Geometry/TrackerGeometryBuilder/interface/PixelTopologyBuilder.h" - -// For ROOT -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include - -// STD -#include -#include -#include - -// CLHEP (for speed of light) -#include "CLHEP/Units/PhysicalConstants.h" -#include "CLHEP/Units/SystemOfUnits.h" - -//#define EDM_ML_DEBUG - -using namespace std; -using namespace edm; -using namespace reco; - -class Phase2PixelQCoreNtuple : public edm::one::EDAnalyzer<> { -public: - explicit Phase2PixelQCoreNtuple(const edm::ParameterSet& conf); - virtual ~Phase2PixelQCoreNtuple(); - virtual void beginJob(); - virtual void endJob(); - virtual void analyze(const edm::Event& e, const edm::EventSetup& es); - -protected: - void fillEvt(const edm::Event&); - void fillPRecHit(const int detid_db, - const int subid, - const int layer_num, - const int ladder_num, - const int module_num, - const int disk_num, - const int blade_num, - const int panel_num, - const int side_num, - SiPixelRecHitCollection::DetSet::const_iterator pixeliter, - const int num_simhit, - const PSimHit* closest_simhit, - const GeomDet* PixGeom); - void fillPRecHit(const int detid_db, - const int subid, - const int layer_num, - const int ladder_num, - const int module_num, - const int disk_num, - const int blade_num, - const int panel_num, - const int side_num, - const TrackingRecHit* transRecHit, - const SiPixelRecHit* pixHit, - const int num_simhit, - const PSimHit* closest_simhit, - const GeomDet* PixGeom, - const TrajectoryStateOnSurface tsos); - - void processHits(const std::vector>& hitList); - - std::pair computeAnglesFromDetPosition(const SiPixelCluster& cl, - const PixelTopology& top, - const GeomDetUnit& det) const; - -private: - edm::ParameterSet const conf_; - edm::ESGetToken tTopoToken_; - edm::ESGetToken geomToken_; - TrackerHitAssociator::Config trackerHitAssociatorConfig_; - edm::EDGetTokenT> pixelRecHits_token_; - edm::EDGetTokenT> qcore_token_; - edm::EDGetTokenT> bitstream_token_; - edm::EDGetTokenT> pixelDigi_token_; - edm::EDGetTokenT> recoTracks_token_; - edm::EDGetTokenT tta_token_; - - bool verbose_; - bool picky_; - static const int DGPERCLMAX = 100; - - float trkPt_, trkEta_, trkTheta_, trkPhi_; - int trkIsHighPurity_; - - //--- Structures for ntupling: - struct evt { - int run; - int evtnum; - - void init(); - } evt_; - - struct RecHit { - int pdgid; - int process; - float q; - float x; - float y; - float xx; - float xy; - float yy; - - float probQ; - float probXY; - - float row; - float col; - float gx; - float gy; - float gz; - int subid, module; - int layer, ladder; // BPix - int disk, blade, panel, side; // FPix - int nsimhit; - int spreadx, spready; - float hx, hy, ht; - float hrow, hcol; - float tx, ty, tz; - float theta, phi; - - // detector topology - int nRowsInDet; - int nColsInDet; - float pitchx; - float pitchy; - float thickness; - - // local angles from det position - float cotAlphaFromDet, cotBetaFromDet; - // local angles from track trajectory - float cotAlphaFromTrack, cotBetaFromTrack; - - // digis - int fDgN; - int fDgRow[DGPERCLMAX], fDgCol[DGPERCLMAX]; - int fDgDetId[DGPERCLMAX]; - float fDgAdc[DGPERCLMAX], fDgCharge[DGPERCLMAX]; - - void init(); - } recHit_; - - edm::Service tFileService; - TTree* pixeltree_; - TTree* pixeltreeOnTrack_; -}; - -Phase2PixelQCoreNtuple::Phase2PixelQCoreNtuple(edm::ParameterSet const& conf) - : tTopoToken_(esConsumes()), - geomToken_(esConsumes()), - trackerHitAssociatorConfig_(conf, consumesCollector()), - pixelRecHits_token_(consumes>(edm::InputTag("siPixelRecHits"))), - qcore_token_(consumes>(edm::InputTag("Phase2ITQCore"))), - bitstream_token_(consumes>(edm::InputTag("Phase2ITQCore"))), - pixelDigi_token_(consumes>(conf.getParameter("siPixelDigi"))), - recoTracks_token_(consumes>(conf.getParameter("trackProducer"))), - tta_token_(consumes(conf.getParameter("trajectoryInput"))), - verbose_(conf.getUntrackedParameter("verbose", false)), - picky_(conf.getUntrackedParameter("picky", false)), - pixeltree_(0), - pixeltreeOnTrack_(0) {} - -Phase2PixelQCoreNtuple::~Phase2PixelQCoreNtuple() {} - -void Phase2PixelQCoreNtuple::endJob() {} - -void Phase2PixelQCoreNtuple::beginJob() { - pixeltree_ = tFileService->make("PixelNtuple", "Pixel hit analyzer ntuple"); - pixeltreeOnTrack_ = tFileService->make("PixelNtupleOnTrack", "On-Track Pixel hit analyzer ntuple"); - - int bufsize = 64000; - //Common Branch - pixeltree_->Branch("evt", &evt_, "run/I:evtnum/I", bufsize); - pixeltree_->Branch("pdgid", &recHit_.pdgid, "pdgid/I"); - pixeltree_->Branch("process", &recHit_.process, "process/I"); - pixeltree_->Branch("q", &recHit_.q, "q/F"); - pixeltree_->Branch("x", &recHit_.x, "x/F"); - pixeltree_->Branch("y", &recHit_.y, "y/F"); - pixeltree_->Branch("xx", &recHit_.xx, "xx/F"); - pixeltree_->Branch("xy", &recHit_.xy, "xy/F"); - pixeltree_->Branch("yy", &recHit_.yy, "yy/F"); - pixeltree_->Branch("row", &recHit_.row, "row/F"); - pixeltree_->Branch("col", &recHit_.col, "col/F"); - pixeltree_->Branch("gx", &recHit_.gx, "gx/F"); - pixeltree_->Branch("gy", &recHit_.gy, "gy/F"); - pixeltree_->Branch("gz", &recHit_.gz, "gz/F"); - pixeltree_->Branch("subid", &recHit_.subid, "subid/I"); - pixeltree_->Branch("module", &recHit_.module, "module/I"); - pixeltree_->Branch("layer", &recHit_.layer, "layer/I"); - pixeltree_->Branch("ladder", &recHit_.ladder, "ladder/I"); - pixeltree_->Branch("disk", &recHit_.disk, "disk/I"); - pixeltree_->Branch("blade", &recHit_.blade, "blade/I"); - pixeltree_->Branch("panel", &recHit_.panel, "panel/I"); - pixeltree_->Branch("side", &recHit_.side, "side/I"); - pixeltree_->Branch("nsimhit", &recHit_.nsimhit, "nsimhit/I"); - pixeltree_->Branch("spreadx", &recHit_.spreadx, "spreadx/I"); - pixeltree_->Branch("spready", &recHit_.spready, "spready/I"); - pixeltree_->Branch("hx", &recHit_.hx, "hx/F"); - pixeltree_->Branch("hy", &recHit_.hy, "hy/F"); - pixeltree_->Branch("ht", &recHit_.ht, "ht/F"); - pixeltree_->Branch("hrow", &recHit_.hrow, "hrow/F"); - pixeltree_->Branch("hcol", &recHit_.hcol, "hcol/F"); - pixeltree_->Branch("tx", &recHit_.tx, "tx/F"); - pixeltree_->Branch("ty", &recHit_.ty, "ty/F"); - pixeltree_->Branch("tz", &recHit_.tz, "tz/F"); - pixeltree_->Branch("theta", &recHit_.theta, "theta/F"); - pixeltree_->Branch("phi", &recHit_.phi, "phi/F"); - pixeltree_->Branch("nRowsInDet", &recHit_.nRowsInDet, "nRowsInDet/I"); - pixeltree_->Branch("nColsInDet", &recHit_.nColsInDet, "nColsInDet/I"); - pixeltree_->Branch("pitchx", &recHit_.pitchx, "pitchx/F"); - pixeltree_->Branch("pitchy", &recHit_.pitchy, "pitchy/F"); - pixeltree_->Branch("thickness", &recHit_.thickness, "thickness/F"); - pixeltree_->Branch("cotAlphaFromDet", &recHit_.cotAlphaFromDet, "cotAlphaFromDet/F"); - pixeltree_->Branch("cotBetaFromDet", &recHit_.cotBetaFromDet, "cotBetaFromDet/F"); - - pixeltree_->Branch("DgN", &recHit_.fDgN, "DgN/I"); - pixeltree_->Branch("DgRow", recHit_.fDgRow, "DgRow[DgN]/I"); - pixeltree_->Branch("DgCol", recHit_.fDgCol, "DgCol[DgN]/I"); - pixeltree_->Branch("DgDetId", recHit_.fDgDetId, "DgDetId[DgN]/I"); - pixeltree_->Branch("DgAdc", recHit_.fDgAdc, "DgAdc[DgN]/F"); - pixeltree_->Branch("DgCharge", recHit_.fDgCharge, "DgCharge[DgN]/F"); - - //Common Branch (on-track) - pixeltreeOnTrack_->Branch("evt", &evt_, "run/I:evtnum/I", bufsize); - pixeltreeOnTrack_->Branch("pdgid", &recHit_.pdgid, "pdgid/I"); - pixeltreeOnTrack_->Branch("process", &recHit_.process, "process/I"); - pixeltreeOnTrack_->Branch("q", &recHit_.q, "q/F"); - pixeltreeOnTrack_->Branch("x", &recHit_.x, "x/F"); - pixeltreeOnTrack_->Branch("y", &recHit_.y, "y/F"); - pixeltreeOnTrack_->Branch("xx", &recHit_.xx, "xx/F"); - pixeltreeOnTrack_->Branch("xy", &recHit_.xy, "xy/F"); - pixeltreeOnTrack_->Branch("yy", &recHit_.yy, "yy/F"); - pixeltreeOnTrack_->Branch("probQ", &recHit_.probQ); - pixeltreeOnTrack_->Branch("probXY", &recHit_.probXY); - - pixeltreeOnTrack_->Branch("row", &recHit_.row, "row/F"); - pixeltreeOnTrack_->Branch("col", &recHit_.col, "col/F"); - pixeltreeOnTrack_->Branch("gx", &recHit_.gx, "gx/F"); - pixeltreeOnTrack_->Branch("gy", &recHit_.gy, "gy/F"); - pixeltreeOnTrack_->Branch("gz", &recHit_.gz, "gz/F"); - pixeltreeOnTrack_->Branch("subid", &recHit_.subid, "subid/I"); - pixeltreeOnTrack_->Branch("module", &recHit_.module, "module/I"); - pixeltreeOnTrack_->Branch("layer", &recHit_.layer, "layer/I"); - pixeltreeOnTrack_->Branch("ladder", &recHit_.ladder, "ladder/I"); - pixeltreeOnTrack_->Branch("disk", &recHit_.disk, "disk/I"); - pixeltreeOnTrack_->Branch("blade", &recHit_.blade, "blade/I"); - pixeltreeOnTrack_->Branch("panel", &recHit_.panel, "panel/I"); - pixeltreeOnTrack_->Branch("side", &recHit_.side, "side/I"); - pixeltreeOnTrack_->Branch("nsimhit", &recHit_.nsimhit, "nsimhit/I"); - pixeltreeOnTrack_->Branch("spreadx", &recHit_.spreadx, "spreadx/I"); - pixeltreeOnTrack_->Branch("spready", &recHit_.spready, "spready/I"); - pixeltreeOnTrack_->Branch("hx", &recHit_.hx, "hx/F"); - pixeltreeOnTrack_->Branch("hy", &recHit_.hy, "hy/F"); - pixeltreeOnTrack_->Branch("ht", &recHit_.ht, "ht/F"); - pixeltreeOnTrack_->Branch("hrow", &recHit_.hrow, "hrow/F"); - pixeltreeOnTrack_->Branch("hcol", &recHit_.hcol, "hcol/F"); - pixeltreeOnTrack_->Branch("tx", &recHit_.tx, "tx/F"); - pixeltreeOnTrack_->Branch("ty", &recHit_.ty, "ty/F"); - pixeltreeOnTrack_->Branch("tz", &recHit_.tz, "tz/F"); - pixeltreeOnTrack_->Branch("theta", &recHit_.theta, "theta/F"); - pixeltreeOnTrack_->Branch("phi", &recHit_.phi, "phi/F"); - pixeltreeOnTrack_->Branch("nRowsInDet", &recHit_.nRowsInDet, "nRowsInDet/I"); - pixeltreeOnTrack_->Branch("nColsInDet", &recHit_.nColsInDet, "nColsInDet/I"); - pixeltreeOnTrack_->Branch("pitchx", &recHit_.pitchx, "pitchx/F"); - pixeltreeOnTrack_->Branch("pitchy", &recHit_.pitchy, "pitchy/F"); - pixeltreeOnTrack_->Branch("thickness", &recHit_.thickness, "thickness/F"); - pixeltreeOnTrack_->Branch("cotAlphaFromDet", &recHit_.cotAlphaFromDet, "cotAlphaFromDet/F"); - pixeltreeOnTrack_->Branch("cotBetaFromDet", &recHit_.cotBetaFromDet, "cotBetaFromDet/F"); - - pixeltreeOnTrack_->Branch("trkPt", &trkPt_); - pixeltreeOnTrack_->Branch("trkEta", &trkEta_); - pixeltreeOnTrack_->Branch("trkTheta", &trkTheta_); - pixeltreeOnTrack_->Branch("trkPhi", &trkPhi_); - pixeltreeOnTrack_->Branch("trkIsHighPurity", &trkIsHighPurity_); - pixeltreeOnTrack_->Branch("cotAlphaFromTrack", &recHit_.cotAlphaFromTrack, "cotAlphaFromTrack/F"); - pixeltreeOnTrack_->Branch("cotBetaFromTrack", &recHit_.cotBetaFromTrack, "cotBetaFromTrack/F"); - - pixeltreeOnTrack_->Branch("DgN", &recHit_.fDgN, "DgN/I"); - pixeltreeOnTrack_->Branch("DgRow", recHit_.fDgRow, "DgRow[DgN]/I"); - pixeltreeOnTrack_->Branch("DgCol", recHit_.fDgCol, "DgCol[DgN]/I"); - pixeltreeOnTrack_->Branch("DgDetId", recHit_.fDgDetId, "DgDetId[DgN]/I"); - pixeltreeOnTrack_->Branch("DgAdc", recHit_.fDgAdc, "DgAdc[DgN]/F"); - pixeltreeOnTrack_->Branch("DgCharge", recHit_.fDgCharge, "DgCharge[DgN]/F"); -} - -// Functions that gets called by framework every event -void Phase2PixelQCoreNtuple::analyze(const edm::Event& e, const edm::EventSetup& es) { - //Retrieve tracker topology from geometry - const TrackerTopology* const tTopo = &es.getData(tTopoToken_); - - // geometry setup - const TrackerGeometry* const theGeometry = &es.getData(geomToken_); - - std::vector matched; - const PSimHit* closest_simhit = nullptr; - - edm::Handle recHitColl; - e.getByToken(pixelRecHits_token_, recHitColl); - - edm::Handle> aQCoreVector; - e.getByToken(qcore_token_, aQCoreVector); - - edm::Handle> aBitStreamVector; - e.getByToken(bitstream_token_, aBitStreamVector); - - // for finding matched simhit - TrackerHitAssociator associate(e, trackerHitAssociatorConfig_); - - edm::Handle> pixelDigiHandle; - e.getByToken(pixelDigi_token_, pixelDigiHandle); - - if ((recHitColl.product())->dataSize() > 0) { - std::string detname; - - evt_.init(); - fillEvt(e); - - // Loop over Detector IDs - for (auto recHitIdIterator : *(recHitColl.product())) { - SiPixelRecHitCollection::DetSet detset = recHitIdIterator; - - if (detset.empty()) - continue; - DetId detId = DetId(detset.detId()); // Get the Detid object - - const GeomDet* geomDet(theGeometry->idToDet(detId)); - - // Loop over rechits for this detid - for (auto iterRecHit : detset) { - // get matched simhit - matched.clear(); - matched = associate.associateHit(iterRecHit); - if (!matched.empty()) { - float closest = 9999.9; - LocalPoint lp = iterRecHit.localPosition(); - float rechit_x = lp.x(); - float rechit_y = lp.y(); - //loop over simhits and find closest - for (auto const& m : matched) { - float sim_x1 = m.entryPoint().x(); - float sim_x2 = m.exitPoint().x(); - float sim_xpos = 0.5 * (sim_x1 + sim_x2); - float sim_y1 = m.entryPoint().y(); - float sim_y2 = m.exitPoint().y(); - float sim_ypos = 0.5 * (sim_y1 + sim_y2); - - float x_res = sim_xpos - rechit_x; - float y_res = sim_ypos - rechit_y; - float dist = sqrt(x_res * x_res + y_res * y_res); - if (dist < closest) { - closest = dist; - closest_simhit = &m; - } - } // end of simhit loop - } // end matched emtpy - unsigned int subid = detId.subdetId(); - int detid_db = detId.rawId(); - int layer_num = -99, ladder_num = -99, module_num = -99, disk_num = -99, blade_num = -99, panel_num = -99, - side_num = -99; - if ((subid == PixelSubdetector::PixelBarrel) || (subid == PixelSubdetector::PixelEndcap)) { - // 1 = PXB, 2 = PXF - if (subid == PixelSubdetector::PixelBarrel) { - layer_num = tTopo->pxbLayer(detId.rawId()); - ladder_num = tTopo->pxbLadder(detId.rawId()); - module_num = tTopo->pxbModule(detId.rawId()); - } else if (subid == PixelSubdetector::PixelEndcap) { - module_num = tTopo->pxfModule(detId()); - disk_num = tTopo->pxfDisk(detId()); - blade_num = tTopo->pxfBlade(detId()); - panel_num = tTopo->pxfPanel(detId()); - side_num = tTopo->pxfSide(detId()); - } - int num_simhit = matched.size(); - recHit_.init(); - // filling in on ALL track rechits - fillPRecHit(detid_db, - subid, - layer_num, - ladder_num, - module_num, - disk_num, - blade_num, - panel_num, - side_num, - &iterRecHit, - num_simhit, - closest_simhit, - geomDet); - pixeltree_->Fill(); - } - } // end of rechit loop - } // end of detid loop - } // end of loop test on recHitColl size - - // Now loop over recotracks - edm::Handle> trackCollection; - e.getByToken(recoTracks_token_, trackCollection); - - // -- Track trajectory association map - edm::Handle hTTAC; - e.getByToken(tta_token_, hTTAC); - TrajectoryStateCombiner tsoscomb; - - if (!trackCollection.isValid()) { - if (picky_) { - throw cms::Exception("ProductNotValid") << "TrackCollection product not valid"; - } else { - std::cout << "TrackCollection product not valid" << endl; - } - - } else if (!hTTAC.isValid()) { - if (picky_) { - throw cms::Exception("ProductNotValid") << "TrajectoryAssociationCollection product not valid"; - } else { - std::cout << "TrajectoryAssociationCollection product not valid" << endl; - } - - } else { - const TrajTrackAssociationCollection ttac = *(hTTAC.product()); - for (TrajTrackAssociationCollection::const_iterator it = ttac.begin(); it != ttac.end(); ++it) { - const edm::Ref> refTraj = it->key; - auto track = it->val; - trkIsHighPurity_ = track->quality(reco::TrackBase::highPurity); - trkPt_ = track->pt(); - trkEta_ = track->eta(); - trkTheta_ = track->theta(); - trkPhi_ = track->phi(); - - std::vector tmeasColl = refTraj->measurements(); - for (auto const& tmeasIt : tmeasColl) { - if (!tmeasIt.updatedState().isValid()) - continue; - if (!tmeasIt.recHit()->isValid()) - continue; - - const TrackingRecHit* hit = tmeasIt.recHit()->hit(); - const SiPixelRecHit* pixhit = dynamic_cast(hit); - if (pixhit == nullptr) - continue; - if (!pixhit->isValid()) - continue; - TrajectoryStateOnSurface tsos = tsoscomb(tmeasIt.forwardPredictedState(), tmeasIt.backwardPredictedState()); - const DetId& detId = hit->geographicalId(); - const GeomDet* geomDet(theGeometry->idToDet(detId)); - - if (pixhit) { - // get matched simhit - matched.clear(); - matched = associate.associateHit(*pixhit); - - if (!matched.empty()) { - float closest = 9999.9; - LocalPoint lp = pixhit->localPosition(); - float rechit_x = lp.x(); - float rechit_y = lp.y(); - - //loop over simhits and find closest - //for (std::vector::const_iterator m = matched.begin(); mpxbLayer(detId.rawId()); - ladder_num = tTopo->pxbLadder(detId.rawId()); - module_num = tTopo->pxbModule(detId.rawId()); - } else if (subid == PixelSubdetector::PixelEndcap) { - module_num = tTopo->pxfModule(detId()); - disk_num = tTopo->pxfDisk(detId()); - blade_num = tTopo->pxfBlade(detId()); - panel_num = tTopo->pxfPanel(detId()); - side_num = tTopo->pxfSide(detId()); - } - - recHit_.init(); - // fill on track rechits - fillPRecHit(detid_db, - subid, - layer_num, - ladder_num, - module_num, - disk_num, - blade_num, - panel_num, - side_num, - hit, // TransientTrackingRecHit * - pixhit, // SiPixelRecHit * - num_simhit, - closest_simhit, - geomDet, - tsos); - pixeltreeOnTrack_->Fill(); - } // if ( (subid==1)||(subid==2) ) - } // if cast is possible to SiPixelHit - } //end of loop on tracking rechits - } // end of loop on recotracks - } // else track collection is valid -} // end analyze function - -// Function for filling in all the rechits -// I know it is lazy to pass everything, but I'm doing it anyway. -EB -void Phase2PixelQCoreNtuple::fillPRecHit(const int detid_db, - const int subid, - const int layer_num, - const int ladder_num, - const int module_num, - const int disk_num, - const int blade_num, - const int panel_num, - const int side_num, - SiPixelRecHitCollection::DetSet::const_iterator pixeliter, - const int num_simhit, - const PSimHit* closest_simhit, - const GeomDet* PixGeom) { - LocalPoint lp = pixeliter->localPosition(); - LocalError le = pixeliter->localPositionError(); - - recHit_.x = lp.x(); - recHit_.y = lp.y(); - recHit_.xx = le.xx(); - recHit_.xy = le.xy(); - recHit_.yy = le.yy(); - GlobalPoint GP = PixGeom->surface().toGlobal(lp); - recHit_.gx = GP.x(); - recHit_.gy = GP.y(); - recHit_.gz = GP.z(); - GlobalPoint GP0 = PixGeom->surface().toGlobal(LocalPoint(0, 0, 0)); - recHit_.theta = GP0.theta(); - recHit_.phi = GP0.phi(); - - SiPixelRecHit::ClusterRef const& Cluster = pixeliter->cluster(); - recHit_.q = Cluster->charge(); - recHit_.spreadx = Cluster->sizeX(); - recHit_.spready = Cluster->sizeY(); - - recHit_.subid = subid; - recHit_.nsimhit = num_simhit; - - recHit_.layer = layer_num; - recHit_.ladder = ladder_num; - recHit_.module = module_num; - recHit_.module = module_num; - recHit_.disk = disk_num; - recHit_.blade = blade_num; - recHit_.panel = panel_num; - recHit_.side = side_num; - - /*-- module topology --*/ - const PixelGeomDetUnit* theGeomDet = dynamic_cast(PixGeom); - const PixelTopology* topol = &(theGeomDet->specificTopology()); - recHit_.nRowsInDet = topol->nrows(); - recHit_.nColsInDet = topol->ncolumns(); - recHit_.pitchx = topol->pitch().first; - recHit_.pitchy = topol->pitch().second; - recHit_.thickness = theGeomDet->surface().bounds().thickness(); - - MeasurementPoint mp = topol->measurementPosition(LocalPoint(recHit_.x, recHit_.y)); - recHit_.row = mp.x(); - recHit_.col = mp.y(); - - if (Cluster.isNonnull()) { - // compute local angles from det position - std::pair local_angles = computeAnglesFromDetPosition(*Cluster, *topol, *theGeomDet); - recHit_.cotAlphaFromDet = local_angles.first; - recHit_.cotBetaFromDet = local_angles.second; - - // -- Get digis of this cluster - const std::vector& pixvector = Cluster->pixels(); - for (unsigned int i = 0; i < pixvector.size(); ++i) { - if (recHit_.fDgN > DGPERCLMAX - 1) - break; - SiPixelCluster::Pixel holdpix = pixvector[i]; - - recHit_.fDgRow[recHit_.fDgN] = holdpix.x; - recHit_.fDgCol[recHit_.fDgN] = holdpix.y; - recHit_.fDgDetId[recHit_.fDgN] = detid_db; - recHit_.fDgAdc[recHit_.fDgN] = -99.; - recHit_.fDgCharge[recHit_.fDgN] = holdpix.adc / 1000.; - ++recHit_.fDgN; - } - } // if ( Cluster.isNonnull() ) - - if (num_simhit > 0) { - recHit_.pdgid = closest_simhit->particleType(); - recHit_.process = closest_simhit->processType(); - - float sim_x1 = closest_simhit->entryPoint().x(); - float sim_x2 = closest_simhit->exitPoint().x(); - recHit_.hx = 0.5 * (sim_x1 + sim_x2); - float sim_y1 = closest_simhit->entryPoint().y(); - float sim_y2 = closest_simhit->exitPoint().y(); - recHit_.hy = 0.5 * (sim_y1 + sim_y2); - - float time_to_detid_ns = GP0.mag() / (CLHEP::c_light * CLHEP::ns / CLHEP::cm); // speed of light in ns - recHit_.ht = closest_simhit->timeOfFlight() - time_to_detid_ns; - - recHit_.tx = closest_simhit->localDirection().x(); - recHit_.ty = closest_simhit->localDirection().y(); - recHit_.tz = closest_simhit->localDirection().z(); - - MeasurementPoint hmp = topol->measurementPosition(LocalPoint(recHit_.hx, recHit_.hy)); - recHit_.hrow = hmp.x(); - recHit_.hcol = hmp.y(); - - // Leaving the comment below, useful for future reference - // alpha: angle with respect to local x axis in local (x,z) plane - // float cotalpha = sim_xdir/sim_zdir; - // beta: angle with respect to local y axis in local (y,z) plane - // float cotbeta = sim_ydir/sim_zdir; - } -} - -// Function for filling in on track rechits -void Phase2PixelQCoreNtuple::fillPRecHit(const int detid_db, - const int subid, - const int layer_num, - const int ladder_num, - const int module_num, - const int disk_num, - const int blade_num, - const int panel_num, - const int side_num, - const TrackingRecHit* recHit, - const SiPixelRecHit* pixHit, - const int num_simhit, - const PSimHit* closest_simhit, - const GeomDet* PixGeom, - const TrajectoryStateOnSurface tsos) { - LocalPoint lp = recHit->localPosition(); - LocalError le = recHit->localPositionError(); - - recHit_.x = lp.x(); - recHit_.y = lp.y(); - recHit_.xx = le.xx(); - recHit_.xy = le.xy(); - recHit_.yy = le.yy(); - - recHit_.probQ = pixHit->probabilityQ(); - recHit_.probXY = pixHit->probabilityXY(); - - GlobalPoint GP = PixGeom->surface().toGlobal(recHit->localPosition()); - recHit_.gx = GP.x(); - recHit_.gy = GP.y(); - recHit_.gz = GP.z(); - GlobalPoint GP0 = PixGeom->surface().toGlobal(LocalPoint(0, 0, 0)); - recHit_.theta = GP0.theta(); - recHit_.phi = GP0.phi(); - recHit_.subid = subid; - - SiPixelRecHit::ClusterRef const& Cluster = pixHit->cluster(); - recHit_.q = Cluster->charge(); - recHit_.spreadx = Cluster->sizeX(); - recHit_.spready = Cluster->sizeY(); - - recHit_.nsimhit = num_simhit; - - recHit_.layer = layer_num; - recHit_.ladder = ladder_num; - recHit_.module = module_num; - recHit_.module = module_num; - recHit_.disk = disk_num; - recHit_.blade = blade_num; - recHit_.panel = panel_num; - recHit_.side = side_num; - - /*-- module topology --*/ - const PixelGeomDetUnit* theGeomDet = dynamic_cast(PixGeom); - const PixelTopology* topol = &(theGeomDet->specificTopology()); - recHit_.nRowsInDet = topol->nrows(); - recHit_.nColsInDet = topol->ncolumns(); - recHit_.pitchx = topol->pitch().first; - recHit_.pitchy = topol->pitch().second; - recHit_.thickness = theGeomDet->surface().bounds().thickness(); - - if (Cluster.isNonnull()) { - // compute local angles from det position - std::pair local_angles = computeAnglesFromDetPosition(*Cluster, *topol, *theGeomDet); - recHit_.cotAlphaFromDet = local_angles.first; - recHit_.cotBetaFromDet = local_angles.second; - - // compute local angles from track trajectory - recHit_.cotAlphaFromTrack = tsos.localParameters().dxdz(); - recHit_.cotBetaFromTrack = tsos.localParameters().dydz(); - - // -- Get digis of this cluster - const std::vector& pixvector = Cluster->pixels(); - for (unsigned int i = 0; i < pixvector.size(); ++i) { - if (recHit_.fDgN > DGPERCLMAX - 1) - break; - SiPixelCluster::Pixel holdpix = pixvector[i]; - - recHit_.fDgRow[recHit_.fDgN] = holdpix.x; - recHit_.fDgCol[recHit_.fDgN] = holdpix.y; - recHit_.fDgDetId[recHit_.fDgN] = detid_db; - recHit_.fDgAdc[recHit_.fDgN] = -99.; - recHit_.fDgCharge[recHit_.fDgN] = holdpix.adc / 1000.; - ++recHit_.fDgN; - } - } // if ( Cluster.isNonnull() ) - - if (num_simhit > 0) { - recHit_.pdgid = closest_simhit->particleType(); - recHit_.process = closest_simhit->processType(); - - float sim_x1 = closest_simhit->entryPoint().x(); - float sim_x2 = closest_simhit->exitPoint().x(); - recHit_.hx = 0.5 * (sim_x1 + sim_x2); - float sim_y1 = closest_simhit->entryPoint().y(); - float sim_y2 = closest_simhit->exitPoint().y(); - recHit_.hy = 0.5 * (sim_y1 + sim_y2); - - float time_to_detid_ns = GP0.mag() / (CLHEP::c_light * CLHEP::ns / CLHEP::cm); // speed of light in ns - recHit_.ht = closest_simhit->timeOfFlight() - time_to_detid_ns; - - recHit_.tx = closest_simhit->localDirection().x(); - recHit_.ty = closest_simhit->localDirection().y(); - recHit_.tz = closest_simhit->localDirection().z(); - - MeasurementPoint hmp = topol->measurementPosition(LocalPoint(recHit_.hx, recHit_.hy)); - recHit_.hrow = hmp.x(); - recHit_.hcol = hmp.y(); - - // Leaving the comment below, useful for future reference - // alpha: angle with respect to local x axis in local (x,z) plane - // float cotalpha = sim_xdir/sim_zdir; - // beta: angle with respect to local y axis in local (y,z) plane - // float cotbeta = sim_ydir/sim_zdir; - } -} - -void Phase2PixelQCoreNtuple::fillEvt(const edm::Event& E) { - evt_.run = E.id().run(); - evt_.evtnum = E.id().event(); -} - -void Phase2PixelQCoreNtuple::evt::init() { - int dummy_int = 9999; - run = dummy_int; - evtnum = dummy_int; -} - -void Phase2PixelQCoreNtuple::RecHit::init() { - float dummy_float = 9999.0; - - pdgid = 0; - process = 0; - q = dummy_float; - x = dummy_float; - y = dummy_float; - xx = dummy_float; - xy = dummy_float; - yy = dummy_float; - - row = dummy_float; - col = dummy_float; - gx = dummy_float; - gy = dummy_float; - gz = dummy_float; - nsimhit = 0; - subid = -99; - module = -99; - layer = -99; - ladder = -99; - disk = -99; - blade = -99; - panel = -99; - side = -99; - spreadx = 0; - spready = 0; - hx = dummy_float; - hy = dummy_float; - ht = dummy_float; - tx = dummy_float; - ty = dummy_float; - tz = dummy_float; - theta = dummy_float; - phi = dummy_float; - - fDgN = DGPERCLMAX; - for (int i = 0; i < fDgN; ++i) { - fDgRow[i] = fDgCol[i] = -9999; - fDgAdc[i] = fDgCharge[i] = -9999.; - // fDgRoc[i] = fDgRocR[i] = fDgRocC[i] = -9999; - } - fDgN = 0; -} -std::pair Phase2PixelQCoreNtuple::computeAnglesFromDetPosition(const SiPixelCluster& cl, - const PixelTopology& theTopol, - const GeomDetUnit& theDet) const { - // get cluster center of gravity (of charge) - float xcenter = cl.x(); - float ycenter = cl.y(); - - // get the cluster position in local coordinates (cm) - - // ggiurgiu@jhu.edu 12/09/2010 : This function is called without track info, therefore there are no track - // angles to provide here. Call the default localPosition (without track info) - LocalPoint lp = theTopol.localPosition(MeasurementPoint(xcenter, ycenter)); - const Local3DPoint origin = theDet.surface().toLocal(GlobalPoint(0, 0, 0)); // can be computed once... - - auto gvx = lp.x() - origin.x(); - auto gvy = lp.y() - origin.y(); - auto gvz = -1.f / origin.z(); - // normalization not required as only ratio used... - - // calculate angles - float cotalpha_ = gvx * gvz; - float cotbeta_ = gvy * gvz; - return std::make_pair(cotalpha_, cotbeta_); -} - -void Phase2PixelQCoreNtuple::processHits(const std::vector>& hitList) {} - -//define this as a plug-in -DEFINE_FWK_MODULE(Phase2PixelQCoreNtuple); From cfd7af7699c48b5837a1788f3dde15036d62e67b Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 31 Oct 2024 07:25:14 +0100 Subject: [PATCH 259/418] Include jemalloc info into peak RSS/VSIZE printouts --- FWCore/Services/plugins/SimpleMemoryCheck.cc | 121 ++++++++++++++++--- 1 file changed, 106 insertions(+), 15 deletions(-) diff --git a/FWCore/Services/plugins/SimpleMemoryCheck.cc b/FWCore/Services/plugins/SimpleMemoryCheck.cc index 253f80eae84f4..a9a111cc61a43 100644 --- a/FWCore/Services/plugins/SimpleMemoryCheck.cc +++ b/FWCore/Services/plugins/SimpleMemoryCheck.cc @@ -54,6 +54,13 @@ #include #include +#include + +// for jemalloc queries +#include +extern "C" { +typedef int (*mallctl_t)(const char* name, void* oldp, size_t* oldlenp, void* newp, size_t newlen); +} namespace edm { namespace service { @@ -62,6 +69,13 @@ namespace edm { double pss_ = 0; // in MB double anonHugePages_ = 0; // in MB }; + struct JemallocInfo { + double allocated = 0; // in MB + double active = 0; // in MB + double resident = 0; // in MB + double mapped = 0; // in MB + double metadata = 0; // in MB + }; class SimpleMemoryCheck { public: @@ -94,6 +108,7 @@ namespace edm { private: ProcInfo fetch(); smapsInfo fetchSmaps(); + JemallocInfo fetchJemalloc() const; double pageSize() const { return pg_size_; } double averageGrowthRate(double current, double past, int count); void update(); @@ -101,7 +116,7 @@ namespace edm { void andPrintAlways(const std::string& type, const std::string& mdlabel, const std::string& mdname, - bool includeSmaps = false) const; + bool includeSmapsAndJe = false) const; void andPrint(const std::string& type, const std::string& mdlabel, const std::string& mdname) const; void updateAndPrint(const std::string& type, const std::string& mdlabel, const std::string& mdname); void openFiles(); @@ -122,6 +137,7 @@ namespace edm { int num_to_skip_; //options bool showMallocInfo_; + bool showJemallocInfo_; bool oncePerEventMode_; bool printEachTime_; bool jobReportOutputOnly_; @@ -132,6 +148,8 @@ namespace edm { std::atomic stopThread_ = false; std::atomic mostRecentlyStartedEvent_; + mallctl_t je_mallctl = nullptr; + //smaps edm::propagate_const smapsFile_ = nullptr; edm::propagate_const smapsLineBuffer_; @@ -143,16 +161,17 @@ namespace edm { // Event summary statistics changeLog 1 struct SignificantEvent { - int count = 0; + edm::EventID event; double vsize = 0; double deltaVsize = 0; double rss = 0; double deltaRss = 0; - bool monitorPssAndPrivate = 0; double privateSize = 0; double pss = 0; double anonHugePages = 0; - edm::EventID event; + std::optional jemalloc; + int count = 0; + bool monitorPssAndPrivate = false; SignificantEvent() = default; void set(double deltaV, double deltaR, edm::EventID const& e, SimpleMemoryCheck* t) { count = t->count_; @@ -166,6 +185,9 @@ namespace edm { pss = t->currentSmaps_.pss_; anonHugePages = t->currentSmaps_.anonHugePages_; } + if (t->showJemallocInfo_) { + jemalloc = t->fetchJemalloc(); + } event = e; } }; // SignificantEvent @@ -320,6 +342,43 @@ namespace edm { return ret; } + JemallocInfo SimpleMemoryCheck::fetchJemalloc() const { + JemallocInfo info; + if (je_mallctl) { + // refresh stats + uint64_t epoch = 1; + size_t e_len = sizeof(uint64_t); + if (je_mallctl("epoch", &epoch, &e_len, &epoch, e_len) != 0) { + return info; + } + + // query values + size_t allocated, active, resident, mapped, metadata; + size_t len = sizeof(size_t); + if (je_mallctl("stats.allocated", &allocated, &len, 0, 0) != 0) { + return info; + } + if (je_mallctl("stats.active", &active, &len, 0, 0) != 0) { + return info; + } + if (je_mallctl("stats.resident", &resident, &len, 0, 0) != 0) { + return info; + } + if (je_mallctl("stats.mapped", &mapped, &len, 0, 0) != 0) { + return info; + } + if (je_mallctl("stats.metadata", &metadata, &len, 0, 0) != 0) { + return info; + } + info.allocated = allocated / 1024.0 / 1024.0; + info.active = active / 1024.0 / 1024.0; + info.resident = resident / 1024.0 / 1024.0; + info.mapped = mapped / 1024.0 / 1024.0; + info.metadata = metadata / 1024.0 / 1024.0; + } + return info; + } + double SimpleMemoryCheck::averageGrowthRate(double current, double past, int count) { return (current - past) / (double)count; } @@ -332,6 +391,7 @@ namespace edm { pg_size_(sysconf(_SC_PAGESIZE)), // getpagesize() num_to_skip_(iPS.getUntrackedParameter("ignoreTotal")), showMallocInfo_(iPS.getUntrackedParameter("showMallocInfo")), + showJemallocInfo_(iPS.getUntrackedParameter("showJemallocInfo")), oncePerEventMode_(iPS.getUntrackedParameter("oncePerEventMode")), printEachTime_(oncePerEventMode_ or iPS.getUntrackedParameter("printEachSample")), jobReportOutputOnly_(iPS.getUntrackedParameter("jobReportOutputOnly")), @@ -401,6 +461,14 @@ namespace edm { // &SimpleMemoryCheck::preEventProcessing); // iReg.watchPreModule(this, // &SimpleMemoryCheck::preModule); + + if (showJemallocInfo_) { + // jemalloc's mallctl(), if we use jemalloc + je_mallctl = reinterpret_cast(::dlsym(RTLD_DEFAULT, "mallctl")); + if (je_mallctl == nullptr) { + showJemallocInfo_ = false; + } + } } SimpleMemoryCheck::~SimpleMemoryCheck() { @@ -426,6 +494,10 @@ namespace edm { desc.addUntracked("printEachSample", false) ->setComment("If sampling on, print each sample taken else will print only when sample is the largest seen."); desc.addUntracked("showMallocInfo", false); + desc.addUntracked("showJemallocInfo", true) + ->setComment( + "If enabled and jemalloc is being used, print high-level jemalloc statistics at the early termination " + "and endJob printouts as well as for the peak VSIZE and RSS -using records."); desc.addUntracked("oncePerEventMode", false) ->setComment( "Only check memory at the end of each event. Not as useful in multi-threaded job as other running events " @@ -539,10 +611,17 @@ namespace edm { void SimpleMemoryCheck::postEndJob() { if (not jobReportOutputOnly_) { - LogAbsolute("MemoryReport") // changelog 1 - << "MemoryReport> Peak virtual size " << eventT1_.vsize << " Mbytes" - << "\n" - << " Key events increasing vsize: \n" + LogAbsolute log("MemoryReport"); + auto logJemalloc = [&log](std::optional const& info) { + if (info.has_value()) { + log << "\n Jemalloc allocated " << info->allocated << " active " << info->active << " resident " + << info->resident << " mapped " << info->mapped << " metadata " << info->metadata; + } + }; + + log << "MemoryReport> Peak virtual size " << eventT1_.vsize << " Mbytes (RSS " << eventT1_.rss << ")"; + logJemalloc(eventT1_.jemalloc); + log << "\n Key events increasing vsize: \n" << eventL2_ << "\n" << eventL1_ << "\n" << eventM_ << "\n" @@ -550,9 +629,11 @@ namespace edm { << eventR2_ << "\n" << eventT3_ << "\n" << eventT2_ << "\n" - << eventT1_ << "\nMemoryReport> Peak rss size " << eventRssT1_.rss - << " Mbytes" - "\n Key events increasing rss:\n" + << eventT1_ << "\nMemoryReport> Peak rss size " << eventRssT1_.rss << " Mbytes (VSIZE " << eventRssT1_.vsize + << ")"; + ; + logJemalloc(eventRssT1_.jemalloc); + log << "\n Key events increasing rss:\n" << eventRssT3_ << "\n" << eventRssT2_ << "\n" << eventRssT1_ << "\n" @@ -915,7 +996,7 @@ namespace edm { void SimpleMemoryCheck::andPrintAlways(std::string const& type, std::string const& mdlabel, std::string const& mdname, - bool includeSmaps) const { + bool includeSmapsAndJe) const { double deltaVSIZE = current_->vsize - max_.vsize; double deltaRSS = current_->rss - max_.rss; @@ -936,9 +1017,16 @@ namespace edm { << " HEAP-USED-BYTES " << minfo.uordblks << " HEAP-UNUSED-BYTES " << minfo.fordblks; #endif } - if (includeSmaps and smapsFile_) { - log << " PSS " << currentSmaps_.pss_ << " PRIVATE " << currentSmaps_.private_ << " ANONHUGEPAGES " - << currentSmaps_.anonHugePages_; + if (includeSmapsAndJe) { + if (smapsFile_) { + log << " PSS " << currentSmaps_.pss_ << " PRIVATE " << currentSmaps_.private_ << " ANONHUGEPAGES " + << currentSmaps_.anonHugePages_; + } + if (je_mallctl) { + auto info = fetchJemalloc(); + log << " JeMalloc allocated " << info.allocated << " active " << info.active << " resident " << info.resident + << " mapped " << info.mapped << " metadata " << info.metadata; + } } } @@ -1053,6 +1141,9 @@ namespace edm { if (se.monitorPssAndPrivate) { os << " private = " << se.privateSize << " pss = " << se.pss; } + if (se.jemalloc.has_value()) { + os << " allocated = " << se.jemalloc->allocated << " active = " << se.jemalloc->active; + } return os; } From 826f5e57049efcda156b744eb7ebb8d213461c27 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Fri, 8 Nov 2024 19:53:07 +0100 Subject: [PATCH 260/418] Include code size and jemalloc stats to EndJob printout --- FWCore/Services/plugins/SimpleMemoryCheck.cc | 108 ++++++++++++++++++- 1 file changed, 104 insertions(+), 4 deletions(-) diff --git a/FWCore/Services/plugins/SimpleMemoryCheck.cc b/FWCore/Services/plugins/SimpleMemoryCheck.cc index a9a111cc61a43..1a912b968d312 100644 --- a/FWCore/Services/plugins/SimpleMemoryCheck.cc +++ b/FWCore/Services/plugins/SimpleMemoryCheck.cc @@ -41,6 +41,7 @@ #include "FWCore/Utilities/interface/Exception.h" #include "FWCore/Utilities/interface/get_underlying_safe.h" +#include #include #include #include @@ -64,10 +65,23 @@ typedef int (*mallctl_t)(const char* name, void* oldp, size_t* oldlenp, void* ne namespace edm { namespace service { + enum class SmapsSection { + kSharedObject = 0, + kPcm = 1, + kOtherFile = 2, + kStack = 3, + kMmap = 4, + kOther = 5, + kSize = 6 + }; struct smapsInfo { double private_ = 0; // in MB double pss_ = 0; // in MB double anonHugePages_ = 0; // in MB + + static constexpr auto sectionsSize_ = static_cast(SmapsSection::kSize); + std::array sectionRss_{}; // in MB + std::array sectionVSize_{}; // in MB }; struct JemallocInfo { double allocated = 0; // in MB @@ -119,6 +133,10 @@ namespace edm { bool includeSmapsAndJe = false) const; void andPrint(const std::string& type, const std::string& mdlabel, const std::string& mdname) const; void updateAndPrint(const std::string& type, const std::string& mdlabel, const std::string& mdname); + + // Upon success returns an optional without value + // Upon failure returns the name of the file the function attempted to open + std::optional openFilesNoThrow(); void openFiles(); char const* smapsLineBuffer() const { return get_underlying_safe(smapsLineBuffer_); } @@ -311,6 +329,7 @@ namespace edm { #ifdef LINUX fseek(smapsFile_, 0, SEEK_SET); ssize_t read; + SmapsSection section = SmapsSection::kOther; /* The format of the report is @@ -323,6 +342,35 @@ namespace edm { while ((read = getline(&smapsLineBuffer(), &smapsLineBufferLen_, smapsFile_)) != -1) { if (read > 14) { + // Are we in a line that defines a mapping? + // (a character following ':' is not a space) + if (char const* ret = strchr(smapsLineBuffer_, ':'); ret != nullptr and *(ret + 1) != ' ') { + ret = strrchr(smapsLineBuffer_, ' '); + if (ret == nullptr) { + // shouldn't happen, but let's protect anyway + section = SmapsSection::kOther; + } else if (*(ret + 1) == '\n') { + // no "path" element + section = SmapsSection::kMmap; + } else if (*(ret + 1) == '/') { + // "path" starts with '/', assume it's file + // differentiate shared object and .pcm files + auto len = strlen(ret); + if (0 == strncmp(ret + len - 5, ".pcm", 4)) { + section = SmapsSection::kPcm; + } else if (strstr(ret, ".so") != nullptr) { + section = SmapsSection::kSharedObject; + } else { + section = SmapsSection::kOtherFile; + } + } else if (0 == strncmp("[stack]", ret + 1, 7)) { + section = SmapsSection::kStack; + } else { + section = SmapsSection::kOther; + } + continue; + } + //Private if (0 == strncmp("Private_", smapsLineBuffer_, 8)) { unsigned int value = atoi(smapsLineBuffer_ + 14); @@ -335,6 +383,14 @@ namespace edm { } else if (0 == strncmp("AnonHugePages:", smapsLineBuffer_, 14)) { unsigned int value = atoi(smapsLineBuffer_ + 14); ret.anonHugePages_ += static_cast(value) / 1024.; + } else if (0 == strncmp("Rss:", smapsLineBuffer_, 4)) { + unsigned int value = atoi(smapsLineBuffer_ + 4); + //Convert from kB to MB + ret.sectionRss_[static_cast(section)] += static_cast(value) / 1024.; + } else if (0 == strncmp("Size:", smapsLineBuffer_, 5)) { + unsigned int value = atoi(smapsLineBuffer_ + 5); + //Convert from kB to MB + ret.sectionVSize_[static_cast(section)] += static_cast(value) / 1024.; } } } @@ -510,14 +566,23 @@ namespace edm { descriptions.add("SimpleMemoryCheck", desc); } - void SimpleMemoryCheck::openFiles() { + std::optional SimpleMemoryCheck::openFilesNoThrow() { #ifdef LINUX std::ostringstream smapsNameOst; smapsNameOst << "/proc/" << getpid() << "/smaps"; - if ((smapsFile_ = fopen(smapsNameOst.str().c_str(), "r")) == nullptr) { - throw Exception(errors::Configuration) << "Failed to open smaps file " << smapsNameOst.str() << std::endl; + auto smapsName = smapsNameOst.str(); + if ((smapsFile_ = fopen(smapsName.c_str(), "r")) == nullptr) { + return smapsName; } #endif + return {}; + } + + void SimpleMemoryCheck::openFiles() { + auto smapsFileNameIfFailed = openFilesNoThrow(); + if (smapsFileNameIfFailed.has_value()) { + throw Exception(errors::Configuration) << "Failed to open smaps file " << *smapsFileNameIfFailed << std::endl; + } } void SimpleMemoryCheck::postBeginJob() { @@ -578,7 +643,7 @@ namespace edm { std::shared_ptr guard( nullptr, [this](void const*) { measurementUnderway_.store(false, std::memory_order_release); }); if (not smapsFile_) { - openFiles(); + openFilesNoThrow(); } if (smapsFile_) { currentSmaps_ = fetchSmaps(); @@ -612,6 +677,41 @@ namespace edm { void SimpleMemoryCheck::postEndJob() { if (not jobReportOutputOnly_) { LogAbsolute log("MemoryReport"); + + update(); + log << "MemoryReport> EndJob: virtual size " << current_->vsize << " Mbytes, RSS " << current_->rss + << " Mbytes"; + // extract smaps information if file open succeeded + if (not smapsFile_) { + openFilesNoThrow(); + } + if (smapsFile_) { + currentSmaps_ = fetchSmaps(); + auto soRss = currentSmaps_.sectionRss_[static_cast(SmapsSection::kSharedObject)]; + auto pcmRss = currentSmaps_.sectionRss_[static_cast(SmapsSection::kPcm)]; + auto otherFileRss = currentSmaps_.sectionRss_[static_cast(SmapsSection::kOtherFile)]; + auto mmapRss = currentSmaps_.sectionRss_[static_cast(SmapsSection::kMmap)]; + auto soVSize = currentSmaps_.sectionVSize_[static_cast(SmapsSection::kSharedObject)]; + auto pcmVSize = currentSmaps_.sectionVSize_[static_cast(SmapsSection::kPcm)]; + auto otherFileVSize = currentSmaps_.sectionVSize_[static_cast(SmapsSection::kOtherFile)]; + auto mmapVSize = currentSmaps_.sectionVSize_[static_cast(SmapsSection::kMmap)]; + log << ", PSS " << currentSmaps_.pss_ << " MBytes, Private " << currentSmaps_.private_ << "\n AnonHugePages " + << currentSmaps_.anonHugePages_ << " Mbytes\n" + << " mmapped memory pages " << mmapVSize << " Mbytes (VSize), " << mmapRss << " MBytes (RSS)\n" + << " mmapped file pages " << (soVSize + pcmVSize + otherFileVSize) << " Mbytes (VSize), " + << (soRss + pcmRss + otherFileRss) << " MBytes (RSS)\n" + << " of which .so's " << soVSize << " Mbytes (VSize), " << soRss << " MBytes (RSS)\n" + << " of which PCM's " << pcmVSize << " Mbytes (VSize), " << pcmRss << " MBytes (RSS)\n" + << " of which other " << otherFileVSize << " Mbytes (VSize), " << otherFileRss << " MBytes (RSS)"; + } + if (showJemallocInfo_) { + auto info = fetchJemalloc(); + log << "\n Jemalloc allocated " << info.allocated << " MBytes, active " << info.active + << " MBytes\n resident " << info.resident << " Mbytes, mapped " << info.mapped << " Mbytes\n metadata " + << info.metadata << " Mbytes"; + } + log << "\n"; + auto logJemalloc = [&log](std::optional const& info) { if (info.has_value()) { log << "\n Jemalloc allocated " << info->allocated << " active " << info->active << " resident " From c3773f7568e7e16520c50a2f053eee892d7c1415 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Wed, 22 Nov 2023 21:18:21 +0100 Subject: [PATCH 261/418] Add specialization of CopyToDevice for alpaka host buffer --- .../AlpakaInterface/interface/CopyToDevice.h | 31 +++++++++ .../AlpakaInterface/test/BuildFile.xml | 7 ++ .../test/alpaka/testCopyBufferToDevice.dev.cc | 68 +++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 HeterogeneousCore/AlpakaInterface/test/alpaka/testCopyBufferToDevice.dev.cc diff --git a/HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h b/HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h index 8fad8d0729f1a..f98d475185ff3 100644 --- a/HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h +++ b/HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h @@ -32,4 +32,35 @@ namespace cms::alpakatools { struct CopyToDevice; } // namespace cms::alpakatools +// specialize to Alpaka buffer +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" +namespace cms::alpakatools { + // Note: can't do partial specializations along + // - CopyToDevice> + // - CopyToDevicee + // because both host_buffer and alpaka::Buf use trait-style + // indirection that prevents template argument type deduction + template + struct CopyToDevice> { + template + static auto copyAsync(TQueue& queue, host_buffer const& src) { + using TDevice = alpaka::Dev; + auto dst = make_device_buffer(queue); + alpaka::memcpy(queue, dst, src); + return dst; + } + }; + + template + struct CopyToDevice> { + template + static auto copyAsync(TQueue& queue, host_buffer const& src) { + using TDevice = alpaka::Dev; + auto dst = make_device_buffer(queue, alpaka::getExtentProduct(src)); + alpaka::memcpy(queue, dst, src); + return dst; + } + }; +} // namespace cms::alpakatools + #endif diff --git a/HeterogeneousCore/AlpakaInterface/test/BuildFile.xml b/HeterogeneousCore/AlpakaInterface/test/BuildFile.xml index 426a750e3d0b9..77aa10cc5a171 100644 --- a/HeterogeneousCore/AlpakaInterface/test/BuildFile.xml +++ b/HeterogeneousCore/AlpakaInterface/test/BuildFile.xml @@ -19,6 +19,13 @@ + + + + + + + diff --git a/HeterogeneousCore/AlpakaInterface/test/alpaka/testCopyBufferToDevice.dev.cc b/HeterogeneousCore/AlpakaInterface/test/alpaka/testCopyBufferToDevice.dev.cc new file mode 100644 index 0000000000000..209c01a6f641f --- /dev/null +++ b/HeterogeneousCore/AlpakaInterface/test/alpaka/testCopyBufferToDevice.dev.cc @@ -0,0 +1,68 @@ +#include + +#define CATCH_CONFIG_MAIN +#include + +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" +#include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h" + +// each test binary is built for a single Alpaka backend +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + +namespace { + struct Dummy { + int x, y, z; + }; +} + +TEST_CASE("Test CopyToDevice for Alpaka buffers for the " EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE) " backend", + "[" EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE) "]") { + SECTION("Buffer of scalar") { + auto buffer_host = cms::alpakatools::make_host_buffer(); + + // run the test on each device + for (auto const& device : cms::alpakatools::devices()) { + auto queue = Queue(device); + using Copy = cms::alpakatools::CopyToDevice; + auto buffer_device = Copy::copyAsync(queue, buffer_host); + alpaka::wait(queue); + } + } + + SECTION("Buffer of array with static size") { + // The buffer itself is really dynamically sized, even if the + // alpakatools API looks like the array would have static size + constexpr int N = 10; + auto buffer_host = cms::alpakatools::make_host_buffer(); + for (int i = 0; i < N; ++i) { + buffer_host[i] = i; + } + + // run the test on each device + for (auto const& device : cms::alpakatools::devices()) { + auto queue = Queue(device); + using Copy = cms::alpakatools::CopyToDevice; + auto buffer_device = Copy::copyAsync(queue, buffer_host); + alpaka::wait(queue); + REQUIRE(alpaka::getExtentProduct(buffer_device) == N); + } + } + + SECTION("Buffer of array with dynamic size") { + constexpr int N = 10; + auto buffer_host = cms::alpakatools::make_host_buffer(N); + for (int i = 0; i < N; ++i) { + buffer_host[i] = i; + } + + // run the test on each device + for (auto const& device : cms::alpakatools::devices()) { + auto queue = Queue(device); + using Copy = cms::alpakatools::CopyToDevice; + auto buffer_device = Copy::copyAsync(queue, buffer_host); + alpaka::wait(queue); + REQUIRE(alpaka::getExtentProduct(buffer_device) == N); + } + } +} From 59de41482ea0868dc4318cb5c1dfa4e84139448c Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Wed, 22 Nov 2023 18:51:36 +0100 Subject: [PATCH 262/418] Add CopyToDeviceCache class template --- .../AlpakaCore/interface/CopyToDeviceCache.h | 111 ++++++++++++ .../test/alpaka/testCopyBufferToDevice.dev.cc | 2 +- .../AlpakaTest/plugins/alpaka/TestAlgo.dev.cc | 161 ++++++++++++++++++ .../AlpakaTest/plugins/alpaka/TestAlgo.h | 14 ++ ...stAlpakaGlobalProducerCopyToDeviceCache.cc | 83 +++++++++ .../AlpakaTest/test/testAlpakaModules_cfg.py | 18 +- 6 files changed, 387 insertions(+), 2 deletions(-) create mode 100644 HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h create mode 100644 HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc diff --git a/HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h b/HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h new file mode 100644 index 0000000000000..f33c8c170c90c --- /dev/null +++ b/HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h @@ -0,0 +1,111 @@ +#ifndef HeterogeneousCore_AlpakaInterface_interface_CopyToDeviceCache_h +#define HeterogeneousCore_AlpakaInterface_interface_CopyToDeviceCache_h + +#include + +#include "HeterogeneousCore/AlpakaCore/interface/QueueCache.h" +#include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h" +#include "HeterogeneousCore/AlpakaInterface/interface/devices.h" + +namespace cms::alpakatools { + namespace detail { + // By default copy the host object with CopyToDevice + // + // Doing with template specialization (rather than + // std::conditional_t and if constexpr) because the + // CopyToDevice::copyAsync() is ill-defined e.g. for + // PortableCollection on host device + template + class CopyToDeviceCacheImpl { + public: + using Device = TDev; + using Queue = TQueue; + using HostObject = THostObject; + using Copy = CopyToDevice; + using DeviceObject = decltype(Copy::copyAsync(std::declval(), std::declval())); + + CopyToDeviceCacheImpl(HostObject const& srcObject) { + using Platform = alpaka::Platform; + auto const& devices = cms::alpakatools::devices(); + std::vector> queues; + queues.reserve(devices.size()); + data_.reserve(devices.size()); + for (auto const& dev : devices) { + auto queue = getQueueCache().get(dev); + data_.emplace_back(Copy::copyAsync(*queue, srcObject)); + queues.emplace_back(std::move(queue)); + } + for (auto& queuePtr : queues) { + alpaka::wait(*queuePtr); + } + } + + DeviceObject const& get(size_t i) const { return data_[i]; } + + private: + std::vector data_; + }; + + // For host device, copy the host object directly instead + template + class CopyToDeviceCacheImpl { + public: + using HostObject = THostObject; + using DeviceObject = HostObject; + + CopyToDeviceCacheImpl(HostObject const& srcObject) : data_(srcObject) {} + + DeviceObject const& get(size_t i) const { return data_; } + + private: + HostObject data_; + }; + } // namespace detail + + /** + * This class template implements a cache for data that is copied + * from the host (of type THostObject) to all the devices + * corresponding the TQueue queue type. + * + * The host-side object to be copied is given as an argument to the + * class constructor. The constructor uses the + * CopyToDevice class template to perfom the copy, and + * waits for the data copies to finish, i.e. the constructor is + * synchronous wrt. the data copies. + * + * The device-side object corresponding to the THostObject (actual + * type is the return type of CopyToDevice::copyAsync()) + * can be obtained with get() member function, that has either the + * queue or device argument. + * + * TODO: In principle it would be better to template over Device, + * but then we'd need a way to have a "default queue" type for each + * Device in order to infer the return type of + * CopyToDevice::copyAsync(). Alternatively, the template over + * TQueue could be removed by moving the class definition to + * ALPAKA_ACCELERATOR_NAMESPACE. + */ + template + class CopyToDeviceCache { + using Queue = TQueue; + using Device = alpaka::Dev; + using HostObject = THostObject; + using Impl = detail::CopyToDeviceCacheImpl; + using DeviceObject = typename Impl::DeviceObject; + + public: + CopyToDeviceCache(THostObject const& srcData) : data_(srcData) {} + + // TODO: I could make this function to return the contained object + // in case of alpaka buffer, PortableObject, or PortableCollection + // (in PortableCollection case it would be the View) + DeviceObject const& get(Device const& dev) const { return data_.get(alpaka::getNativeHandle(dev)); } + + DeviceObject const& get(Queue const& queue) const { return get(alpaka::getDev(queue)); } + + private: + Impl data_; + }; +} // namespace cms::alpakatools + +#endif diff --git a/HeterogeneousCore/AlpakaInterface/test/alpaka/testCopyBufferToDevice.dev.cc b/HeterogeneousCore/AlpakaInterface/test/alpaka/testCopyBufferToDevice.dev.cc index 209c01a6f641f..b4bbb2868412e 100644 --- a/HeterogeneousCore/AlpakaInterface/test/alpaka/testCopyBufferToDevice.dev.cc +++ b/HeterogeneousCore/AlpakaInterface/test/alpaka/testCopyBufferToDevice.dev.cc @@ -14,7 +14,7 @@ namespace { struct Dummy { int x, y, z; }; -} +} // namespace TEST_CASE("Test CopyToDevice for Alpaka buffers for the " EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE) " backend", "[" EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE) "]") { diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.dev.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.dev.cc index 3afbc3d9d8103..a9034ead09e0f 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.dev.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.dev.cc @@ -176,6 +176,24 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { output[i] = {x, input[i].y(), input[i].z(), input[i].id(), input[i].flags(), input[i].m()}; } } + + template >> + ALPAKA_FN_ACC void operator()(TAcc const& acc, + portabletest::TestDeviceCollection::ConstView input, + TestAlgo::UpdateInfo const* updateInfo, + portabletest::TestDeviceCollection::View output) const { + // set this only once in the whole kernel grid + if (once_per_grid(acc)) { + output.r() = input.r(); + } + + // make a strided loop over the kernel grid, covering up to "size" elements + for (int32_t i : uniform_elements(acc, output.metadata().size())) { + double x = input[i].x(); + x += updateInfo->x; + output[i] = {x, input[i].y(), input[i].z(), input[i].id(), input[i].flags(), input[i].m()}; + } + } }; class TestAlgoKernelUpdateMulti2 { @@ -209,6 +227,32 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { output2[i] = {x2, input2[i].y2(), input2[i].z2(), input2[i].id2(), input2[i].m2()}; } } + + template >> + ALPAKA_FN_ACC void operator()(TAcc const& acc, + portabletest::TestSoA::ConstView input, + portabletest::TestSoA2::ConstView input2, + TestAlgo::UpdateInfo const* updateInfo, + portabletest::TestSoA::View output, + portabletest::TestSoA2::View output2) const { + // set this only once in the whole kernel grid + if (once_per_grid(acc)) { + output.r() = input.r(); + output2.r2() = input2.r2(); + } + + // make a strided loop over the kernel grid, covering up to "size" elements + for (int32_t i : uniform_elements(acc, output.metadata().size())) { + double x = input[i].x(); + x += updateInfo->x; + output[i] = {x, input[i].y(), input[i].z(), input[i].id(), input[i].flags(), input[i].m()}; + } + for (int32_t i : uniform_elements(acc, output2.metadata().size())) { + double x2 = input2[i].x2(); + x2 += updateInfo->x; + output2[i] = {x2, input2[i].y2(), input2[i].z2(), input2[i].id2(), input2[i].m2()}; + } + } }; class TestAlgoKernelUpdateMulti3 { @@ -254,6 +298,42 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { output3[i] = {x3, input3[i].y3(), input3[i].z3(), input3[i].id3(), input3[i].m3()}; } } + + template >> + ALPAKA_FN_ACC void operator()(TAcc const& acc, + portabletest::TestSoA::ConstView input, + portabletest::TestSoA2::ConstView input2, + portabletest::TestSoA3::ConstView input3, + TestAlgo::UpdateInfo const* updateInfo, + portabletest::TestSoA::View output, + portabletest::TestSoA2::View output2, + portabletest::TestSoA3::View output3) const { + // set this only once in the whole kernel grid + if (once_per_grid(acc)) { + output.r() = input.r(); + output2.r2() = input2.r2(); + output3.r3() = input3.r3(); + } + + // make a strided loop over the kernel grid, covering up to "size" elements + for (int32_t i : uniform_elements(acc, output.metadata().size())) { + double x = input[i].x(); + x += updateInfo->x; + if (0 == i) + printf("Setting x[0] to %f\n", x); + output[i] = {x, input[i].y(), input[i].z(), input[i].id(), input[i].flags(), input[i].m()}; + } + for (int32_t i : uniform_elements(acc, output2.metadata().size())) { + double x2 = input2[i].x2(); + x2 += updateInfo->x; + output2[i] = {x2, input2[i].y2(), input2[i].z2(), input2[i].id2(), input2[i].m2()}; + } + for (int32_t i : uniform_elements(acc, output3.metadata().size())) { + double x3 = input3[i].x3(); + x3 += updateInfo->x; + output3[i] = {x3, input3[i].y3(), input3[i].z3(), input3[i].id3(), input3[i].m3()}; + } + } }; portabletest::TestDeviceCollection TestAlgo::update(Queue& queue, @@ -337,6 +417,87 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { return collection; } + portabletest::TestDeviceCollection TestAlgo::update(Queue& queue, + portabletest::TestDeviceCollection const& input, + UpdateInfo const* d_updateInfo) const { + portabletest::TestDeviceCollection collection{input->metadata().size(), queue}; + + // use 64 items per group (this value is arbitrary, but it's a reasonable starting point) + uint32_t items = 64; + + // use as many groups as needed to cover the whole problem + uint32_t groups = divide_up_by(collection->metadata().size(), items); + + // map items to + // - threads with a single element per thread on a GPU backend + // - elements within a single thread on a CPU backend + auto workDiv = make_workdiv(groups, items); + + alpaka::exec(queue, workDiv, TestAlgoKernelUpdate{}, input.view(), d_updateInfo, collection.view()); + + return collection; + } + + portabletest::TestDeviceMultiCollection2 TestAlgo::updateMulti2(Queue& queue, + portabletest::TestDeviceMultiCollection2 const& input, + UpdateInfo const* d_updateInfo) const { + portabletest::TestDeviceMultiCollection2 collection{input.sizes(), queue}; + + // use 64 items per group (this value is arbitrary, but it's a reasonable starting point) + uint32_t items = 64; + + // use as many groups as needed to cover the whole problem + auto sizes = collection.sizes(); + uint32_t groups = divide_up_by(*std::max_element(sizes.begin(), sizes.end()), items); + + // map items to + // - threads with a single element per thread on a GPU backend + // - elements within a single thread on a CPU backend + auto workDiv = make_workdiv(groups, items); + + alpaka::exec(queue, + workDiv, + TestAlgoKernelUpdateMulti2{}, + input.view(), + input.view(), + d_updateInfo, + collection.view(), + collection.view()); + + return collection; + } + + portabletest::TestDeviceMultiCollection3 TestAlgo::updateMulti3(Queue& queue, + portabletest::TestDeviceMultiCollection3 const& input, + UpdateInfo const* d_updateInfo) const { + portabletest::TestDeviceMultiCollection3 collection{input.sizes(), queue}; + + // use 64 items per group (this value is arbitrary, but it's a reasonable starting point) + uint32_t items = 64; + + // use as many groups as needed to cover the whole problem + auto sizes = collection.sizes(); + uint32_t groups = divide_up_by(*std::max_element(sizes.begin(), sizes.end()), items); + + // map items to + // - threads with a single element per thread on a GPU backend + // - elements within a single thread on a CPU backend + auto workDiv = make_workdiv(groups, items); + + alpaka::exec(queue, + workDiv, + TestAlgoKernelUpdateMulti3{}, + input.view(), + input.view(), + input.view(), + d_updateInfo, + collection.view(), + collection.view(), + collection.view()); + + return collection; + } + class TestZeroCollectionKernel { public: template >> diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.h b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.h index f943eacddd1c3..dbebf60e898b5 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.h +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.h @@ -17,6 +17,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { portabletest::TestDeviceCollection update(Queue& queue, portabletest::TestDeviceCollection const& input, AlpakaESTestDataEDevice const& esData) const; + portabletest::TestDeviceMultiCollection2 updateMulti2(Queue& queue, portabletest::TestDeviceMultiCollection2 const& input, AlpakaESTestDataEDevice const& esData) const; @@ -24,6 +25,19 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { portabletest::TestDeviceMultiCollection3 const& input, AlpakaESTestDataEDevice const& esData) const; + struct UpdateInfo { + int x, y, z; + }; + portabletest::TestDeviceCollection update(Queue& queue, + portabletest::TestDeviceCollection const& input, + UpdateInfo const* d_updateInfo) const; + portabletest::TestDeviceMultiCollection2 updateMulti2(Queue& queue, + portabletest::TestDeviceMultiCollection2 const& input, + UpdateInfo const* d_updateInfo) const; + portabletest::TestDeviceMultiCollection3 updateMulti3(Queue& queue, + portabletest::TestDeviceMultiCollection3 const& input, + UpdateInfo const* d_updateInfo) const; + void fillMulti2(Queue& queue, portabletest::TestDeviceMultiCollection2& collection, double xvalue = 0.) const; void fillMulti3(Queue& queue, portabletest::TestDeviceMultiCollection3& collection, double xvalue = 0.) const; diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc new file mode 100644 index 0000000000000..331b85d093bda --- /dev/null +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc @@ -0,0 +1,83 @@ +#include "DataFormats/PortableTestObjects/interface/alpaka/TestDeviceCollection.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/global/EDProducer.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDPutToken.h" +#include "HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" + +#include "TestAlgo.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + /** + * This class demonstrates a global EDProducer that + * - uses a CopyToDeviceCache to copy some host-side data to the devices of the backend. + * - produces a device EDProduct (that can get transferred to host automatically) + */ + class TestAlpakaGlobalProducerCopyToDeviceCache : public global::EDProducer<> { + public: + TestAlpakaGlobalProducerCopyToDeviceCache(edm::ParameterSet const& config) + : getToken_(consumes(config.getParameter("source"))), + getTokenMulti2_(consumes(config.getParameter("source"))), + getTokenMulti3_(consumes(config.getParameter("source"))), + putToken_{produces()}, + putTokenMulti2_{produces()}, + putTokenMulti3_{produces()}, + // create host-side object that gets implicitly copied to all devices of the backend + deviceCache_{[&config]() { + auto buffer = cms::alpakatools::make_host_buffer(); + *buffer = TestAlgo::UpdateInfo{config.getParameter("x"), + config.getParameter("y"), + config.getParameter("z")}; + return buffer; + }()} {} + + void produce(edm::StreamID, device::Event& iEvent, device::EventSetup const& iSetup) const override { + auto const& input = iEvent.get(getToken_); + auto const& inputMulti2 = iEvent.get(getTokenMulti2_); + auto const& inputMulti3 = iEvent.get(getTokenMulti3_); + + // get the object corresponding to the Device the Event is being processed on + auto const& infoBuffer = deviceCache_.get(iEvent.queue()); + + // run the algorithm, potentially asynchronously + auto deviceProduct = algo_.update(iEvent.queue(), input, infoBuffer.data()); + auto deviceProductMulti2 = algo_.updateMulti2(iEvent.queue(), inputMulti2, infoBuffer.data()); + auto deviceProductMulti3 = algo_.updateMulti3(iEvent.queue(), inputMulti3, infoBuffer.data()); + + iEvent.emplace(putToken_, std::move(deviceProduct)); + iEvent.emplace(putTokenMulti2_, std::move(deviceProductMulti2)); + iEvent.emplace(putTokenMulti3_, std::move(deviceProductMulti3)); + } + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + desc.add("source", edm::InputTag{}); + desc.add("x", 0); + desc.add("y", 1); + desc.add("z", 2); + + descriptions.addWithDefaultLabel(desc); + } + + private: + const device::EDGetToken getToken_; + const device::EDGetToken getTokenMulti2_; + const device::EDGetToken getTokenMulti3_; + const device::EDPutToken putToken_; + const device::EDPutToken putTokenMulti2_; + const device::EDPutToken putTokenMulti3_; + + // implementation of the algorithm + TestAlgo algo_; + + cms::alpakatools::CopyToDeviceCache> deviceCache_; + }; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h" +DEFINE_FWK_ALPAKA_MODULE(TestAlpakaGlobalProducerCopyToDeviceCache); diff --git a/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py b/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py index 62279b26b3010..bdacd11d7e4c2 100644 --- a/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py +++ b/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py @@ -78,6 +78,12 @@ process.alpakaGlobalProducerE = cms.EDProducer("TestAlpakaGlobalProducerE@alpaka", source = cms.InputTag("alpakaGlobalProducer") ) +process.alpakaGlobalProducerCopyToDeviceCache = cms.EDProducer("TestAlpakaGlobalProducerCopyToDeviceCache@alpaka", + source = cms.InputTag("alpakaGlobalProducer"), + x = cms.int32(3), + y = cms.int32(4), + z = cms.int32(5), +) process.alpakaStreamProducer = cms.EDProducer("TestAlpakaStreamProducer@alpaka", source = cms.InputTag("intProduct"), eventSetupSource = cms.ESInputTag("alpakaESProducerB", "explicitLabel"), @@ -122,6 +128,10 @@ source = "alpakaGlobalProducerE", expectXvalues = cms.vdouble([(i%2)*10+1 + abs(27)+i*2 for i in range(0,5)] + [0]*5) ) +process.alpakaGlobalConsumerCopyToDeviceCache = process.alpakaGlobalConsumer.clone( + source = "alpakaGlobalProducerCopyToDeviceCache", + expectXvalues = cms.vdouble([3]*10) +) process.alpakaStreamConsumer = cms.EDAnalyzer("TestAlpakaAnalyzer", source = cms.InputTag("alpakaStreamProducer"), expectSize = cms.int32(5), @@ -153,7 +163,7 @@ if args.moduleBackend != "": for name in ["ESProducerA", "ESProducerB", "ESProducerC", "ESProducerD", "ESProducerE", "ESProducerAMulti", "ESProducerNull", - "GlobalProducer", "GlobalProducerE", + "GlobalProducer", "GlobalProducerE", "GlobalProducerCopyToDeviceCache", "StreamProducer", "StreamInstanceProducer", "StreamSynchronizingProducer", "StreamSynchronizingProducerToDevice", "GlobalDeviceConsumer", "StreamDeviceConsumer", @@ -168,6 +178,8 @@ def setExpect(m, size): setExpect(process.alpakaGlobalConsumer, size=20) setExpect(process.alpakaGlobalConsumerE, size=20) process.alpakaGlobalConsumerE.expectXvalues.extend([0]*(20-10)) + setExpect(process.alpakaGlobalConsumerCopyToDeviceCache, size=20) + process.alpakaGlobalConsumerCopyToDeviceCache.expectXvalues = [3]*20 setExpect(process.alpakaStreamConsumer, size=25) setExpect(process.alpakaStreamInstanceConsumer, size=36) setExpect(process.alpakaStreamSynchronizingConsumer, size=20) @@ -178,6 +190,8 @@ def setExpect(m, size): setExpect(process.alpakaGlobalConsumer, size = 30) setExpect(process.alpakaGlobalConsumerE, size = 30) process.alpakaGlobalConsumerE.expectXvalues.extend([0]*(30-10)) + setExpect(process.alpakaGlobalConsumerCopyToDeviceCache, size = 30) + process.alpakaGlobalConsumerCopyToDeviceCache.expectXvalues = [3]*30 setExpect(process.alpakaStreamConsumer, size = 125) setExpect(process.alpakaStreamInstanceConsumer, size = 216) setExpect(process.alpakaStreamSynchronizingConsumer, size = 30) @@ -196,6 +210,7 @@ def setExpect(m, size): process.intProduct, process.alpakaGlobalProducer, process.alpakaGlobalProducerE, + process.alpakaGlobalProducerCopyToDeviceCache, process.alpakaStreamProducer, process.alpakaStreamInstanceProducer, process.alpakaStreamSynchronizingProducer, @@ -205,6 +220,7 @@ def setExpect(m, size): process.alpakaGlobalConsumer+ process.alpakaGlobalDeviceConsumer+ process.alpakaGlobalConsumerE+ + process.alpakaGlobalConsumerCopyToDeviceCache+ process.alpakaStreamConsumer+ process.alpakaStreamDeviceConsumer+ process.alpakaStreamInstanceConsumer+ From 4e0326b56b70770129814f138dac61fafce1981a Mon Sep 17 00:00:00 2001 From: Martina Date: Thu, 12 Dec 2024 22:56:08 +0100 Subject: [PATCH 263/418] add check direct hit in BTL --- Validation/MtdValidation/plugins/MtdTracksValidation.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Validation/MtdValidation/plugins/MtdTracksValidation.cc b/Validation/MtdValidation/plugins/MtdTracksValidation.cc index 5ea8cf8fa7611..40fb68cabf357 100644 --- a/Validation/MtdValidation/plugins/MtdTracksValidation.cc +++ b/Validation/MtdValidation/plugins/MtdTracksValidation.cc @@ -749,7 +749,8 @@ void MtdTracksValidation::analyze(const edm::Event& iEvent, const edm::EventSetu }); // Find the first direct hit in time directSimClusIt = std::find_if(simClustersRefs.begin(), simClustersRefs.end(), [](const auto& simCluster) { - return simCluster->trackIdOffset() == 0; + MTDDetId mtddetid = simCluster->detIds_and_rows().front().first; + return (mtddetid.mtdSubDetector() == 1 && simCluster->trackIdOffset() == 0); }); // Check if TP has direct or other sim cluster for BTL for (const auto& simClusterRef : simClustersRefs) { From 9680a468e602c46047598944fec99f2ab312c6db Mon Sep 17 00:00:00 2001 From: Martina Date: Thu, 12 Dec 2024 22:57:25 +0100 Subject: [PATCH 264/418] update --- Validation/MtdValidation/test/mtdHarvesting_cfg.py | 2 +- Validation/MtdValidation/test/mtdValidation_cfg.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Validation/MtdValidation/test/mtdHarvesting_cfg.py b/Validation/MtdValidation/test/mtdHarvesting_cfg.py index ab8b3c99200f9..aa6ad60b4cdce 100644 --- a/Validation/MtdValidation/test/mtdHarvesting_cfg.py +++ b/Validation/MtdValidation/test/mtdHarvesting_cfg.py @@ -8,7 +8,7 @@ process.load('Configuration.StandardSequences.EDMtoMEAtRunEnd_cff') process.load('SimGeneral.MixingModule.mixNoPU_cfi') -process.load("Configuration.Geometry.GeometryExtended2026D110Reco_cff") +process.load("Configuration.Geometry.GeometryExtendedRun4D110Reco_cff") process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) diff --git a/Validation/MtdValidation/test/mtdValidation_cfg.py b/Validation/MtdValidation/test/mtdValidation_cfg.py index 7d9f4e8d189bf..ab3fb00444b24 100644 --- a/Validation/MtdValidation/test/mtdValidation_cfg.py +++ b/Validation/MtdValidation/test/mtdValidation_cfg.py @@ -10,7 +10,7 @@ process.load('Configuration.StandardSequences.EndOfProcess_cff') process.load('SimGeneral.MixingModule.mixNoPU_cfi') -process.load("Configuration.Geometry.GeometryExtended2026D110Reco_cff") +process.load("Configuration.Geometry.GeometryExtendedRun4D110Reco_cff") process.load('Configuration.StandardSequences.MagneticField_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag From e27571ec41b3bfd8278569c6a2c74d8f73d5511f Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 10 Dec 2024 22:00:45 +0100 Subject: [PATCH 265/418] Revert "Revert "Move BTL phi order from 0 to 2pi to -pi to +pi"" This reverts commit 06d30e104bc56cf687bf9722599b95a364470199. --- .../plugins/CmsMTDConstruction.cc | 10 ++++------ .../plugins/CmsMTDConstruction.h | 13 +++++++++++++ RecoMTD/DetLayers/test/mtd_cfg.py | 3 +-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc index 7d2f1342651b5..2554b25a89881 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc @@ -9,8 +9,6 @@ #include "DataFormats/ForwardDetId/interface/ETLDetId.h" #include "Geometry/MTDCommonData/interface/MTDBaseNumber.h" -#include "DataFormats/Math/interface/deltaPhi.h" - using angle_units::operators::convertRadToDeg; template @@ -39,14 +37,14 @@ bool CmsMTDConstruction::mtdOrderPhi(const GeometricTimingDet* a, template bool CmsMTDConstruction::btlOrderPhi(const GeometricTimingDet* a, const GeometricTimingDet* b) { - return static_cast(convertRadToDeg(angle0to2pi::make0To2pi(a->phi()))) < - static_cast(convertRadToDeg(angle0to2pi::make0To2pi(b->phi()))); + return static_cast(convertRadToDeg(makempiToppi(a->phi()))) < + static_cast(convertRadToDeg(makempiToppi(b->phi()))); } template bool CmsMTDConstruction::btlOrderZ(const GeometricTimingDet* a, const GeometricTimingDet* b) { - bool order = (static_cast(convertRadToDeg(angle0to2pi::make0To2pi(a->phi()))) == - static_cast(convertRadToDeg(angle0to2pi::make0To2pi(b->phi())))) && + bool order = (static_cast(convertRadToDeg(makempiToppi(a->phi()))) == + static_cast(convertRadToDeg(makempiToppi(b->phi())))) && (a->translation().z() < b->translation().z()); return order; } diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h index d9e322e849507..3bd2beb18c619 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.h @@ -7,6 +7,19 @@ #include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" #include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h" +#include "DataFormats/Math/interface/deltaPhi.h" + +namespace { + + template + inline constexpr valType makempiToppi(valType angle) { + constexpr valType twoPi = 2. * M_PI; + constexpr valType epsilon = 1.e-13; + auto tmpphi = angle0to2pi::make0To2pi(angle); + return (tmpphi - M_PI > epsilon) ? tmpphi - twoPi : tmpphi; + } +} // namespace + /** * Adds GeometricTimingDets representing final modules to the previous level */ diff --git a/RecoMTD/DetLayers/test/mtd_cfg.py b/RecoMTD/DetLayers/test/mtd_cfg.py index c384f5897e7b6..c4a36421478b0 100644 --- a/RecoMTD/DetLayers/test/mtd_cfg.py +++ b/RecoMTD/DetLayers/test/mtd_cfg.py @@ -65,5 +65,4 @@ process.prod1 = cms.EDAnalyzer("TestBTLNavigation") process.prod2 = cms.EDAnalyzer("TestETLNavigation") -# process.p1 = cms.Path(cms.wait(process.prod)+cms.wait(process.prod1)+process.prod2) -process.p1 = cms.Path(cms.wait(process.prod)+process.prod2) +process.p1 = cms.Path(cms.wait(process.prod)+cms.wait(process.prod1)+process.prod2) From fd586045573b5c4f8c27b4801aaa298e078519bc Mon Sep 17 00:00:00 2001 From: Olga Kodolova Date: Fri, 13 Dec 2024 12:11:51 +0100 Subject: [PATCH 266/418] Change ElectronID to the latest --- RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py | 5 ----- RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py b/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py index 5223888f23e3e..22b1d8429018c 100644 --- a/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py +++ b/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py @@ -6,10 +6,6 @@ useAssigned = True, pvSrc = "offlinePrimaryVertices" ) -# ---------- Tight Electron ID - -from RecoEgamma.ElectronIdentification.electronIdSequence_cff import eidTight -JPTeidTight = eidTight.clone() # ---------- Seeds from TrackJets @@ -47,7 +43,6 @@ # Anti-Kt JetPlusTrackCorrectionsAntiKt4Task = cms.Task( - JPTeidTight, JetPlusTrackAddonSeedReco, ak4JetTracksAssociatorAtVertexJPT, ak4JetTracksAssociatorAtCaloFace, diff --git a/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py b/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py index 6766ff80f14ea..9127110d975e5 100644 --- a/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py +++ b/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py @@ -39,7 +39,7 @@ # Electrons UseElectrons = cms.bool(True), Electrons = cms.InputTag("gedGsfElectrons"), - ElectronIds = cms.InputTag("JPTeidTight"), + ElectronIds = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-tight"), PatElectrons = cms.InputTag("slimmedElectrons"), electronDRmatch = cms.double(0.02), From b38a7defc9d1a4b67469c83331911ed61e0c3b8c Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Thu, 12 Dec 2024 12:02:50 -0600 Subject: [PATCH 267/418] Improve L1TRawToDigi - decrease number of allocations - use more efficient framework APIs --- DQM/L1TMonitor/plugins/L1TBMTFAlgoSelector.cc | 4 +- DQM/L1TMonitor/src/L1TMP7ZeroSupp.cc | 10 +- .../L1TRawToDigi/interface/AMC13Spec.h | 2 +- EventFilter/L1TRawToDigi/interface/AMCSpec.h | 8 +- EventFilter/L1TRawToDigi/interface/Block.h | 7 +- .../L1TRawToDigi/plugins/L1TRawToDigi.cc | 14 +-- .../L1TRawToDigi/plugins/OmtfUnpacker.cc | 5 +- .../implementations_stage2/GMTCollections.cc | 28 +++--- .../implementations_stage2/GMTCollections.h | 97 ++++++++++--------- .../implementations_stage2/GMTPutTokens.h | 58 +++++++++++ .../implementations_stage2/GMTSetup.cc | 35 ++++--- .../plugins/implementations_stage2/GMTSetup.h | 3 + EventFilter/L1TRawToDigi/src/AMCSpec.cc | 18 +--- EventFilter/L1TRawToDigi/src/Block.cc | 24 ++--- .../plugins/L1UpgradeTfMuonTreeProducer.cc | 2 +- 15 files changed, 193 insertions(+), 122 deletions(-) create mode 100644 EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTPutTokens.h diff --git a/DQM/L1TMonitor/plugins/L1TBMTFAlgoSelector.cc b/DQM/L1TMonitor/plugins/L1TBMTFAlgoSelector.cc index e0767e21f63f5..c73240e356b26 100644 --- a/DQM/L1TMonitor/plugins/L1TBMTFAlgoSelector.cc +++ b/DQM/L1TMonitor/plugins/L1TBMTFAlgoSelector.cc @@ -82,8 +82,8 @@ void dqmBmtfAlgoSelector::L1TBMTFAlgoSelector::produce(edm::Event &eve, const ed unsigned algo_ver; if (!packet.payload().empty()) { auto payload64 = (packet.payload().at(0)).data(); - const uint32_t *start = (const uint32_t *)payload64.get(); - const uint32_t *end = start + (packet.payload().at(0).size() * 2); + const uint32_t *start = reinterpret_cast(&payload64.front()); + const uint32_t *end = start + (payload64.size() * 2); l1t::MP7Payload payload(start, end, false); algo_ver = payload.getAlgorithmFWVersion(); diff --git a/DQM/L1TMonitor/src/L1TMP7ZeroSupp.cc b/DQM/L1TMonitor/src/L1TMP7ZeroSupp.cc index 0d99bb0ae7cd3..5e77c2e452e4d 100644 --- a/DQM/L1TMonitor/src/L1TMP7ZeroSupp.cc +++ b/DQM/L1TMonitor/src/L1TMP7ZeroSupp.cc @@ -231,16 +231,16 @@ void L1TMP7ZeroSupp::analyze(const edm::Event& e, const edm::EventSetup& c) { continue; auto payload64 = amc.data(); - auto start = (const uint32_t*)payload64.get(); + auto start = reinterpret_cast(&payload64.front()); // Want to have payload size in 32 bit words, but AMC measures // it in 64 bit words -> factor 2. - const uint32_t* end = start + (amc.size() * 2); + const uint32_t* end = start + (payload64.size() * 2); auto payload = std::make_unique(start, end, false); - // getBlock() returns a non-null unique_ptr on success - std::unique_ptr block; - while ((block = payload->getBlock()) != nullptr) { + // getBlock() returns a non-nullopt_t optional on success + std::optional block; + while ((block = payload->getBlock())) { if (verbose_) { std::cout << ">>> check zero suppression for block <<<" << std::endl << "hdr: " << std::hex << std::setw(8) << std::setfill('0') << block->header().raw() << std::dec diff --git a/EventFilter/L1TRawToDigi/interface/AMC13Spec.h b/EventFilter/L1TRawToDigi/interface/AMC13Spec.h index cb77d7d1a46ca..3e3a37dccd60f 100644 --- a/EventFilter/L1TRawToDigi/interface/AMC13Spec.h +++ b/EventFilter/L1TRawToDigi/interface/AMC13Spec.h @@ -89,7 +89,7 @@ namespace amc13 { bool mtf7_mode = false); bool write(const edm::Event &ev, unsigned char *ptr, unsigned int skip, unsigned int size) const; - inline std::vector payload() const { return payload_; }; + inline const std::vector &payload() const { return payload_; }; private: Header header_; diff --git a/EventFilter/L1TRawToDigi/interface/AMCSpec.h b/EventFilter/L1TRawToDigi/interface/AMCSpec.h index 4b2206bfba9a7..2d1e22af44633 100644 --- a/EventFilter/L1TRawToDigi/interface/AMCSpec.h +++ b/EventFilter/L1TRawToDigi/interface/AMCSpec.h @@ -4,6 +4,7 @@ #include #include #include +#include namespace amc { static const unsigned int split_block_size = 0x1000; @@ -143,8 +144,11 @@ namespace amc { // cross-checks for data consistency. void finalize(unsigned int lv1, unsigned int bx, bool legacy_mc = false, bool mtf7_mode = false); - std::vector block(unsigned int id) const; - std::unique_ptr data(); + std::span block(unsigned int id) const; + std::span data() const { + // Remove 3 words: 2 for the header, 1 for the trailer + return payload_.empty() ? std::span() : std::span(payload_).subspan(2, size()); + }; BlockHeader blockHeader(unsigned int block = 0) const { return block_header_; }; Header header() const { return header_; }; Trailer trailer() const { return trailer_; }; diff --git a/EventFilter/L1TRawToDigi/interface/Block.h b/EventFilter/L1TRawToDigi/interface/Block.h index b91469d126368..607a2b76e5b1c 100644 --- a/EventFilter/L1TRawToDigi/interface/Block.h +++ b/EventFilter/L1TRawToDigi/interface/Block.h @@ -3,6 +3,7 @@ #include #include +#include #include "EventFilter/L1TRawToDigi/interface/AMCSpec.h" #include "DataFormats/L1Trigger/interface/BxBlock.h" @@ -109,7 +110,7 @@ namespace l1t { // header. Called by getBlock(), which also checks that data_ != // end_ before calling (assumes size of one 32 bit word). virtual BlockHeader getHeader() = 0; - virtual std::unique_ptr getBlock(); + virtual std::optional getBlock(); protected: const uint32_t* data_; @@ -132,7 +133,7 @@ namespace l1t { // Unused methods - we override getBlock() instead unsigned getHeaderSize() const override { return 0; }; BlockHeader getHeader() override { return BlockHeader(nullptr); }; - std::unique_ptr getBlock() override; + std::optional getBlock() override; private: // sizes in 16 bit words @@ -174,7 +175,7 @@ namespace l1t { CTP7Payload(const uint32_t* data, const uint32_t* end, amc::Header amcHeader); unsigned getHeaderSize() const override { return 2; }; BlockHeader getHeader() override; - std::unique_ptr getBlock() override; + std::optional getBlock() override; private: // FIXME check values diff --git a/EventFilter/L1TRawToDigi/plugins/L1TRawToDigi.cc b/EventFilter/L1TRawToDigi/plugins/L1TRawToDigi.cc index 49c0817b54483..b31a2309c7f2d 100644 --- a/EventFilter/L1TRawToDigi/plugins/L1TRawToDigi.cc +++ b/EventFilter/L1TRawToDigi/plugins/L1TRawToDigi.cc @@ -20,6 +20,7 @@ #include #include #include +#include // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" @@ -128,8 +129,7 @@ namespace l1t { std::unique_ptr coll = prov_->getCollections(event); - edm::Handle feds; - event.getByToken(fedData_, feds); + edm::Handle feds = event.getHandle(fedData_); if (!feds.isValid()) { LogError("L1T") << "Cannot unpack: no FEDRawDataCollection found"; @@ -201,10 +201,10 @@ namespace l1t { continue; auto payload64 = amc.data(); - const uint32_t* start = (const uint32_t*)payload64.get(); + const uint32_t* start = reinterpret_cast(&payload64.front()); // Want to have payload size in 32 bit words, but AMC measures // it in 64 bit words → factor 2. - const uint32_t* end = start + (amc.size() * 2); + const uint32_t* end = start + (payload64.size() * 2); std::unique_ptr payload; if (ctp7_mode_) { @@ -232,9 +232,9 @@ namespace l1t { auto unpackers = prov_->getUnpackers(fedId, board, amc_no, fw); - // getBlock() returns a non-null unique_ptr on success - std::unique_ptr block; - while ((block = payload->getBlock()).get()) { + // getBlock() returns a non-null optional on success + std::optional block; + while ((block = payload->getBlock())) { // only unpack the Calo Layer 2 MP TMT node if it has processed this BX unsigned tmtId = board - l1t::stage2::layer2::mp::offsetBoardId + 1; unsigned bxId = header.bxID(); diff --git a/EventFilter/L1TRawToDigi/plugins/OmtfUnpacker.cc b/EventFilter/L1TRawToDigi/plugins/OmtfUnpacker.cc index c872db2d4aa72..f98c19ec7d1f5 100644 --- a/EventFilter/L1TRawToDigi/plugins/OmtfUnpacker.cc +++ b/EventFilter/L1TRawToDigi/plugins/OmtfUnpacker.cc @@ -309,8 +309,7 @@ namespace omtf { // AMC trailer // //amc::Trailer trailerAmc = amc.trailer(); //this is the expected way but does not work - amc::Trailer trailerAmc(amc.data().get() + amc.size() - - 1); //FIXME: the above is prefered but this works (CMSSW900) + amc::Trailer trailerAmc(&amc.data().back()); //FIXME: the above is prefered but this works (CMSSW900) if (debug) { std::ostringstream str; str << " AMC trailer: " << std::bitset<64>(trailerAmc.raw()) << std::endl; @@ -323,7 +322,7 @@ namespace omtf { // AMC payload // const auto& payload64 = amc.data(); - const Word64* word = payload64.get(); + const Word64* word = &payload64.front(); for (unsigned int iWord = 1; iWord <= amc.size(); iWord++, word++) { if (iWord <= 2) continue; // two header words for each AMC diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTCollections.cc b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTCollections.cc index 8f998e86820a7..95b993ce8d9c7 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTCollections.cc +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTCollections.cc @@ -7,23 +7,25 @@ namespace l1t { namespace stage2 { GMTCollections::~GMTCollections() { - event_.put(std::move(regionalMuonCandsBMTF_), "BMTF"); - event_.put(std::move(regionalMuonCandsOMTF_), "OMTF"); - event_.put(std::move(regionalMuonCandsEMTF_), "EMTF"); - event_.put(std::move(muons_[0]), "Muon"); + event_.emplace(tokens_.bmtf_, std::move(regionalMuonCandsBMTF_)); + event_.emplace(tokens_.omtf_, std::move(regionalMuonCandsOMTF_)); + event_.emplace(tokens_.emtf_, std::move(regionalMuonCandsEMTF_)); + event_.emplace(tokens_.muon_, std::move(muons_[0])); + assert(NUM_OUTPUT_COPIES == tokens_.muonCopies_.size()); for (size_t i = 1; i < NUM_OUTPUT_COPIES; ++i) { - event_.put(std::move(muons_[i]), "MuonCopy" + std::to_string(i)); + event_.emplace(tokens_.muonCopies_[i], std::move(muons_[i])); } - event_.put(std::move(imdMuonsBMTF_), "imdMuonsBMTF"); - event_.put(std::move(imdMuonsEMTFNeg_), "imdMuonsEMTFNeg"); - event_.put(std::move(imdMuonsEMTFPos_), "imdMuonsEMTFPos"); - event_.put(std::move(imdMuonsOMTFNeg_), "imdMuonsOMTFNeg"); - event_.put(std::move(imdMuonsOMTFPos_), "imdMuonsOMTFPos"); + event_.emplace(tokens_.imdMuonsBMTF_, std::move(imdMuonsBMTF_)); + event_.emplace(tokens_.imdMuonsEMTFNeg_, std::move(imdMuonsEMTFNeg_)); + event_.emplace(tokens_.imdMuonsEMTFPos_, std::move(imdMuonsEMTFPos_)); + event_.emplace(tokens_.imdMuonsOMTFNeg_, std::move(imdMuonsOMTFNeg_)); + event_.emplace(tokens_.imdMuonsOMTFPos_, std::move(imdMuonsOMTFPos_)); - event_.put(std::move(regionalMuonShowersEMTF_), "EMTF"); - event_.put(std::move(muonShowers_[0]), "MuonShower"); + event_.emplace(tokens_.showerEMTF_, std::move(regionalMuonShowersEMTF_)); + event_.emplace(tokens_.muonShower_, std::move(muonShowers_[0])); + assert(tokens_.muonShowerCopy_.size() == NUM_OUTPUT_COPIES); for (size_t i = 1; i < NUM_OUTPUT_COPIES; ++i) { - event_.put(std::move(muonShowers_[i]), "MuonShowerCopy" + std::to_string(i)); + event_.emplace(tokens_.muonShowerCopy_[i], std::move(muonShowers_[i])); } } } // namespace stage2 diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTCollections.h b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTCollections.h index a02b15d107cc7..a1fd5b87c4bb0 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTCollections.h +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTCollections.h @@ -8,6 +8,7 @@ #include "DataFormats/L1Trigger/interface/MuonShower.h" #include "L1TObjectCollections.h" +#include "GMTPutTokens.h" #include @@ -19,61 +20,67 @@ namespace l1t { // fill a collection the BX range cannot be determined. // Set default values here to then create an empty collection // with a defined BX range. - GMTCollections( - edm::Event& e, const int iFirstBx = -2, const int iLastBx = 2, const int oFirstBx = -2, const int oLastBx = 2) + GMTCollections(edm::Event& e, + GMTPutTokens const& iTokens, + const int iFirstBx = -2, + const int iLastBx = 2, + const int oFirstBx = -2, + const int oLastBx = 2) : L1TObjectCollections(e), - regionalMuonCandsBMTF_(std::make_unique(0, iFirstBx, iLastBx)), - regionalMuonCandsOMTF_(std::make_unique(0, iFirstBx, iLastBx)), - regionalMuonCandsEMTF_(std::make_unique(0, iFirstBx, iLastBx)), - muons_(), - imdMuonsBMTF_(std::make_unique(0, oFirstBx, oLastBx)), - imdMuonsEMTFNeg_(std::make_unique(0, oFirstBx, oLastBx)), - imdMuonsEMTFPos_(std::make_unique(0, oFirstBx, oLastBx)), - imdMuonsOMTFNeg_(std::make_unique(0, oFirstBx, oLastBx)), - imdMuonsOMTFPos_(std::make_unique(0, oFirstBx, oLastBx)), - - regionalMuonShowersEMTF_(std::make_unique(0, iFirstBx, iLastBx)), - muonShowers_() { - std::generate(muons_.begin(), muons_.end(), [&oFirstBx, &oLastBx] { - return std::make_unique(0, oFirstBx, oLastBx); - }); - std::generate(muonShowers_.begin(), muonShowers_.end(), [&oFirstBx, &oLastBx] { - return std::make_unique(0, oFirstBx, oLastBx); - }); - }; + regionalMuonCandsBMTF_(0, iFirstBx, iLastBx), + regionalMuonCandsOMTF_(0, iFirstBx, iLastBx), + regionalMuonCandsEMTF_(0, iFirstBx, iLastBx), + muons_{{{0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}}}, + imdMuonsBMTF_(0, oFirstBx, oLastBx), + imdMuonsEMTFNeg_(0, oFirstBx, oLastBx), + imdMuonsEMTFPos_(0, oFirstBx, oLastBx), + imdMuonsOMTFNeg_(0, oFirstBx, oLastBx), + imdMuonsOMTFPos_(0, oFirstBx, oLastBx), + regionalMuonShowersEMTF_(0, iFirstBx, iLastBx), + muonShowers_{{{0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}, + {0, oFirstBx, oLastBx}}}, + tokens_(iTokens) {}; ~GMTCollections() override; - inline RegionalMuonCandBxCollection* getRegionalMuonCandsBMTF() { return regionalMuonCandsBMTF_.get(); }; - inline RegionalMuonCandBxCollection* getRegionalMuonCandsOMTF() { return regionalMuonCandsOMTF_.get(); }; - inline RegionalMuonCandBxCollection* getRegionalMuonCandsEMTF() { return regionalMuonCandsEMTF_.get(); }; - inline MuonBxCollection* getMuons(const unsigned int copy) override { return muons_[copy].get(); }; - inline MuonBxCollection* getImdMuonsBMTF() { return imdMuonsBMTF_.get(); }; - inline MuonBxCollection* getImdMuonsEMTFNeg() { return imdMuonsEMTFNeg_.get(); }; - inline MuonBxCollection* getImdMuonsEMTFPos() { return imdMuonsEMTFPos_.get(); }; - inline MuonBxCollection* getImdMuonsOMTFNeg() { return imdMuonsOMTFNeg_.get(); }; - inline MuonBxCollection* getImdMuonsOMTFPos() { return imdMuonsOMTFPos_.get(); }; + inline RegionalMuonCandBxCollection* getRegionalMuonCandsBMTF() { return ®ionalMuonCandsBMTF_; }; + inline RegionalMuonCandBxCollection* getRegionalMuonCandsOMTF() { return ®ionalMuonCandsOMTF_; }; + inline RegionalMuonCandBxCollection* getRegionalMuonCandsEMTF() { return ®ionalMuonCandsEMTF_; }; + inline MuonBxCollection* getMuons(const unsigned int copy) override { return &muons_[copy]; }; + inline MuonBxCollection* getImdMuonsBMTF() { return &imdMuonsBMTF_; }; + inline MuonBxCollection* getImdMuonsEMTFNeg() { return &imdMuonsEMTFNeg_; }; + inline MuonBxCollection* getImdMuonsEMTFPos() { return &imdMuonsEMTFPos_; }; + inline MuonBxCollection* getImdMuonsOMTFNeg() { return &imdMuonsOMTFNeg_; }; + inline MuonBxCollection* getImdMuonsOMTFPos() { return &imdMuonsOMTFPos_; }; - inline RegionalMuonShowerBxCollection* getRegionalMuonShowersEMTF() { return regionalMuonShowersEMTF_.get(); }; - inline MuonShowerBxCollection* getMuonShowers(const unsigned int copy) override { - return muonShowers_[copy].get(); - }; + inline RegionalMuonShowerBxCollection* getRegionalMuonShowersEMTF() { return ®ionalMuonShowersEMTF_; }; + inline MuonShowerBxCollection* getMuonShowers(const unsigned int copy) override { return &muonShowers_[copy]; }; static constexpr size_t NUM_OUTPUT_COPIES{6}; private: - std::unique_ptr regionalMuonCandsBMTF_; - std::unique_ptr regionalMuonCandsOMTF_; - std::unique_ptr regionalMuonCandsEMTF_; - std::array, 6> muons_; - std::unique_ptr imdMuonsBMTF_; - std::unique_ptr imdMuonsEMTFNeg_; - std::unique_ptr imdMuonsEMTFPos_; - std::unique_ptr imdMuonsOMTFNeg_; - std::unique_ptr imdMuonsOMTFPos_; + RegionalMuonCandBxCollection regionalMuonCandsBMTF_; + RegionalMuonCandBxCollection regionalMuonCandsOMTF_; + RegionalMuonCandBxCollection regionalMuonCandsEMTF_; + std::array muons_; + MuonBxCollection imdMuonsBMTF_; + MuonBxCollection imdMuonsEMTFNeg_; + MuonBxCollection imdMuonsEMTFPos_; + MuonBxCollection imdMuonsOMTFNeg_; + MuonBxCollection imdMuonsOMTFPos_; - std::unique_ptr regionalMuonShowersEMTF_; - std::array, 6> muonShowers_; + RegionalMuonShowerBxCollection regionalMuonShowersEMTF_; + std::array muonShowers_; + GMTPutTokens tokens_; }; } // namespace stage2 } // namespace l1t diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTPutTokens.h b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTPutTokens.h new file mode 100644 index 0000000000000..7ae50450d8b87 --- /dev/null +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTPutTokens.h @@ -0,0 +1,58 @@ +#ifndef Subsystem_Package_GMTPutTokens_h +#define Subsystem_Package_GMTPutTokens_h +// -*- C++ -*- +// +// Package: Subsystem/Package +// Class : GMTPutTokens +// +/**\class GMTPutTokens GMTPutTokens.h "GMTPutTokens.h" + + Description: Holder for the EDPutTokens + + Usage: + + +*/ +// +// Original Author: Christopher Jones +// Created: Wed, 11 Dec 2024 13:41:10 GMT +// +#include "DataFormats/L1TMuon/interface/RegionalMuonCand.h" +#include "DataFormats/L1Trigger/interface/Muon.h" + +#include "DataFormats/L1TMuon/interface/RegionalMuonShower.h" +#include "DataFormats/L1Trigger/interface/MuonShower.h" + +#include "L1TObjectCollections.h" + +// system include files +#include + +// user include files +#include "FWCore/Utilities/interface/EDPutToken.h" + +// forward declarations + +namespace l1t { + namespace stage2 { + struct GMTPutTokens { + edm::EDPutTokenT bmtf_; + edm::EDPutTokenT omtf_; + edm::EDPutTokenT emtf_; + + edm::EDPutTokenT muon_; + std::vector> muonCopies_; + + edm::EDPutTokenT imdMuonsBMTF_; + edm::EDPutTokenT imdMuonsEMTFNeg_; + edm::EDPutTokenT imdMuonsEMTFPos_; + edm::EDPutTokenT imdMuonsOMTFNeg_; + edm::EDPutTokenT imdMuonsOMTFPos_; + + edm::EDPutTokenT showerEMTF_; + edm::EDPutTokenT muonShower_; + std::vector> muonShowerCopy_; + }; + } // namespace stage2 +} // namespace l1t +#endif diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTSetup.cc b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTSetup.cc index bbfd05ee74ec8..214b67053a0ce 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTSetup.cc +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTSetup.cc @@ -75,28 +75,33 @@ namespace l1t { } void GMTSetup::registerProducts(edm::ProducesCollector prod) { - prod.produces("BMTF"); - prod.produces("OMTF"); - prod.produces("EMTF"); - prod.produces("Muon"); + putTokens_.bmtf_ = prod.produces("BMTF"); + putTokens_.omtf_ = prod.produces("OMTF"); + putTokens_.emtf_ = prod.produces("EMTF"); + putTokens_.muon_ = prod.produces("Muon"); + putTokens_.muonCopies_.reserve(GMTCollections::NUM_OUTPUT_COPIES); + putTokens_.muonCopies_.emplace_back(); //first one is never used for (size_t i = 1; i < GMTCollections::NUM_OUTPUT_COPIES; ++i) { - prod.produces("MuonCopy" + std::to_string(i)); + putTokens_.muonCopies_.emplace_back(prod.produces("MuonCopy" + std::to_string(i))); } - prod.produces("imdMuonsBMTF"); - prod.produces("imdMuonsEMTFNeg"); - prod.produces("imdMuonsEMTFPos"); - prod.produces("imdMuonsOMTFNeg"); - prod.produces("imdMuonsOMTFPos"); - - prod.produces("EMTF"); - prod.produces("MuonShower"); + putTokens_.imdMuonsBMTF_ = prod.produces("imdMuonsBMTF"); + putTokens_.imdMuonsEMTFNeg_ = prod.produces("imdMuonsEMTFNeg"); + putTokens_.imdMuonsEMTFPos_ = prod.produces("imdMuonsEMTFPos"); + putTokens_.imdMuonsOMTFNeg_ = prod.produces("imdMuonsOMTFNeg"); + putTokens_.imdMuonsOMTFPos_ = prod.produces("imdMuonsOMTFPos"); + + putTokens_.showerEMTF_ = prod.produces("EMTF"); + putTokens_.muonShower_ = prod.produces("MuonShower"); + putTokens_.muonShowerCopy_.reserve(GMTCollections::NUM_OUTPUT_COPIES); + putTokens_.muonShowerCopy_.emplace_back(); //first one is never used for (size_t i = 1; i < GMTCollections::NUM_OUTPUT_COPIES; ++i) { - prod.produces("MuonShowerCopy" + std::to_string(i)); + putTokens_.muonShowerCopy_.emplace_back( + prod.produces("MuonShowerCopy" + std::to_string(i))); } } std::unique_ptr GMTSetup::getCollections(edm::Event& e) { - return std::unique_ptr(new GMTCollections(e)); + return std::unique_ptr(new GMTCollections(e, putTokens_)); } UnpackerMap GMTSetup::getUnpackers(int fed, int board, int amc, unsigned int fw) { diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTSetup.h b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTSetup.h index 80209069ba194..251cc278405e4 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTSetup.h +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/GMTSetup.h @@ -9,6 +9,7 @@ #include "GMTCollections.h" #include "GMTTokens.h" +#include "GMTPutTokens.h" namespace l1t { namespace stage2 { @@ -20,6 +21,8 @@ namespace l1t { void registerProducts(edm::ProducesCollector) override; std::unique_ptr getCollections(edm::Event& e) override; UnpackerMap getUnpackers(int fed, int board, int amc, unsigned int fw) override; + + GMTPutTokens putTokens_; }; } // namespace stage2 } // namespace l1t diff --git a/EventFilter/L1TRawToDigi/src/AMCSpec.cc b/EventFilter/L1TRawToDigi/src/AMCSpec.cc index 5a97da5013a59..f37878e1e259b 100644 --- a/EventFilter/L1TRawToDigi/src/AMCSpec.cc +++ b/EventFilter/L1TRawToDigi/src/AMCSpec.cc @@ -140,22 +140,14 @@ namespace amc { } } - std::vector Packet::block(unsigned int id) const { + std::span Packet::block(unsigned int id) const { if (id == 0 and id == block_header_.getBlocks() - 1) { - return payload_; + return std::span(payload_); } else if (id == block_header_.getBlocks() - 1) { - return std::vector(payload_.begin() + id * split_block_size, payload_.end()); + return std::span(payload_.begin() + id * split_block_size, payload_.end()); } else { - return std::vector(payload_.begin() + id * split_block_size, - payload_.begin() + (id + 1) * split_block_size); + return std::span(payload_.begin() + id * split_block_size, + payload_.begin() + (id + 1) * split_block_size); } } - - std::unique_ptr Packet::data() { - // Remove 3 words: 2 for the header, 1 for the trailer - std::unique_ptr res(new uint64_t[payload_.size() - 3]); - for (unsigned int i = 0; i < payload_.size() - 3; ++i) - res.get()[i] = payload_[i + 2]; - return res; - } } // namespace amc diff --git a/EventFilter/L1TRawToDigi/src/Block.cc b/EventFilter/L1TRawToDigi/src/Block.cc index fe4b04452d92e..216b06bf238b1 100644 --- a/EventFilter/L1TRawToDigi/src/Block.cc +++ b/EventFilter/L1TRawToDigi/src/Block.cc @@ -61,10 +61,10 @@ namespace l1t { return bxBlocks; } - std::unique_ptr Payload::getBlock() { + std::optional Payload::getBlock() { if (end_ - data_ < getHeaderSize()) { LogDebug("L1T") << "Reached end of payload"; - return std::unique_ptr(); + return {}; } if (data_[0] == 0xffffffff) { @@ -78,12 +78,12 @@ namespace l1t { if (end_ - data_ < header.getSize()) { edm::LogError("L1T") << "Expecting a block size of " << header.getSize() << " but only " << (end_ - data_) << " words remaining"; - return std::unique_ptr(); + return {}; } LogTrace("L1T") << "Creating block with size " << header.getSize(); - auto res = std::make_unique(header, data_, data_ + header.getSize()); + Block res(header, data_, data_ + header.getSize()); data_ += header.getSize(); return res; } @@ -170,9 +170,9 @@ namespace l1t { return false; } - std::unique_ptr MTF7Payload::getBlock() { + std::optional MTF7Payload::getBlock() { if (end_ - data_ < 2) - return std::unique_ptr(); + return {}; const uint16_t* data16 = reinterpret_cast(data_); const uint16_t* end16 = reinterpret_cast(end_); @@ -195,11 +195,11 @@ namespace l1t { if (not valid(pattern)) { edm::LogWarning("L1T") << "MTF7 block with unrecognized id 0x" << std::hex << pattern; - return std::unique_ptr(); + return {}; } data_ += (i + 1) * 2; - return std::make_unique(pattern, payload, 0, MTF7); + return Block(pattern, payload, 0, MTF7); } CTP7Payload::CTP7Payload(const uint32_t* data, const uint32_t* end, amc::Header amcHeader) @@ -233,10 +233,10 @@ namespace l1t { return BlockHeader(blockId, blockSize, capId_, blockFlags, CTP7); } - std::unique_ptr CTP7Payload::getBlock() { + std::optional CTP7Payload::getBlock() { if (end_ - data_ < getHeaderSize()) { LogDebug("L1T") << "Reached end of payload"; - return std::unique_ptr(); + return {}; } if (capId_ > bx_per_l1a_) { edm::LogWarning("L1T") << "CTP7 with more bunch crossings than expected"; @@ -247,12 +247,12 @@ namespace l1t { if (end_ - data_ < header.getSize()) { edm::LogError("L1T") << "Expecting a block size of " << header.getSize() << " but only " << (end_ - data_) << " words remaining"; - return std::unique_ptr(); + return {}; } LogTrace("L1T") << "Creating block with size " << header.getSize(); - auto res = std::make_unique(header, data_, data_ + header.getSize()); + Block res(header, data_, data_ + header.getSize()); data_ += header.getSize(); capId_++; return res; diff --git a/L1Trigger/L1TNtuples/plugins/L1UpgradeTfMuonTreeProducer.cc b/L1Trigger/L1TNtuples/plugins/L1UpgradeTfMuonTreeProducer.cc index 7cb566c8b5ac2..36c346ef5b3b5 100644 --- a/L1Trigger/L1TNtuples/plugins/L1UpgradeTfMuonTreeProducer.cc +++ b/L1Trigger/L1TNtuples/plugins/L1UpgradeTfMuonTreeProducer.cc @@ -257,7 +257,7 @@ unsigned L1UpgradeTfMuonTreeProducer::getAlgoFwVersion() { if (!packet.payload().empty()) { auto payload64 = (packet.payload().at(0)).data(); - const uint32_t* start = (const uint32_t*)payload64.get(); + const uint32_t* start = reinterpret_cast(&payload64.front()); const uint32_t* end = start + (packet.payload().at(0).size() * 2); l1t::MP7Payload payload(start, end, false); From d70f43b9de634b457ffee1df43a90f01eba6bcb1 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Wed, 10 Jan 2024 23:12:02 +0100 Subject: [PATCH 268/418] Add moveToDeviceAsync function --- HeterogeneousCore/AlpakaInterface/README.md | 38 +++++- .../interface/moveToDeviceAsync.h | 47 +++++++ .../AlpakaInterface/test/BuildFile.xml | 7 + .../test/alpaka/testMoveToDeviceAsync.dev.cc | 121 ++++++++++++++++++ 4 files changed, 212 insertions(+), 1 deletion(-) create mode 100644 HeterogeneousCore/AlpakaInterface/interface/moveToDeviceAsync.h create mode 100644 HeterogeneousCore/AlpakaInterface/test/alpaka/testMoveToDeviceAsync.dev.cc diff --git a/HeterogeneousCore/AlpakaInterface/README.md b/HeterogeneousCore/AlpakaInterface/README.md index 3d90abdf5a2b5..e6fb83eb41d19 100644 --- a/HeterogeneousCore/AlpakaInterface/README.md +++ b/HeterogeneousCore/AlpakaInterface/README.md @@ -137,7 +137,9 @@ See the previous section for considerations about the use of device-mapped memory. -## A note about copies and synchronisation +## Notes about copies and synchronisation + +### Host-to-device copy When copying data from a host buffer to a device buffer, _e.g._ with ```c++ @@ -163,6 +165,40 @@ std::memset(a_host_buffer.data(), 0x00, size); is likely to overwrite part of the buffer while the copy is still ongoing, resulting in `a_device_buffer` with incomplete and corrupted contents. +### Host-to-device move + +For host data types that are movable and not copyable one can, to +large degree, avoid worrying about the caveats above about avoiding +any operations on the host with the following utility and move semantics +```c++ +#include "HeterogeneousCore/AlpakaInterface/interface/moveToDeviceAsync.h" +// ... +auto device_object = cms::alpakatools::moveToDeviceAsync(queue, std::move(host_object)); +``` + +Here the host-side `host_object` is _moved_ to the +`moveToDeviceAsync()` function, which returns a correponding +device-side `device_object`. In this case any subsequent use of +`host_object` is clearly "use after move", which is easier to catch in +code review or by static analysis tools than the consequences of +`alpaka::mempcy()`. + +The `cms::alpakatools::CopyToDevice` class temlate must have a +specialization for the host data type (otherwise the compilation will fail). + +As mentioned above, the host data type must be movable but not +copyable (the compilation will fail with copyable types). For example, +the `PortableHostCollection` and `PortableHostObject` class templates +can be used, but Alpaka buffers can not be directly used. + +The host data object should manage memory in +[queue-ordered](#allocating-queue-ordered-host-buffers-in-device-mapped-memory) +way. If not, the object must synchronize the device and the host in +its destructor (although such synchronization is undesirable). +Otherwise, the behavior is undefined. + +### Device-to-host copy + When copying data from a device buffer to a host buffer, _e.g._ with ```c++ alpaka::memcpy(queue, a_host_buffer, a_device_buffer); diff --git a/HeterogeneousCore/AlpakaInterface/interface/moveToDeviceAsync.h b/HeterogeneousCore/AlpakaInterface/interface/moveToDeviceAsync.h new file mode 100644 index 0000000000000..25aab77685163 --- /dev/null +++ b/HeterogeneousCore/AlpakaInterface/interface/moveToDeviceAsync.h @@ -0,0 +1,47 @@ +#ifndef HeterogeneousCore_AlpakaInterface_interface_moveToDeviceAsync_h +#define HeterogeneousCore_AlpakaInterface_interface_moveToDeviceAsync_h + +#include + +#include + +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h" + +namespace cms::alpakatools { + /** + * This function moves the argument hostObject object to the device + * specified by the queue. Here the "move" means that the argument + * host object must not be used in the caller after this function + * has been called. + * + * The CopyToDevice class template is used to define the returned + * device object that corresponds the argument host object. For host + * device the copying is skipped, and the hostData is returned directly. + * + * The host object must either + * - allocate its memory in queue-ordered way (e.g. using make_host_buffer(TQueue, ...)), or + * - synchronize in its destructor (makes this function synchronous, so not preferred) + * If the host object uses non-queue-order-allocated memory, and + * does not synchronize in its destructor, behavior is undefined. + * + * Note that the host object type is required to be non-copyable. + * This is to avoid easy mistakes with objects that follow copy + * semantics of std::shared_ptr (that includes Alpaka buffers), that + * would allow the source memory buffer to be used via another copy + * during the asynchronous data copy to the device. + */ + template >> + auto moveToDeviceAsync(TQueue& queue, THostObject hostObject) { + static_assert(not(std::is_copy_constructible_v or std::is_copy_assignable_v), + "The data object to be moved to device must not be copyable."); + + if constexpr (std::is_same_v, alpaka_common::DevHost>) { + return hostObject; + } else { + return CopyToDevice::copyAsync(queue, hostObject); + } + } +} // namespace cms::alpakatools + +#endif diff --git a/HeterogeneousCore/AlpakaInterface/test/BuildFile.xml b/HeterogeneousCore/AlpakaInterface/test/BuildFile.xml index 77aa10cc5a171..4c0d1ffff0b27 100644 --- a/HeterogeneousCore/AlpakaInterface/test/BuildFile.xml +++ b/HeterogeneousCore/AlpakaInterface/test/BuildFile.xml @@ -26,6 +26,13 @@ + + + + + + + diff --git a/HeterogeneousCore/AlpakaInterface/test/alpaka/testMoveToDeviceAsync.dev.cc b/HeterogeneousCore/AlpakaInterface/test/alpaka/testMoveToDeviceAsync.dev.cc new file mode 100644 index 0000000000000..1e3b7f80b318f --- /dev/null +++ b/HeterogeneousCore/AlpakaInterface/test/alpaka/testMoveToDeviceAsync.dev.cc @@ -0,0 +1,121 @@ +#include +#include + +#include + +#define CATCH_CONFIG_MAIN +#include + +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h" +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" +#include "HeterogeneousCore/AlpakaInterface/interface/moveToDeviceAsync.h" +#include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" + +// each test binary is built for a single Alpaka backend +using namespace ALPAKA_ACCELERATOR_NAMESPACE; + +namespace { + template + class TestHostBuffer { + public: + using Buffer = cms::alpakatools::host_buffer; + using ConstBuffer = cms::alpakatools::const_host_buffer; + + template + TestHostBuffer(TQueue const& queue, int size) : buffer_(cms::alpakatools::make_host_buffer(queue, size)) {} + + TestHostBuffer(TestHostBuffer const&) = delete; + TestHostBuffer& operator=(TestHostBuffer const&) = delete; + ; + TestHostBuffer(TestHostBuffer&& other) { + buffer_ = std::move(*other.buffer_); + other.buffer_.reset(); + } + TestHostBuffer& operator=(TestHostBuffer& other) { + buffer_ = std::move(*other.buffer_); + other.buffer_.reset(); + return this; + } + + bool has_value() const { return buffer_.has_value(); } + + T* data() { return buffer_->data(); } + + Buffer buffer() { return *buffer_; } + ConstBuffer buffer() const { return *buffer_; } + + private: + std::optional buffer_; + }; + + template + class TestDeviceBuffer { + public: + using Buffer = cms::alpakatools::device_buffer; + + template + TestDeviceBuffer(TQueue const& queue, int size) : buffer_(cms::alpakatools::make_device_buffer(queue, size)) {} + + T* data() { return buffer_.data(); } + + Buffer buffer() { return buffer_; } + + private: + Buffer buffer_; + }; + + template + void fillBuffer(TestHostBuffer& buffer) { + for (int i = 0, size = alpaka::getExtentProduct(buffer.buffer()); i < size; ++i) { + buffer.data()[i] = i; + } + } +} // namespace + +namespace cms::alpakatools { + template + struct CopyToDevice> { + template + static auto copyAsync(TQueue& queue, TestHostBuffer const& hostBuffer) { + TestDeviceBuffer> deviceBuffer(queue, alpaka::getExtentProduct(hostBuffer.buffer())); + alpaka::memcpy(queue, deviceBuffer.buffer(), hostBuffer.buffer()); + return deviceBuffer; + } + }; +} // namespace cms::alpakatools + +TEST_CASE("Test moveToDeviceAsync() for the " EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE) " backend", + "[" EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE) "]") { + // run the test on each device + for (auto const& device : cms::alpakatools::devices()) { + auto queue = Queue(device); + constexpr int size = 32; + TestHostBuffer buffer_host(queue, size); + fillBuffer(buffer_host); + auto const* ptr_host = buffer_host.data(); + + auto buffer_device = cms::alpakatools::moveToDeviceAsync(queue, std::move(buffer_host)); + REQUIRE(not buffer_host.has_value()); + if constexpr (std::is_same_v) { + REQUIRE(buffer_device.data() == ptr_host); + } else { + REQUIRE(buffer_device.data() != ptr_host); + } + alpaka::exec( + queue, + cms::alpakatools::make_workdiv(1, size), + [] ALPAKA_FN_ACC(Acc1D const& acc, int const* data) { + for (int i : cms::alpakatools::uniform_elements(acc)) { + assert(data[i] == i); + } + }, + buffer_device.data()); + alpaka::wait(queue); + + /* the following should not compile + auto buffer2_host = cms::alpakatools::make_host_buffer(); + auto buffer2_device = cms::alpakatools::moveToDeviceAsync(queue, std::move(buffer2_host)); + */ + } +} From 60da57efd157612e118b46a5190ce9caed149290 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Fri, 12 Jan 2024 23:15:49 +0100 Subject: [PATCH 269/418] Add MoveToDeviceCache class template --- .../AlpakaCore/interface/MoveToDeviceCache.h | 108 ++++++++++++++++++ .../AlpakaTest/plugins/BuildFile.xml | 1 + ...stAlpakaGlobalProducerMoveToDeviceCache.cc | 84 ++++++++++++++ .../AlpakaTest/test/testAlpakaModules_cfg.py | 19 ++- 4 files changed, 211 insertions(+), 1 deletion(-) create mode 100644 HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h create mode 100644 HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc diff --git a/HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h b/HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h new file mode 100644 index 0000000000000..2f5bcbb765bac --- /dev/null +++ b/HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h @@ -0,0 +1,108 @@ +#ifndef HeterogeneousCore_AlpakaInterface_interface_MoveToDeviceCache_h +#define HeterogeneousCore_AlpakaInterface_interface_MoveToDeviceCache_h + +#include + +#include + +#include "HeterogeneousCore/AlpakaCore/interface/QueueCache.h" +#include "HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h" +#include "HeterogeneousCore/AlpakaInterface/interface/devices.h" + +namespace cms::alpakatools { + namespace detail { + // By default copy the host object with CopyToDevice + // + // Doing with template specialization (rather than + // std::conditional_t and if constexpr) because the + // CopyToDevice::copyAsync() is ill-defined e.g. for + // PortableCollection on host device + template + class MoveToDeviceCacheImpl { + public: + using HostObject = THostObject; + using Impl = CopyToDeviceCacheImpl; + using DeviceObject = typename Impl::DeviceObject; + + MoveToDeviceCacheImpl(HostObject&& srcObject) : impl_(srcObject) {} + + DeviceObject const& get(size_t i) const { return impl_.get(i); } + + private: + Impl impl_; + }; + + // For host device, move the host object instead + template + class MoveToDeviceCacheImpl { + public: + using HostObject = THostObject; + using DeviceObject = HostObject; + + MoveToDeviceCacheImpl(HostObject&& srcObject) : data_(std::move(srcObject)) {} + + DeviceObject const& get(size_t i) const { return data_; } + + private: + HostObject data_; + }; + } // namespace detail + + /** + * This class template implements a cache for data that is moved + * from the host (of type THostObject) to all the devices + * corresponding the TQueue queue type. + * + * The host-side object to be moved is given as an argument to the + * class constructor. The constructor uses the + * CopyToDevice class template to copy the data to the + * devices, and waits for the data copies to finish, i.e. the + * constructor is synchronous wrt. the data copies. The "move" is + * achieved by requiring the constructor argument to the rvalue + * reference. + * + * Note that the host object type is required to be non-copyable. + * This is to avoid easy mistakes with objects that follow copy + * semantics of std::shared_ptr (that includes Alpaka buffers), that + * would allow the source memory buffer to be used via another copy + * during the asynchronous data copy to the device. + * + * The device-side object corresponding to the THostObject (actual + * type is the return type of CopyToDevice::copyAsync()) + * can be obtained with get() member function, that has either the + * queue or device argument. + * + * TODO: In principle it would be better to template over Device, + * but then we'd need a way to have a "default queue" type for each + * Device in order to infer the return type of + * CopyToDevice::copyAsync(). Alternatively, the template over + * TQueue could be removed by moving the class definition to + * ALPAKA_ACCELERATOR_NAMESPACE. + */ + template + class MoveToDeviceCache { + public: + using Queue = TQueue; + using Device = alpaka::Dev; + using HostObject = THostObject; + using Impl = detail::MoveToDeviceCacheImpl; + using DeviceObject = typename Impl::DeviceObject; + + static_assert(not(std::is_copy_constructible_v or std::is_copy_assignable_v), + "The data object to be moved to device must not be copyable."); + + MoveToDeviceCache(HostObject&& srcData) : data_(std::move(srcData)) {} + + // TODO: I could make this function to return the contained object + // in case of alpaka buffer, PortableObject, or PortableCollection + // (in PortableCollection case it would be the View) + DeviceObject const& get(Device const& dev) const { return data_.get(alpaka::getNativeHandle(dev)); } + + DeviceObject const& get(Queue const& queue) const { return get(alpaka::getDev(queue)); } + + private: + Impl data_; + }; +} // namespace cms::alpakatools + +#endif diff --git a/HeterogeneousCore/AlpakaTest/plugins/BuildFile.xml b/HeterogeneousCore/AlpakaTest/plugins/BuildFile.xml index a4058755409f7..53652048838f7 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/BuildFile.xml +++ b/HeterogeneousCore/AlpakaTest/plugins/BuildFile.xml @@ -19,6 +19,7 @@ The dependency on "DataFormats/PortableTestObjects" automatically expands to include the host-only library (if it exists) and the corresponding Alpaka libraries (if they exist) --> + diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc new file mode 100644 index 0000000000000..4ca7888002872 --- /dev/null +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc @@ -0,0 +1,84 @@ +#include "DataFormats/Portable/interface/PortableObject.h" +#include "DataFormats/PortableTestObjects/interface/alpaka/TestDeviceCollection.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/global/EDProducer.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDPutToken.h" +#include "HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" + +#include "TestAlgo.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + /** + * This class demonstrates a global EDProducer that + * - uses a MoveToDeviceCache to copy some host-side data to the devices of the backend. + * - produces a device EDProduct (that can get transferred to host automatically) + */ + class TestAlpakaGlobalProducerMoveToDeviceCache : public global::EDProducer<> { + public: + TestAlpakaGlobalProducerMoveToDeviceCache(edm::ParameterSet const& config) + : getToken_(consumes(config.getParameter("source"))), + getTokenMulti2_(consumes(config.getParameter("source"))), + getTokenMulti3_(consumes(config.getParameter("source"))), + putToken_{produces()}, + putTokenMulti2_{produces()}, + putTokenMulti3_{produces()}, + // create host-side object that gets implicitly copied to all devices of the backend + deviceCache_{[&config]() { + PortableHostObject obj(cms::alpakatools::host()); + *obj = TestAlgo::UpdateInfo{config.getParameter("x"), + config.getParameter("y"), + config.getParameter("z")}; + return obj; + }()} {} + + void produce(edm::StreamID, device::Event& iEvent, device::EventSetup const& iSetup) const override { + auto const& input = iEvent.get(getToken_); + auto const& inputMulti2 = iEvent.get(getTokenMulti2_); + auto const& inputMulti3 = iEvent.get(getTokenMulti3_); + + // get the object corresponding to the Device the Event is being processed on + auto const& infoObj = deviceCache_.get(iEvent.queue()); + + // run the algorithm, potentially asynchronously + auto deviceProduct = algo_.update(iEvent.queue(), input, infoObj.data()); + auto deviceProductMulti2 = algo_.updateMulti2(iEvent.queue(), inputMulti2, infoObj.data()); + auto deviceProductMulti3 = algo_.updateMulti3(iEvent.queue(), inputMulti3, infoObj.data()); + + iEvent.emplace(putToken_, std::move(deviceProduct)); + iEvent.emplace(putTokenMulti2_, std::move(deviceProductMulti2)); + iEvent.emplace(putTokenMulti3_, std::move(deviceProductMulti3)); + } + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + desc.add("source", edm::InputTag{}); + desc.add("x", 0); + desc.add("y", 1); + desc.add("z", 2); + + descriptions.addWithDefaultLabel(desc); + } + + private: + const device::EDGetToken getToken_; + const device::EDGetToken getTokenMulti2_; + const device::EDGetToken getTokenMulti3_; + const device::EDPutToken putToken_; + const device::EDPutToken putTokenMulti2_; + const device::EDPutToken putTokenMulti3_; + + // implementation of the algorithm + TestAlgo algo_; + + cms::alpakatools::MoveToDeviceCache> deviceCache_; + }; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h" +DEFINE_FWK_ALPAKA_MODULE(TestAlpakaGlobalProducerMoveToDeviceCache); diff --git a/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py b/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py index bdacd11d7e4c2..ac39117119cce 100644 --- a/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py +++ b/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py @@ -84,6 +84,12 @@ y = cms.int32(4), z = cms.int32(5), ) +process.alpakaGlobalProducerMoveToDeviceCache = cms.EDProducer("TestAlpakaGlobalProducerMoveToDeviceCache@alpaka", + source = cms.InputTag("alpakaGlobalProducer"), + x = cms.int32(32), + y = cms.int32(42), + z = cms.int32(52), +) process.alpakaStreamProducer = cms.EDProducer("TestAlpakaStreamProducer@alpaka", source = cms.InputTag("intProduct"), eventSetupSource = cms.ESInputTag("alpakaESProducerB", "explicitLabel"), @@ -132,6 +138,10 @@ source = "alpakaGlobalProducerCopyToDeviceCache", expectXvalues = cms.vdouble([3]*10) ) +process.alpakaGlobalConsumerMoveToDeviceCache = process.alpakaGlobalConsumer.clone( + source = "alpakaGlobalProducerMoveToDeviceCache", + expectXvalues = cms.vdouble([32]*10) +) process.alpakaStreamConsumer = cms.EDAnalyzer("TestAlpakaAnalyzer", source = cms.InputTag("alpakaStreamProducer"), expectSize = cms.int32(5), @@ -163,7 +173,8 @@ if args.moduleBackend != "": for name in ["ESProducerA", "ESProducerB", "ESProducerC", "ESProducerD", "ESProducerE", "ESProducerAMulti", "ESProducerNull", - "GlobalProducer", "GlobalProducerE", "GlobalProducerCopyToDeviceCache", + "GlobalProducer", "GlobalProducerE", + "GlobalProducerCopyToDeviceCache", "GlobalProducerMoveToDeviceCache", "StreamProducer", "StreamInstanceProducer", "StreamSynchronizingProducer", "StreamSynchronizingProducerToDevice", "GlobalDeviceConsumer", "StreamDeviceConsumer", @@ -180,6 +191,8 @@ def setExpect(m, size): process.alpakaGlobalConsumerE.expectXvalues.extend([0]*(20-10)) setExpect(process.alpakaGlobalConsumerCopyToDeviceCache, size=20) process.alpakaGlobalConsumerCopyToDeviceCache.expectXvalues = [3]*20 + setExpect(process.alpakaGlobalConsumerMoveToDeviceCache, size=20) + process.alpakaGlobalConsumerMoveToDeviceCache.expectXvalues = [32]*20 setExpect(process.alpakaStreamConsumer, size=25) setExpect(process.alpakaStreamInstanceConsumer, size=36) setExpect(process.alpakaStreamSynchronizingConsumer, size=20) @@ -192,6 +205,8 @@ def setExpect(m, size): process.alpakaGlobalConsumerE.expectXvalues.extend([0]*(30-10)) setExpect(process.alpakaGlobalConsumerCopyToDeviceCache, size = 30) process.alpakaGlobalConsumerCopyToDeviceCache.expectXvalues = [3]*30 + setExpect(process.alpakaGlobalConsumerMoveToDeviceCache, size = 30) + process.alpakaGlobalConsumerMoveToDeviceCache.expectXvalues = [32]*30 setExpect(process.alpakaStreamConsumer, size = 125) setExpect(process.alpakaStreamInstanceConsumer, size = 216) setExpect(process.alpakaStreamSynchronizingConsumer, size = 30) @@ -211,6 +226,7 @@ def setExpect(m, size): process.alpakaGlobalProducer, process.alpakaGlobalProducerE, process.alpakaGlobalProducerCopyToDeviceCache, + process.alpakaGlobalProducerMoveToDeviceCache, process.alpakaStreamProducer, process.alpakaStreamInstanceProducer, process.alpakaStreamSynchronizingProducer, @@ -221,6 +237,7 @@ def setExpect(m, size): process.alpakaGlobalDeviceConsumer+ process.alpakaGlobalConsumerE+ process.alpakaGlobalConsumerCopyToDeviceCache+ + process.alpakaGlobalConsumerMoveToDeviceCache+ process.alpakaStreamConsumer+ process.alpakaStreamDeviceConsumer+ process.alpakaStreamInstanceConsumer+ From 61a5c3a11ca1e088f0ebb685ff59f88326d1ff1f Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 8 Feb 2024 23:13:49 +0100 Subject: [PATCH 270/418] Allow the contained object of PortableHostObject to be initialized in the constructor --- .../Portable/interface/PortableHostObject.h | 22 +++++++++++ .../test/test_catch2_portableObjectOnHost.cc | 38 +++++++++++++++++-- 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/DataFormats/Portable/interface/PortableHostObject.h b/DataFormats/Portable/interface/PortableHostObject.h index b2f84b38be2dc..a2051a6ff2ab9 100644 --- a/DataFormats/Portable/interface/PortableHostObject.h +++ b/DataFormats/Portable/interface/PortableHostObject.h @@ -20,16 +20,30 @@ class PortableHostObject { using Buffer = cms::alpakatools::host_buffer; using ConstBuffer = cms::alpakatools::const_host_buffer; + static_assert(std::is_trivially_destructible_v); + PortableHostObject() = delete; PortableHostObject(edm::Uninitialized) noexcept {} + // Note that in contrast to the variadic template overload, this + // constructor does not initialize the contained object PortableHostObject(alpaka_common::DevHost const& host) // allocate pageable host memory : buffer_{cms::alpakatools::make_host_buffer()}, product_{buffer_->data()} { assert(reinterpret_cast(product_) % alignof(Product) == 0); } + template + PortableHostObject(alpaka_common::DevHost const& host, Args&&... args) + // allocate pageable host memory + : buffer_{cms::alpakatools::make_host_buffer()}, + product_{new(buffer_->data()) Product(std::forward(args)...)} { + assert(reinterpret_cast(product_) % alignof(Product) == 0); + } + + // Note that in contrast to the variadic template overload, this + // constructor does not initialize the contained object template >> PortableHostObject(TQueue const& queue) // allocate pinned host memory associated to the given work queue, accessible by the queue's device @@ -37,6 +51,14 @@ class PortableHostObject { assert(reinterpret_cast(product_) % alignof(Product) == 0); } + template >> + PortableHostObject(TQueue const& queue, Args&&... args) + // allocate pinned host memory associated to the given work queue, accessible by the queue's device + : buffer_{cms::alpakatools::make_host_buffer(queue)}, + product_{new(buffer_->data()) Product(std::forward(args)...)} { + assert(reinterpret_cast(product_) % alignof(Product) == 0); + } + // non-copyable PortableHostObject(PortableHostObject const&) = delete; PortableHostObject& operator=(PortableHostObject const&) = delete; diff --git a/DataFormats/Portable/test/test_catch2_portableObjectOnHost.cc b/DataFormats/Portable/test/test_catch2_portableObjectOnHost.cc index 698605b57f465..4afe56be3e322 100644 --- a/DataFormats/Portable/test/test_catch2_portableObjectOnHost.cc +++ b/DataFormats/Portable/test/test_catch2_portableObjectOnHost.cc @@ -14,10 +14,40 @@ namespace { // This test is currently mostly about the code compiling TEST_CASE("Use of PortableObject on host code", s_tag) { - PortableObject obj(cms::alpakatools::host()); - obj->a = 42; + static_assert(std::is_same_v, PortableHostObject>); - SECTION("Tests") { REQUIRE(obj->a == 42); } + SECTION("Initialize by setting members") { + SECTION("With device") { + PortableObject obj(cms::alpakatools::host()); + obj->a = 42; - static_assert(std::is_same_v, PortableHostObject>); + REQUIRE(obj->a == 42); + } + + SECTION("With queue") { + alpaka::QueueCpuBlocking queue(cms::alpakatools::host()); + + PortableObject obj(queue); + obj->a = 42; + + REQUIRE(obj->a == 42); + } + } + + SECTION("Initialize via constructor") { + SECTION("With device") { + PortableObject obj(cms::alpakatools::host(), Test{42, 3.14f}); + + REQUIRE(obj->a == 42); + REQUIRE(obj->b == 3.14f); + } + + SECTION("With queue") { + alpaka::QueueCpuBlocking queue(cms::alpakatools::host()); + PortableObject obj(queue, Test{42, 3.14f}); + + REQUIRE(obj->a == 42); + REQUIRE(obj->b == 3.14f); + } + } } From 3d6f3204b8d455cce075a174845700f46ee2b29a Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 8 Feb 2024 23:20:42 +0100 Subject: [PATCH 271/418] Replace lambda with a direct initialization of PortableHostObject --- .../TestAlpakaGlobalProducerMoveToDeviceCache.cc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc index 4ca7888002872..51d756e5dbc8f 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc @@ -27,13 +27,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { putTokenMulti2_{produces()}, putTokenMulti3_{produces()}, // create host-side object that gets implicitly copied to all devices of the backend - deviceCache_{[&config]() { - PortableHostObject obj(cms::alpakatools::host()); - *obj = TestAlgo::UpdateInfo{config.getParameter("x"), - config.getParameter("y"), - config.getParameter("z")}; - return obj; - }()} {} + deviceCache_{ + PortableHostObject{cms::alpakatools::host(), + TestAlgo::UpdateInfo{config.getParameter("x"), + config.getParameter("y"), + config.getParameter("z")}}} {} void produce(edm::StreamID, device::Event& iEvent, device::EventSetup const& iSetup) const override { auto const& input = iEvent.get(getToken_); From ad1db1651f5e6cd7f03c096724795afe92e6c932 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Fri, 9 Feb 2024 08:18:03 -0600 Subject: [PATCH 272/418] Document CopyToDeviceCache and MoveToDeviceCache in README --- HeterogeneousCore/AlpakaCore/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/HeterogeneousCore/AlpakaCore/README.md b/HeterogeneousCore/AlpakaCore/README.md index 43ed5d0778844..586db296972c9 100644 --- a/HeterogeneousCore/AlpakaCore/README.md +++ b/HeterogeneousCore/AlpakaCore/README.md @@ -185,6 +185,26 @@ In the [`fillDescriptions()`](https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWG Also note that the `fillDescription()` function must have the same content for all backends, i.e. any backend-specific behavior with e.g. `#ifdef` or `if constexpr` are forbidden. +### Copy e.g. configuration data to all devices in EDProducer + +While the EventSetup can be used to handle copying data to all devices +of an Alpaka backend, for data used only by one EDProducer a simpler +way would be to use one of +* `cms::alpakatools::MoveToDeviceCache` (recommended) + * `#include "HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h"` + * Moves the `THostObject` to all devices using `cms::alpakatools::CopyToDevice` synchronously. On host backends the argument `THostObject` is moved around, but not copied. + * The `THostObject` must not be copyable + * This is to avoid easy mistakes with objects that follow copy semantics of `std::shared_ptr` (that includes Alpaka buffers), that would allow the source memory buffer to be used via another copy during the asynchronous data copy to the device. + * The constructor argument `THostObject` object may not be used, unless it is initialized again e.g. by assigning another `THostObject` into it. + * The corresponding device-side object can be obtained with `get()` member function using either alpaka Device or Queue object. It can be used immediately after the constructor returns. +* `cms::alpakatools::CopyToDeviceCache` (use only if **must** use copyable `THostObject`) + * `#include "HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h"` + * Copies the `THostObject` to all devices using `cms::alpakatools::CopyToDevice` synchronously. Also host backends do a copy. + * The constructor argument `THostObject` object can be used for other purposes immediately after the constructor returns + * The corresponding device-side object can be obtained with `get()` member function using either alpaka Device or Queue object. It can be used immediately after the constructor returns. + +For examples see [`HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc`](../../HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc) and [`HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc`](../../HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc). + ## Guarantees * All Event data products in the device memory space are guaranteed to be accessible only for operations enqueued in the `Queue` given by `device::Event::queue()` when accessed through the `device::Event`. From d4f97ff5c87527fd9d235c26d435d328f6063e97 Mon Sep 17 00:00:00 2001 From: iarspider Date: Fri, 13 Dec 2024 16:10:30 +0100 Subject: [PATCH 273/418] Apply suggestions from code review Co-authored-by: Matti Kortelainen --- .../StaticAnalyzers/src/MutableMemberModificationChecker.cpp | 2 +- Utilities/StaticAnalyzers/test/unnecessary_mutable_member.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.cpp b/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.cpp index 24b73d93591e9..1cb91ce02bad2 100644 --- a/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.cpp +++ b/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.cpp @@ -63,7 +63,7 @@ namespace clangcms { return; } - // == Skip atmoic mutables, these are thread-safe by design == + // == Skip atomic mutables, these are thread-safe by design == if (support::isStdAtomic(FD)) { return; // Skip if it's a mutable std::atomic } diff --git a/Utilities/StaticAnalyzers/test/unnecessary_mutable_member.cpp b/Utilities/StaticAnalyzers/test/unnecessary_mutable_member.cpp index d1fbcc267f236..80b3a78c3fbd1 100644 --- a/Utilities/StaticAnalyzers/test/unnecessary_mutable_member.cpp +++ b/Utilities/StaticAnalyzers/test/unnecessary_mutable_member.cpp @@ -10,7 +10,7 @@ class Foo { private: mutable int m_intMutable; mutable std::string m_strMutable; - CMS_SA_ALLOW long m_longMutable; // should not be reported + CMS_SA_ALLOW mutable long m_longMutable; // should not be reported }; class Bar { From d8046a16008b253c3948551d0651b000d8f1806a Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Fri, 13 Dec 2024 09:30:48 -0600 Subject: [PATCH 274/418] Improved calculation of CRC32 - made code a simple function - switched to taking a std::string_view to avoid unnecessary allocations - renamed function and file name to match --- DataFormats/Provenance/src/BranchID.cc | 7 ++----- EventFilter/L1TRawToDigi/src/AMC13Spec.cc | 16 +++++++------- EventFilter/L1TRawToDigi/src/AMCSpec.cc | 12 +++++------ .../{CRC32Calculator.h => calculateCRC32.h} | 16 ++++---------- .../{CRC32Calculator.cc => calculateCRC32.cc} | 21 ++++++++----------- .../test/test_catch2_CRC32Calculator.cc | 16 -------------- .../test/test_catch2_calculateCRC32.cc | 16 ++++++++++++++ 7 files changed, 45 insertions(+), 59 deletions(-) rename FWCore/Utilities/interface/{CRC32Calculator.h => calculateCRC32.h} (89%) rename FWCore/Utilities/src/{CRC32Calculator.cc => calculateCRC32.cc} (87%) delete mode 100644 FWCore/Utilities/test/test_catch2_CRC32Calculator.cc create mode 100644 FWCore/Utilities/test/test_catch2_calculateCRC32.cc diff --git a/DataFormats/Provenance/src/BranchID.cc b/DataFormats/Provenance/src/BranchID.cc index 6eec549663ac4..b7fc4a26857a5 100644 --- a/DataFormats/Provenance/src/BranchID.cc +++ b/DataFormats/Provenance/src/BranchID.cc @@ -1,13 +1,10 @@ #include "DataFormats/Provenance/interface/BranchID.h" -#include "FWCore/Utilities/interface/CRC32Calculator.h" +#include "FWCore/Utilities/interface/calculateCRC32.h" #include namespace edm { - BranchID::value_type BranchID::toID(std::string const& branchName) { - cms::CRC32Calculator crc32(branchName); - return crc32.checksum(); - } + BranchID::value_type BranchID::toID(std::string const& branchName) { return cms::calculateCRC32(branchName); } std::ostream& operator<<(std::ostream& os, BranchID const& id) { os << id.id(); diff --git a/EventFilter/L1TRawToDigi/src/AMC13Spec.cc b/EventFilter/L1TRawToDigi/src/AMC13Spec.cc index 957689f7c5b01..ac3096846c3cd 100644 --- a/EventFilter/L1TRawToDigi/src/AMC13Spec.cc +++ b/EventFilter/L1TRawToDigi/src/AMC13Spec.cc @@ -3,11 +3,11 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/CRC32Calculator.h" +#include "FWCore/Utilities/interface/calculateCRC32.h" #include "EventFilter/L1TRawToDigi/interface/AMC13Spec.h" -#define EDM_ML_DEBUG 1 +//#define EDM_ML_DEBUG 1 namespace amc13 { Header::Header(unsigned int namc, unsigned int orbit) { @@ -38,8 +38,8 @@ namespace amc13 { } void Trailer::writeCRC(const uint64_t* start, uint64_t* end) { - std::string dstring(reinterpret_cast(start), reinterpret_cast(end) + 4); - auto crc = cms::CRC32Calculator(dstring).checksum(); + std::string_view dstring(reinterpret_cast(start), reinterpret_cast(end) + 4); + auto crc = cms::calculateCRC32(dstring); *end = ((*end) & ~(uint64_t(CRC_mask) << CRC_shift)) | (static_cast(crc & CRC_mask) << CRC_shift); } @@ -128,8 +128,8 @@ namespace amc13 { int crc = 0; if (check_crc) { - std::string check(reinterpret_cast(start), reinterpret_cast(data) - 4); - crc = cms::CRC32Calculator(check).checksum(); + std::string_view check(reinterpret_cast(start), reinterpret_cast(data) - 4); + crc = cms::calculateCRC32(check); LogDebug("L1T") << "checking data checksum of " << std::hex << crc << std::dec; } @@ -156,8 +156,8 @@ namespace amc13 { t = Trailer(data++); if (check_crc) { - std::string check(reinterpret_cast(start), reinterpret_cast(data) - 4); - crc = cms::CRC32Calculator(check).checksum(); + std::string_view check(reinterpret_cast(start), reinterpret_cast(data) - 4); + crc = cms::calculateCRC32(check); LogDebug("L1T") << "checking data checksum of " << std::hex << crc << std::dec; } else { diff --git a/EventFilter/L1TRawToDigi/src/AMCSpec.cc b/EventFilter/L1TRawToDigi/src/AMCSpec.cc index 5a97da5013a59..b81ad9cb8e4e1 100644 --- a/EventFilter/L1TRawToDigi/src/AMCSpec.cc +++ b/EventFilter/L1TRawToDigi/src/AMCSpec.cc @@ -1,11 +1,11 @@ #include #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/CRC32Calculator.h" +#include "FWCore/Utilities/interface/calculateCRC32.h" #include "EventFilter/L1TRawToDigi/interface/AMCSpec.h" -#define EDM_ML_DEBUG 1 +//#define EDM_ML_DEBUG 1 namespace amc { BlockHeader::BlockHeader(unsigned int amc_no, unsigned int board_id, unsigned int size, unsigned int block) { @@ -92,8 +92,8 @@ namespace amc { } void Trailer::writeCRC(const uint64_t *start, uint64_t *end) { - std::string dstring(reinterpret_cast(start), reinterpret_cast(end) + 4); - auto crc = cms::CRC32Calculator(dstring).checksum(); + std::string_view dstring(reinterpret_cast(start), reinterpret_cast(end) + 4); + auto crc = cms::calculateCRC32(dstring); *end = ((*end) & ~(uint64_t(CRC_mask) << CRC_shift)) | (static_cast(crc & CRC_mask) << CRC_shift); } @@ -133,8 +133,8 @@ namespace amc { header_ = Header(payload_.data()); trailer_ = Trailer(&payload_.back()); - std::string check(reinterpret_cast(payload_.data()), payload_.size() * 8 - 4); - auto crc = cms::CRC32Calculator(check).checksum(); + std::string_view check(reinterpret_cast(payload_.data()), payload_.size() * 8 - 4); + auto crc = cms::calculateCRC32(check); trailer_.check(crc, lv1, header_.getSize(), mtf7_mode); } diff --git a/FWCore/Utilities/interface/CRC32Calculator.h b/FWCore/Utilities/interface/calculateCRC32.h similarity index 89% rename from FWCore/Utilities/interface/CRC32Calculator.h rename to FWCore/Utilities/interface/calculateCRC32.h index e05bebb151a15..6ecb25f5b3498 100644 --- a/FWCore/Utilities/interface/CRC32Calculator.h +++ b/FWCore/Utilities/interface/calculateCRC32.h @@ -1,5 +1,5 @@ -#ifndef FWCore_Utilities_CRC32Calculator_h -#define FWCore_Utilities_CRC32Calculator_h +#ifndef FWCore_Utilities_calculateCRC32_h +#define FWCore_Utilities_calculateCRC32_h /* Code to calculate a CRC32 checksum on a string. This code is based @@ -55,18 +55,10 @@ from the original code follow below to attribute the source. #include -#include +#include namespace cms { - class CRC32Calculator { - public: - CRC32Calculator(std::string const& message); - - std::uint32_t checksum() { return checksum_; } - - private: - std::uint32_t checksum_; - }; + std::uint32_t calculateCRC32(std::string_view message); } // namespace cms #endif diff --git a/FWCore/Utilities/src/CRC32Calculator.cc b/FWCore/Utilities/src/calculateCRC32.cc similarity index 87% rename from FWCore/Utilities/src/CRC32Calculator.cc rename to FWCore/Utilities/src/calculateCRC32.cc index f08e7be261b50..fa88a0dc2f110 100644 --- a/FWCore/Utilities/src/CRC32Calculator.cc +++ b/FWCore/Utilities/src/calculateCRC32.cc @@ -1,14 +1,14 @@ -#include "FWCore/Utilities/interface/CRC32Calculator.h" +#include "FWCore/Utilities/interface/calculateCRC32.h" namespace cms { namespace { - const std::uint32_t CRC32_XINIT = 0xFFFFFFFFL; - const std::uint32_t CRC32_XOROT = 0xFFFFFFFFL; + constexpr std::uint32_t CRC32_XINIT = 0xFFFFFFFFL; + constexpr std::uint32_t CRC32_XOROT = 0xFFFFFFFFL; - const std::uint32_t crctable[256] = { + constexpr std::uint32_t crctable[256] = { 0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL, 0x076DC419L, 0x706AF48FL, 0xE963A535L, 0x9E6495A3L, 0x0EDB8832L, 0x79DCB8A4L, 0xE0D5E91EL, 0x97D2D988L, 0x09B64C2BL, 0x7EB17CBDL, 0xE7B82D07L, 0x90BF1D91L, 0x1DB71064L, 0x6AB020F2L, 0xF3B97148L, 0x84BE41DEL, 0x1ADAD47DL, 0x6DDDE4EBL, 0xF4D4B551L, 0x83D385C7L, @@ -43,19 +43,16 @@ namespace cms { 0xB3667A2EL, 0xC4614AB8L, 0x5D681B02L, 0x2A6F2B94L, 0xB40BBE37L, 0xC30C8EA1L, 0x5A05DF1BL, 0x2D02EF8DL}; } // namespace - CRC32Calculator::CRC32Calculator(std::string const& message) { + std::uint32_t calculateCRC32(std::string_view message) { /* initialize value */ - checksum_ = CRC32_XINIT; + uint32_t checksum = CRC32_XINIT; /* process each byte prior to checksum field */ - auto length = message.length(); - char const* p = message.data(); - for (size_t j = 0; j < length; j++) { - unsigned char uc = *p++; - checksum_ = cms::crctable[(checksum_ ^ uc) & 0xFFL] ^ (checksum_ >> 8); + for (auto uc : message) { + checksum = cms::crctable[(checksum ^ uc) & 0xFFL] ^ (checksum >> 8); } /* return XOR out value */ - checksum_ = checksum_ ^ CRC32_XOROT; + return checksum ^ CRC32_XOROT; } } // namespace cms diff --git a/FWCore/Utilities/test/test_catch2_CRC32Calculator.cc b/FWCore/Utilities/test/test_catch2_CRC32Calculator.cc deleted file mode 100644 index f4280ca692be2..0000000000000 --- a/FWCore/Utilities/test/test_catch2_CRC32Calculator.cc +++ /dev/null @@ -1,16 +0,0 @@ -#include "catch.hpp" -#include "FWCore/Utilities/interface/CRC32Calculator.h" - -TEST_CASE("test cms::CRC32Calculator", "[CRC32Calculator]") { - SECTION("known") { - cms::CRC32Calculator crc32("type_label_instance_process"); - - // This known result was calculated using python as a cross check - unsigned int knownResult = 1215348599; - REQUIRE(crc32.checksum() == knownResult); - } - SECTION("empty") { - cms::CRC32Calculator emptyString_crc32(""); - REQUIRE(emptyString_crc32.checksum() == 0); - } -} diff --git a/FWCore/Utilities/test/test_catch2_calculateCRC32.cc b/FWCore/Utilities/test/test_catch2_calculateCRC32.cc new file mode 100644 index 0000000000000..4ed662b508f4f --- /dev/null +++ b/FWCore/Utilities/test/test_catch2_calculateCRC32.cc @@ -0,0 +1,16 @@ +#include "catch.hpp" +#include "FWCore/Utilities/interface/calculateCRC32.h" + +TEST_CASE("test cms::calculateCRC32", "[calculateCRC32]") { + SECTION("known") { + auto crc32 = cms::calculateCRC32("type_label_instance_process"); + + // This known result was calculated using python as a cross check + unsigned int knownResult = 1215348599; + REQUIRE(crc32 == knownResult); + } + SECTION("empty") { + auto emptyString_crc32 = cms::calculateCRC32(""); + REQUIRE(emptyString_crc32 == 0); + } +} From 665866d0e88d4b581a3c7b88515edeab33075137 Mon Sep 17 00:00:00 2001 From: Ivan Razumov Date: Fri, 13 Dec 2024 16:45:21 +0100 Subject: [PATCH 275/418] Simplify checkAssignToMutable function --- .../src/MutableMemberModificationChecker.cpp | 45 ++++++++----------- .../src/MutableMemberModificationChecker.h | 4 +- 2 files changed, 20 insertions(+), 29 deletions(-) diff --git a/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.cpp b/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.cpp index 1cb91ce02bad2..688897abcf932 100644 --- a/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.cpp +++ b/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.cpp @@ -85,12 +85,22 @@ namespace clangcms { // == Check if we are modifying the mutable == bool ret; - ret = checkAssignToMutable(ME, C, FuncD); - if (!ret) { - ret = checkCallNonConstOfMutable(ME, C); + if (checkAssignToMutable(ME, C)) { + // == Emit report == + std::string MutableMemberName = ME->getMemberDecl()->getQualifiedNameAsString(); + if (!BT) { + BT = std::make_unique( + this, "Mutable member modification in const member function", "ConstThreadSafety"); + } + std::string Description = + "Modifying mutable member '" + MutableMemberName + "' in const member function is potentially thread-unsafe "; + auto Report = std::make_unique(*BT, Description, C.generateErrorNode()); + Report->addRange(ME->getSourceRange()); + C.emitReport(std::move(Report)); + return; } - if (ret) { + if (checkCallNonConstOfMutable(ME, C)) { if (RD) { std::string ClassName = RD->getNameAsString(); std::string MemberName = ME->getMemberDecl()->getNameAsString(); @@ -105,10 +115,8 @@ namespace clangcms { // Check direct modifications of mutable (assign, compound stmt, increment/decrement) bool MutableMemberModificationChecker::checkAssignToMutable(const clang::MemberExpr *ME, - clang::ento::CheckerContext &C, - const clang::FunctionDecl *FuncD) const { + clang::ento::CheckerContext &C) const { // == Check if this is a modifying statement == - bool isModification = false; // Retrieve the parent statement of the MemberExpr const clang::LocationContext *LC = C.getLocationContext(); @@ -126,7 +134,7 @@ namespace clangcms { if (LHSAsME) { if (BO->isAssignmentOp() && LHSAsME == ME) { // The MemberExpr is on the left-hand side of an assignment - isModification = true; + return true; } } } @@ -138,7 +146,7 @@ namespace clangcms { if (LHSAsME) { if (CO->isAssignmentOp() && LHSAsME == ME) { // The MemberExpr is on the left-hand side of an assignment - isModification = true; + return true; } } } @@ -146,26 +154,11 @@ namespace clangcms { // Check for increment/decrement if (const auto *UO = llvm::dyn_cast(ParentStmt)) { if (UO->isIncrementDecrementOp() && UO->getSubExpr() == ME) { - isModification = true; + return true; } } - if (!isModification) { - return false; - } - - // == Report a bug if none of the above conditions allow access. == - std::string MutableMemberName = ME->getMemberDecl()->getQualifiedNameAsString(); - if (!BT) { - BT = std::make_unique( - this, "Mutable member modification in const member function", "ConstThreadSafety"); - } - std::string Description = - "Modifying mutable member '" + MutableMemberName + "' in const member function is potentially thread-unsafe "; - auto Report = std::make_unique(*BT, Description, C.generateErrorNode()); - Report->addRange(ME->getSourceRange()); - C.emitReport(std::move(Report)); - return true; + return false; } // checkAssignToMutable // Check for indirect modifications of mutable (calling non-const method) diff --git a/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.h b/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.h index 50f16288a64db..68a42b26b4b84 100644 --- a/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.h +++ b/Utilities/StaticAnalyzers/src/MutableMemberModificationChecker.h @@ -22,9 +22,7 @@ namespace clangcms { private: CmsException m_exception; - bool checkAssignToMutable(const clang::MemberExpr *ME, - clang::ento::CheckerContext &C, - const clang::FunctionDecl *FuncD) const; + bool checkAssignToMutable(const clang::MemberExpr *ME, clang::ento::CheckerContext &C) const; bool checkCallNonConstOfMutable(const clang::MemberExpr *ME, clang::ento::CheckerContext &C) const; }; } // namespace clangcms From 96fe9773a9221c965255d09b5595ad3bc0179a7e Mon Sep 17 00:00:00 2001 From: Philipp Nattland Date: Fri, 13 Dec 2024 14:53:16 +0100 Subject: [PATCH 276/418] Addition of HLT HG Comb to relval tests --- .../python/relval_production.py | 1 + .../python/relval_steps.py | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/Configuration/PyReleaseValidation/python/relval_production.py b/Configuration/PyReleaseValidation/python/relval_production.py index aef9c3c2d6b28..97098d2668c2a 100644 --- a/Configuration/PyReleaseValidation/python/relval_production.py +++ b/Configuration/PyReleaseValidation/python/relval_production.py @@ -16,6 +16,7 @@ workflows[1001.4] = [ '',['RunDoubleMuon2022B','TIER0EXPRUN3','ALCAEXPSIPIXELALIRUN3','ALCAHARVD4','ALCAHARVDSIPIXELALIHG','ALCAHARVDSIPIXELALIHGCOMBINED']] # special workflow to run the SiPixelAli HG combined workflow workflows[1002.3] = [ '',['RunZeroBias2022B','TIER0PROMPTRUN3','ALCASPLITRUN3','ALCAHARVDEXPRUN3']] workflows[1002.4] = [ '',['RunDoubleMuon2022B','TIER0PROMPTRUN3','HARVESTPROMPTRUN3']] +workflows[1002.5] = [ '',['RunHLTMonitor2024I','ReAlCaHLT','ALCAReAlCaHLTHGComb','ALCAReAlCaHLTHGCombZMUMU','ALCAHARVDSIPIXELALIHLTHGCOMBINED']] workflows[1002]=['RRD',['RunMinBias2011A','RECODR1','COPYPASTE']] workflows[1003]=['', ['RunMinBias2012A','RECODDQM','HARVESTDDQM']] diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 5884a86631c9f..55cd141235492 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -644,6 +644,7 @@ RunHI2023={375491: [[100, 100]]} steps['RunHIPhysicsRawPrime2023A']={'INPUT':InputInfo(dataSet='/HIPhysicsRawPrime0/HIRun2023A-v1/RAW',label='HI2023A',events=100000,location='STD', ls=RunHI2023)} +steps['RunHLTMonitor2024I']={'INPUT':InputInfo(dataSet='/HLTMonitor/Run2024I-Express-v2/FEVTHLTALL',label='2024I',events=100000,location='STD', ls={386801: [[32, 111]]})} ################################################################## ### Golden Data Steps # Reading good runs directly from the latest golden json @@ -2445,6 +2446,16 @@ def lhegensim2018ml(fragment,howMuch): '--era':'Run3', '--conditions':'auto:run3_data_express' },steps['TIER0']]) +steps['ReAlCaHLT']={'-s':'ALCA:TkAlHLTTracks+TkAlHLTTracksZMuMu', + '--conditions':'140X_dataRun3_Express_v3', + '--scenario': 'pp', + '--data': '', + '--era':'Run3_2024', + '--datatier':'ALCARECO', + '--eventcontent':'ALCARECO', + '--process':'RECO', + '--processName':'ReAlCa', + } steps['TIER0EXPCOSMICSRUN3']=merge([{'--scenario':'cosmics', '-s':'RAW2DIGI,L1Reco,RECO,ALCAPRODUCER:@allForExpressCosmics,ENDJOB', '-n':1000, @@ -2729,6 +2740,15 @@ def lhegensim2018ml(fragment,howMuch): '--filein':'file:PromptCalibProdSiPixelAliHGComb.root', '--customise':'Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.lowerHitsPerStructure'} +steps['ALCAHARVDSIPIXELALIHLTHGCOMBINED']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdSiPixelAliHLTHGC']), + '--conditions':'140X_dataRun3_Express_v3', + '--scenario':'pp', + '--era':'Run3_2024', + '--data':'', + '-n':'-1', + '--filein':'file:PromptCalibProdSiPixelAliHLTHGC_0.root,file:PromptCalibProdSiPixelAliHLTHGC_1.root', + '--customise':'Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.lowerHitsPerStructure'} + steps['ALCAHARVDPPSCAL']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdPPSTimingCalib']), '--conditions':'auto:run3_data_express', '--scenario':'pp', @@ -3544,6 +3564,34 @@ def gen2024HiMix(fragment,howMuch): '--datatier':'ALCARECO', '--eventcontent':'ALCARECO', '--triggerResultsProcess': 'RECO'} +steps['ALCAReAlCaHLTHGComb']={'-s':'ALCA:PromptCalibProdSiPixelAliHLTHGC', + '--conditions':'140X_dataRun3_Express_v3', + '--customise': 'Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.doNotFilterLS', + '--scenario': 'pp', + '--data': '', + '--era':'Run3_2024', + '--datatier':'ALCARECO', + '--eventcontent':'ALCARECO', + '--processName=ReAlCaHLTHGC':'', + '-n':'-1', + '--filein':'file:TkAlHLTTracks.root', + '--fileout':'file:PromptCalibProdSiPixelAliHLTHGC_0.root', + '--customise_commands=process.ALCARECOTkAlZMuMuFilterForSiPixelAliHLT.throw = False;process.ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG.TriggerResultsTag = "TriggerResults::ReAlCa"':'', + '--triggerResultsProcess': 'ReAlCa'} +steps['ALCAReAlCaHLTHGCombZMUMU']={'-s':'ALCA:PromptCalibProdSiPixelAliHLTHGC', + '--conditions':'140X_dataRun3_Express_v3', + '--customise': 'Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.doNotFilterLS', + '--scenario': 'pp', + '--data': '', + '--era':'Run3_2024', + '--datatier':'ALCARECO', + '--eventcontent':'ALCARECO', + '--processName=ReAlCaHLTHGC':'', + '-n':'-1', + '--filein':'file:TkAlHLTTracksZMuMu.root', + '--fileout':'file:PromptCalibProdSiPixelAliHLTHGC_1.root', + '--customise_commands=process.ALCARECOTkAlZMuMuFilterForSiPixelAliHLT.throw = False;process.ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG.TriggerResultsTag = "TriggerResults::ReAlCa"':'', + '--triggerResultsProcess': 'ReAlCa'} steps['ALCAEXPCOSMICSRUN3']={'-s':'ALCAOUTPUT:@allForExpressCosmics,ALCA:PromptCalibProdSiStrip+PromptCalibProdSiPixelLAMCS+PromptCalibProdSiStripLA', '-n':1000, '--scenario':'cosmics', From e64390f90f7bd2b1cc289b1b035659888efa617f Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 13 Dec 2024 17:15:00 +0100 Subject: [PATCH 277/418] fixes to workflow 1002.5 --- .../python/relval_steps.py | 67 +++++++++++-------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 55cd141235492..1cb00d6601d4e 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -3564,34 +3564,47 @@ def gen2024HiMix(fragment,howMuch): '--datatier':'ALCARECO', '--eventcontent':'ALCARECO', '--triggerResultsProcess': 'RECO'} -steps['ALCAReAlCaHLTHGComb']={'-s':'ALCA:PromptCalibProdSiPixelAliHLTHGC', - '--conditions':'140X_dataRun3_Express_v3', - '--customise': 'Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.doNotFilterLS', - '--scenario': 'pp', - '--data': '', - '--era':'Run3_2024', - '--datatier':'ALCARECO', - '--eventcontent':'ALCARECO', - '--processName=ReAlCaHLTHGC':'', - '-n':'-1', - '--filein':'file:TkAlHLTTracks.root', - '--fileout':'file:PromptCalibProdSiPixelAliHLTHGC_0.root', - '--customise_commands=process.ALCARECOTkAlZMuMuFilterForSiPixelAliHLT.throw = False;process.ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG.TriggerResultsTag = "TriggerResults::ReAlCa"':'', - '--triggerResultsProcess': 'ReAlCa'} -steps['ALCAReAlCaHLTHGCombZMUMU']={'-s':'ALCA:PromptCalibProdSiPixelAliHLTHGC', - '--conditions':'140X_dataRun3_Express_v3', + +steps['ALCAReAlCaHLTHGComb'] = {'-s': 'ALCA:PromptCalibProdSiPixelAliHLTHGC', + '--conditions': '140X_dataRun3_Express_v3', '--customise': 'Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.doNotFilterLS', - '--scenario': 'pp', - '--data': '', - '--era':'Run3_2024', - '--datatier':'ALCARECO', - '--eventcontent':'ALCARECO', - '--processName=ReAlCaHLTHGC':'', - '-n':'-1', - '--filein':'file:TkAlHLTTracksZMuMu.root', - '--fileout':'file:PromptCalibProdSiPixelAliHLTHGC_1.root', - '--customise_commands=process.ALCARECOTkAlZMuMuFilterForSiPixelAliHLT.throw = False;process.ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG.TriggerResultsTag = "TriggerResults::ReAlCa"':'', - '--triggerResultsProcess': 'ReAlCa'} + '--scenario': 'pp', + '--data': '', + '--era': 'Run3_2024', + '--datatier': 'ALCARECO', + '--eventcontent': 'ALCARECO', + '--processName': 'ReAlCaHLTHGC', + '-n': '-1', + '--filein': 'file:TkAlHLTTracks.root', + '--fileout': 'PromptCalibProdSiPixelAliHLTHGC_0.root', + '--customise_commands': '\"process.ALCARECOTkAlZMuMuFilterForSiPixelAliHLT.throw = False; ' + 'process.ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG.TriggerResultsTag = ' + '\\"TriggerResults::ReAlCa\\"; ' + 'process.ALCARECOStreamPromptCalibProdSiPixelAliHLTHGC.fileName = ' + '\\"PromptCalibProdSiPixelAliHLTHGC_0.root\\"\"', + '--triggerResultsProcess': 'ReAlCa' + } + +steps['ALCAReAlCaHLTHGCombZMUMU'] = {'-s': 'ALCA:PromptCalibProdSiPixelAliHLTHGC', + '--conditions': '140X_dataRun3_Express_v3', + '--customise': 'Alignment/CommonAlignmentProducer/customizeLSNumberFilterForRelVals.doNotFilterLS', + '--scenario': 'pp', + '--data': '', + '--era': 'Run3_2024', + '--datatier': 'ALCARECO', + '--eventcontent': 'ALCARECO', + '--processName': 'ReAlCaHLTHGC', + '-n': '-1', + '--filein': 'file:TkAlHLTTracksZMuMu.root', + '--fileout': 'PromptCalibProdSiPixelAliHLTHGC_1.root', + '--customise_commands': '\"process.ALCARECOTkAlZMuMuFilterForSiPixelAliHLT.throw = False; ' + 'process.ALCARECOTkAlMinBiasFilterForSiPixelAliHLTHG.TriggerResultsTag = ' + '\\"TriggerResults::ReAlCa\\"; ' + 'process.ALCARECOStreamPromptCalibProdSiPixelAliHLTHGC.fileName = ' + '\\"PromptCalibProdSiPixelAliHLTHGC_1.root\\"\"', + '--triggerResultsProcess': 'ReAlCa' + } + steps['ALCAEXPCOSMICSRUN3']={'-s':'ALCAOUTPUT:@allForExpressCosmics,ALCA:PromptCalibProdSiStrip+PromptCalibProdSiPixelLAMCS+PromptCalibProdSiStripLA', '-n':1000, '--scenario':'cosmics', From 899e6b7d9a18bc639d57f4efeb370891bac8b1f7 Mon Sep 17 00:00:00 2001 From: Dan Riley Date: Fri, 13 Dec 2024 12:31:10 -0500 Subject: [PATCH 278/418] silence clang vectorization warnings --- RecoTracker/MkFitCore/src/MkBuilder.cc | 2 +- RecoTracker/MkFitCore/src/PropagationMPlex.cc | 6 ++++-- RecoTracker/MkFitCore/src/PropagationMPlexEndcap.cc | 6 ++++-- RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc | 4 +++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/RecoTracker/MkFitCore/src/MkBuilder.cc b/RecoTracker/MkFitCore/src/MkBuilder.cc index 28abf7bb5d1f4..71c7b717f368e 100644 --- a/RecoTracker/MkFitCore/src/MkBuilder.cc +++ b/RecoTracker/MkFitCore/src/MkBuilder.cc @@ -660,7 +660,7 @@ namespace mkfit { continue; } // Check if the candidate is close to it's max_r, pi/2 - 0.2 rad (11.5 deg) - if (iteration_dir == SteeringParams::IT_FwdSearch && ccand[ic].pT() < 1.2) { + if (iteration_dir == SteeringParams::IT_FwdSearch && ccand[ic].pT() < 1.2f) { const float dphi = std::abs(ccand[ic].posPhi() - ccand[ic].momPhi()); if (ccand[ic].posRsq() > 625.f && dphi > 1.371f && dphi < 4.512f) { // printf("Stopping cand at r=%f, posPhi=%.1f momPhi=%.2f pt=%.2f emomEta=%.2f\n", diff --git a/RecoTracker/MkFitCore/src/PropagationMPlex.cc b/RecoTracker/MkFitCore/src/PropagationMPlex.cc index 079c3d58c0ac9..197e73c8b4600 100644 --- a/RecoTracker/MkFitCore/src/PropagationMPlex.cc +++ b/RecoTracker/MkFitCore/src/PropagationMPlex.cc @@ -1001,20 +1001,22 @@ namespace mkfit { const TrackerInfo& tinfo = *pflags.tracker_info; +#if !defined(__clang__) #pragma omp simd +#endif for (int n = 0; n < NN; ++n) { if (n < N_proc) { if (outFailFlag(n, 0, 0) || (noMatEffPtr && noMatEffPtr->constAt(n, 0, 0))) { hitsRl(n, 0, 0) = 0.f; hitsXi(n, 0, 0) = 0.f; } else { - auto mat = tinfo.material_checked(std::abs(outPar(n, 2, 0)), msRad(n, 0, 0)); + const auto mat = tinfo.material_checked(std::abs(outPar(n, 2, 0)), msRad(n, 0, 0)); hitsRl(n, 0, 0) = mat.radl; hitsXi(n, 0, 0) = mat.bbxi; } const float r0 = hipo(inPar(n, 0, 0), inPar(n, 1, 0)); const float r = msRad(n, 0, 0); - propSign(n, 0, 0) = (r > r0 ? 1. : -1.); + propSign(n, 0, 0) = (r > r0 ? 1.f : -1.f); } } MPlexHV plNrm; diff --git a/RecoTracker/MkFitCore/src/PropagationMPlexEndcap.cc b/RecoTracker/MkFitCore/src/PropagationMPlexEndcap.cc index 35f31dbb077fa..a424ffd9b6405 100644 --- a/RecoTracker/MkFitCore/src/PropagationMPlexEndcap.cc +++ b/RecoTracker/MkFitCore/src/PropagationMPlexEndcap.cc @@ -129,14 +129,16 @@ namespace mkfit { const TrackerInfo& tinfo = *pflags.tracker_info; +#if !defined(__clang__) #pragma omp simd +#endif for (int n = 0; n < NN; ++n) { if (n >= N_proc || (noMatEffPtr && noMatEffPtr->constAt(n, 0, 0))) { hitsRl(n, 0, 0) = 0.f; hitsXi(n, 0, 0) = 0.f; } else { - const float hypo = std::hypot(outPar(n, 0, 0), outPar(n, 1, 0)); - auto mat = tinfo.material_checked(std::abs(msZ(n, 0, 0)), hypo); + const auto hypo = std::hypot(outPar(n, 0, 0), outPar(n, 1, 0)); + const auto mat = tinfo.material_checked(std::abs(msZ(n, 0, 0)), hypo); hitsRl(n, 0, 0) = mat.radl; hitsXi(n, 0, 0) = mat.bbxi; } diff --git a/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc b/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc index a81a2dacc3226..1861957aa21db 100644 --- a/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc +++ b/RecoTracker/MkFitCore/src/PropagationMPlexPlane.cc @@ -651,14 +651,16 @@ namespace mkfit { const TrackerInfo& tinfo = *pflags.tracker_info; +#if !defined(__clang__) #pragma omp simd +#endif for (int n = 0; n < NN; ++n) { if (n >= N_proc || (noMatEffPtr && noMatEffPtr->constAt(n, 0, 0))) { hitsRl(n, 0, 0) = 0.f; hitsXi(n, 0, 0) = 0.f; } else { const float hypo = std::hypot(outPar(n, 0, 0), outPar(n, 1, 0)); - auto mat = tinfo.material_checked(std::abs(outPar(n, 2, 0)), hypo); + const auto mat = tinfo.material_checked(std::abs(outPar(n, 2, 0)), hypo); hitsRl(n, 0, 0) = mat.radl; hitsXi(n, 0, 0) = mat.bbxi; } From f50987f8ee6d50ea9e27315436bff6926bbbdcfa Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Fri, 13 Dec 2024 13:12:28 -0600 Subject: [PATCH 279/418] Clear memory at end of event in DeepFlavourONNXJetTagsProducer Measurements showed the module was holding lots of member between events which was cleared at the beginning of the next event. --- RecoBTag/ONNXRuntime/plugins/DeepFlavourONNXJetTagsProducer.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RecoBTag/ONNXRuntime/plugins/DeepFlavourONNXJetTagsProducer.cc b/RecoBTag/ONNXRuntime/plugins/DeepFlavourONNXJetTagsProducer.cc index b958dc84629c0..70687fa2b13d9 100644 --- a/RecoBTag/ONNXRuntime/plugins/DeepFlavourONNXJetTagsProducer.cc +++ b/RecoBTag/ONNXRuntime/plugins/DeepFlavourONNXJetTagsProducer.cc @@ -70,6 +70,7 @@ DeepFlavourONNXJetTagsProducer::DeepFlavourONNXJetTagsProducer(const edm::Parame } assert(input_names_.size() == input_sizes_.size()); + data_.reserve(input_sizes_.size()); } DeepFlavourONNXJetTagsProducer::~DeepFlavourONNXJetTagsProducer() {} @@ -143,6 +144,7 @@ void DeepFlavourONNXJetTagsProducer::produce(edm::Event& iEvent, const edm::Even for (std::size_t flav_n = 0; flav_n < flav_names_.size(); ++flav_n) { iEvent.put(std::move(output_tags[flav_n]), flav_names_[flav_n]); } + data_.clear(); } void DeepFlavourONNXJetTagsProducer::make_inputs(unsigned i_jet, const reco::DeepFlavourTagInfo& taginfo) { From 7755c4c5aacfa75bb6e8609afb7c6eff334f9297 Mon Sep 17 00:00:00 2001 From: Andrea Date: Sat, 14 Dec 2024 16:38:00 +0100 Subject: [PATCH 280/418] Update MC GTs for Winter25 and 2024 HI/ppRef --- Configuration/AlCa/python/autoCond.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Configuration/AlCa/python/autoCond.py b/Configuration/AlCa/python/autoCond.py index 02abfd62758dc..240a1473c7ce5 100644 --- a/Configuration/AlCa/python/autoCond.py +++ b/Configuration/AlCa/python/autoCond.py @@ -98,13 +98,13 @@ # GlobalTag for MC production (cosmics) with perfectly aligned and calibrated detector for Phase1 2024, Strip tracker in DECO mode 'phase1_2024_cosmics_design' : '140X_mcRun3_2024cosmics_design_deco_v11', # GlobalTag for MC production with realistic conditions for Phase1 2024 detector for Heavy Ion - 'phase1_2024_realistic_hi' : '141X_mcRun3_2024_realistic_HI_v10', + 'phase1_2024_realistic_hi' : '141X_mcRun3_2024_realistic_HI_v13', # GlobalTag for MC production with realistic conditions for Phase1 2024 detector for ppRef5TeV - 'phase1_2024_realistic_ppRef5TeV' : '141X_mcRun3_2024_realistic_ppRef5TeV_v5', + 'phase1_2024_realistic_ppRef5TeV' : '141X_mcRun3_2024_realistic_ppRef5TeV_v7', # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2025 'phase1_2025_design' : '140X_mcRun3_2024_design_v11', # GlobalTag for MC production with realistic conditions for Phase1 2024 - 'phase1_2025_realistic' : '142X_mcRun3_2025_realistic_v1', + 'phase1_2025_realistic' : '142X_mcRun3_2025_realistic_v2', # GlobalTag for MC production with realistic conditions for Phase2 'phase2_realistic' : '141X_mcRun4_realistic_v3' } From f40e6596f5da0ffc9cfa3472d2955f6258ab058f Mon Sep 17 00:00:00 2001 From: Dan Riley Date: Sat, 14 Dec 2024 11:31:09 -0500 Subject: [PATCH 281/418] disable -Ofast for IterationConfig.cc for json.hpp --- RecoTracker/MkFitCore/BuildFile.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/RecoTracker/MkFitCore/BuildFile.xml b/RecoTracker/MkFitCore/BuildFile.xml index d95f078a55719..a2445e506cfe6 100644 --- a/RecoTracker/MkFitCore/BuildFile.xml +++ b/RecoTracker/MkFitCore/BuildFile.xml @@ -5,6 +5,7 @@ + From ba7c1fd96373caa67a468de16410b9ecd083c580 Mon Sep 17 00:00:00 2001 From: jean-roch Date: Sun, 15 Dec 2024 12:21:15 +0100 Subject: [PATCH 282/418] add two options to set a flat mixing, and the bunchspace --- Configuration/StandardSequences/python/Mixing.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Configuration/StandardSequences/python/Mixing.py b/Configuration/StandardSequences/python/Mixing.py index a660f308a9d2e..3cff02bcde569 100644 --- a/Configuration/StandardSequences/python/Mixing.py +++ b/Configuration/StandardSequences/python/Mixing.py @@ -222,4 +222,18 @@ def defineMixing(dict): if 'F' in dict: commands.append('process.mix.input.fileNames = cms.untracked.vstring(%s)'%(repr(dict['F']))) dict.pop('F') + if 'BS' in dict: + bunch_space = dict['BS'] + commands.append(f'process.mix.bunchspace = cms.int32({bunch_space})') + dict.pop('BS') + if 'Flat' in dict: + pu_min,pu_max=dict['Flat'] + pu_x = list(range(pu_max+1)) + pu_y = [0]*(pu_max+1) + prob=1./(pu_max+1-pu_min) + for pu in range(pu_min,pu_max+1): + pu_y[pu]=prob + commands.append(f'process.mix.input.nbPileupEvents.probFunctionVariable = cms.vint32({pu_x})') + commands.append(f'process.mix.input.nbPileupEvents.probValue = cms.vdouble({pu_y})') + dict.pop('Flat') return commands From 7cfb11efc7521b3139ce55ff8865c5b86ee31846 Mon Sep 17 00:00:00 2001 From: Andrea Bocci Date: Sun, 15 Dec 2024 15:34:52 +0100 Subject: [PATCH 283/418] Fix HOST_DEVICE_CONSTANT macro for AMD GPUs --- FWCore/Utilities/interface/HostDeviceConstant.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FWCore/Utilities/interface/HostDeviceConstant.h b/FWCore/Utilities/interface/HostDeviceConstant.h index 00bd9df4eaa2f..762dae9a4fb04 100644 --- a/FWCore/Utilities/interface/HostDeviceConstant.h +++ b/FWCore/Utilities/interface/HostDeviceConstant.h @@ -16,7 +16,7 @@ // Note these objects may be at different memory addresses on the host and device, so their pointers will be different // -- but the actual values should be the same. -#ifdef __CUDA_ARCH__ +#if defined(__CUDA_ARCH__) or defined(__HIP_DEVICE_COMPILE__) #define HOST_DEVICE_CONSTANT __device__ constexpr #else #define HOST_DEVICE_CONSTANT constexpr From e665892a970ba8806426cdfd681f2092e7df0068 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Mon, 16 Dec 2024 08:26:32 +0100 Subject: [PATCH 284/418] Added CMSSW_FULL_RELEASE_BASE in to allowed cmssw import paths --- FWCore/ParameterSet/python/Config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FWCore/ParameterSet/python/Config.py b/FWCore/ParameterSet/python/Config.py index f8c881389b423..81be35c176724 100644 --- a/FWCore/ParameterSet/python/Config.py +++ b/FWCore/ParameterSet/python/Config.py @@ -52,7 +52,7 @@ def checkImportPermission(minLevel: int = 2, allowedPatterns = []): import os ignorePatterns = ['FWCore/ParameterSet/Config.py', 'FWCore/ParameterSet/python/Config.py','',' Date: Wed, 11 Dec 2024 11:50:39 +0100 Subject: [PATCH 285/418] Make tracksters Associators reproducible --- ...ToSimTracksterAssociatorsByHitsProducer.cc | 35 ++++++++++++------- ...rToSimTracksterAssociatorsByLCsProducer.cc | 13 +++++-- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc index 20d81fa1e19aa..a5e5157af225c 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc @@ -259,14 +259,15 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, const auto& recHit = rechitManager[hitIndex]; float recoFraction = recoTracksterHitsAndFractions[i].fraction(); float squaredRecoFraction = recoFraction * recoFraction; - float squaredRecHitEnergy = recHit.energy() * recHit.energy(); - float recoSharedEnergy = recHit.energy() * recoFraction; + float rechitEnergy = recHit.energy(); + float squaredRecHitEnergy = rechitEnergy * rechitEnergy; + float recoSharedEnergy = rechitEnergy * recoFraction; const auto& simTracksterVec = hitToAssociatedSimTracksterMap[i]; for (const auto& simTracksterElement : simTracksterVec) { auto simTracksterIndex = simTracksterElement.index(); auto simFraction = simTracksterElement.fraction(); edm::Ref> simTracksterRef(simTrackstersHandle, simTracksterIndex); - float sharedEnergy = std::min(simFraction * recHit.energy(), recoSharedEnergy); + float sharedEnergy = std::min(simFraction * rechitEnergy, recoSharedEnergy); float squaredFraction = std::min(squaredRecoFraction, (recoFraction - simFraction) * (recoFraction - simFraction)); float score = invDenominator * squaredFraction * squaredRecHitEnergy; @@ -297,15 +298,16 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, : std::find_if(hitToSimClusterMap[hitIndex].begin(), hitToSimClusterMap[hitIndex].end(), [simObjectIndex](const auto& pair) { return pair.index() == simObjectIndex; }); - if (it != hitToCaloParticleMap[hitIndex].end() and it != hitToSimClusterMap[hitIndex].end()) { + if ((isSimTracksterFromCP and it != hitToCaloParticleMap[hitIndex].end()) or + (!isSimTracksterFromCP and it != hitToSimClusterMap[hitIndex].end())) { simFractions[i] = it->fraction(); } float simFraction = simFractions[i]; const auto& recHit = rechitManager[hitIndex]; + float rechitEnergy = recHit.energy(); float squaredSimFraction = simFraction * simFraction; - float squaredRecHitEnergy = recHit.energy() * recHit.energy(); + float squaredRecHitEnergy = rechitEnergy * rechitEnergy; simToRecoScoresDenominator += squaredSimFraction * squaredRecHitEnergy; - const auto& hitToRecoTracksterVec = hitToTracksterMap[hitIndex]; for (const auto& recoTracksterElement : hitToRecoTracksterVec) { unsigned int recoTracksterIndex = recoTracksterElement.index(); @@ -333,22 +335,22 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, } } + assert(simToRecoScoresDenominator > 0.f); const float invDenominator = 1.f / simToRecoScoresDenominator; - for (unsigned int i = 0; i < simTracksterHitsAndFractions.size(); ++i) { const auto& hitIndex = simTracksterHitsAndFractions[i].index(); float simFraction = simFractions[i]; const auto& recHit = rechitManager[hitIndex]; + float rechitEnergy = recHit.energy(); float squaredSimFraction = simFraction * simFraction; - float squaredRecHitEnergy = recHit.energy() * recHit.energy(); - float simSharedEnergy = recHit.energy() * simFraction; - + float squaredRecHitEnergy = rechitEnergy * rechitEnergy; + float simSharedEnergy = rechitEnergy * simFraction; const auto& hitToRecoTracksterVec = hitToAssociatedRecoTracksterMap[i]; for (const auto& recoTracksterElement : hitToRecoTracksterVec) { auto recoTracksterIndex = recoTracksterElement.index(); float recoFraction = recoTracksterElement.fraction(); edm::Ref> recoTracksterRef(recoTrackstersHandle, recoTracksterIndex); - float sharedEnergy = std::min(recoFraction * recHit.energy(), simSharedEnergy); + float sharedEnergy = std::min(recoFraction * rechitEnergy, simSharedEnergy); float squaredFraction = std::min(squaredSimFraction, (recoFraction - simFraction) * (recoFraction - simFraction)); float score = invDenominator * squaredFraction * squaredRecHitEnergy; @@ -357,9 +359,16 @@ void AllTracksterToSimTracksterAssociatorsByHitsProducer::produce(edm::StreamID, } } + auto sortingFunc = [](const auto& a, const auto& b) { + if (a.score() != b.score()) + return a.score() < b.score(); + else + return a.index() < b.index(); + }; + // Sort the maps by score in ascending order - tracksterToSimTracksterMap->sort([](const auto& a, const auto& b) { return a.score() < b.score(); }); - simTracksterToTracksterMap->sort([](const auto& a, const auto& b) { return a.score() < b.score(); }); + tracksterToSimTracksterMap->sort(sortingFunc); + simTracksterToTracksterMap->sort(sortingFunc); // After populating the maps, store them in the event iEvent.put(std::move(tracksterToSimTracksterMap), tracksterToken.first + "To" + simTracksterToken.first); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc index 02992b166ed43..75574531c2a1d 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc @@ -244,7 +244,7 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, } } } - + assert(simToRecoScoresDenominator > 0.f); const float invDenominator = 1.f / simToRecoScoresDenominator; for (unsigned int i = 0; i < layerClustersIds.size(); ++i) { @@ -269,9 +269,16 @@ void AllTracksterToSimTracksterAssociatorsByLCsProducer::produce(edm::StreamID, } } } + auto sortingFunc = [](const auto& a, const auto& b) { + if (a.score() != b.score()) + return a.score() < b.score(); + else + return a.index() < b.index(); + }; + // Sort the maps by score in ascending order - tracksterToSimTracksterMap->sort([](const auto& a, const auto& b) { return a.score() < b.score(); }); - simTracksterToTracksterMap->sort([](const auto& a, const auto& b) { return a.score() < b.score(); }); + tracksterToSimTracksterMap->sort(sortingFunc); + simTracksterToTracksterMap->sort(sortingFunc); // After populating the maps, store them in the event iEvent.put(std::move(tracksterToSimTracksterMap), tracksterToken.first + "To" + simTracksterToken.first); From 4302286cae73216f11247e4569ad207b13e6bd2c Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 13 Dec 2024 13:49:45 +0100 Subject: [PATCH 286/418] Make EcalUncalibRecHitSoAToLegacy a global module. --- .../python/customizeHLTforCMSSW.py | 19 ++++ .../plugins/EcalUncalibRecHitSoAToLegacy.cc | 98 +++++++++---------- 2 files changed, 67 insertions(+), 50 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index 37e82223d290f..3d37a07194f46 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -48,6 +48,23 @@ def customiseForOffline(process): return process +def customizeHLTfor46935(process): + """Changes parameter names of EcalUncalibRecHitSoAToLegacy producer""" + for prod in producers_by_type(process, 'EcalUncalibRecHitSoAToLegacy'): + if hasattr(prod, 'uncalibRecHitsPortableEB'): + prod.inputCollectionEB = prod.uncalibRecHitsPortableEB + delattr(prod, 'uncalibRecHitsPortableEB') + if hasattr(prod, 'uncalibRecHitsPortableEE'): + prod.inputCollectionEE = prod.uncalibRecHitsPortableEE + delattr(prod, 'uncalibRecHitsPortableEE') + if hasattr(prod, 'recHitsLabelCPUEB'): + prod.outputLabelEB = prod.recHitsLabelCPUEB + delattr(prod, 'recHitsLabelCPUEB') + if hasattr(prod, 'recHitsLabelCPUEE'): + prod.outputLabelEE = prod.recHitsLabelCPUEE + delattr(prod, 'recHitsLabelCPUEE') + return process + # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): @@ -55,5 +72,7 @@ def customizeHLTforCMSSW(process, menuType="GRun"): # add call to action function in proper order: newest last! # process = customiseFor12718(process) + + process = customizeHLTfor46935(process) return process diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitSoAToLegacy.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitSoAToLegacy.cc index 32ebbf669186f..08afd4fc10cb4 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitSoAToLegacy.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitSoAToLegacy.cc @@ -4,14 +4,14 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/Framework/interface/global/EDProducer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/EmptyGroupDescription.h" #include "FWCore/Utilities/interface/EDGetToken.h" #include "FWCore/Utilities/interface/EDPutToken.h" #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHitHostCollection.h" -class EcalUncalibRecHitSoAToLegacy : public edm::stream::EDProducer<> { +class EcalUncalibRecHitSoAToLegacy : public edm::global::EDProducer<> { public: explicit EcalUncalibRecHitSoAToLegacy(edm::ParameterSet const &ps); ~EcalUncalibRecHitSoAToLegacy() override = default; @@ -19,86 +19,84 @@ class EcalUncalibRecHitSoAToLegacy : public edm::stream::EDProducer<> { private: using InputProduct = EcalUncalibratedRecHitHostCollection; - void produce(edm::Event &, edm::EventSetup const &) override; + void produce(edm::StreamID, edm::Event &, edm::EventSetup const &) const override; private: const bool isPhase2_; - const edm::EDGetTokenT uncalibRecHitsPortableEB_; - const edm::EDGetTokenT uncalibRecHitsPortableEE_; - const edm::EDPutTokenT uncalibRecHitsCPUEBToken_; - const edm::EDPutTokenT uncalibRecHitsCPUEEToken_; + const edm::EDGetTokenT inputTokenEB_; + const edm::EDGetTokenT inputTokenEE_; + const edm::EDPutTokenT outputTokenEB_; + const edm::EDPutTokenT outputTokenEE_; }; void EcalUncalibRecHitSoAToLegacy::fillDescriptions(edm::ConfigurationDescriptions &confDesc) { edm::ParameterSetDescription desc; - desc.add("uncalibRecHitsPortableEB", + desc.add("inputCollectionEB", edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEB")); - desc.add("recHitsLabelCPUEB", "EcalUncalibRecHitsEB"); + desc.add("outputLabelEB", "EcalUncalibRecHitsEB"); desc.ifValue(edm::ParameterDescription("isPhase2", false, true), false >> (edm::ParameterDescription( - "uncalibRecHitsPortableEE", + "inputCollectionEE", edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEE"), true) and - edm::ParameterDescription("recHitsLabelCPUEE", "EcalUncalibRecHitsEE", true)) or + edm::ParameterDescription("outputLabelEE", "EcalUncalibRecHitsEE", true)) or true >> edm::EmptyGroupDescription()); confDesc.add("ecalUncalibRecHitSoAToLegacy", desc); } EcalUncalibRecHitSoAToLegacy::EcalUncalibRecHitSoAToLegacy(edm::ParameterSet const &ps) : isPhase2_{ps.getParameter("isPhase2")}, - uncalibRecHitsPortableEB_{consumes(ps.getParameter("uncalibRecHitsPortableEB"))}, - uncalibRecHitsPortableEE_{ - isPhase2_ ? edm::EDGetTokenT{} - : consumes(ps.getParameter("uncalibRecHitsPortableEE"))}, - uncalibRecHitsCPUEBToken_{ - produces(ps.getParameter("recHitsLabelCPUEB"))}, - uncalibRecHitsCPUEEToken_{ - isPhase2_ ? edm::EDPutTokenT{} - : produces(ps.getParameter("recHitsLabelCPUEE"))} {} + inputTokenEB_{consumes(ps.getParameter("inputCollectionEB"))}, + inputTokenEE_{isPhase2_ ? edm::EDGetTokenT{} + : consumes(ps.getParameter("inputCollectionEE"))}, + outputTokenEB_{produces(ps.getParameter("outputLabelEB"))}, + outputTokenEE_{isPhase2_ + ? edm::EDPutTokenT{} + : produces(ps.getParameter("outputLabelEE"))} {} -void EcalUncalibRecHitSoAToLegacy::produce(edm::Event &event, edm::EventSetup const &setup) { - auto const &uncalRecHitsEBColl = event.get(uncalibRecHitsPortableEB_); - auto const &uncalRecHitsEBCollView = uncalRecHitsEBColl.const_view(); - auto recHitsCPUEB = std::make_unique(); - recHitsCPUEB->reserve(uncalRecHitsEBCollView.size()); +void EcalUncalibRecHitSoAToLegacy::produce(edm::StreamID sid, edm::Event &event, edm::EventSetup const &setup) const { + auto const &inputCollEB = event.get(inputTokenEB_); + auto const &inputCollEBView = inputCollEB.const_view(); + auto outputCollEB = std::make_unique(); + outputCollEB->reserve(inputCollEBView.size()); - for (uint32_t i = 0; i < uncalRecHitsEBCollView.size(); ++i) { - recHitsCPUEB->emplace_back(DetId{uncalRecHitsEBCollView.id()[i]}, - uncalRecHitsEBCollView.amplitude()[i], - uncalRecHitsEBCollView.pedestal()[i], - uncalRecHitsEBCollView.jitter()[i], - uncalRecHitsEBCollView.chi2()[i], - uncalRecHitsEBCollView.flags()[i]); + for (uint32_t i = 0; i < inputCollEBView.size(); ++i) { + outputCollEB->emplace_back(DetId{inputCollEBView.id()[i]}, + inputCollEBView.amplitude()[i], + inputCollEBView.pedestal()[i], + inputCollEBView.jitter()[i], + inputCollEBView.chi2()[i], + inputCollEBView.flags()[i]); if (isPhase2_) { - (*recHitsCPUEB)[i].setAmplitudeError(uncalRecHitsEBCollView.amplitudeError()[i]); + (*outputCollEB)[i].setAmplitudeError(inputCollEBView.amplitudeError()[i]); } - (*recHitsCPUEB)[i].setJitterError(uncalRecHitsEBCollView.jitterError()[i]); + (*outputCollEB)[i].setJitterError(inputCollEBView.jitterError()[i]); for (uint32_t sample = 0; sample < EcalDataFrame::MAXSAMPLES; ++sample) { - (*recHitsCPUEB)[i].setOutOfTimeAmplitude(sample, uncalRecHitsEBCollView.outOfTimeAmplitudes()[i][sample]); + (*outputCollEB)[i].setOutOfTimeAmplitude(sample, inputCollEBView.outOfTimeAmplitudes()[i][sample]); } } - event.put(uncalibRecHitsCPUEBToken_, std::move(recHitsCPUEB)); + event.put(outputTokenEB_, std::move(outputCollEB)); if (!isPhase2_) { - auto const &uncalRecHitsEEColl = event.get(uncalibRecHitsPortableEE_); - auto const &uncalRecHitsEECollView = uncalRecHitsEEColl.const_view(); - auto recHitsCPUEE = std::make_unique(); - recHitsCPUEE->reserve(uncalRecHitsEECollView.size()); + auto const &inputCollEE = event.get(inputTokenEE_); + auto const &inputCollEEView = inputCollEE.const_view(); + auto outputCollEE = std::make_unique(); + outputCollEE->reserve(inputCollEEView.size()); - for (uint32_t i = 0; i < uncalRecHitsEECollView.size(); ++i) { - recHitsCPUEE->emplace_back(DetId{uncalRecHitsEECollView.id()[i]}, - uncalRecHitsEECollView.amplitude()[i], - uncalRecHitsEECollView.pedestal()[i], - uncalRecHitsEECollView.jitter()[i], - uncalRecHitsEECollView.chi2()[i], - uncalRecHitsEECollView.flags()[i]); - (*recHitsCPUEE)[i].setJitterError(uncalRecHitsEECollView.jitterError()[i]); + for (uint32_t i = 0; i < inputCollEEView.size(); ++i) { + outputCollEE->emplace_back(DetId{inputCollEEView.id()[i]}, + inputCollEEView.amplitude()[i], + inputCollEEView.pedestal()[i], + inputCollEEView.jitter()[i], + inputCollEEView.chi2()[i], + inputCollEEView.flags()[i]); + (*outputCollEE)[i].setJitterError(inputCollEEView.jitterError()[i]); for (uint32_t sample = 0; sample < EcalDataFrame::MAXSAMPLES; ++sample) { - (*recHitsCPUEE)[i].setOutOfTimeAmplitude(sample, uncalRecHitsEECollView.outOfTimeAmplitudes()[i][sample]); + (*outputCollEE)[i].setOutOfTimeAmplitude(sample, inputCollEEView.outOfTimeAmplitudes()[i][sample]); } } - event.put(uncalibRecHitsCPUEEToken_, std::move(recHitsCPUEE)); + event.put(outputTokenEE_, std::move(outputCollEE)); } } From 07f8f593319266fed58d779aafb83865174d810d Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Mon, 16 Dec 2024 10:15:15 +0100 Subject: [PATCH 287/418] Optimize HGCalValidator, Avoid copying hits, move HGCAL Validation to rechit multivector manager --- .../interface/HGCalValidator.h | 6 ++-- .../interface/HGVHistoProducerAlgo.h | 16 +++++---- .../HGCalValidation/plugins/HGCalValidator.cc | 34 +++++++++---------- .../src/HGVHistoProducerAlgo.cc | 14 ++++---- 4 files changed, 37 insertions(+), 33 deletions(-) diff --git a/Validation/HGCalValidation/interface/HGCalValidator.h b/Validation/HGCalValidation/interface/HGCalValidator.h index 56d83bd0916c0..08a6f094c2bb1 100644 --- a/Validation/HGCalValidation/interface/HGCalValidator.h +++ b/Validation/HGCalValidation/interface/HGCalValidator.h @@ -32,6 +32,8 @@ #include "SimDataFormats/Associations/interface/LayerClusterToSimClusterAssociator.h" #include "SimDataFormats/Associations/interface/TICLAssociationMap.h" +#include "CommonTools/RecoAlgos/interface/MultiVectorManager.h" + class PileupSummaryInfo; struct HGCalValidatorHistograms { @@ -65,7 +67,7 @@ class HGCalValidator : public DQMGlobalEDAnalyzer { std::vector& selected_cPeff, unsigned int layers, std::unordered_map const&, - std::vector const& hits) const; + MultiVectorManager const& hits) const; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); @@ -111,7 +113,7 @@ class HGCalValidator : public DQMGlobalEDAnalyzer { edm::EDGetTokenT associatorMapRtSim; std::unique_ptr histoProducerAlgo_; std::vector hits_label_; - std::vector> hits_token_; + std::vector> hits_tokens_; std::unique_ptr candidateVal_; std::vector> tracksterToTracksterAssociatorsTokens_; std::vector> tracksterToTracksterByHitsAssociatorsTokens_; diff --git a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h index fbcc6934ef686..e1636f7ae3959 100644 --- a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h +++ b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h @@ -22,6 +22,8 @@ #include "DataFormats/HGCalReco/interface/Trackster.h" #include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" +#include "CommonTools/RecoAlgos/interface/MultiVectorManager.h" + #include "SimDataFormats/CaloAnalysis/interface/CaloParticle.h" #include "SimDataFormats/Vertex/interface/SimVertex.h" #include "RecoLocalCalo/HGCalRecProducers/interface/HGCalClusteringAlgoBase.h" @@ -280,7 +282,7 @@ class HGVHistoProducerAlgo { unsigned int layers, const ticl::RecoToSimCollection& recSimColl, const ticl::SimToRecoCollection& simRecColl, - std::vector const& hits) const; + MultiVectorManager const& hits) const; void layerClusters_to_SimClusters(const Histograms& histograms, const int count, edm::Handle clusterHandle, @@ -293,7 +295,7 @@ class HGVHistoProducerAlgo { unsigned int layers, const ticl::RecoToSimCollectionWithSimClusters& recSimColl, const ticl::SimToRecoCollectionWithSimClusters& simRecColl, - std::vector const& hits) const; + MultiVectorManager const& hits) const; void tracksters_to_SimTracksters_fp(const Histograms& histograms, const int count, @@ -312,7 +314,7 @@ class HGVHistoProducerAlgo { std::vector const& simVertices, unsigned int layers, std::unordered_map const&, - std::vector const& hits) const; + MultiVectorManager const& hits) const; void fill_generic_cluster_histos(const Histograms& histograms, const int count, edm::Handle clusterHandle, @@ -327,7 +329,7 @@ class HGVHistoProducerAlgo { std::vector thicknesses, const ticl::RecoToSimCollection& recSimColl, const ticl::SimToRecoCollection& simRecColl, - std::vector const& hits) const; + MultiVectorManager const& hits) const; void fill_simCluster_histos(const Histograms& histograms, std::vector const& simClusters, unsigned int layers, @@ -344,7 +346,7 @@ class HGVHistoProducerAlgo { unsigned int layers, const ticl::RecoToSimCollectionWithSimClusters& recSimColl, const ticl::SimToRecoCollectionWithSimClusters& simRecColl, - std::vector const& hits) const; + MultiVectorManager const& hits) const; void fill_cluster_histos(const Histograms& histograms, const int count, const reco::CaloCluster& cluster) const; void fill_trackster_histos(const Histograms& histograms, const int count, @@ -360,7 +362,7 @@ class HGVHistoProducerAlgo { std::vector const& cPSelectedIndices, std::unordered_map const& hitMap, unsigned int layers, - std::vector const& hits, + MultiVectorManager const& hits, bool mapsFound, const edm::Handle& trackstersToSimTrackstersByLCsMapH, const edm::Handle& simTrackstersToTrackstersByLCsMapH, @@ -378,7 +380,7 @@ class HGVHistoProducerAlgo { DetId findmaxhit(const reco::CaloCluster& cluster, std::unordered_map const&, - std::vector const& hits) const; + MultiVectorManager const& hits) const; struct detIdInfoInCluster { bool operator==(const detIdInfoInCluster& o) const { return clusterId == o.clusterId; }; diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index 0a45de66c27a3..8575952664903 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -100,7 +100,7 @@ HGCalValidator::HGCalValidator(const edm::ParameterSet& pset) const edm::InputTag& label_cp_fake_tag = pset.getParameter("label_cp_fake"); for (auto& label : hits_label_) { - hits_token_.push_back(consumes(label)); + hits_tokens_.push_back(consumes(label)); } label_cp_effic = consumes>(label_cp_effic_tag); label_cp_fake = consumes>(label_cp_fake_tag); @@ -339,7 +339,7 @@ void HGCalValidator::cpParametersAndSelection(const Histograms& histograms, std::vector& selected_cPeff, unsigned int layers, std::unordered_map const& hitMap, - std::vector const& hits) const { + MultiVectorManager const& hits) const { selected_cPeff.reserve(cPeff.size()); size_t j = 0; @@ -387,7 +387,7 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, edm::Handle>> simTrackstersMapHandle; event.getByToken(simTrackstersMap_, simTrackstersMapHandle); - const std::map> cpToSc_SimTrackstersMap = *simTrackstersMapHandle; + const std::map>& cpToSc_SimTrackstersMap = *simTrackstersMapHandle; edm::ESHandle geom = setup.getHandle(caloGeomToken_); tools_->setGeometry(*geom); @@ -395,20 +395,20 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, edm::Handle simtorecoCollectionH; event.getByToken(associatorMapStR, simtorecoCollectionH); - auto simRecColl = *simtorecoCollectionH; + const auto& simRecColl = *simtorecoCollectionH; edm::Handle recotosimCollectionH; event.getByToken(associatorMapRtS, recotosimCollectionH); - auto recSimColl = *recotosimCollectionH; + const auto& recSimColl = *recotosimCollectionH; edm::Handle> hitMapHandle; event.getByToken(hitMap_, hitMapHandle); - const std::unordered_map* hitMap = &*hitMapHandle; + const std::unordered_map& hitMap = *hitMapHandle; - std::vector hits; - for (auto& token : hits_token_) { - edm::Handle hitsHandle; + MultiVectorManager rechitManager; + for (const auto &token : hits_tokens_) { + Handle hitsHandle; event.getByToken(token, hitsHandle); - hits.insert(hits.end(), (*hitsHandle).begin(), (*hitsHandle).end()); + rechitManager.addVector(*hitsHandle); } //Some general info on layers etc. @@ -428,7 +428,7 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, LogTrace("HGCalValidator") << "\n# of CaloParticles: " << caloParticles.size() << "\n" << std::endl; std::vector selected_cPeff; cpParametersAndSelection( - histograms, caloParticles, simVertices, selected_cPeff, totallayers_to_monitor_, *hitMap, hits); + histograms, caloParticles, simVertices, selected_cPeff, totallayers_to_monitor_, hitMap, rechitManager); //get collections from the event //simClusters @@ -500,11 +500,11 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, simClusters, sCIndices, inputClusterMask, - *hitMap, + hitMap, totallayers_to_monitor_, recSimColl, simRecColl, - hits); + rechitManager); //General Info on simClusters LogTrace("HGCalValidator") << "\n# of SimClusters: " << nSimClusters @@ -525,13 +525,13 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, caloParticles, cPIndices, selected_cPeff, - *hitMap, + hitMap, cumulative_material_budget, totallayers_to_monitor_, thicknesses_to_monitor_, recSimColl, simRecColl, - hits); + rechitManager); for (unsigned int layerclusterIndex = 0; layerclusterIndex < clusters.size(); layerclusterIndex++) { histoProducerAlgo_->fill_cluster_histos(histograms.histoProducerAlgo, w, clusters[layerclusterIndex]); @@ -587,9 +587,9 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, caloParticles, cPIndices, selected_cPeff, - *hitMap, + hitMap, totallayers_to_monitor_, - hits, + rechitManager, mapsFound, trackstersToSimTrackstersMapH, simTrackstersToTrackstersMapH, diff --git a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc index 2917ae9b759f0..677cd9942ae76 100644 --- a/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc +++ b/Validation/HGCalValidation/src/HGVHistoProducerAlgo.cc @@ -1453,7 +1453,7 @@ void HGVHistoProducerAlgo::fill_caloparticle_histos(const Histograms& histograms std::vector const& simVertices, unsigned int layers, std::unordered_map const& hitMap, - std::vector const& hits) const { + MultiVectorManager const& hits) const { const auto eta = getEta(caloParticle.eta()); if (histograms.h_caloparticle_eta.count(pdgid)) { histograms.h_caloparticle_eta.at(pdgid)->Fill(eta); @@ -1715,7 +1715,7 @@ void HGVHistoProducerAlgo::HGVHistoProducerAlgo::fill_simClusterAssociation_hist unsigned int layers, const ticl::RecoToSimCollectionWithSimClusters& scsInLayerClusterMap, const ticl::SimToRecoCollectionWithSimClusters& lcsInSimClusterMap, - std::vector const& hits) const { + MultiVectorManager const& hits) const { //Each event to be treated as two events: an event in +ve endcap, //plus another event in -ve endcap. In this spirit there will be //a layer variable (layerid) that maps the layers in : @@ -1757,7 +1757,7 @@ void HGVHistoProducerAlgo::layerClusters_to_CaloParticles(const Histograms& hist unsigned int layers, const ticl::RecoToSimCollection& cpsInLayerClusterMap, const ticl::SimToRecoCollection& cPOnLayerMap, - std::vector const& hits) const { + MultiVectorManager const& hits) const { const auto nLayerClusters = clusters.size(); std::unordered_map> detIdToCaloParticleId_Map; @@ -2018,7 +2018,7 @@ void HGVHistoProducerAlgo::layerClusters_to_SimClusters( unsigned int layers, const ticl::RecoToSimCollectionWithSimClusters& scsInLayerClusterMap, const ticl::SimToRecoCollectionWithSimClusters& lcsInSimClusterMap, - std::vector const& hits) const { + MultiVectorManager const& hits) const { // Here fill the plots to compute the different metrics linked to // reco-level, namely fake-rate and merge-rate. In this loop should *not* // restrict only to the selected SimClusters. @@ -2199,7 +2199,7 @@ void HGVHistoProducerAlgo::fill_generic_cluster_histos(const Histograms& histogr std::vector thicknesses, const ticl::RecoToSimCollection& cpsInLayerClusterMap, const ticl::SimToRecoCollection& cPOnLayerMap, - std::vector const& hits) const { + MultiVectorManager const& hits) const { //Each event to be treated as two events: an event in +ve endcap, //plus another event in -ve endcap. In this spirit there will be //a layer variable (layerid) that maps the layers in : @@ -2684,7 +2684,7 @@ void HGVHistoProducerAlgo::fill_trackster_histos( std::vector const& cPSelectedIndices, std::unordered_map const& hitMap, unsigned int layers, - std::vector const& hits, + MultiVectorManager const& hits, bool mapsFound, const edm::Handle& trackstersToSimTrackstersByLCsMapH, const edm::Handle& simTrackstersToTrackstersByLCsMapH, @@ -2932,7 +2932,7 @@ void HGVHistoProducerAlgo::setRecHitTools(std::shared_ptr re DetId HGVHistoProducerAlgo::findmaxhit(const reco::CaloCluster& cluster, std::unordered_map const& hitMap, - std::vector const& hits) const { + MultiVectorManager const& hits) const { const auto& hits_and_fractions = cluster.hitsAndFractions(); DetId themaxid; From 2a6032fabee3a9a483ea240a1b2e3e310756c2ea Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Mon, 16 Dec 2024 11:25:13 +0100 Subject: [PATCH 288/418] Produce morphology plots for SimTracksters --- Validation/HGCalValidation/plugins/HGCalValidator.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index 8575952664903..59dd3143dc405 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -405,7 +405,7 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, const std::unordered_map& hitMap = *hitMapHandle; MultiVectorManager rechitManager; - for (const auto &token : hits_tokens_) { + for (const auto& token : hits_tokens_) { Handle hitsHandle; event.getByToken(token, hitsHandle); rechitManager.addVector(*hitsHandle); @@ -550,8 +550,6 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, edm::Handle tracksterHandle; event.getByToken(label_tstTokens[wml], tracksterHandle); const ticl::TracksterCollection& tracksters = *tracksterHandle; - if (tracksterHandle.id() == simTracksterHandle.id() or tracksterHandle.id() == simTracksterFromCPHandle.id()) - continue; edm::Handle trackstersToSimTrackstersMapH, simTrackstersToTrackstersMapH, trackstersToSimTrackstersFromCPsMapH, simTrackstersFromCPsToTrackstersMapH, trackstersToSimTrackstersByHitsMapH, simTrackstersToTrackstersByHitsMapH, From 4bcc213068e529957caab3866016eb71fde5ae11 Mon Sep 17 00:00:00 2001 From: rdewanje Date: Mon, 16 Dec 2024 12:53:12 +0100 Subject: [PATCH 289/418] Added E-tau trigger to HLT_75e33_timing_cff.py and made all the requested changes to the E-Tau path files --- .../hltPuppiTauTkIsoEle45_22L1TkFilter_cfi.py | 5 +++ ...oseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py | 33 ++----------------- .../python/HLT_75e33_timing_cff.py | 2 ++ 3 files changed, 10 insertions(+), 30 deletions(-) create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle45_22L1TkFilter_cfi.py diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle45_22L1TkFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle45_22L1TkFilter_cfi.py new file mode 100644 index 0000000000000..36a9c7102e889 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle45_22L1TkFilter_cfi.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +hltPuppiTauTkIsoEle45_22L1TkFilter = cms.EDFilter("PathStatusFilter", + logicalExpression = cms.string('pPuppiTauTkIsoEle45_22') +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py index 5329b9c26e5c1..9aae4d9a74c8b 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py @@ -1,5 +1,4 @@ import FWCore.ParameterSet.Config as cms - from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTDoFullUnpackingEgammaEcalL1SeededSequence_cfi import * from ..sequences.HLTPFClusteringForEgammaL1SeededSequence_cfi import * @@ -12,21 +11,14 @@ from ..sequences.HLTAK4PFJetsReconstruction_cfi import * from ..sequences.HLTPFTauHPS_cfi import * from ..sequences.HLTHPSDeepTauPFTauSequence_cfi import * - -#from ..sequences.RawToDigiSequence_cfi import * ## CHANGED TO FILE BELOW from ..sequences.HLTRawToDigiSequence_cfi import * - -#from ..sequences.hgcalLocalRecoSequence_cfi import * ## CHANGED TO FILE BELOW from ..sequences.HLTHgcalLocalRecoSequence_cfi import * - -#from ..sequences.localrecoSequence_cfi import * ## CHANGED TO FILE BELOW from ..sequences.HLTLocalrecoSequence_cfi import * - from ..sequences.HLTTrackingV61Sequence_cfi import * from ..sequences.HLTMuonsSequence_cfi import * from ..sequences.HLTParticleFlowSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * -from ..modules.hltPuppiTauTkIsoEle4522L1TkFilter_cfi import * +from ..modules.hltPuppiTauTkIsoEle45_22L1TkFilter_cfi import * from ..modules.hltEgammaCandidatesL1Seeded_cfi import * from ..modules.hltEgammaCandidatesWrapperL1Seeded_cfi import * from ..modules.hltEgammaClusterShapeL1Seeded_cfi import * @@ -57,21 +49,9 @@ from ..modules.hltEle32WPTightGsfTrackIsoL1SeededFilter_cfi import hltEle32WPTightGsfTrackIsoL1SeededFilter as _hltEle32WPTightGsfTrackIsoL1SeededFilter from ..modules.hltAK4PFJetsForTaus_cfi import * from ..modules.hltHpsSelectedPFTauLooseTauWPDeepTau_cfi import * -from ..modules.hltHpsPFTau30LooseTauWPDeepTau_cfi import * ## NEW (with threshold different from youngwan) -from ..modules.hltAK4PFJets_cfi import * +from ..modules.hltHpsPFTau30LooseTauWPDeepTau_cfi import * - - -#hltEG30EtL1SeededFilter = _hltEG32EtL1SeededFilter.clone( -# etcutEB = cms.double(30.0), -# etcutEE = cms.double(30.0), -# inputTag = cms.InputTag("hltEgammaCandidatesWrapperL1Seeded"), -# l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), -# ncandcut = cms.int32(1), -# saveTags = cms.bool(True) -#) - hltEle30WPTightClusterShapeL1SeededFilter = _hltEle32WPTightClusterShapeL1SeededFilter.clone( absEtaLowEdges = cms.vdouble(0.0, 1.479), candTag = cms.InputTag('hltEG30EtL1SeededFilter'), @@ -550,17 +530,10 @@ HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1 = cms.Path( HLTBeginSequence + - hltPuppiTauTkIsoEle4522L1TkFilter + - - #RawToDigiSequence + + hltPuppiTauTkIsoEle45_22L1TkFilter + HLTRawToDigiSequence + - - #hgcalLocalRecoSequence + HLTHgcalLocalRecoSequence + - - #localrecoSequence + HLTLocalrecoSequence + - HLTDoFullUnpackingEgammaEcalL1SeededSequence + HLTPFClusteringForEgammaL1SeededSequence + HLTHgcalTiclPFClusteringForEgammaL1SeededSequence + diff --git a/HLTrigger/Configuration/python/HLT_75e33_timing_cff.py b/HLTrigger/Configuration/python/HLT_75e33_timing_cff.py index e68e419d2152a..b7722b079e624 100644 --- a/HLTrigger/Configuration/python/HLT_75e33_timing_cff.py +++ b/HLTrigger/Configuration/python/HLT_75e33_timing_cff.py @@ -111,6 +111,7 @@ fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Ele115_NonIso_L1Seeded_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Ele26_WP70_L1Seeded_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Ele32_WPTight_L1Seeded_cfi") +fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_IsoMu24_FromL1TkMuon_cfi") fragment.load("HLTrigger/Configuration/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi") @@ -372,6 +373,7 @@ fragment.L1T_TkIsoEle22TkEm12, fragment.HLT_Ele32_WPTight_L1Seeded, + fragment.HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1, fragment.HLT_Ele115_NonIso_L1Seeded, fragment.HLT_Ele26_WP70_L1Seeded, fragment.HLT_Photon108EB_TightID_TightIso_L1Seeded, From 96ae44d21f230612ae794190c3720554be03c852 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 19 Sep 2024 14:48:08 +0200 Subject: [PATCH 290/418] Add EcalRecHitSoA and corresponding portable collections. --- .../interface/EcalRecHitHostCollection.h | 10 ++++++++++ DataFormats/EcalRecHit/interface/EcalRecHitSoA.h | 16 ++++++++++++++++ .../alpaka/EcalRecHitDeviceCollection.h | 15 +++++++++++++++ DataFormats/EcalRecHit/src/alpaka/classes_cuda.h | 2 ++ .../EcalRecHit/src/alpaka/classes_cuda_def.xml | 4 ++++ DataFormats/EcalRecHit/src/alpaka/classes_rocm.h | 2 ++ .../EcalRecHit/src/alpaka/classes_rocm_def.xml | 4 ++++ DataFormats/EcalRecHit/src/classes.cc | 2 ++ DataFormats/EcalRecHit/src/classes.h | 2 ++ DataFormats/EcalRecHit/src/classes_def.xml | 7 +++++++ 10 files changed, 64 insertions(+) create mode 100644 DataFormats/EcalRecHit/interface/EcalRecHitHostCollection.h create mode 100644 DataFormats/EcalRecHit/interface/EcalRecHitSoA.h create mode 100644 DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h diff --git a/DataFormats/EcalRecHit/interface/EcalRecHitHostCollection.h b/DataFormats/EcalRecHit/interface/EcalRecHitHostCollection.h new file mode 100644 index 0000000000000..c5f877988f8ce --- /dev/null +++ b/DataFormats/EcalRecHit/interface/EcalRecHitHostCollection.h @@ -0,0 +1,10 @@ +#ifndef DataFormats_EcalRecHit_EcalRecHitHostCollection_h +#define DataFormats_EcalRecHit_EcalRecHitHostCollection_h + +#include "DataFormats/Portable/interface/PortableHostCollection.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitSoA.h" + +// EcalRecHitSoA in host memory +using EcalRecHitHostCollection = PortableHostCollection; + +#endif diff --git a/DataFormats/EcalRecHit/interface/EcalRecHitSoA.h b/DataFormats/EcalRecHit/interface/EcalRecHitSoA.h new file mode 100644 index 0000000000000..b61da3ecd186b --- /dev/null +++ b/DataFormats/EcalRecHit/interface/EcalRecHitSoA.h @@ -0,0 +1,16 @@ +#ifndef DataFormats_EcalRecHit_EcalRecHitSoA_h +#define DataFormats_EcalRecHit_EcalRecHitSoA_h + +#include "DataFormats/SoATemplate/interface/SoALayout.h" + +GENERATE_SOA_LAYOUT(EcalRecHitSoALayout, + SOA_SCALAR(uint32_t, size), + SOA_COLUMN(uint32_t, id), + SOA_COLUMN(float, energy), + SOA_COLUMN(float, time), + SOA_COLUMN(uint32_t, flagBits), + SOA_COLUMN(uint32_t, extra)) + +using EcalRecHitSoA = EcalRecHitSoALayout<>; + +#endif diff --git a/DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h b/DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h new file mode 100644 index 0000000000000..5a7f7761afb89 --- /dev/null +++ b/DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h @@ -0,0 +1,15 @@ +#ifndef DataFormats_EcalRecHit_alpaka_EcalRecHitDeviceCollection_h +#define DataFormats_EcalRecHit_alpaka_EcalRecHitDeviceCollection_h + +#include "DataFormats/Portable/interface/alpaka/PortableCollection.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitSoA.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + + // EcalRecHitSoA in device global memory + using EcalRecHitDeviceCollection = PortableCollection; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +#endif diff --git a/DataFormats/EcalRecHit/src/alpaka/classes_cuda.h b/DataFormats/EcalRecHit/src/alpaka/classes_cuda.h index e8f1c8d74e657..49a436ed51a59 100644 --- a/DataFormats/EcalRecHit/src/alpaka/classes_cuda.h +++ b/DataFormats/EcalRecHit/src/alpaka/classes_cuda.h @@ -2,3 +2,5 @@ #include "DataFormats/Common/interface/Wrapper.h" #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHitSoA.h" #include "DataFormats/EcalRecHit/interface/alpaka/EcalUncalibratedRecHitDeviceCollection.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitSoA.h" +#include "DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h" diff --git a/DataFormats/EcalRecHit/src/alpaka/classes_cuda_def.xml b/DataFormats/EcalRecHit/src/alpaka/classes_cuda_def.xml index 6bc692f6e1372..247b0da861868 100644 --- a/DataFormats/EcalRecHit/src/alpaka/classes_cuda_def.xml +++ b/DataFormats/EcalRecHit/src/alpaka/classes_cuda_def.xml @@ -2,4 +2,8 @@ + + + + diff --git a/DataFormats/EcalRecHit/src/alpaka/classes_rocm.h b/DataFormats/EcalRecHit/src/alpaka/classes_rocm.h index e8f1c8d74e657..49a436ed51a59 100644 --- a/DataFormats/EcalRecHit/src/alpaka/classes_rocm.h +++ b/DataFormats/EcalRecHit/src/alpaka/classes_rocm.h @@ -2,3 +2,5 @@ #include "DataFormats/Common/interface/Wrapper.h" #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHitSoA.h" #include "DataFormats/EcalRecHit/interface/alpaka/EcalUncalibratedRecHitDeviceCollection.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitSoA.h" +#include "DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h" diff --git a/DataFormats/EcalRecHit/src/alpaka/classes_rocm_def.xml b/DataFormats/EcalRecHit/src/alpaka/classes_rocm_def.xml index a9d31a4bb0de2..dd1aa58d33687 100644 --- a/DataFormats/EcalRecHit/src/alpaka/classes_rocm_def.xml +++ b/DataFormats/EcalRecHit/src/alpaka/classes_rocm_def.xml @@ -2,4 +2,8 @@ + + + + diff --git a/DataFormats/EcalRecHit/src/classes.cc b/DataFormats/EcalRecHit/src/classes.cc index c52911f9a852d..ffc7dc11935b3 100644 --- a/DataFormats/EcalRecHit/src/classes.cc +++ b/DataFormats/EcalRecHit/src/classes.cc @@ -1,4 +1,6 @@ #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHitHostCollection.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitHostCollection.h" #include "DataFormats/Portable/interface/PortableHostCollectionReadRules.h" SET_PORTABLEHOSTCOLLECTION_READ_RULES(EcalUncalibratedRecHitHostCollection); +SET_PORTABLEHOSTCOLLECTION_READ_RULES(EcalRecHitHostCollection); diff --git a/DataFormats/EcalRecHit/src/classes.h b/DataFormats/EcalRecHit/src/classes.h index 98eaae1434ad5..52d605000c21f 100644 --- a/DataFormats/EcalRecHit/src/classes.h +++ b/DataFormats/EcalRecHit/src/classes.h @@ -16,3 +16,5 @@ #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHitHostCollection.h" #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHitSoA.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitHostCollection.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitSoA.h" diff --git a/DataFormats/EcalRecHit/src/classes_def.xml b/DataFormats/EcalRecHit/src/classes_def.xml index 8439f27a50f64..128d9bb01c7a4 100644 --- a/DataFormats/EcalRecHit/src/classes_def.xml +++ b/DataFormats/EcalRecHit/src/classes_def.xml @@ -47,4 +47,11 @@ + + + + + + + From c35652981eb5b335ee84a335a7d9bc9754ad57c1 Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 15 Oct 2024 16:06:51 +0200 Subject: [PATCH 291/418] ECAL rechit portable conditions and migration of CUDA rechit producer to alpaka. --- .../interface/EcalRecHitConditionsRcd.h | 27 ++ .../interface/EcalRecHitParametersRcd.h | 8 + .../DataRecord/src/EcalRecHitConditionsRcd.cc | 4 + .../DataRecord/src/EcalRecHitParametersRcd.cc | 4 + .../interface/EcalRecHitConditionsHost.h | 11 + .../interface/EcalRecHitConditionsSoA.h | 46 +++ .../interface/EcalRecHitParametersHost.h | 11 + .../interface/EcalRecHitParametersSoA.h | 21 + .../alpaka/EcalRecHitConditionsDevice.h | 17 + .../alpaka/EcalRecHitParametersDevice.h | 17 + .../src/ES_EcalRecHitConditionsHost.cc | 4 + .../src/ES_EcalRecHitParametersHost.cc | 4 + .../alpaka/ES_EcalRecHitConditionsDevice.cc | 4 + .../alpaka/ES_EcalRecHitParametersDevice.cc | 4 + .../python/alpakaValidationEcal_cff.py | 5 + .../python/alpakaValidation_cff.py | 2 + Configuration/PyReleaseValidation/README.md | 1 + .../PyReleaseValidation/python/relval_gpu.py | 4 +- .../python/upgradeWorkflowComponents.py | 24 +- .../python/EcalMonitorTask_cff.py | 8 + .../EcalRawToDigi/python/ecalDigis_cff.py | 6 + .../plugins/EcalRecHitSoAToLegacy.cc | 86 ++++ .../plugins/alpaka/DeclsForKernels.h | 45 ++ .../plugins/alpaka/EcalRecHitBuilder.dev.cc | 60 +++ .../plugins/alpaka/EcalRecHitBuilder.h | 35 ++ .../EcalRecHitConditionsHostESProducer.cc | 198 +++++++++ .../EcalRecHitParametersHostESProducer.cc | 96 +++++ .../alpaka/EcalRecHitProducerPortable.cc | 238 +++++++++++ .../plugins/alpaka/EnergyComputationKernels.h | 385 ++++++++++++++++++ .../plugins/alpaka/KernelHelpers.dev.cc | 18 + .../plugins/alpaka/KernelHelpers.h | 4 + .../python/ecalMultiFitUncalibRecHit_cff.py | 6 + .../EcalRecProducers/python/ecalRecHit_cff.py | 49 ++- 33 files changed, 1448 insertions(+), 4 deletions(-) create mode 100644 CondFormats/DataRecord/interface/EcalRecHitConditionsRcd.h create mode 100644 CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h create mode 100644 CondFormats/DataRecord/src/EcalRecHitConditionsRcd.cc create mode 100644 CondFormats/DataRecord/src/EcalRecHitParametersRcd.cc create mode 100644 CondFormats/EcalObjects/interface/EcalRecHitConditionsHost.h create mode 100644 CondFormats/EcalObjects/interface/EcalRecHitConditionsSoA.h create mode 100644 CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h create mode 100644 CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h create mode 100644 CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h create mode 100644 CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h create mode 100644 CondFormats/EcalObjects/src/ES_EcalRecHitConditionsHost.cc create mode 100644 CondFormats/EcalObjects/src/ES_EcalRecHitParametersHost.cc create mode 100644 CondFormats/EcalObjects/src/alpaka/ES_EcalRecHitConditionsDevice.cc create mode 100644 CondFormats/EcalObjects/src/alpaka/ES_EcalRecHitParametersDevice.cc create mode 100644 Configuration/ProcessModifiers/python/alpakaValidationEcal_cff.py create mode 100644 RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc create mode 100644 RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc create mode 100644 RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.h create mode 100644 RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsHostESProducer.cc create mode 100644 RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc create mode 100644 RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc create mode 100644 RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h diff --git a/CondFormats/DataRecord/interface/EcalRecHitConditionsRcd.h b/CondFormats/DataRecord/interface/EcalRecHitConditionsRcd.h new file mode 100644 index 0000000000000..267817addb905 --- /dev/null +++ b/CondFormats/DataRecord/interface/EcalRecHitConditionsRcd.h @@ -0,0 +1,27 @@ +#ifndef CondFormats_DataRecord_EcalRecHitConditionsRcd_h +#define CondFormats_DataRecord_EcalRecHitConditionsRcd_h + +#include "FWCore/Framework/interface/DependentRecordImplementation.h" + +#include "CondFormats/DataRecord/interface/EcalADCToGeVConstantRcd.h" +#include "CondFormats/DataRecord/interface/EcalChannelStatusRcd.h" +#include "CondFormats/DataRecord/interface/EcalIntercalibConstantsRcd.h" +#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosRcd.h" +#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosRefRcd.h" +#include "CondFormats/DataRecord/interface/EcalLaserAlphasRcd.h" +#include "CondFormats/DataRecord/interface/EcalLinearCorrectionsRcd.h" +#include "CondFormats/DataRecord/interface/EcalTimeCalibConstantsRcd.h" +#include "CondFormats/DataRecord/interface/EcalTimeOffsetConstantRcd.h" + +class EcalRecHitConditionsRcd + : public edm::eventsetup::DependentRecordImplementation> {}; +#endif diff --git a/CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h b/CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h new file mode 100644 index 0000000000000..978add26af250 --- /dev/null +++ b/CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h @@ -0,0 +1,8 @@ +#ifndef CondFormats_DataRecord_EcalRecHitParametersRcd_h +#define CondFormats_DataRecord_EcalRecHitParametersRcd_h + +#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" + +class EcalRecHitParametersRcd : public edm::eventsetup::EventSetupRecordImplementation {}; + +#endif diff --git a/CondFormats/DataRecord/src/EcalRecHitConditionsRcd.cc b/CondFormats/DataRecord/src/EcalRecHitConditionsRcd.cc new file mode 100644 index 0000000000000..792dfc0b5d65a --- /dev/null +++ b/CondFormats/DataRecord/src/EcalRecHitConditionsRcd.cc @@ -0,0 +1,4 @@ +#include "CondFormats/DataRecord/interface/EcalRecHitConditionsRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(EcalRecHitConditionsRcd); diff --git a/CondFormats/DataRecord/src/EcalRecHitParametersRcd.cc b/CondFormats/DataRecord/src/EcalRecHitParametersRcd.cc new file mode 100644 index 0000000000000..c61c3ee475d91 --- /dev/null +++ b/CondFormats/DataRecord/src/EcalRecHitParametersRcd.cc @@ -0,0 +1,4 @@ +#include "CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(EcalRecHitParametersRcd); diff --git a/CondFormats/EcalObjects/interface/EcalRecHitConditionsHost.h b/CondFormats/EcalObjects/interface/EcalRecHitConditionsHost.h new file mode 100644 index 0000000000000..b8017cf0add38 --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalRecHitConditionsHost.h @@ -0,0 +1,11 @@ +#ifndef CondFormats_EcalObjects_interface_EcalRecHitConditionsHost_h +#define CondFormats_EcalObjects_interface_EcalRecHitConditionsHost_h + +#include "CondFormats/EcalObjects/interface/EcalRecHitConditionsSoA.h" +#include "DataFormats/Portable/interface/PortableHostCollection.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" + +using EcalRecHitConditionsHost = PortableHostCollection; + +#endif diff --git a/CondFormats/EcalObjects/interface/EcalRecHitConditionsSoA.h b/CondFormats/EcalObjects/interface/EcalRecHitConditionsSoA.h new file mode 100644 index 0000000000000..3cc90e21a9ee3 --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalRecHitConditionsSoA.h @@ -0,0 +1,46 @@ +#ifndef CondFormats_EcalObjects_EcalRecHitConditionsSoA_h +#define CondFormats_EcalObjects_EcalRecHitConditionsSoA_h + +#include "DataFormats/SoATemplate/interface/SoACommon.h" +#include "DataFormats/SoATemplate/interface/SoALayout.h" +#include "DataFormats/SoATemplate/interface/SoAView.h" +#include "DataFormats/Provenance/interface/Timestamp.h" + +GENERATE_SOA_LAYOUT(EcalRecHitConditionsSoALayout, + SOA_COLUMN(uint32_t, rawid), + // energy intercalibrations + SOA_COLUMN(float, intercalibConstants), + // time intercalibrations + SOA_COLUMN(float, timeCalibConstants), + // channel status + SOA_COLUMN(uint16_t, channelStatus), + // laser APDPN ratios + SOA_COLUMN(float, laserAPDPNRatios_p1), + SOA_COLUMN(float, laserAPDPNRatios_p2), + SOA_COLUMN(float, laserAPDPNRatios_p3), + SOA_COLUMN(edm::TimeValue_t, laserAPDPNRatios_t1), + SOA_COLUMN(edm::TimeValue_t, laserAPDPNRatios_t2), + SOA_COLUMN(edm::TimeValue_t, laserAPDPNRatios_t3), + // laser APDPN reference + SOA_COLUMN(float, laserAPDPNref), + // laser alphas + SOA_COLUMN(float, laserAlpha), + // linear corrections + SOA_COLUMN(float, linearCorrections_p1), + SOA_COLUMN(float, linearCorrections_p2), + SOA_COLUMN(float, linearCorrections_p3), + SOA_COLUMN(edm::TimeValue_t, linearCorrections_t1), + SOA_COLUMN(edm::TimeValue_t, linearCorrections_t2), + SOA_COLUMN(edm::TimeValue_t, linearCorrections_t3), + // ADC to GeV constants + SOA_SCALAR(float, adcToGeVConstantEB), + SOA_SCALAR(float, adcToGeVConstantEE), + // time offsets constants + SOA_SCALAR(float, timeOffsetConstantEB), + SOA_SCALAR(float, timeOffsetConstantEE), + // offset for hashed ID access to EE items of columns + SOA_SCALAR(uint32_t, offsetEE)) + +using EcalRecHitConditionsSoA = EcalRecHitConditionsSoALayout<>; + +#endif diff --git a/CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h b/CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h new file mode 100644 index 0000000000000..33820185c6806 --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h @@ -0,0 +1,11 @@ +#ifndef CondFormats_EcalObjects_interface_EcalRecHitParametersHost_h +#define CondFormats_EcalObjects_interface_EcalRecHitParametersHost_h + +#include "CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h" +#include "DataFormats/Portable/interface/PortableHostCollection.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" + +using EcalRecHitParametersHost = PortableHostCollection; + +#endif diff --git a/CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h b/CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h new file mode 100644 index 0000000000000..d33028c37a041 --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h @@ -0,0 +1,21 @@ +#ifndef CondFormats_EcalObjects_EcalRecHitParametersSoA_h +#define CondFormats_EcalObjects_EcalRecHitParametersSoA_h + +#include +#include +#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" +#include "DataFormats/SoATemplate/interface/SoACommon.h" +#include "DataFormats/SoATemplate/interface/SoALayout.h" +#include "DataFormats/SoATemplate/interface/SoAView.h" + +constexpr size_t kNEcalChannelStatusCodes = 16; // The HW supports 16 channel status codes +using RecoFlagBitsArray = + std::array; // associate recoFlagBits to all channel status codes + +GENERATE_SOA_LAYOUT(EcalRecHitParametersSoALayout, + SOA_SCALAR(RecoFlagBitsArray, recoFlagBits), + SOA_SCALAR(std::bitset, channelStatusCodesToBeExcluded)) + +using EcalRecHitParametersSoA = EcalRecHitParametersSoALayout<>; + +#endif diff --git a/CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h b/CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h new file mode 100644 index 0000000000000..a2904fae25e9f --- /dev/null +++ b/CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h @@ -0,0 +1,17 @@ +#ifndef CondFormats_EcalObjects_interface_alpaka_EcalRecHitConditionsDevice_h +#define CondFormats_EcalObjects_interface_alpaka_EcalRecHitConditionsDevice_h + +#include "CondFormats/EcalObjects/interface/EcalRecHitConditionsHost.h" +#include "CondFormats/EcalObjects/interface/EcalRecHitConditionsSoA.h" +#include "DataFormats/Portable/interface/alpaka/PortableCollection.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + + using ::EcalRecHitConditionsHost; + using EcalRecHitConditionsDevice = PortableCollection; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +#endif diff --git a/CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h b/CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h new file mode 100644 index 0000000000000..569a480ad91d6 --- /dev/null +++ b/CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h @@ -0,0 +1,17 @@ +#ifndef CondFormats_EcalObjects_interface_alpaka_EcalRecHitParametersDevice_h +#define CondFormats_EcalObjects_interface_alpaka_EcalRecHitParametersDevice_h + +#include "CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h" +#include "CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h" +#include "DataFormats/Portable/interface/alpaka/PortableCollection.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + + using ::EcalRecHitParametersHost; + using EcalRecHitParametersDevice = PortableCollection; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +#endif diff --git a/CondFormats/EcalObjects/src/ES_EcalRecHitConditionsHost.cc b/CondFormats/EcalObjects/src/ES_EcalRecHitConditionsHost.cc new file mode 100644 index 0000000000000..59c4ff8ef07d4 --- /dev/null +++ b/CondFormats/EcalObjects/src/ES_EcalRecHitConditionsHost.cc @@ -0,0 +1,4 @@ +#include "CondFormats/EcalObjects/interface/EcalRecHitConditionsHost.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(EcalRecHitConditionsHost); diff --git a/CondFormats/EcalObjects/src/ES_EcalRecHitParametersHost.cc b/CondFormats/EcalObjects/src/ES_EcalRecHitParametersHost.cc new file mode 100644 index 0000000000000..aa6bfbe86371e --- /dev/null +++ b/CondFormats/EcalObjects/src/ES_EcalRecHitParametersHost.cc @@ -0,0 +1,4 @@ +#include "CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(EcalRecHitParametersHost); diff --git a/CondFormats/EcalObjects/src/alpaka/ES_EcalRecHitConditionsDevice.cc b/CondFormats/EcalObjects/src/alpaka/ES_EcalRecHitConditionsDevice.cc new file mode 100644 index 0000000000000..a148ad126a87a --- /dev/null +++ b/CondFormats/EcalObjects/src/alpaka/ES_EcalRecHitConditionsDevice.cc @@ -0,0 +1,4 @@ +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/typelookup.h" + +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h" +TYPELOOKUP_ALPAKA_DATA_REG(EcalRecHitConditionsDevice); diff --git a/CondFormats/EcalObjects/src/alpaka/ES_EcalRecHitParametersDevice.cc b/CondFormats/EcalObjects/src/alpaka/ES_EcalRecHitParametersDevice.cc new file mode 100644 index 0000000000000..ab43d28e35dcf --- /dev/null +++ b/CondFormats/EcalObjects/src/alpaka/ES_EcalRecHitParametersDevice.cc @@ -0,0 +1,4 @@ +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/typelookup.h" + +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" +TYPELOOKUP_ALPAKA_DATA_REG(EcalRecHitParametersDevice); diff --git a/Configuration/ProcessModifiers/python/alpakaValidationEcal_cff.py b/Configuration/ProcessModifiers/python/alpakaValidationEcal_cff.py new file mode 100644 index 0000000000000..1b35527f48228 --- /dev/null +++ b/Configuration/ProcessModifiers/python/alpakaValidationEcal_cff.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +# This modifier is for turning on alpaka validation modules for ECAL DQM + +alpakaValidationEcal = cms.Modifier() diff --git a/Configuration/ProcessModifiers/python/alpakaValidation_cff.py b/Configuration/ProcessModifiers/python/alpakaValidation_cff.py index 3399bdda7c4df..a8e0ba3853ad8 100644 --- a/Configuration/ProcessModifiers/python/alpakaValidation_cff.py +++ b/Configuration/ProcessModifiers/python/alpakaValidation_cff.py @@ -1,11 +1,13 @@ import FWCore.ParameterSet.Config as cms from Configuration.ProcessModifiers.alpaka_cff import * +from Configuration.ProcessModifiers.alpakaValidationEcal_cff import * from Configuration.ProcessModifiers.alpakaValidationPixel_cff import * # This modifier chain is for turning on DQM modules used for alpaka device/host validation alpakaValidation = cms.ModifierChain( alpaka, + alpakaValidationEcal, alpakaValidationPixel ) diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index a114e81d7146c..707bd8b04807a 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -37,6 +37,7 @@ The offsets currently in use are: * 0.407: Alpaka, pixel only triplets, portable vs. CPU validation * 0.407: Alpaka, pixel only triplets, portable profiling * 0.412: Alpaka, ECAL only, portable +* 0.413: Alpaka, ECAL only, portable vs. CPU validation * 0.422: Alpaka, HCAL only, portable * 0.423: Alpaka, HCAL only, portable vs CPU validation * 0.424: Alpaka, HCAL only, portable profiling diff --git a/Configuration/PyReleaseValidation/python/relval_gpu.py b/Configuration/PyReleaseValidation/python/relval_gpu.py index e70d877c1daaa..732a640182a04 100644 --- a/Configuration/PyReleaseValidation/python/relval_gpu.py +++ b/Configuration/PyReleaseValidation/python/relval_gpu.py @@ -48,7 +48,7 @@ # 2024, Alpaka-based noPU 12834.402, 12834.403, 12834.404, 12834.406, 12834.407, 12834.408, - 12834.412,#12834.413, 12834.414, + 12834.412, 12834.413,#12834.414, 12834.422, 12834.423, 12834.424, #12834.482, 12834.483, 12834.484 #12834.486, 12834.487, 12834.488 @@ -60,7 +60,7 @@ # 2024 with PU, Alpaka-based 13034.402, 13034.403, 13034.404, 13034.406, 13034.407, 13034.408, - 13034.412, #13034.413, 13034.414 + 13034.412, 13034.413, #13034.414 13034.422, 13034.423, 13034.424, #13034.482, 13034.483, 13034.484 #13034.486, 13034.487, 13034.488 diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 31543ebd3b380..002d847c62ba6 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -1199,7 +1199,7 @@ def setup_(self, step, stepName, stepDict, k, properties): upgradeWFs['PatatrackECALOnlyAlpaka'] = PatatrackWorkflow( digi = { # customize the ECAL Local Reco part of the HLT menu for Alpaka - '--procModifiers': 'alpaka', + '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1214,6 +1214,28 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.412, ) +# ECAL-only workflow running on CPU or GPU with Alpaka code +# - HLT with Alpaka +# - ECAL-only reconstruction with Alpaka on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons +# - harvesting +upgradeWFs['PatatrackECALOnlyAlpakaValidation'] = PatatrackWorkflow( + digi = { + # customize the ECAL Local Reco part of the HLT menu for Alpaka + '--procModifiers': 'alpaka', + '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', + }, + reco = { + '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', + '--procModifiers': 'alpakaValidation', + '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', + }, + harvest = { + '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' + }, + suffix = 'Patatrack_ECALOnlyAlpakaValidation', + offset = 0.413, +) + # ECAL-only workflow running on CPU # - HLT on CPU # - ECAL-only reconstruction on CPU, with DQM and validation diff --git a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py index 35252ac0f438f..e6b8d05f9c331 100644 --- a/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py +++ b/DQM/EcalMonitorTasks/python/EcalMonitorTask_cff.py @@ -4,13 +4,21 @@ # Customization to run the CPU vs GPU comparison task if the job runs on a GPU enabled machine from Configuration.ProcessModifiers.gpuValidationEcal_cff import gpuValidationEcal +from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal from DQM.EcalMonitorTasks.ecalGpuTask_cfi import ecalGpuTask gpuValidationEcal.toModify(ecalGpuTask.params, runGpuTask = True) gpuValidationEcal.toModify(ecalMonitorTask.workers, func = lambda workers: workers.append("GpuTask")) gpuValidationEcal.toModify(ecalMonitorTask, workerParameters = dict(GpuTask = ecalGpuTask)) +alpakaValidationEcal.toModify(ecalGpuTask.params, runGpuTask = True) +alpakaValidationEcal.toModify(ecalMonitorTask.workers, func = lambda workers: workers.append("GpuTask")) +alpakaValidationEcal.toModify(ecalMonitorTask, workerParameters = dict(GpuTask = ecalGpuTask)) + # Skip consuming and running over the EcalRawData collection for all GPU WFs # This is to be used as long as the GPU unpacker unpacks a dummy EcalRawData collection from Configuration.ProcessModifiers.gpu_cff import gpu gpu.toModify(ecalMonitorTask.skipCollections, func = lambda skipCollections: skipCollections.append("EcalRawData")) + +from Configuration.ProcessModifiers.alpaka_cff import alpaka +alpaka.toModify(ecalMonitorTask.skipCollections, func = lambda skipCollections: skipCollections.append("EcalRawData")) diff --git a/EventFilter/EcalRawToDigi/python/ecalDigis_cff.py b/EventFilter/EcalRawToDigi/python/ecalDigis_cff.py index 0710a87569343..51c5951230a0d 100644 --- a/EventFilter/EcalRawToDigi/python/ecalDigis_cff.py +++ b/EventFilter/EcalRawToDigi/python/ecalDigis_cff.py @@ -76,3 +76,9 @@ # copy the ECAL digis from GPU to CPU (if needed) and convert them from SoA to legacy format ecalDigis )) + +# for alpaka validation compare the legacy CPU module with the alpaka module +from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal +alpakaValidationEcal.toModify(ecalDigis, cpu = ecalDigisCPU) +alpakaValidationEcal.toModify(ecalDigis, cuda = _ecalDigisFromPortable.clone()) + diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc new file mode 100644 index 0000000000000..db29d0cd3d0c6 --- /dev/null +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc @@ -0,0 +1,86 @@ +#include "DataFormats/DetId/interface/DetId.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHitHostCollection.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/EmptyGroupDescription.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" + +class EcalRecHitSoAToLegacy : public edm::stream::EDProducer<> { +public: + explicit EcalRecHitSoAToLegacy(edm::ParameterSet const &ps); + ~EcalRecHitSoAToLegacy() override = default; + static void fillDescriptions(edm::ConfigurationDescriptions &); + +private: + using InputProduct = EcalRecHitHostCollection; + void produce(edm::Event &, edm::EventSetup const &) override; + +private: + const bool isPhase2_; + const edm::EDGetTokenT recHitsPortableEB_; + const edm::EDGetTokenT recHitsPortableEE_; + const edm::EDPutTokenT recHitsCPUEBToken_; + const edm::EDPutTokenT recHitsCPUEEToken_; +}; + +void EcalRecHitSoAToLegacy::fillDescriptions(edm::ConfigurationDescriptions &confDesc) { + edm::ParameterSetDescription desc; + + desc.add("recHitsPortableEB", edm::InputTag("ecalRecHitPortable", "EcalRecHitsEB")); + desc.add("recHitsLabelCPUEB", "EcalRecHitsEB"); + desc.ifValue(edm::ParameterDescription("isPhase2", false, true), + false >> (edm::ParameterDescription( + "recHitsPortableEE", edm::InputTag("ecalRecHitPortable", "EcalRecHitsEE"), true) and + edm::ParameterDescription("recHitsLabelCPUEE", "EcalRecHitsEE", true)) or + true >> edm::EmptyGroupDescription()); + confDesc.add("ecalRecHitSoAToLegacy", desc); +} + +EcalRecHitSoAToLegacy::EcalRecHitSoAToLegacy(edm::ParameterSet const &ps) + : isPhase2_{ps.getParameter("isPhase2")}, + recHitsPortableEB_{consumes(ps.getParameter("recHitsPortableEB"))}, + recHitsPortableEE_{isPhase2_ ? edm::EDGetTokenT{} + : consumes(ps.getParameter("recHitsPortableEE"))}, + recHitsCPUEBToken_{produces(ps.getParameter("recHitsLabelCPUEB"))}, + recHitsCPUEEToken_{isPhase2_ ? edm::EDPutTokenT{} + : produces(ps.getParameter("recHitsLabelCPUEE"))} {} + +void EcalRecHitSoAToLegacy::produce(edm::Event &event, edm::EventSetup const &setup) { + auto const &recHitsEBColl = event.get(recHitsPortableEB_); + auto const &recHitsEBCollView = recHitsEBColl.const_view(); + auto recHitsCPUEB = std::make_unique(); + recHitsCPUEB->reserve(recHitsEBCollView.size()); + + for (uint32_t i = 0; i < recHitsEBCollView.size(); ++i) { + recHitsCPUEB->emplace_back(DetId{recHitsEBCollView.id()[i]}, + recHitsEBCollView.energy()[i], + recHitsEBCollView.time()[i], + recHitsEBCollView.extra()[i], + recHitsEBCollView.flagBits()[i]); + } + event.put(recHitsCPUEBToken_, std::move(recHitsCPUEB)); + + if (!isPhase2_) { + auto const &recHitsEEColl = event.get(recHitsPortableEE_); + auto const &recHitsEECollView = recHitsEEColl.const_view(); + auto recHitsCPUEE = std::make_unique(); + recHitsCPUEE->reserve(recHitsEECollView.size()); + + for (uint32_t i = 0; i < recHitsEECollView.size(); ++i) { + recHitsCPUEE->emplace_back(DetId{recHitsEECollView.id()[i]}, + recHitsEECollView.energy()[i], + recHitsEECollView.time()[i], + recHitsEECollView.extra()[i], + recHitsEECollView.flagBits()[i]); + } + event.put(recHitsCPUEEToken_, std::move(recHitsCPUEE)); + } +} + +DEFINE_FWK_MODULE(EcalRecHitSoAToLegacy); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/DeclsForKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/DeclsForKernels.h index 6f96b26d253d1..1a83f45fe9506 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/DeclsForKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/DeclsForKernels.h @@ -127,4 +127,49 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::multifit { } // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::multifit +// +// ECAL Rechit producer +// + +namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { + + // parameters that are read from the configuration file for rechit producer + struct ConfigurationParameters { + // device ptrs + const int* channelStatusToBeExcluded = nullptr; + uint32_t channelStatusToBeExcludedSize; + + bool killDeadChannels; + + bool recoverEBIsolatedChannels; + bool recoverEEIsolatedChannels; + bool recoverEBVFE; + bool recoverEEVFE; + bool recoverEBFE; + bool recoverEEFE; + + float EBLaserMIN; + float EELaserMIN; + float EBLaserMAX; + float EELaserMAX; + + uint32_t flagmask; + }; + + //// const refs products to conditions + //struct ConditionsProducts { + // EcalRechitADCToGeVConstantGPU::Product const& ADCToGeV; + // EcalIntercalibConstantsGPU::Product const& Intercalib; + // EcalRechitChannelStatusGPU::Product const& ChannelStatus; + + // EcalLaserAPDPNRatiosGPU::Product const& LaserAPDPNRatios; + // EcalLaserAPDPNRatiosRefGPU::Product const& LaserAPDPNRatiosRef; + // EcalLaserAlphasGPU::Product const& LaserAlphas; + // EcalLinearCorrectionsGPU::Product const& LinearCorrections; + + // uint32_t offsetForHashes; + //}; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit + #endif // RecoLocalCalo_EcalRecProducers_plugins_alpaka_DeclsForKernels_h diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc new file mode 100644 index 0000000000000..ec372103fdb64 --- /dev/null +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc @@ -0,0 +1,60 @@ +#include + +#include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" + +#include "EcalRecHitBuilder.h" +#include "EnergyComputationKernels.h" + +//#define DEBUG +//#define ECAL_RECO_ALPAKA_DEBUG + +namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { + + using namespace cms::alpakatools; + + // host version, to be called by the plugin + void create_ecal_rechit(Queue& queue, + InputProduct const& ebUncalibRecHits, + InputProduct const& eeUncalibRecHits, + OutputProduct& ebRecHits, + OutputProduct& eeRecHits, + EcalRecHitConditionsDevice const& conditionsDev, + EcalRecHitParametersDevice const& parametersDev, + edm::TimeValue_t const& eventTime, + ConfigurationParameters const& configParams) { + auto const nchannels = static_cast(ebUncalibRecHits.const_view().metadata().size()) + + static_cast(eeUncalibRecHits.const_view().metadata().size()); + + // + // kernel create rechit + // + uint32_t constexpr nchannels_per_block = 16; + auto constexpr threads = nchannels_per_block; + auto const blocks = cms::alpakatools::divide_up_by(nchannels, threads); + auto workDiv = cms::alpakatools::make_workdiv(blocks, threads); + alpaka::exec(queue, + workDiv, + KernelCreateEcalRechit{}, + ebUncalibRecHits.const_view(), + eeUncalibRecHits.const_view(), + ebRecHits.view(), + eeRecHits.view(), + conditionsDev.const_view(), + parametersDev.const_view(), + eventTime, + // configuration + configParams.killDeadChannels, + configParams.recoverEBIsolatedChannels, + configParams.recoverEEIsolatedChannels, + configParams.recoverEBVFE, + configParams.recoverEEVFE, + configParams.recoverEBFE, + configParams.recoverEEFE, + configParams.EBLaserMIN, + configParams.EELaserMIN, + configParams.EBLaserMAX, + configParams.EELaserMAX, + configParams.flagmask); + } + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.h new file mode 100644 index 0000000000000..6f0fe5ab49f78 --- /dev/null +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.h @@ -0,0 +1,35 @@ +#ifndef RecoLocalCalo_EcalRecProducers_plugins_alpaka_EcalRecHitBuilder_h +#define RecoLocalCalo_EcalRecProducers_plugins_alpaka_EcalRecHitBuilder_h + +// +// Builder of ECAL RecHits on GPU +// + +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h" +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" +#include "DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h" +#include "DataFormats/EcalRecHit/interface/alpaka/EcalUncalibratedRecHitDeviceCollection.h" +#include "DataFormats/Provenance/interface/Timestamp.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" + +#include "DeclsForKernels.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { + + using InputProduct = EcalUncalibratedRecHitDeviceCollection; + using OutputProduct = EcalRecHitDeviceCollection; + + // host version, to be called by the plugin + void create_ecal_rechit(Queue& queue, + InputProduct const& ebUncalibRecHits, + InputProduct const& eeUncalibRecHits, + OutputProduct& ebRecHits, + OutputProduct& eeRecHits, + EcalRecHitConditionsDevice const& conditionsDev, + EcalRecHitParametersDevice const& parametersDev, + edm::TimeValue_t const& eventTime, + ConfigurationParameters const& configParams); + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit + +#endif // RecoLocalCalo_EcalRecProducers_plugins_alpaka_EcalRecHitBuilder_h diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsHostESProducer.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsHostESProducer.cc new file mode 100644 index 0000000000000..fab591d65b5fc --- /dev/null +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsHostESProducer.cc @@ -0,0 +1,198 @@ +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "CondFormats/DataRecord/interface/EcalADCToGeVConstantRcd.h" +#include "CondFormats/DataRecord/interface/EcalChannelStatusRcd.h" +#include "CondFormats/DataRecord/interface/EcalIntercalibConstantsRcd.h" +#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosRcd.h" +#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosRefRcd.h" +#include "CondFormats/DataRecord/interface/EcalLaserAlphasRcd.h" +#include "CondFormats/DataRecord/interface/EcalLinearCorrectionsRcd.h" +#include "CondFormats/DataRecord/interface/EcalTimeCalibConstantsRcd.h" +#include "CondFormats/DataRecord/interface/EcalTimeOffsetConstantRcd.h" +#include "CondFormats/EcalObjects/interface/EcalADCToGeVConstant.h" +#include "CondFormats/EcalObjects/interface/EcalChannelStatus.h" +#include "CondFormats/EcalObjects/interface/EcalIntercalibConstants.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatios.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRef.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAlphas.h" +#include "CondFormats/EcalObjects/interface/EcalLinearCorrections.h" +#include "CondFormats/EcalObjects/interface/EcalTimeCalibConstants.h" +#include "CondFormats/EcalObjects/interface/EcalTimeOffsetConstant.h" + +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h" +#include "CondFormats/EcalObjects/interface/EcalRecHitConditionsSoA.h" +#include "CondFormats/DataRecord/interface/EcalRecHitConditionsRcd.h" + +#include "DataFormats/EcalDigi/interface/EcalConstants.h" + +#include "DataFormats/EcalDetId/interface/EcalElectronicsId.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESGetToken.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ModuleFactory.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/host.h" +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + + class EcalRecHitConditionsHostESProducer : public ESProducer { + public: + EcalRecHitConditionsHostESProducer(edm::ParameterSet const& iConfig) + : ESProducer(iConfig), isPhase2_{iConfig.getParameter("isPhase2")} { + auto cc = setWhatProduced(this); + adcToGeVConstantToken_ = cc.consumes(); + intercalibConstantsToken_ = cc.consumes(); + channelStatusToken_ = cc.consumes(); + laserAPDPNRatiosToken_ = cc.consumes(); + laserAPDPNRatiosRefToken_ = cc.consumes(); + laserAlphasToken_ = cc.consumes(); + linearCorrectionsToken_ = cc.consumes(); + timeCalibConstantsToken_ = cc.consumes(iConfig.getParameter("timeCalibTag")); + timeOffsetConstantToken_ = cc.consumes(iConfig.getParameter("timeOffsetTag")); + } + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("timeCalibTag", edm::ESInputTag()); + desc.add("timeOffsetTag", edm::ESInputTag()); + desc.add("isPhase2", false); + descriptions.addWithDefaultLabel(desc); + } + + std::unique_ptr produce(EcalRecHitConditionsRcd const& iRecord) { + auto const& adcToGeVConstantData = iRecord.get(adcToGeVConstantToken_); + auto const& intercalibConstantsData = iRecord.get(intercalibConstantsToken_); + auto const& channelStatusData = iRecord.get(channelStatusToken_); + auto const& laserAPDPNRatiosData = iRecord.get(laserAPDPNRatiosToken_); + auto const& laserAPDPNRatiosRefData = iRecord.get(laserAPDPNRatiosRefToken_); + auto const& laserAlphasData = iRecord.get(laserAlphasToken_); + auto const& linearCorrectionsData = iRecord.get(linearCorrectionsToken_); + auto const& timeCalibConstantsData = iRecord.get(timeCalibConstantsToken_); + auto const& timeOffsetConstantData = iRecord.get(timeOffsetConstantToken_); + + const auto barrelSize = channelStatusData.barrelItems().size(); + auto numberOfXtals = barrelSize; + if (!isPhase2_) { + numberOfXtals += channelStatusData.endcapItems().size(); + } + + auto product = std::make_unique(numberOfXtals, cms::alpakatools::host()); + auto view = product->view(); + + // Filling crystal level conditions + auto const& intercalibConstantsEB = intercalibConstantsData.barrelItems(); + auto const& channelStatusEB = channelStatusData.barrelItems(); + auto const& laserAPDPNRatiosLaserEB = laserAPDPNRatiosData.getLaserMap().barrelItems(); + auto const& laserAPDPNRatiosTime = laserAPDPNRatiosData.getTimeMap(); + auto const& laserAPDPNRatiosRefEB = laserAPDPNRatiosRefData.barrelItems(); + auto const& laserAlphasEB = laserAlphasData.barrelItems(); + auto const& linearCorrectionsEB = linearCorrectionsData.getValueMap().barrelItems(); + auto const& linearCorrectionsTime = linearCorrectionsData.getTimeMap(); + auto const& timeCalibConstantsEB = timeCalibConstantsData.barrelItems(); + + // barrel conditions + for (unsigned int i = 0; i < barrelSize; ++i) { + auto vi = view[i]; + + vi.intercalibConstants() = intercalibConstantsEB[i]; + vi.channelStatus() = channelStatusEB[i].getEncodedStatusCode(); + + vi.laserAPDPNRatios_p1() = laserAPDPNRatiosLaserEB[i].p1; + vi.laserAPDPNRatios_p2() = laserAPDPNRatiosLaserEB[i].p2; + vi.laserAPDPNRatios_p3() = laserAPDPNRatiosLaserEB[i].p3; + + vi.laserAPDPNref() = laserAPDPNRatiosRefEB[i]; + vi.laserAlpha() = laserAlphasEB[i]; + + vi.linearCorrections_p1() = linearCorrectionsEB[i].p1; + vi.linearCorrections_p2() = linearCorrectionsEB[i].p2; + vi.linearCorrections_p3() = linearCorrectionsEB[i].p3; + + vi.timeCalibConstants() = timeCalibConstantsEB[i]; + } // end Barrel loop + + // time maps + for (unsigned int i = 0; i < laserAPDPNRatiosData.getTimeMap().size(); ++i) { + auto vi = view[i]; + vi.laserAPDPNRatios_t1() = laserAPDPNRatiosTime[i].t1.value(); + vi.laserAPDPNRatios_t2() = laserAPDPNRatiosTime[i].t2.value(); + vi.laserAPDPNRatios_t3() = laserAPDPNRatiosTime[i].t3.value(); + } + + for (unsigned int i = 0; i < linearCorrectionsData.getTimeMap().size(); ++i) { + auto vi = view[i]; + vi.linearCorrections_t1() = linearCorrectionsTime[i].t1.value(); + vi.linearCorrections_t2() = linearCorrectionsTime[i].t2.value(); + vi.linearCorrections_t3() = linearCorrectionsTime[i].t3.value(); + } + + // scalar data + // ADC to GeV constants + view.adcToGeVConstantEB() = adcToGeVConstantData.getEBValue(); + + // time offset constants + view.timeOffsetConstantEB() = timeOffsetConstantData.getEBValue(); + + // endcap conditions + if (!isPhase2_) { + auto const& intercalibConstantsEE = intercalibConstantsData.endcapItems(); + auto const& channelStatusEE = channelStatusData.endcapItems(); + auto const& laserAPDPNRatiosLaserEE = laserAPDPNRatiosData.getLaserMap().endcapItems(); + auto const& laserAPDPNRatiosRefEE = laserAPDPNRatiosRefData.endcapItems(); + auto const& laserAlphasEE = laserAlphasData.endcapItems(); + auto const& linearCorrectionsEE = linearCorrectionsData.getValueMap().endcapItems(); + auto const& timeCalibConstantsEE = timeCalibConstantsData.endcapItems(); + + const auto endcapSize = channelStatusData.endcapItems().size(); + for (unsigned int i = 0; i < endcapSize; ++i) { + auto vi = view[barrelSize + i]; + + vi.intercalibConstants() = intercalibConstantsEE[i]; + vi.channelStatus() = channelStatusEE[i].getEncodedStatusCode(); + + vi.laserAPDPNRatios_p1() = laserAPDPNRatiosLaserEE[i].p1; + vi.laserAPDPNRatios_p2() = laserAPDPNRatiosLaserEE[i].p2; + vi.laserAPDPNRatios_p3() = laserAPDPNRatiosLaserEE[i].p3; + + vi.laserAPDPNref() = laserAPDPNRatiosRefEE[i]; + vi.laserAlpha() = laserAlphasEE[i]; + + vi.linearCorrections_p1() = linearCorrectionsEE[i].p1; + vi.linearCorrections_p2() = linearCorrectionsEE[i].p2; + vi.linearCorrections_p3() = linearCorrectionsEE[i].p3; + + vi.timeCalibConstants() = timeCalibConstantsEE[i]; + } // end Endcap loop + + // scalar data + // ADC to GeV constants + view.adcToGeVConstantEE() = adcToGeVConstantData.getEEValue(); + + // time offset constants + view.timeOffsetConstantEE() = timeOffsetConstantData.getEEValue(); + } + + // number of barrel items as offset for hashed ID access to EE items of columns + view.offsetEE() = barrelSize; + + return product; + } + + private: + edm::ESGetToken adcToGeVConstantToken_; + edm::ESGetToken intercalibConstantsToken_; + edm::ESGetToken channelStatusToken_; + edm::ESGetToken laserAPDPNRatiosToken_; + edm::ESGetToken laserAPDPNRatiosRefToken_; + edm::ESGetToken laserAlphasToken_; + edm::ESGetToken linearCorrectionsToken_; + edm::ESGetToken timeCalibConstantsToken_; + edm::ESGetToken timeOffsetConstantToken_; + + bool const isPhase2_; + }; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +DEFINE_FWK_EVENTSETUP_ALPAKA_MODULE(EcalRecHitConditionsHostESProducer); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc new file mode 100644 index 0000000000000..2f3888749d9a9 --- /dev/null +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc @@ -0,0 +1,96 @@ +#include "CommonTools/Utils/interface/StringToEnumValue.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h" +#include "CondFormats/EcalObjects/interface/EcalChannelStatusCode.h" +#include "CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h" +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" + +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESGetToken.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ModuleFactory.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include "HeterogeneousCore/AlpakaInterface/interface/host.h" +#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + class EcalRecHitParametersHostESProducer : public ESProducer { + public: + EcalRecHitParametersHostESProducer(edm::ParameterSet const&); + ~EcalRecHitParametersHostESProducer() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions&); + std::unique_ptr produce(EcalRecHitParametersRcd const&); + + private: + std::bitset channelStatusCodesToBeExcluded_; + RecoFlagBitsArray recoFlagBitsArray_; + }; + + EcalRecHitParametersHostESProducer::EcalRecHitParametersHostESProducer(edm::ParameterSet const& iConfig) + : ESProducer(iConfig), recoFlagBitsArray_() { + setWhatProduced(this); + + // Translate string representation of ChannelStatusToBeExcluded to enum values and pack into bitset + auto const& channelStatusToBeExcluded = StringToEnumValue( + iConfig.getParameter>("ChannelStatusToBeExcluded")); + for (auto const& st : channelStatusToBeExcluded) { + channelStatusCodesToBeExcluded_.set(st); + } + + // Generate map of channel status codes and corresponding recoFlag bits + auto const& fmdbRecoPset = iConfig.getParameter("flagsMapDBReco"); + auto const& recoFlagStrings = fmdbRecoPset.getParameterNames(); + for (auto const& recoFlagString : recoFlagStrings) { + auto const recoFlag = static_cast(StringToEnumValue(recoFlagString)); + auto const& channelStatusCodeStrings = fmdbRecoPset.getParameter>(recoFlagString); + for (auto const& channelStatusCodeString : channelStatusCodeStrings) { + auto const chStatCode = StringToEnumValue(channelStatusCodeString); + // set recoFlagBits for this channel status code + recoFlagBitsArray_.at(chStatCode) = static_cast(recoFlag); + } + } + } + + void EcalRecHitParametersHostESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + // channel statuses to be exluded from reconstruction + desc.add>("ChannelStatusToBeExcluded", + {"kNoisy", + "kNNoisy", + "kFixedG6", + "kFixedG1", + "kFixedG0", + "kNonRespondingIsolated", + "kDeadVFE", + "kDeadFE", + "kNoDataNoTP"}); + + // reco flags association to channel status flags + edm::ParameterSetDescription psd0; + psd0.add>("kGood", {"kOk", "kDAC", "kNoLaser", "kNoisy"}); + psd0.add>("kNeighboursRecovered", {"kFixedG0", "kNonRespondingIsolated", "kDeadVFE"}); + psd0.add>("kDead", {"kNoDataNoTP"}); + psd0.add>("kNoisy", {"kNNoisy", "kFixedG6", "kFixedG1"}); + psd0.add>("kTowerRecovered", {"kDeadFE"}); + desc.add("flagsMapDBReco", psd0); + + descriptions.addWithDefaultLabel(desc); + } + + std::unique_ptr EcalRecHitParametersHostESProducer::produce( + EcalRecHitParametersRcd const& iRecord) { + size_t const sizeone = 1; + auto product = std::make_unique(sizeone, cms::alpakatools::host()); + auto view = product->view(); + + std::memcpy(view.recoFlagBits().data(), recoFlagBitsArray_.data(), sizeof(uint32_t) * recoFlagBitsArray_.size()); + + view.channelStatusCodesToBeExcluded() = channelStatusCodesToBeExcluded_; + + return product; + } + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +DEFINE_FWK_EVENTSETUP_ALPAKA_MODULE(EcalRecHitParametersHostESProducer); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc new file mode 100644 index 0000000000000..9409cc6da4850 --- /dev/null +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc @@ -0,0 +1,238 @@ +#include "CondFormats/DataRecord/interface/EcalRecHitConditionsRcd.h" +#include "CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h" +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h" +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" +#include "DataFormats/EcalRecHit/interface/RecoTypes.h" +#include "DataFormats/EcalRecHit/interface/alpaka/EcalUncalibratedRecHitDeviceCollection.h" +#include "DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDGetToken.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDPutToken.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h" +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h" + +#include "DeclsForKernels.h" +#include "EcalRecHitBuilder.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE { + + class EcalRecHitProducerPortable : public stream::EDProducer<> { + public: + explicit EcalRecHitProducerPortable(edm::ParameterSet const& ps); + ~EcalRecHitProducerPortable() override = default; + static void fillDescriptions(edm::ConfigurationDescriptions&); + + void produce(device::Event&, device::EventSetup const&) override; + + private: + // input + using InputProduct = EcalUncalibratedRecHitDeviceCollection; + const device::EDGetToken uncalibRecHitsTokenEB_; + const device::EDGetToken uncalibRecHitsTokenEE_; + // output + using OutputProduct = EcalRecHitDeviceCollection; + const device::EDPutToken recHitsTokenEB_; + const device::EDPutToken recHitsTokenEE_; + + // configuration parameters + ecal::rechit::ConfigurationParameters configParameters_; + + // conditions tokens + const device::ESGetToken recHitConditionsToken_; + const device::ESGetToken recHitParametersToken_; + }; + + void EcalRecHitProducerPortable::fillDescriptions(edm::ConfigurationDescriptions& confDesc) { + edm::ParameterSetDescription desc; + + desc.add("uncalibrecHitsInLabelEB", + edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEB")); + desc.add("uncalibrecHitsInLabelEE", + edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEE")); + + desc.add("recHitsLabelEB", "EcalRecHitsEB"); + desc.add("recHitsLabelEE", "EcalRecHitsEE"); + + desc.add("killDeadChannels", true); + desc.add("recoverEBIsolatedChannels", false); + desc.add("recoverEEIsolatedChannels", false); + desc.add("recoverEBVFE", false); + desc.add("recoverEEVFE", false); + desc.add("recoverEBFE", true); + desc.add("recoverEEFE", true); + + desc.add("EBLaserMIN", 0.5); + desc.add("EELaserMIN", 0.5); + desc.add("EBLaserMAX", 3.0); + desc.add("EELaserMAX", 8.0); + + confDesc.addWithDefaultLabel(desc); + } + + EcalRecHitProducerPortable::EcalRecHitProducerPortable(const edm::ParameterSet& ps) + : uncalibRecHitsTokenEB_{consumes(ps.getParameter("uncalibrecHitsInLabelEB"))}, + uncalibRecHitsTokenEE_{consumes(ps.getParameter("uncalibrecHitsInLabelEE"))}, + recHitsTokenEB_{produces(ps.getParameter("recHitsLabelEB"))}, + recHitsTokenEE_{produces(ps.getParameter("recHitsLabelEE"))}, + recHitConditionsToken_{esConsumes()}, + recHitParametersToken_{esConsumes()} { + configParameters_.killDeadChannels = ps.getParameter("killDeadChannels"); + configParameters_.EBLaserMIN = ps.getParameter("EBLaserMIN"); + configParameters_.EELaserMIN = ps.getParameter("EELaserMIN"); + configParameters_.EBLaserMAX = ps.getParameter("EBLaserMAX"); + configParameters_.EELaserMAX = ps.getParameter("EELaserMAX"); + + // do not propagate channels with these flags on + uint32_t flagmask = 0; + flagmask |= 0x1 << EcalRecHit::kNeighboursRecovered; + flagmask |= 0x1 << EcalRecHit::kTowerRecovered; + flagmask |= 0x1 << EcalRecHit::kDead; + flagmask |= 0x1 << EcalRecHit::kKilled; + flagmask |= 0x1 << EcalRecHit::kTPSaturated; + flagmask |= 0x1 << EcalRecHit::kL1SpikeFlag; + configParameters_.flagmask = flagmask; + + // for recovery and killing + configParameters_.recoverEBIsolatedChannels = ps.getParameter("recoverEBIsolatedChannels"); + configParameters_.recoverEEIsolatedChannels = ps.getParameter("recoverEEIsolatedChannels"); + configParameters_.recoverEBVFE = ps.getParameter("recoverEBVFE"); + configParameters_.recoverEEVFE = ps.getParameter("recoverEEVFE"); + configParameters_.recoverEBFE = ps.getParameter("recoverEBFE"); + configParameters_.recoverEEFE = ps.getParameter("recoverEEFE"); + } + + //void EcalRecHitProducerPortable::acquire(device::Event const& event, device::EventSetup const& setup) { + // auto& queue = event.queue(); + + // // get device collections from event + // auto const& ebUncalibRecHitsDev = event.get(uncalibRecHitsEBToken_); + // auto const& eeUncalibRecHitsDev = event.get(uncalibRecHitsEEToken_); + + // // copy the actual numbers of uncalibrated rechits in the collections to host + // auto ebUncalibratedRecHitsSizeDevConstView = + // cms::alpakatools::make_device_view(alpaka::getDev(queue), ebUncalibRecHitsDev.const_view().size()); + // auto eeUncalibratedRecHitsSizeDevConstView = + // cms::alpakatools::make_device_view(alpaka::getDev(queue), eeUncalibRecHitsDev.const_view().size()); + // alpaka::memcpy(queue, ebUncalibratedRecHitsSizeHostBuf_, ebUncalibratedRecHitsSizeDevConstView); + // alpaka::memcpy(queue, eeUncalibratedRecHitsSizeHostBuf_, eeUncalibratedRecHitsSizeDevConstView); + + //neb_ = ebUncalibRecHits.size; + //nee_ = eeUncalibRecHits.size; + + //// stop here if there are no uncalibRecHits + //if (neb_ + nee_ == 0) + // return; + + //int nchannelsEB = ebUncalibRecHits.size; // --> offsetForInput, first EB and then EE + + //// conditions + //// - laser correction + //// - IC + //// - adt2gev + + //// + //IntercalibConstantsHandle_ = setup.getHandle(tokenIntercalibConstants_); + //recHitParametersHandle_ = setup.getHandle(tokenRecHitParameters_); + + //auto const& ADCToGeVConstantProduct = setup.getData(tokenADCToGeVConstant_).getProduct(ctx.stream()); + //auto const& IntercalibConstantsProduct = IntercalibConstantsHandle_->getProduct(ctx.stream()); + //auto const& ChannelStatusProduct = setup.getData(tokenChannelStatus_).getProduct(ctx.stream()); + + //auto const& LaserAPDPNRatiosProduct = setup.getData(tokenLaserAPDPNRatios_).getProduct(ctx.stream()); + //auto const& LaserAPDPNRatiosRefProduct = setup.getData(tokenLaserAPDPNRatiosRef_).getProduct(ctx.stream()); + //auto const& LaserAlphasProduct = setup.getData(tokenLaserAlphas_).getProduct(ctx.stream()); + //auto const& LinearCorrectionsProduct = setup.getData(tokenLinearCorrections_).getProduct(ctx.stream()); + //auto const& recHitParametersProduct = recHitParametersHandle_->getProduct(ctx.stream()); + + //// set config ptrs : this is done to avoid changing things downstream + //configParameters_.ChannelStatusToBeExcluded = recHitParametersProduct.channelStatusToBeExcluded.get(); + //configParameters_.ChannelStatusToBeExcludedSize = std::get<0>(recHitParametersHandle_->getValues()).get().size(); + //configParameters_.expanded_v_DB_reco_flags = recHitParametersProduct.expanded_v_DB_reco_flags.get(); + //configParameters_.expanded_Sizes_v_DB_reco_flags = recHitParametersProduct.expanded_Sizes_v_DB_reco_flags.get(); + //configParameters_.expanded_flagbit_v_DB_reco_flags = recHitParametersProduct.expanded_flagbit_v_DB_reco_flags.get(); + //configParameters_.expanded_v_DB_reco_flagsSize = std::get<3>(recHitParametersHandle_->getValues()).get().size(); + + //// bundle up conditions + //ecal::rechit::ConditionsProducts conditions{ADCToGeVConstantProduct, + // IntercalibConstantsProduct, + // ChannelStatusProduct, + // LaserAPDPNRatiosProduct, + // LaserAPDPNRatiosRefProduct, + // LaserAlphasProduct, + // LinearCorrectionsProduct, + // IntercalibConstantsHandle_->getOffset()}; + + //// dev mem + //eventOutputDataGPU_.allocate(configParameters_, neb_, nee_, ctx.stream()); + + //// + //// schedule algorithms + //// + + //edm::TimeValue_t event_time = event.time().value(); + + //ecal::rechit::create_ecal_rehit( + // inputDataGPU, eventOutputDataGPU_, conditions, configParameters_, nchannelsEB, event_time, ctx.stream()); + + //cudaCheck(cudaGetLastError()); + //} + + void EcalRecHitProducerPortable::produce(device::Event& event, device::EventSetup const& setup) { + auto& queue = event.queue(); + + // get device collections from event + auto const& uncalibRecHitsDevEB = event.get(uncalibRecHitsTokenEB_); + auto const& uncalibRecHitsDevEE = event.get(uncalibRecHitsTokenEE_); + + // get the size of the input collections from the metadata + auto const uncalibRecHitsSizeEB = uncalibRecHitsDevEB.const_view().metadata().size(); + auto const uncalibRecHitsSizeEE = uncalibRecHitsDevEE.const_view().metadata().size(); + + // output device collections with the same size than the input collections + OutputProduct recHitsDevEB{uncalibRecHitsSizeEB, queue}; + OutputProduct recHitsDevEE{uncalibRecHitsSizeEE, queue}; + // reset the size scalar of the SoA + // memset takes an alpaka view that is created from the scalar in a view to the portable device collection + auto recHitSizeViewEB = + cms::alpakatools::make_device_view(alpaka::getDev(queue), recHitsDevEB.view().size()); + auto recHitSizeViewEE = + cms::alpakatools::make_device_view(alpaka::getDev(queue), recHitsDevEE.view().size()); + alpaka::memset(queue, recHitSizeViewEB, 0); + alpaka::memset(queue, recHitSizeViewEE, 0); + + // stop here if there are no uncalibrated rechits + if (uncalibRecHitsSizeEB + uncalibRecHitsSizeEE > 0) { + // to get the event time from device::Event one has to access the underlying edm::Event + auto const& eventTime = static_cast(event).time().value(); + + // conditions + auto const& recHitConditionsDev = setup.getData(recHitConditionsToken_); + auto const& recHitParametersDev = setup.getData(recHitParametersToken_); + + // + // schedule algorithms + // + ecal::rechit::create_ecal_rechit(queue, + uncalibRecHitsDevEB, + uncalibRecHitsDevEE, + recHitsDevEB, + recHitsDevEE, + recHitConditionsDev, + recHitParametersDev, + eventTime, + configParameters_); + } + + // put collections into the event + event.emplace(recHitsTokenEB_, std::move(recHitsDevEB)); + event.emplace(recHitsTokenEE_, std::move(recHitsDevEE)); + } + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE + +#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h" +DEFINE_FWK_ALPAKA_MODULE(EcalRecHitProducerPortable); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h new file mode 100644 index 0000000000000..400dd51b17e5b --- /dev/null +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h @@ -0,0 +1,385 @@ +#ifndef RecoLocalCalo_EcalRecProducers_plugins_alpaka_EnergyComputationKernels_h +#define RecoLocalCalo_EcalRecProducers_plugins_alpaka_EnergyComputationKernels_h + +#include + +#include "CondFormats/EcalObjects/interface/EcalChannelStatusCode.h" +#include "DataFormats/EcalDetId/interface/EcalSubdetector.h" +#include "DataFormats/EcalDigi/interface/EcalConstants.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" +#include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h" + +#include "KernelHelpers.h" + +//#define DEBUG +//#define ECAL_RECO_ALPAKA_DEBUG + +namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { + + using namespace cms::alpakatools; + + ALPAKA_STATIC_ACC_MEM_CONSTANT constexpr float ip10[] = { + 1.e5f, 1.e4f, 1.e3f, 1.e2f, 1.e1f, 1.e0f, 1.e-1f, 1.e-2f, 1.e-3f, 1.e-4}; + + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkUncalibRecHitFlag(uint32_t const& flags, + EcalUncalibratedRecHit::Flags flag) { + return flags & (0x1 << flag); + } + + ALPAKA_FN_ACC ALPAKA_FN_INLINE void setFlag(uint32_t& flags, EcalRecHit::Flags flag) { flags |= (0x1 << flag); } + + class KernelCreateEcalRechit { + public: + template >> + ALPAKA_FN_ACC void operator()(TAcc const& acc, + EcalUncalibratedRecHitDeviceCollection::ConstView ebUncalibRecHits, + EcalUncalibratedRecHitDeviceCollection::ConstView eeUncalibRecHits, + EcalRecHitDeviceCollection::View ebRecHits, + EcalRecHitDeviceCollection::View eeRecHits, + EcalRecHitConditionsDevice::ConstView conditionsDev, + EcalRecHitParametersDevice::ConstView parametersDev, + // time, used for time dependent corrections + edm::TimeValue_t const& eventTime, + // configuration + bool const killDeadChannels, + bool const recoverEBIsolatedChannels, + bool const recoverEEIsolatedChannels, + bool const recoverEBVFE, + bool const recoverEEVFE, + bool const recoverEBFE, + bool const recoverEEFE, + float const EBLaserMIN, + float const EELaserMIN, + float const EBLaserMAX, + float const EELaserMAX, + uint32_t flagmask) const { + auto const nchannelsEB = ebUncalibRecHits.size(); + auto const nchannelsEE = eeUncalibRecHits.size(); + auto const nchannels = nchannelsEB + nchannelsEE; + + for (auto ch : cms::alpakatools::uniform_elements(acc, nchannels)) { + // set the output collection size scalars + if (ch == 0) { + ebRecHits.size() = nchannelsEB; + eeRecHits.size() = nchannelsEE; + } + + bool const isEndcap = ch >= nchannelsEB; + int const inputCh = isEndcap ? ch - nchannelsEB : ch; + + // inputs + auto const* didCh = isEndcap ? eeUncalibRecHits.id() : ebUncalibRecHits.id(); + auto const* amplitude = isEndcap ? eeUncalibRecHits.amplitude() : ebUncalibRecHits.amplitude(); + auto const* amplitudeError = isEndcap ? eeUncalibRecHits.amplitudeError() : ebUncalibRecHits.amplitudeError(); + auto const* jitter = isEndcap ? eeUncalibRecHits.jitter() : ebUncalibRecHits.jitter(); + auto const* aux = isEndcap ? eeUncalibRecHits.aux() : ebUncalibRecHits.aux(); + auto const* chi2_in = isEndcap ? eeUncalibRecHits.chi2() : ebUncalibRecHits.chi2(); + auto const* flags_in = isEndcap ? eeUncalibRecHits.flags() : ebUncalibRecHits.flags(); + + // outputs + auto* did = isEndcap ? eeRecHits.id() : ebRecHits.id(); + auto* energy = isEndcap ? eeRecHits.energy() : ebRecHits.energy(); + auto* time = isEndcap ? eeRecHits.time() : ebRecHits.time(); + //auto* chi2 = isEndcap ? eeRecHits.chi2() : ebRecHits.chi2(); + auto* flagBits = isEndcap ? eeRecHits.flagBits() : ebRecHits.flagBits(); + auto* extra = isEndcap ? eeRecHits.extra() : ebRecHits.extra(); + + // only two values for ADC to GeV, EB or EE + auto const adc2gev_to_use = isEndcap ? conditionsDev.adcToGeVConstantEE() : conditionsDev.adcToGeVConstantEB(); + + // simple copy of input det id to output + did[inputCh] = didCh[inputCh]; + + auto const did_to_use = DetId{didCh[inputCh]}; + + auto const isBarrel = did_to_use.subdetId() == EcalBarrel; + auto const hashedId = isBarrel ? ecal::reconstruction::hashedIndexEB(did_to_use.rawId()) + : nchannelsEB + ecal::reconstruction::hashedIndexEE(did_to_use.rawId()); + + auto const intercalib = conditionsDev.intercalibConstants()[hashedId]; + + auto const timeCalib = conditionsDev.timeCalibConstants()[hashedId]; + auto const timeOffset = isEndcap ? conditionsDev.timeOffsetConstantEE() : conditionsDev.timeOffsetConstantEB(); + + // + // AM: ideas + // + // One possibility is to create the map of laser corrections once on CPU + // for all crystals and push them on GPU. + // Then only if the LS is different, update the laser correction + // The variation within a LS is not worth pursuing (<< 0.1% !!) + // and below the precision we can claim on the laser corrections (right?). + // This will save quite some time (also for the CPU version?) + // + + int iLM = 1; + + if (isBarrel) { + iLM = ecal::reconstruction::laserMonitoringRegionEB(did_to_use.rawId()); + } else { + iLM = ecal::reconstruction::laserMonitoringRegionEE(did_to_use.rawId()); + } + + long long t_i = 0, t_f = 0; + float p_i = 0, p_f = 0; + auto const t1 = conditionsDev.laserAPDPNRatios_t1()[iLM - 1]; + auto const t2 = conditionsDev.laserAPDPNRatios_t2()[iLM - 1]; + auto const t3 = conditionsDev.laserAPDPNRatios_t3()[iLM - 1]; + auto const p1 = conditionsDev.laserAPDPNRatios_p1()[hashedId]; + auto const p2 = conditionsDev.laserAPDPNRatios_p2()[hashedId]; + auto const p3 = conditionsDev.laserAPDPNRatios_p3()[hashedId]; + + // laser + if (eventTime >= t1 && eventTime < t2) { + t_i = t1; + t_f = t2; + p_i = p1; + p_f = p2; + } else if (eventTime >= t2 && eventTime <= t3) { + t_i = t2; + t_f = t3; + p_i = p2; + p_f = p3; + } else if (eventTime < t1) { + t_i = t1; + t_f = t2; + p_i = p1; + p_f = p2; + } else if (eventTime > t3) { + t_i = t2; + t_f = t3; + p_i = p2; + p_f = p3; + } + + long long lt_i = 0, lt_f = 0; + float lp_i = 0, lp_f = 0; + auto const lt1 = conditionsDev.linearCorrections_t1()[iLM - 1]; + auto const lt2 = conditionsDev.linearCorrections_t2()[iLM - 1]; + auto const lt3 = conditionsDev.linearCorrections_t3()[iLM - 1]; + auto const lp1 = conditionsDev.linearCorrections_p1()[hashedId]; + auto const lp2 = conditionsDev.linearCorrections_p2()[hashedId]; + auto const lp3 = conditionsDev.linearCorrections_p3()[hashedId]; + + // linear corrections + if (eventTime >= lt1 && eventTime < lt2) { + lt_i = lt1; + lt_f = lt2; + lp_i = lp1; + lp_f = lp2; + } else if (eventTime >= lt2 && eventTime <= lt3) { + lt_i = lt2; + lt_f = lt3; + lp_i = lp2; + lp_f = lp3; + } else if (eventTime < lt1) { + lt_i = lt1; + lt_f = lt2; + lp_i = lp1; + lp_f = lp2; + } else if (eventTime > lt3) { + lt_i = lt2; + lt_f = lt3; + lp_i = lp2; + lp_f = lp3; + } + + // apdpnref and alpha + auto const apdpnref = conditionsDev.laserAPDPNref()[hashedId]; + auto const alpha = conditionsDev.laserAlpha()[hashedId]; + + // now calculate transparency correction + float lasercalib = 1.; + if (apdpnref != 0 && (t_i - t_f) != 0 && (lt_i - lt_f) != 0) { + long long tt = eventTime; // never subtract two unsigned! + auto const interpolatedLaserResponse = + p_i / apdpnref + static_cast(tt - t_i) * (p_f - p_i) / (apdpnref * static_cast(t_f - t_i)); + + auto interpolatedLinearResponse = + lp_i / apdpnref + static_cast(tt - lt_i) * (lp_f - lp_i) / + (apdpnref * static_cast(lt_f - lt_i)); // FIXED BY FC + + if (interpolatedLinearResponse > 2.f || interpolatedLinearResponse < 0.1f) { + interpolatedLinearResponse = 1.f; + } + if (interpolatedLaserResponse <= 0.) { + lasercalib = 1.; + } else { + auto const interpolatedTransparencyResponse = interpolatedLaserResponse / interpolatedLinearResponse; + lasercalib = 1.f / (std::pow(interpolatedTransparencyResponse, alpha) * interpolatedLinearResponse); + } + } + + // + // Check for channels to be excluded from reconstruction + // + // Default energy not to be updated if "channelStatusToBeExcluded" + // Exploited later by the module "EcalRecHitConvertGPU2CPUFormat" + energy[inputCh] = -1; //un-physical default + + // default values for the flags + flagBits[inputCh] = 0; + extra[inputCh] = 0; + + auto const dbChStatus = static_cast(conditionsDev.channelStatus()[hashedId] & + EcalChannelStatusCode::chStatusMask); + auto const& exclChStatCodes = parametersDev.channelStatusCodesToBeExcluded(); + if (exclChStatCodes[dbChStatus]) { + // skip the channel if the channel status bit is set and should be excluded + continue; + } + + // Take our association map of dbChStatuses-> recHit flagbits and return the appropriate flagbit word + auto const& recoFlagBits = parametersDev.recoFlagBits()[dbChStatus]; + flagBits[inputCh] = recoFlagBits; + + if ((flagmask & recoFlagBits) && killDeadChannels) { + // skip this channel + continue; + } + + // + // multiply the adc counts with factors to get the energy in GeV + // + energy[inputCh] = amplitude[inputCh] * adc2gev_to_use * intercalib * lasercalib; + + // time + time[inputCh] = jitter[inputCh] * ecalPh1::Samp_Period + timeCalib + timeOffset; + + // NB: calculate the "flagBits extra" --> not really "flags", but actually an encoded version of energy uncertainty, time unc., ... + + // + // extra packing ... + // + uint32_t extravar = 0; + + // chi2 + // truncate + auto const chi2 = chi2_in[inputCh] > 64 ? 64 : chi2_in[inputCh]; + // use 7 bits + uint32_t const rawChi2 = lround(chi2 / 64. * ((1 << 7) - 1)); + extravar = ecal::reconstruction::rechitSetMasked(extravar, rawChi2, 0, 7); + + // energy uncertainty + auto const energyError = amplitudeError[inputCh] * adc2gev_to_use * intercalib * lasercalib; + uint32_t rawEnergy = 0; + if (energyError > 0.001) { + uint16_t const exponent = static_cast(ecal::reconstruction::rechitGetPower10(energyError)); + uint16_t significand = lround(energyError * ip10[exponent]); + // use 13 bits (3 exponent, 10 significand) + rawEnergy = exponent << 10 | significand; + } + extravar = ecal::reconstruction::rechitSetMasked(extravar, rawEnergy, 8, 13); + + // time uncertainty directly from uncalib rechit + uint8_t const timeErrBits = aux[inputCh] & 0xFF; + extravar = ecal::reconstruction::rechitSetMasked(extravar, timeErrBits, 24, 8); + + // + // set output extra variable + // + extra[inputCh] = extravar; + + // + // additional flags setting + // using correctly the flags as calculated at the UncalibRecHit stage + // + bool good = true; + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kLeadingEdgeRecovered)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kLeadingEdgeRecovered); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kSaturated)) { + // leading edge recovery failed - still keep the information + // about the saturation and do not flag as dead + setFlag(flagBits[inputCh], EcalRecHit::Flags::kSaturated); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kOutOfTime)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kOutOfTime); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kPoorReco)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorReco); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain6)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain6); + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain1)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain1); + } + + if (good) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kGood); + } + + if ((isBarrel && (lasercalib < EBLaserMIN || lasercalib > EBLaserMAX)) || + (!isBarrel && (lasercalib < EELaserMIN || lasercalib > EELaserMAX))) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorCalib); + } + + // recover, killing, and other stuff + // + // Structure: + // EB + // EE + // + // - single MVA + // - democratic sharing + // - kill all the other cases + + // recoverable channel status codes + if (dbChStatus == EcalChannelStatusCode::Code::kFixedG0 || + dbChStatus == EcalChannelStatusCode::Code::kNonRespondingIsolated || + dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { + bool is_Single = false; + bool is_FE = false; + bool is_VFE = false; + + if (dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { + is_VFE = true; + } else if (dbChStatus == EcalChannelStatusCode::Code::kDeadFE) { + is_FE = true; + } else { + is_Single = true; + } + + // EB + if (isBarrel) { + if (is_Single || is_FE || is_VFE) { + if (is_Single && (recoverEBIsolatedChannels || !killDeadChannels)) { + // single MVA + // TODO + } else if (is_FE && (recoverEBFE || !killDeadChannels)) { + // democratic sharing + // TODO + } else { + // kill all the other cases + energy[inputCh] = 0.; + // TODO: set flags + } + } + } else { // EE + if (is_Single || is_FE || is_VFE) { + if (is_Single && (recoverEEIsolatedChannels || !killDeadChannels)) { + // single MVA + // TODO + } else if (is_FE && (recoverEEFE || !killDeadChannels)) { + // democratic sharing + // TODO + } else { + // kill all the other cases + energy[inputCh] = 0.; + // TODO: set flags + } + } + } + } + } // end channel + } + }; + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit + +#endif // RecoLocalCalo_EcalRecProducers_plugins_alpaka_EnergyComputationKernels_h diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/KernelHelpers.dev.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/KernelHelpers.dev.cc index 906b96fa2b6b6..4b07b170c6f01 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/KernelHelpers.dev.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/KernelHelpers.dev.cc @@ -272,4 +272,22 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::reconstruction { return ilmr; } + ALPAKA_FN_ACC int32_t rechitSetMasked(uint32_t value, uint32_t x, uint32_t offset, uint32_t width) { + const uint32_t mask = ((1 << width) - 1) << offset; + value &= ~mask; + value |= (x & ((1U << width) - 1)) << offset; + return value; + } + + ALPAKA_STATIC_ACC_MEM_CONSTANT constexpr float p10[] = { + 1.e-2f, 1.e-1f, 1.f, 1.e1f, 1.e2f, 1.e3f, 1.e4f, 1.e5f, 1.e6f}; + + ALPAKA_FN_ACC int32_t rechitGetPower10(float e) { + int b = e < p10[4] ? 0 : 5; + for (; b < 9; ++b) + if (e < p10[b]) + break; + return b; + } + } // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::reconstruction diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/KernelHelpers.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/KernelHelpers.h index 3b1772ecf2981..ab40666add850 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/KernelHelpers.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/KernelHelpers.h @@ -14,6 +14,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::reconstruction { ALPAKA_FN_ACC int32_t laserMonitoringRegionEE(uint32_t id); + ALPAKA_FN_ACC int32_t rechitSetMasked(uint32_t value, uint32_t x, uint32_t offset, uint32_t width); + + ALPAKA_FN_ACC int32_t rechitGetPower10(float e); + } // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::reconstruction #endif // RecoLocalCalo_EcalRecProducers_plugins_alpaka_KernelHelpers_h diff --git a/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cff.py b/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cff.py index c6104c21b62db..051dd04a6be02 100644 --- a/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cff.py +++ b/RecoLocalCalo/EcalRecProducers/python/ecalMultiFitUncalibRecHit_cff.py @@ -103,3 +103,9 @@ # ECAL multifit running on CPU, or convert the uncalibrated rechits from SoA to legacy format ecalMultiFitUncalibRecHit, )) + +# for alpaka validation compare the legacy CPU module with the alpaka module +from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal +alpakaValidationEcal.toModify(ecalMultiFitUncalibRecHit, cpu = ecalMultiFitUncalibRecHitCPU) +alpakaValidationEcal.toModify(ecalMultiFitUncalibRecHit, cuda = _ecalUncalibRecHitSoAToLegacy.clone()) + diff --git a/RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py b/RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py index 71247d33d6063..53b776ac96a13 100644 --- a/RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py +++ b/RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py @@ -4,14 +4,17 @@ # ECAL calibrated rechit reconstruction on CPU from RecoLocalCalo.EcalRecProducers.ecalRecHit_cfi import ecalRecHit as _ecalRecHit +ecalRecHitCPU = _ecalRecHit.clone() ecalRecHit = SwitchProducerCUDA( - cpu = _ecalRecHit.clone() + cpu = ecalRecHitCPU ) ecalCalibratedRecHitTask = cms.Task( ecalRecHit ) +from Configuration.StandardSequences.Accelerators_cff import * + # ECAL rechit calibrations on GPU from RecoLocalCalo.EcalRecProducers.ecalRechitADCToGeVConstantGPUESProducer_cfi import ecalRechitADCToGeVConstantGPUESProducer from RecoLocalCalo.EcalRecProducers.ecalRechitChannelStatusGPUESProducer_cfi import ecalRechitChannelStatusGPUESProducer @@ -65,3 +68,47 @@ # convert the rechits from SoA to legacy format ecalRecHit )) + +# modifications for alpaka +from Configuration.ProcessModifiers.alpaka_cff import alpaka + +# ECAL conditions used by the rechit producer running on the accelerator +from RecoLocalCalo.EcalRecProducers.ecalRecHitConditionsHostESProducer_cfi import ecalRecHitConditionsHostESProducer +from RecoLocalCalo.EcalRecProducers.ecalRecHitParametersHostESProducer_cfi import ecalRecHitParametersHostESProducer + +ecalRecHitParametersSource = cms.ESSource("EmptyESSource", + recordName = cms.string('EcalRecHitParametersRcd'), + iovIsRunNotTime = cms.bool(True), + firstValid = cms.vuint32(1) +) + +# ECAL rechit producer running on the accelerator +from RecoLocalCalo.EcalRecProducers.ecalRecHitProducerPortable_cfi import ecalRecHitProducerPortable as _ecalRecHitProducerPortable +ecalRecHitPortable = _ecalRecHitProducerPortable.clone( + uncalibrecHitsInLabelEB = 'ecalMultiFitUncalibRecHitPortable:EcalUncalibRecHitsEB', + uncalibrecHitsInLabelEE = 'ecalMultiFitUncalibRecHitPortable:EcalUncalibRecHitsEE' +) + +# replace the SwitchProducerCUDA branches with the module to convert the rechits from SoA to legacy format +from RecoLocalCalo.EcalRecProducers.ecalRecHitSoAToLegacy_cfi import ecalRecHitSoAToLegacy as _ecalRecHitSoAToLegacy +# TODO: the portably produced ECAL calibrated rechits correct yet. +# When they are working and validated, remove this comment and uncomment the next lines: +#alpaka.toModify(ecalRecHit, +# cpu = _ecalRecHitSoAToLegacy.clone() +#) + +alpaka.toReplaceWith(ecalCalibratedRecHitTask, cms.Task( + # ECAL conditions and parameters used by the rechit producer running on the accelerator + ecalRecHitConditionsHostESProducer, + ecalRecHitParametersHostESProducer, + # ECAL rechit producer running on device + ecalRecHitPortable, + # ECAL rechit producer running on CPU, or convert the rechits from SoA to legacy format + ecalRecHit, +)) + +# for alpaka validation compare the legacy CPU module with the alpaka module +from Configuration.ProcessModifiers.alpakaValidationEcal_cff import alpakaValidationEcal +alpakaValidationEcal.toModify(ecalRecHit, cpu = ecalRecHitCPU) +alpakaValidationEcal.toModify(ecalRecHit, cuda = _ecalRecHitSoAToLegacy.clone()) + From 94ec096641aa18ec7244b0371b9480cd47b455fd Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 17 Oct 2024 00:54:28 +0200 Subject: [PATCH 292/418] Add support for Phase 2, where no endcap collections will be needed. --- .../plugins/EcalRecHitSoAToLegacy.cc | 30 +- .../plugins/alpaka/DeclsForKernels.h | 18 - .../plugins/alpaka/EcalRecHitBuilder.dev.cc | 78 +- .../plugins/alpaka/EcalRecHitBuilder.h | 7 +- .../EcalRecHitParametersHostESProducer.cc | 3 +- .../alpaka/EcalRecHitProducerPortable.cc | 161 ++-- .../plugins/alpaka/EnergyComputationKernels.h | 685 ++++++++++-------- 7 files changed, 520 insertions(+), 462 deletions(-) diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc index db29d0cd3d0c6..d3a76e7da7ce1 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc @@ -58,11 +58,16 @@ void EcalRecHitSoAToLegacy::produce(edm::Event &event, edm::EventSetup const &se recHitsCPUEB->reserve(recHitsEBCollView.size()); for (uint32_t i = 0; i < recHitsEBCollView.size(); ++i) { - recHitsCPUEB->emplace_back(DetId{recHitsEBCollView.id()[i]}, - recHitsEBCollView.energy()[i], - recHitsEBCollView.time()[i], - recHitsEBCollView.extra()[i], - recHitsEBCollView.flagBits()[i]); + // Save only if energy is >= 0 ! + // This is important because the channels that were supposed + // to be excluded get "-1" as energy + if (recHitsEBCollView.energy()[i] >= 0.) { + recHitsCPUEB->emplace_back(DetId{recHitsEBCollView.id()[i]}, + recHitsEBCollView.energy()[i], + recHitsEBCollView.time()[i], + recHitsEBCollView.extra()[i], + recHitsEBCollView.flagBits()[i]); + } } event.put(recHitsCPUEBToken_, std::move(recHitsCPUEB)); @@ -73,11 +78,16 @@ void EcalRecHitSoAToLegacy::produce(edm::Event &event, edm::EventSetup const &se recHitsCPUEE->reserve(recHitsEECollView.size()); for (uint32_t i = 0; i < recHitsEECollView.size(); ++i) { - recHitsCPUEE->emplace_back(DetId{recHitsEECollView.id()[i]}, - recHitsEECollView.energy()[i], - recHitsEECollView.time()[i], - recHitsEECollView.extra()[i], - recHitsEECollView.flagBits()[i]); + // Save only if energy is >= 0 ! + // This is important because the channels that were supposed + // to be excluded get "-1" as energy + if (recHitsEECollView.energy()[i] >= 0.) { + recHitsCPUEE->emplace_back(DetId{recHitsEECollView.id()[i]}, + recHitsEECollView.energy()[i], + recHitsEECollView.time()[i], + recHitsEECollView.extra()[i], + recHitsEECollView.flagBits()[i]); + } } event.put(recHitsCPUEEToken_, std::move(recHitsCPUEE)); } diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/DeclsForKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/DeclsForKernels.h index 1a83f45fe9506..c7f96cb17ee7f 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/DeclsForKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/DeclsForKernels.h @@ -135,10 +135,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { // parameters that are read from the configuration file for rechit producer struct ConfigurationParameters { - // device ptrs - const int* channelStatusToBeExcluded = nullptr; - uint32_t channelStatusToBeExcludedSize; - bool killDeadChannels; bool recoverEBIsolatedChannels; @@ -156,20 +152,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { uint32_t flagmask; }; - //// const refs products to conditions - //struct ConditionsProducts { - // EcalRechitADCToGeVConstantGPU::Product const& ADCToGeV; - // EcalIntercalibConstantsGPU::Product const& Intercalib; - // EcalRechitChannelStatusGPU::Product const& ChannelStatus; - - // EcalLaserAPDPNRatiosGPU::Product const& LaserAPDPNRatios; - // EcalLaserAPDPNRatiosRefGPU::Product const& LaserAPDPNRatiosRef; - // EcalLaserAlphasGPU::Product const& LaserAlphas; - // EcalLinearCorrectionsGPU::Product const& LinearCorrections; - - // uint32_t offsetForHashes; - //}; - } // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit #endif // RecoLocalCalo_EcalRecProducers_plugins_alpaka_DeclsForKernels_h diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc index ec372103fdb64..5c9c85b280398 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc @@ -14,16 +14,19 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { // host version, to be called by the plugin void create_ecal_rechit(Queue& queue, - InputProduct const& ebUncalibRecHits, - InputProduct const& eeUncalibRecHits, + InputProduct const* ebUncalibRecHits, + InputProduct const* eeUncalibRecHits, OutputProduct& ebRecHits, OutputProduct& eeRecHits, EcalRecHitConditionsDevice const& conditionsDev, EcalRecHitParametersDevice const& parametersDev, edm::TimeValue_t const& eventTime, - ConfigurationParameters const& configParams) { - auto const nchannels = static_cast(ebUncalibRecHits.const_view().metadata().size()) + - static_cast(eeUncalibRecHits.const_view().metadata().size()); + ConfigurationParameters const& configParams, + bool const isPhase2) { + auto nchannels = static_cast(ebUncalibRecHits->const_view().metadata().size()); + if (!isPhase2 && eeUncalibRecHits != nullptr) { + nchannels += static_cast(eeUncalibRecHits->const_view().metadata().size()); + } // // kernel create rechit @@ -32,29 +35,48 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { auto constexpr threads = nchannels_per_block; auto const blocks = cms::alpakatools::divide_up_by(nchannels, threads); auto workDiv = cms::alpakatools::make_workdiv(blocks, threads); - alpaka::exec(queue, - workDiv, - KernelCreateEcalRechit{}, - ebUncalibRecHits.const_view(), - eeUncalibRecHits.const_view(), - ebRecHits.view(), - eeRecHits.view(), - conditionsDev.const_view(), - parametersDev.const_view(), - eventTime, - // configuration - configParams.killDeadChannels, - configParams.recoverEBIsolatedChannels, - configParams.recoverEEIsolatedChannels, - configParams.recoverEBVFE, - configParams.recoverEEVFE, - configParams.recoverEBFE, - configParams.recoverEEFE, - configParams.EBLaserMIN, - configParams.EELaserMIN, - configParams.EBLaserMAX, - configParams.EELaserMAX, - configParams.flagmask); + if (!isPhase2 && eeUncalibRecHits != nullptr) { + alpaka::exec(queue, + workDiv, + KernelCreateEcalRechit{}, + ebUncalibRecHits->const_view(), + eeUncalibRecHits->const_view(), + ebRecHits.view(), + eeRecHits.view(), + conditionsDev.const_view(), + parametersDev.const_view(), + eventTime, + // configuration + configParams.killDeadChannels, + configParams.recoverEBIsolatedChannels, + configParams.recoverEEIsolatedChannels, + configParams.recoverEBVFE, + configParams.recoverEEVFE, + configParams.recoverEBFE, + configParams.recoverEEFE, + configParams.EBLaserMIN, + configParams.EELaserMIN, + configParams.EBLaserMAX, + configParams.EELaserMAX, + configParams.flagmask); + } else { + alpaka::exec(queue, + workDiv, + KernelCreateEcalRechitPhase2{}, + ebUncalibRecHits->const_view(), + ebRecHits.view(), + conditionsDev.const_view(), + parametersDev.const_view(), + eventTime, + // configuration + configParams.killDeadChannels, + configParams.recoverEBIsolatedChannels, + configParams.recoverEBVFE, + configParams.recoverEBFE, + configParams.EBLaserMIN, + configParams.EBLaserMAX, + configParams.flagmask); + } } } // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.h index 6f0fe5ab49f78..42c2ae51c6e0e 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.h @@ -21,14 +21,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { // host version, to be called by the plugin void create_ecal_rechit(Queue& queue, - InputProduct const& ebUncalibRecHits, - InputProduct const& eeUncalibRecHits, + InputProduct const* ebUncalibRecHits, + InputProduct const* eeUncalibRecHits, OutputProduct& ebRecHits, OutputProduct& eeRecHits, EcalRecHitConditionsDevice const& conditionsDev, EcalRecHitParametersDevice const& parametersDev, edm::TimeValue_t const& eventTime, - ConfigurationParameters const& configParams); + ConfigurationParameters const& configParams, + bool const isPhase2); } // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc index 2f3888749d9a9..e4374445a79a2 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc @@ -56,7 +56,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { edm::ParameterSetDescription desc; // channel statuses to be exluded from reconstruction desc.add>("ChannelStatusToBeExcluded", - {"kNoisy", + {"kDAC", + "kNoisy", "kNNoisy", "kFixedG6", "kFixedG1", diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc index 9409cc6da4850..6d98945fc700f 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc @@ -7,6 +7,7 @@ #include "DataFormats/EcalRecHit/interface/alpaka/EcalUncalibratedRecHitDeviceCollection.h" #include "DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/EmptyGroupDescription.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDGetToken.h" @@ -29,6 +30,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { void produce(device::Event&, device::EventSetup const&) override; private: + bool const isPhase2_; // input using InputProduct = EcalUncalibratedRecHitDeviceCollection; const device::EDGetToken uncalibRecHitsTokenEB_; @@ -36,7 +38,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // output using OutputProduct = EcalRecHitDeviceCollection; const device::EDPutToken recHitsTokenEB_; - const device::EDPutToken recHitsTokenEE_; + device::EDPutToken recHitsTokenEE_; // configuration parameters ecal::rechit::ConfigurationParameters configParameters_; @@ -51,40 +53,47 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { desc.add("uncalibrecHitsInLabelEB", edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEB")); - desc.add("uncalibrecHitsInLabelEE", - edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEE")); - desc.add("recHitsLabelEB", "EcalRecHitsEB"); - desc.add("recHitsLabelEE", "EcalRecHitsEE"); - desc.add("killDeadChannels", true); desc.add("recoverEBIsolatedChannels", false); - desc.add("recoverEEIsolatedChannels", false); desc.add("recoverEBVFE", false); - desc.add("recoverEEVFE", false); desc.add("recoverEBFE", true); - desc.add("recoverEEFE", true); desc.add("EBLaserMIN", 0.5); - desc.add("EELaserMIN", 0.5); desc.add("EBLaserMAX", 3.0); - desc.add("EELaserMAX", 8.0); + + desc.ifValue(edm::ParameterDescription("isPhase2", false, true), + false >> (edm::ParameterDescription( + "uncalibrecHitsInLabelEE", + edm::InputTag("ecalMultiFitUncalibRecHitPortable", "EcalUncalibRecHitsEE"), + true) and + edm::ParameterDescription("recHitsLabelEE", "EcalRecHitsEE", true) and + edm::ParameterDescription("recoverEEIsolatedChannels", false, true) and + edm::ParameterDescription("recoverEEVFE", false, true) and + edm::ParameterDescription("recoverEEFE", true, true) and + edm::ParameterDescription("EELaserMIN", 0.5, true) and + edm::ParameterDescription("EELaserMAX", 8.0, true)) or + true >> edm::EmptyGroupDescription()); confDesc.addWithDefaultLabel(desc); } EcalRecHitProducerPortable::EcalRecHitProducerPortable(const edm::ParameterSet& ps) - : uncalibRecHitsTokenEB_{consumes(ps.getParameter("uncalibrecHitsInLabelEB"))}, - uncalibRecHitsTokenEE_{consumes(ps.getParameter("uncalibrecHitsInLabelEE"))}, + : isPhase2_{ps.getParameter("isPhase2")}, + uncalibRecHitsTokenEB_{consumes(ps.getParameter("uncalibrecHitsInLabelEB"))}, + uncalibRecHitsTokenEE_{isPhase2_ ? device::EDGetToken{} + : consumes(ps.getParameter("uncalibrecHitsInLabelEE"))}, recHitsTokenEB_{produces(ps.getParameter("recHitsLabelEB"))}, - recHitsTokenEE_{produces(ps.getParameter("recHitsLabelEE"))}, recHitConditionsToken_{esConsumes()}, recHitParametersToken_{esConsumes()} { + if (!isPhase2_) { + recHitsTokenEE_ = produces(ps.getParameter("recHitsLabelEE")); + } configParameters_.killDeadChannels = ps.getParameter("killDeadChannels"); configParameters_.EBLaserMIN = ps.getParameter("EBLaserMIN"); - configParameters_.EELaserMIN = ps.getParameter("EELaserMIN"); + configParameters_.EELaserMIN = isPhase2_ ? 0. : ps.getParameter("EELaserMIN"); configParameters_.EBLaserMAX = ps.getParameter("EBLaserMAX"); - configParameters_.EELaserMAX = ps.getParameter("EELaserMAX"); + configParameters_.EELaserMAX = isPhase2_ ? 0. : ps.getParameter("EELaserMAX"); // do not propagate channels with these flags on uint32_t flagmask = 0; @@ -98,111 +107,40 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // for recovery and killing configParameters_.recoverEBIsolatedChannels = ps.getParameter("recoverEBIsolatedChannels"); - configParameters_.recoverEEIsolatedChannels = ps.getParameter("recoverEEIsolatedChannels"); + configParameters_.recoverEEIsolatedChannels = + isPhase2_ ? false : ps.getParameter("recoverEEIsolatedChannels"); configParameters_.recoverEBVFE = ps.getParameter("recoverEBVFE"); - configParameters_.recoverEEVFE = ps.getParameter("recoverEEVFE"); + configParameters_.recoverEEVFE = isPhase2_ ? false : ps.getParameter("recoverEEVFE"); configParameters_.recoverEBFE = ps.getParameter("recoverEBFE"); - configParameters_.recoverEEFE = ps.getParameter("recoverEEFE"); + configParameters_.recoverEEFE = isPhase2_ ? false : ps.getParameter("recoverEEFE"); } - //void EcalRecHitProducerPortable::acquire(device::Event const& event, device::EventSetup const& setup) { - // auto& queue = event.queue(); - - // // get device collections from event - // auto const& ebUncalibRecHitsDev = event.get(uncalibRecHitsEBToken_); - // auto const& eeUncalibRecHitsDev = event.get(uncalibRecHitsEEToken_); - - // // copy the actual numbers of uncalibrated rechits in the collections to host - // auto ebUncalibratedRecHitsSizeDevConstView = - // cms::alpakatools::make_device_view(alpaka::getDev(queue), ebUncalibRecHitsDev.const_view().size()); - // auto eeUncalibratedRecHitsSizeDevConstView = - // cms::alpakatools::make_device_view(alpaka::getDev(queue), eeUncalibRecHitsDev.const_view().size()); - // alpaka::memcpy(queue, ebUncalibratedRecHitsSizeHostBuf_, ebUncalibratedRecHitsSizeDevConstView); - // alpaka::memcpy(queue, eeUncalibratedRecHitsSizeHostBuf_, eeUncalibratedRecHitsSizeDevConstView); - - //neb_ = ebUncalibRecHits.size; - //nee_ = eeUncalibRecHits.size; - - //// stop here if there are no uncalibRecHits - //if (neb_ + nee_ == 0) - // return; - - //int nchannelsEB = ebUncalibRecHits.size; // --> offsetForInput, first EB and then EE - - //// conditions - //// - laser correction - //// - IC - //// - adt2gev - - //// - //IntercalibConstantsHandle_ = setup.getHandle(tokenIntercalibConstants_); - //recHitParametersHandle_ = setup.getHandle(tokenRecHitParameters_); - - //auto const& ADCToGeVConstantProduct = setup.getData(tokenADCToGeVConstant_).getProduct(ctx.stream()); - //auto const& IntercalibConstantsProduct = IntercalibConstantsHandle_->getProduct(ctx.stream()); - //auto const& ChannelStatusProduct = setup.getData(tokenChannelStatus_).getProduct(ctx.stream()); - - //auto const& LaserAPDPNRatiosProduct = setup.getData(tokenLaserAPDPNRatios_).getProduct(ctx.stream()); - //auto const& LaserAPDPNRatiosRefProduct = setup.getData(tokenLaserAPDPNRatiosRef_).getProduct(ctx.stream()); - //auto const& LaserAlphasProduct = setup.getData(tokenLaserAlphas_).getProduct(ctx.stream()); - //auto const& LinearCorrectionsProduct = setup.getData(tokenLinearCorrections_).getProduct(ctx.stream()); - //auto const& recHitParametersProduct = recHitParametersHandle_->getProduct(ctx.stream()); - - //// set config ptrs : this is done to avoid changing things downstream - //configParameters_.ChannelStatusToBeExcluded = recHitParametersProduct.channelStatusToBeExcluded.get(); - //configParameters_.ChannelStatusToBeExcludedSize = std::get<0>(recHitParametersHandle_->getValues()).get().size(); - //configParameters_.expanded_v_DB_reco_flags = recHitParametersProduct.expanded_v_DB_reco_flags.get(); - //configParameters_.expanded_Sizes_v_DB_reco_flags = recHitParametersProduct.expanded_Sizes_v_DB_reco_flags.get(); - //configParameters_.expanded_flagbit_v_DB_reco_flags = recHitParametersProduct.expanded_flagbit_v_DB_reco_flags.get(); - //configParameters_.expanded_v_DB_reco_flagsSize = std::get<3>(recHitParametersHandle_->getValues()).get().size(); - - //// bundle up conditions - //ecal::rechit::ConditionsProducts conditions{ADCToGeVConstantProduct, - // IntercalibConstantsProduct, - // ChannelStatusProduct, - // LaserAPDPNRatiosProduct, - // LaserAPDPNRatiosRefProduct, - // LaserAlphasProduct, - // LinearCorrectionsProduct, - // IntercalibConstantsHandle_->getOffset()}; - - //// dev mem - //eventOutputDataGPU_.allocate(configParameters_, neb_, nee_, ctx.stream()); - - //// - //// schedule algorithms - //// - - //edm::TimeValue_t event_time = event.time().value(); - - //ecal::rechit::create_ecal_rehit( - // inputDataGPU, eventOutputDataGPU_, conditions, configParameters_, nchannelsEB, event_time, ctx.stream()); - - //cudaCheck(cudaGetLastError()); - //} - void EcalRecHitProducerPortable::produce(device::Event& event, device::EventSetup const& setup) { auto& queue = event.queue(); // get device collections from event - auto const& uncalibRecHitsDevEB = event.get(uncalibRecHitsTokenEB_); - auto const& uncalibRecHitsDevEE = event.get(uncalibRecHitsTokenEE_); + auto const* uncalibRecHitsDevEB = &event.get(uncalibRecHitsTokenEB_); + auto const* uncalibRecHitsDevEE = isPhase2_ ? nullptr : &event.get(uncalibRecHitsTokenEE_); // get the size of the input collections from the metadata - auto const uncalibRecHitsSizeEB = uncalibRecHitsDevEB.const_view().metadata().size(); - auto const uncalibRecHitsSizeEE = uncalibRecHitsDevEE.const_view().metadata().size(); + auto const uncalibRecHitsSizeEB = uncalibRecHitsDevEB->const_view().metadata().size(); + auto const uncalibRecHitsSizeEE = isPhase2_ ? 0 : uncalibRecHitsDevEE->const_view().metadata().size(); // output device collections with the same size than the input collections - OutputProduct recHitsDevEB{uncalibRecHitsSizeEB, queue}; - OutputProduct recHitsDevEE{uncalibRecHitsSizeEE, queue}; + auto recHitsDevEB = std::make_unique(uncalibRecHitsSizeEB, queue); + auto recHitsDevEE = + isPhase2_ ? std::unique_ptr() : std::make_unique(uncalibRecHitsSizeEE, queue); // reset the size scalar of the SoA // memset takes an alpaka view that is created from the scalar in a view to the portable device collection auto recHitSizeViewEB = - cms::alpakatools::make_device_view(alpaka::getDev(queue), recHitsDevEB.view().size()); - auto recHitSizeViewEE = - cms::alpakatools::make_device_view(alpaka::getDev(queue), recHitsDevEE.view().size()); + cms::alpakatools::make_device_view(alpaka::getDev(queue), recHitsDevEB->view().size()); alpaka::memset(queue, recHitSizeViewEB, 0); - alpaka::memset(queue, recHitSizeViewEE, 0); + + if (!isPhase2_) { + auto recHitSizeViewEE = + cms::alpakatools::make_device_view(alpaka::getDev(queue), recHitsDevEE->view().size()); + alpaka::memset(queue, recHitSizeViewEE, 0); + } // stop here if there are no uncalibrated rechits if (uncalibRecHitsSizeEB + uncalibRecHitsSizeEE > 0) { @@ -219,17 +157,20 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { ecal::rechit::create_ecal_rechit(queue, uncalibRecHitsDevEB, uncalibRecHitsDevEE, - recHitsDevEB, - recHitsDevEE, + *recHitsDevEB, + *recHitsDevEE, recHitConditionsDev, recHitParametersDev, eventTime, - configParameters_); + configParameters_, + isPhase2_); } // put collections into the event - event.emplace(recHitsTokenEB_, std::move(recHitsDevEB)); - event.emplace(recHitsTokenEE_, std::move(recHitsDevEE)); + event.put(recHitsTokenEB_, std::move(recHitsDevEB)); + if (!isPhase2_) { + event.put(recHitsTokenEE_, std::move(recHitsDevEE)); + } } } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h index 400dd51b17e5b..4fc7e07c706d9 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h @@ -28,6 +28,368 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { ALPAKA_FN_ACC ALPAKA_FN_INLINE void setFlag(uint32_t& flags, EcalRecHit::Flags flag) { flags |= (0x1 << flag); } + ALPAKA_FN_ACC void makeRecHit(int const inputCh, + uint32_t const* didCh, + float const* amplitude, + float const* amplitudeError, + float const* jitter, + uint32_t const* aux, + float const* chi2_in, + uint32_t const* flags_in, + uint32_t* did, + float* energy, + float* time, + uint32_t* flagBits, + uint32_t* extra, + EcalRecHitConditionsDevice::ConstView conditionsDev, + EcalRecHitParametersDevice::ConstView parametersDev, + // time, used for time dependent corrections + edm::TimeValue_t const& eventTime, + // configuration + bool const isPhase2, + bool const killDeadChannels, + bool const recoverIsolatedChannels, + bool const recoverVFE, + bool const recoverFE, + float const laserMIN, + float const laserMAX, + uint32_t flagmask) { + // simple copy of input det id to output + did[inputCh] = didCh[inputCh]; + + auto const did_to_use = DetId{didCh[inputCh]}; + + auto const isBarrel = did_to_use.subdetId() == EcalBarrel; + auto const hashedId = isBarrel ? ecal::reconstruction::hashedIndexEB(did_to_use.rawId()) + : conditionsDev.offsetEE() + ecal::reconstruction::hashedIndexEE(did_to_use.rawId()); + + auto const intercalib = conditionsDev.intercalibConstants()[hashedId]; + + // only two values for ADC to GeV, EB or EE + auto const adc2gev_to_use = isBarrel ? conditionsDev.adcToGeVConstantEB() : conditionsDev.adcToGeVConstantEE(); + + auto const timeCalib = conditionsDev.timeCalibConstants()[hashedId]; + auto const timeOffset = isBarrel ? conditionsDev.timeOffsetConstantEB() : conditionsDev.timeOffsetConstantEE(); + + int iLM = 1; + if (isBarrel) { + iLM = ecal::reconstruction::laserMonitoringRegionEB(did_to_use.rawId()); + } else { + iLM = ecal::reconstruction::laserMonitoringRegionEE(did_to_use.rawId()); + } + + long long t_i = 0, t_f = 0; + float p_i = 0, p_f = 0; + auto const t1 = conditionsDev.laserAPDPNRatios_t1()[iLM - 1]; + auto const t2 = conditionsDev.laserAPDPNRatios_t2()[iLM - 1]; + auto const t3 = conditionsDev.laserAPDPNRatios_t3()[iLM - 1]; + auto const p1 = conditionsDev.laserAPDPNRatios_p1()[hashedId]; + auto const p2 = conditionsDev.laserAPDPNRatios_p2()[hashedId]; + auto const p3 = conditionsDev.laserAPDPNRatios_p3()[hashedId]; + + // laser + if (eventTime >= t1 && eventTime < t2) { + t_i = t1; + t_f = t2; + p_i = p1; + p_f = p2; + } else if (eventTime >= t2 && eventTime <= t3) { + t_i = t2; + t_f = t3; + p_i = p2; + p_f = p3; + } else if (eventTime < t1) { + t_i = t1; + t_f = t2; + p_i = p1; + p_f = p2; + } else if (eventTime > t3) { + t_i = t2; + t_f = t3; + p_i = p2; + p_f = p3; + } + + long long lt_i = 0, lt_f = 0; + float lp_i = 0, lp_f = 0; + auto const lt1 = conditionsDev.linearCorrections_t1()[iLM - 1]; + auto const lt2 = conditionsDev.linearCorrections_t2()[iLM - 1]; + auto const lt3 = conditionsDev.linearCorrections_t3()[iLM - 1]; + auto const lp1 = conditionsDev.linearCorrections_p1()[hashedId]; + auto const lp2 = conditionsDev.linearCorrections_p2()[hashedId]; + auto const lp3 = conditionsDev.linearCorrections_p3()[hashedId]; + + // linear corrections + if (eventTime >= lt1 && eventTime < lt2) { + lt_i = lt1; + lt_f = lt2; + lp_i = lp1; + lp_f = lp2; + } else if (eventTime >= lt2 && eventTime <= lt3) { + lt_i = lt2; + lt_f = lt3; + lp_i = lp2; + lp_f = lp3; + } else if (eventTime < lt1) { + lt_i = lt1; + lt_f = lt2; + lp_i = lp1; + lp_f = lp2; + } else if (eventTime > lt3) { + lt_i = lt2; + lt_f = lt3; + lp_i = lp2; + lp_f = lp3; + } + + // apdpnref and alpha + auto const apdpnref = conditionsDev.laserAPDPNref()[hashedId]; + auto const alpha = conditionsDev.laserAlpha()[hashedId]; + + // now calculate transparency correction + float lasercalib = 1.; + if (apdpnref != 0 && (t_i - t_f) != 0 && (lt_i - lt_f) != 0) { + long long tt = eventTime; // never subtract two unsigned! + auto const interpolatedLaserResponse = + p_i / apdpnref + static_cast(tt - t_i) * (p_f - p_i) / (apdpnref * static_cast(t_f - t_i)); + + auto interpolatedLinearResponse = + lp_i / apdpnref + + static_cast(tt - lt_i) * (lp_f - lp_i) / (apdpnref * static_cast(lt_f - lt_i)); // FIXED BY FC + + if (interpolatedLinearResponse > 2.f || interpolatedLinearResponse < 0.1f) { + interpolatedLinearResponse = 1.f; + } + if (interpolatedLaserResponse <= 0.) { + lasercalib = 1.; + } else { + auto const interpolatedTransparencyResponse = interpolatedLaserResponse / interpolatedLinearResponse; + lasercalib = 1.f / (std::pow(interpolatedTransparencyResponse, alpha) * interpolatedLinearResponse); + } + } + + // + // Check for channels to be excluded from reconstruction + // + // Default energy not to be updated if "channelStatusToBeExcluded" + energy[inputCh] = -1.; //un-physical default + + // default values for the flags + flagBits[inputCh] = 0; + extra[inputCh] = 0; + + auto const dbChStatus = static_cast(conditionsDev.channelStatus()[hashedId] & + EcalChannelStatusCode::chStatusMask); + auto const& exclChStatCodes = parametersDev.channelStatusCodesToBeExcluded(); + if (exclChStatCodes[dbChStatus]) { + // skip the channel if the channel status bit is set and should be excluded + return; + } + + // Take our association map of dbChStatuses-> recHit flagbits and return the appropriate flagbit word + auto const& recoFlagBits = parametersDev.recoFlagBits()[dbChStatus]; + flagBits[inputCh] = recoFlagBits; + + if ((flagmask & recoFlagBits) && killDeadChannels) { + // skip this channel + return; + } + + // + // multiply the adc counts with factors to get the energy in GeV + // + energy[inputCh] = amplitude[inputCh] * adc2gev_to_use * intercalib * lasercalib; + + // time + auto const sampPeriod = isPhase2 ? ecalPh2::Samp_Period : ecalPh1::Samp_Period; + time[inputCh] = jitter[inputCh] * sampPeriod + timeCalib + timeOffset; + + // NB: calculate the "flagBits extra" --> not really "flags", but actually an encoded version of energy uncertainty, time unc., ... + + // + // extra packing ... + // + uint32_t extravar = 0; + + // chi2 + // truncate + auto const chi2 = chi2_in[inputCh] > 64 ? 64 : chi2_in[inputCh]; + // use 7 bits + uint32_t const rawChi2 = lround(chi2 / 64. * ((1 << 7) - 1)); + extravar = ecal::reconstruction::rechitSetMasked(extravar, rawChi2, 0, 7); + + // energy uncertainty (amplitudeError is currently not set in the portable uncalibrated rec hit producer) + auto const energyError = amplitudeError[inputCh] * adc2gev_to_use * intercalib * lasercalib; + uint32_t rawEnergy = 0; + if (energyError > 0.001) { + uint16_t const exponent = static_cast(ecal::reconstruction::rechitGetPower10(energyError)); + uint16_t significand = lround(energyError * ip10[exponent]); + // use 13 bits (3 exponent, 10 significand) + rawEnergy = exponent << 10 | significand; + } + extravar = ecal::reconstruction::rechitSetMasked(extravar, rawEnergy, 8, 13); + + // time uncertainty directly from uncalib rechit (the jitter error is currently not stored in aux in the portable uncalibrated rec hit producer) + uint8_t const timeErrBits = aux[inputCh] & 0xFF; + extravar = ecal::reconstruction::rechitSetMasked(extravar, timeErrBits, 24, 8); + + // + // set output extra variable + // + extra[inputCh] = extravar; + + // + // additional flags setting + // using correctly the flags as calculated at the UncalibRecHit stage + // + bool good = true; + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kLeadingEdgeRecovered)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kLeadingEdgeRecovered); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kSaturated)) { + // leading edge recovery failed - still keep the information + // about the saturation and do not flag as dead + setFlag(flagBits[inputCh], EcalRecHit::Flags::kSaturated); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kOutOfTime)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kOutOfTime); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kPoorReco)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorReco); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain6)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain6); + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain1)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain1); + } + + if (good) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kGood); + } + + if (lasercalib < laserMIN || lasercalib > laserMAX) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorCalib); + } + + // recover, killing, and other stuff + // + // Structure: + // EB + // EE + // + // - single MVA + // - democratic sharing + // - kill all the other cases + + // recoverable channel status codes + if (dbChStatus == EcalChannelStatusCode::Code::kFixedG0 || + dbChStatus == EcalChannelStatusCode::Code::kNonRespondingIsolated || + dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { + bool is_Single = false; + bool is_FE = false; + bool is_VFE = false; + + if (dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { + is_VFE = true; + } else if (dbChStatus == EcalChannelStatusCode::Code::kDeadFE) { + is_FE = true; + } else { + is_Single = true; + } + + // EB + if (isBarrel) { + if (is_Single || is_FE || is_VFE) { + if (is_Single && (recoverIsolatedChannels || !killDeadChannels)) { + // single MVA + // TODO + } else if (is_FE && (recoverFE || !killDeadChannels)) { + // democratic sharing + // TODO + } else { + // kill all the other cases + energy[inputCh] = 0.; + // TODO: set flags + } + } + } else { // EE + if (is_Single || is_FE || is_VFE) { + if (is_Single && (recoverIsolatedChannels || !killDeadChannels)) { + // single MVA + // TODO + } else if (is_FE && (recoverFE || !killDeadChannels)) { + // democratic sharing + // TODO + } else { + // kill all the other cases + energy[inputCh] = 0.; + // TODO: set flags + } + } + } + } + } + + class KernelCreateEcalRechitPhase2 { + public: + template >> + ALPAKA_FN_ACC void operator()(TAcc const& acc, + EcalUncalibratedRecHitDeviceCollection::ConstView uncalibRecHits, + EcalRecHitDeviceCollection::View recHits, + EcalRecHitConditionsDevice::ConstView conditionsDev, + EcalRecHitParametersDevice::ConstView parametersDev, + // time, used for time dependent corrections + edm::TimeValue_t const& eventTime, + // configuration + bool const killDeadChannels, + bool const recoverIsolatedChannels, + bool const recoverVFE, + bool const recoverFE, + float const laserMIN, + float const laserMAX, + uint32_t flagmask) const { + auto const nchannels = uncalibRecHits.size(); + + for (auto ch : cms::alpakatools::uniform_elements(acc, nchannels)) { + // set the output collection size scalar + if (ch == 0) { + recHits.size() = nchannels; + } + + makeRecHit(ch, + uncalibRecHits.id(), + uncalibRecHits.amplitude(), + uncalibRecHits.amplitudeError(), + uncalibRecHits.jitter(), + uncalibRecHits.aux(), + uncalibRecHits.chi2(), + uncalibRecHits.flags(), + recHits.id(), + recHits.energy(), + recHits.time(), + recHits.flagBits(), + recHits.extra(), + conditionsDev, + parametersDev, + eventTime, + true, + killDeadChannels, + recoverIsolatedChannels, + recoverVFE, + recoverFE, + laserMIN, + laserMAX, + flagmask); + + } // end channel + } + }; + class KernelCreateEcalRechit { public: template >> @@ -61,6 +423,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { // set the output collection size scalars if (ch == 0) { ebRecHits.size() = nchannelsEB; + } else if (ch == nchannelsEB) { eeRecHits.size() = nchannelsEE; } @@ -80,302 +443,40 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { auto* did = isEndcap ? eeRecHits.id() : ebRecHits.id(); auto* energy = isEndcap ? eeRecHits.energy() : ebRecHits.energy(); auto* time = isEndcap ? eeRecHits.time() : ebRecHits.time(); - //auto* chi2 = isEndcap ? eeRecHits.chi2() : ebRecHits.chi2(); auto* flagBits = isEndcap ? eeRecHits.flagBits() : ebRecHits.flagBits(); auto* extra = isEndcap ? eeRecHits.extra() : ebRecHits.extra(); - // only two values for ADC to GeV, EB or EE - auto const adc2gev_to_use = isEndcap ? conditionsDev.adcToGeVConstantEE() : conditionsDev.adcToGeVConstantEB(); - - // simple copy of input det id to output - did[inputCh] = didCh[inputCh]; - - auto const did_to_use = DetId{didCh[inputCh]}; - - auto const isBarrel = did_to_use.subdetId() == EcalBarrel; - auto const hashedId = isBarrel ? ecal::reconstruction::hashedIndexEB(did_to_use.rawId()) - : nchannelsEB + ecal::reconstruction::hashedIndexEE(did_to_use.rawId()); - - auto const intercalib = conditionsDev.intercalibConstants()[hashedId]; - - auto const timeCalib = conditionsDev.timeCalibConstants()[hashedId]; - auto const timeOffset = isEndcap ? conditionsDev.timeOffsetConstantEE() : conditionsDev.timeOffsetConstantEB(); - - // - // AM: ideas - // - // One possibility is to create the map of laser corrections once on CPU - // for all crystals and push them on GPU. - // Then only if the LS is different, update the laser correction - // The variation within a LS is not worth pursuing (<< 0.1% !!) - // and below the precision we can claim on the laser corrections (right?). - // This will save quite some time (also for the CPU version?) - // - - int iLM = 1; - - if (isBarrel) { - iLM = ecal::reconstruction::laserMonitoringRegionEB(did_to_use.rawId()); - } else { - iLM = ecal::reconstruction::laserMonitoringRegionEE(did_to_use.rawId()); - } - - long long t_i = 0, t_f = 0; - float p_i = 0, p_f = 0; - auto const t1 = conditionsDev.laserAPDPNRatios_t1()[iLM - 1]; - auto const t2 = conditionsDev.laserAPDPNRatios_t2()[iLM - 1]; - auto const t3 = conditionsDev.laserAPDPNRatios_t3()[iLM - 1]; - auto const p1 = conditionsDev.laserAPDPNRatios_p1()[hashedId]; - auto const p2 = conditionsDev.laserAPDPNRatios_p2()[hashedId]; - auto const p3 = conditionsDev.laserAPDPNRatios_p3()[hashedId]; - - // laser - if (eventTime >= t1 && eventTime < t2) { - t_i = t1; - t_f = t2; - p_i = p1; - p_f = p2; - } else if (eventTime >= t2 && eventTime <= t3) { - t_i = t2; - t_f = t3; - p_i = p2; - p_f = p3; - } else if (eventTime < t1) { - t_i = t1; - t_f = t2; - p_i = p1; - p_f = p2; - } else if (eventTime > t3) { - t_i = t2; - t_f = t3; - p_i = p2; - p_f = p3; - } - - long long lt_i = 0, lt_f = 0; - float lp_i = 0, lp_f = 0; - auto const lt1 = conditionsDev.linearCorrections_t1()[iLM - 1]; - auto const lt2 = conditionsDev.linearCorrections_t2()[iLM - 1]; - auto const lt3 = conditionsDev.linearCorrections_t3()[iLM - 1]; - auto const lp1 = conditionsDev.linearCorrections_p1()[hashedId]; - auto const lp2 = conditionsDev.linearCorrections_p2()[hashedId]; - auto const lp3 = conditionsDev.linearCorrections_p3()[hashedId]; - - // linear corrections - if (eventTime >= lt1 && eventTime < lt2) { - lt_i = lt1; - lt_f = lt2; - lp_i = lp1; - lp_f = lp2; - } else if (eventTime >= lt2 && eventTime <= lt3) { - lt_i = lt2; - lt_f = lt3; - lp_i = lp2; - lp_f = lp3; - } else if (eventTime < lt1) { - lt_i = lt1; - lt_f = lt2; - lp_i = lp1; - lp_f = lp2; - } else if (eventTime > lt3) { - lt_i = lt2; - lt_f = lt3; - lp_i = lp2; - lp_f = lp3; - } - - // apdpnref and alpha - auto const apdpnref = conditionsDev.laserAPDPNref()[hashedId]; - auto const alpha = conditionsDev.laserAlpha()[hashedId]; - - // now calculate transparency correction - float lasercalib = 1.; - if (apdpnref != 0 && (t_i - t_f) != 0 && (lt_i - lt_f) != 0) { - long long tt = eventTime; // never subtract two unsigned! - auto const interpolatedLaserResponse = - p_i / apdpnref + static_cast(tt - t_i) * (p_f - p_i) / (apdpnref * static_cast(t_f - t_i)); - - auto interpolatedLinearResponse = - lp_i / apdpnref + static_cast(tt - lt_i) * (lp_f - lp_i) / - (apdpnref * static_cast(lt_f - lt_i)); // FIXED BY FC - - if (interpolatedLinearResponse > 2.f || interpolatedLinearResponse < 0.1f) { - interpolatedLinearResponse = 1.f; - } - if (interpolatedLaserResponse <= 0.) { - lasercalib = 1.; - } else { - auto const interpolatedTransparencyResponse = interpolatedLaserResponse / interpolatedLinearResponse; - lasercalib = 1.f / (std::pow(interpolatedTransparencyResponse, alpha) * interpolatedLinearResponse); - } - } - - // - // Check for channels to be excluded from reconstruction - // - // Default energy not to be updated if "channelStatusToBeExcluded" - // Exploited later by the module "EcalRecHitConvertGPU2CPUFormat" - energy[inputCh] = -1; //un-physical default - - // default values for the flags - flagBits[inputCh] = 0; - extra[inputCh] = 0; - - auto const dbChStatus = static_cast(conditionsDev.channelStatus()[hashedId] & - EcalChannelStatusCode::chStatusMask); - auto const& exclChStatCodes = parametersDev.channelStatusCodesToBeExcluded(); - if (exclChStatCodes[dbChStatus]) { - // skip the channel if the channel status bit is set and should be excluded - continue; - } - - // Take our association map of dbChStatuses-> recHit flagbits and return the appropriate flagbit word - auto const& recoFlagBits = parametersDev.recoFlagBits()[dbChStatus]; - flagBits[inputCh] = recoFlagBits; - - if ((flagmask & recoFlagBits) && killDeadChannels) { - // skip this channel - continue; - } - - // - // multiply the adc counts with factors to get the energy in GeV - // - energy[inputCh] = amplitude[inputCh] * adc2gev_to_use * intercalib * lasercalib; - - // time - time[inputCh] = jitter[inputCh] * ecalPh1::Samp_Period + timeCalib + timeOffset; - - // NB: calculate the "flagBits extra" --> not really "flags", but actually an encoded version of energy uncertainty, time unc., ... - - // - // extra packing ... - // - uint32_t extravar = 0; - - // chi2 - // truncate - auto const chi2 = chi2_in[inputCh] > 64 ? 64 : chi2_in[inputCh]; - // use 7 bits - uint32_t const rawChi2 = lround(chi2 / 64. * ((1 << 7) - 1)); - extravar = ecal::reconstruction::rechitSetMasked(extravar, rawChi2, 0, 7); - - // energy uncertainty - auto const energyError = amplitudeError[inputCh] * adc2gev_to_use * intercalib * lasercalib; - uint32_t rawEnergy = 0; - if (energyError > 0.001) { - uint16_t const exponent = static_cast(ecal::reconstruction::rechitGetPower10(energyError)); - uint16_t significand = lround(energyError * ip10[exponent]); - // use 13 bits (3 exponent, 10 significand) - rawEnergy = exponent << 10 | significand; - } - extravar = ecal::reconstruction::rechitSetMasked(extravar, rawEnergy, 8, 13); - - // time uncertainty directly from uncalib rechit - uint8_t const timeErrBits = aux[inputCh] & 0xFF; - extravar = ecal::reconstruction::rechitSetMasked(extravar, timeErrBits, 24, 8); - - // - // set output extra variable - // - extra[inputCh] = extravar; - - // - // additional flags setting - // using correctly the flags as calculated at the UncalibRecHit stage - // - bool good = true; - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kLeadingEdgeRecovered)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kLeadingEdgeRecovered); - good = false; - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kSaturated)) { - // leading edge recovery failed - still keep the information - // about the saturation and do not flag as dead - setFlag(flagBits[inputCh], EcalRecHit::Flags::kSaturated); - good = false; - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kOutOfTime)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kOutOfTime); - good = false; - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kPoorReco)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorReco); - good = false; - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain6)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain6); - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain1)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain1); - } - - if (good) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kGood); - } - - if ((isBarrel && (lasercalib < EBLaserMIN || lasercalib > EBLaserMAX)) || - (!isBarrel && (lasercalib < EELaserMIN || lasercalib > EELaserMAX))) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorCalib); - } - - // recover, killing, and other stuff - // - // Structure: - // EB - // EE - // - // - single MVA - // - democratic sharing - // - kill all the other cases - - // recoverable channel status codes - if (dbChStatus == EcalChannelStatusCode::Code::kFixedG0 || - dbChStatus == EcalChannelStatusCode::Code::kNonRespondingIsolated || - dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { - bool is_Single = false; - bool is_FE = false; - bool is_VFE = false; - - if (dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { - is_VFE = true; - } else if (dbChStatus == EcalChannelStatusCode::Code::kDeadFE) { - is_FE = true; - } else { - is_Single = true; - } + bool const recoverIsolatedChannels = isEndcap ? recoverEEIsolatedChannels : recoverEBIsolatedChannels; + bool const recoverVFE = isEndcap ? recoverEEVFE : recoverEBVFE; + bool const recoverFE = isEndcap ? recoverEEFE : recoverEBFE; + float const laserMIN = isEndcap ? EELaserMIN : EBLaserMIN; + float const laserMAX = isEndcap ? EELaserMAX : EBLaserMAX; + + makeRecHit(inputCh, + didCh, + amplitude, + amplitudeError, + jitter, + aux, + chi2_in, + flags_in, + did, + energy, + time, + flagBits, + extra, + conditionsDev, + parametersDev, + eventTime, + false, + killDeadChannels, + recoverIsolatedChannels, + recoverVFE, + recoverFE, + laserMIN, + laserMAX, + flagmask); - // EB - if (isBarrel) { - if (is_Single || is_FE || is_VFE) { - if (is_Single && (recoverEBIsolatedChannels || !killDeadChannels)) { - // single MVA - // TODO - } else if (is_FE && (recoverEBFE || !killDeadChannels)) { - // democratic sharing - // TODO - } else { - // kill all the other cases - energy[inputCh] = 0.; - // TODO: set flags - } - } - } else { // EE - if (is_Single || is_FE || is_VFE) { - if (is_Single && (recoverEEIsolatedChannels || !killDeadChannels)) { - // single MVA - // TODO - } else if (is_FE && (recoverEEFE || !killDeadChannels)) { - // democratic sharing - // TODO - } else { - // kill all the other cases - energy[inputCh] = 0.; - // TODO: set flags - } - } - } - } } // end channel } }; From 897543e4d309e4c0c72176375749f80e3b2c1479 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 19 Oct 2024 00:20:30 +0200 Subject: [PATCH 293/418] Add DQM CPU vs. GPU comparisons for additional ECAL rechit variables. --- .../python/ecalGpuTask_cfi.py | 232 ++++++++++++++++++ DQM/EcalMonitorTasks/src/GpuTask.cc | 60 +++++ 2 files changed, 292 insertions(+) diff --git a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py index 9cb6322cca3d2..ff2079b493bbd 100644 --- a/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/ecalGpuTask_cfi.py @@ -748,6 +748,58 @@ ), description = cms.untracked.string('CPU Rec Hit Flags') ), + RecHitCpuChi2 = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit chi2 cpu'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(50.), + title = cms.untracked.string('Chi2') + ), + description = cms.untracked.string('CPU Rec Hit Chi2') + ), + RecHitCpuEnergyError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit energyerror cpu'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('Energy error (Gev)') + ), + description = cms.untracked.string('CPU Rec Hit Energy Error (GeV)') + ), + RecHitCpuTimeError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit timeerror cpu'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('Time error (ns)') + ), + description = cms.untracked.string('CPU Rec Hit Time Error (ns)') + ), + RecHitCpuNonCorrectedTime = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit non corrected time cpu'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-25.), + high = cms.untracked.double(25.0), + title = cms.untracked.string('Non corrected time (ns)') + ), + description = cms.untracked.string('CPU Rec Hit non corrected time (ns)') + ), # GPU RecHit (optional) RecHitGpu = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit nHits gpu'), @@ -801,6 +853,58 @@ ), description = cms.untracked.string('GPU Rec Hit Flags') ), + RecHitGpuChi2 = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit chi2 gpu'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(50.), + title = cms.untracked.string('Chi2') + ), + description = cms.untracked.string('GPU Rec Hit Chi2') + ), + RecHitGpuEnergyError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit energyerror gpu'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('Energy error (Gev)') + ), + description = cms.untracked.string('GPU Rec Hit Energy Error (GeV)') + ), + RecHitGpuTimeError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit timeerror gpu'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('Time error (ns)') + ), + description = cms.untracked.string('GPU Rec Hit Time Error (ns)') + ), + RecHitGpuNonCorrectedTime = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit non corrected time gpu'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-25.), + high = cms.untracked.double(25.0), + title = cms.untracked.string('Non corrected time (ns)') + ), + description = cms.untracked.string('GPU Rec Hit non corrected time (ns)') + ), # RecHit GPU-CPU Difference RecHitGpuCpu = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit nHits gpu-cpu diff'), @@ -854,6 +958,58 @@ ), description = cms.untracked.string('GPU-CPU differnece of Rec Hit Flags') ), + RecHitGpuCpuChi2 = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit chi2 gpu-cpu diff'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-10.0), + high = cms.untracked.double(10.0), + title = cms.untracked.string('GPU-CPU Chi2') + ), + description = cms.untracked.string('GPU-CPU difference of Rec Hit Chi2') + ), + RecHitGpuCpuEnergyError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit energyerror gpu-cpu diff'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-1.0), + high = cms.untracked.double(1.0), + title = cms.untracked.string('GPU-CPU Energy Error (GeV)') + ), + description = cms.untracked.string('GPU-CPU difference of Rec Hit Energy Error (GeV)') + ), + RecHitGpuCpuTimeError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit timeerror gpu-cpu diff'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-1.0), + high = cms.untracked.double(1.0), + title = cms.untracked.string('GPU-CPU Time Error (ns)') + ), + description = cms.untracked.string('GPU-CPU difference of Rec Hit Time Error (ns)') + ), + RecHitGpuCpuNonCorrectedTime = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit non corrected time gpu-cpu diff'), + kind = cms.untracked.string('TH1F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(100), + low = cms.untracked.double(-2.5), + high = cms.untracked.double(2.5), + title = cms.untracked.string('GPU-CPU non corrected time (ns)') + ), + description = cms.untracked.string('GPU-CPU difference of Rec Hit non corrected time (ns)') + ), # RecHit 2D plots RecHit2D = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit nHits gpu-cpu map2D'), @@ -930,6 +1086,82 @@ title = cms.untracked.string('GPU Flags') ), description = cms.untracked.string('Rec Hit Flags. GPU vs CPU comparison') + ), + RecHit2DChi2 = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit chi2 gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0), + high = cms.untracked.double(50.0), + title = cms.untracked.string('CPU Chi2') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0), + high = cms.untracked.double(50.0), + title = cms.untracked.string('GPU Chi2') + ), + description = cms.untracked.string('Rec Hit Chi2. GPU vs CPU comparison') + ), + RecHit2DEnergyError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit energyerror gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('CPU Energy Error (Gev)') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('GPU Energy Error (Gev)') + ), + description = cms.untracked.string('Rec Hit Energy Error (GeV). GPU vs CPU comparison') + ), + RecHit2DTimeError = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit timeerror gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('CPU Time Error (ns)') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(50), + low = cms.untracked.double(0), + high = cms.untracked.double(5.0), + title = cms.untracked.string('GPU Time Error (ns)') + ), + description = cms.untracked.string('Rec Hit Time Error (ns). GPU vs CPU comparison') + ), + RecHit2DNonCorrectedTime = cms.untracked.PSet( + path = cms.untracked.string('%(subdet)s/%(prefix)sGpuTask/RecHits/%(prefix)sGT rec hit non corrected time gpu-cpu map2D'), + kind = cms.untracked.string('TH2F'), + otype = cms.untracked.string('Ecal2P'), + btype = cms.untracked.string('User'), + xaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(50), + low = cms.untracked.double(-25.0), + high = cms.untracked.double(25.0), + title = cms.untracked.string('CPU Non Corrected Time (ns)') + ), + yaxis = cms.untracked.PSet( + nbins = cms.untracked.int32(50), + low = cms.untracked.double(-25.0), + high = cms.untracked.double(25.0), + title = cms.untracked.string('GPU Non Corrected Time (ns)') + ), + description = cms.untracked.string('Rec Hit non corrected time (ns). GPU vs CPU comparison') ) ) ) diff --git a/DQM/EcalMonitorTasks/src/GpuTask.cc b/DQM/EcalMonitorTasks/src/GpuTask.cc index 3af951c398e71..eace1a7a2bb0a 100644 --- a/DQM/EcalMonitorTasks/src/GpuTask.cc +++ b/DQM/EcalMonitorTasks/src/GpuTask.cc @@ -96,10 +96,18 @@ namespace ecaldqm { MEs_.erase(std::string("RecHitCpuEnergy")); MEs_.erase(std::string("RecHitCpuTime")); MEs_.erase(std::string("RecHitCpuFlags")); + MEs_.erase(std::string("RecHitCpuChi2")); + MEs_.erase(std::string("RecHitCpuEnergyError")); + MEs_.erase(std::string("RecHitCpuTimeError")); + MEs_.erase(std::string("RecHitCpuNonCorrectedTime")); MEs_.erase(std::string("RecHitGpuCpu")); MEs_.erase(std::string("RecHitGpuCpuEnergy")); MEs_.erase(std::string("RecHitGpuCpuTime")); MEs_.erase(std::string("RecHitGpuCpuFlags")); + MEs_.erase(std::string("RecHitGpuCpuChi2")); + MEs_.erase(std::string("RecHitGpuCpuEnergyError")); + MEs_.erase(std::string("RecHitGpuCpuTimeError")); + MEs_.erase(std::string("RecHitGpuCpuNonCorrectedTime")); } if (!digi1D_) { MEs_.erase(std::string("DigiGpu")); @@ -121,6 +129,10 @@ namespace ecaldqm { MEs_.erase(std::string("RecHitGpuEnergy")); MEs_.erase(std::string("RecHitGpuTime")); MEs_.erase(std::string("RecHitGpuFlags")); + MEs_.erase(std::string("RecHitGpuChi2")); + MEs_.erase(std::string("RecHitGpuEnergyError")); + MEs_.erase(std::string("RecHitGpuTimeError")); + MEs_.erase(std::string("RecHitGpuNonCorrectedTime")); } if (!digi2D_) { MEs_.erase(std::string("Digi2D")); @@ -142,6 +154,10 @@ namespace ecaldqm { MEs_.erase(std::string("RecHit2DEnergy")); MEs_.erase(std::string("RecHit2DTime")); MEs_.erase(std::string("RecHit2DFlags")); + MEs_.erase(std::string("RecHit2DChi2")); + MEs_.erase(std::string("RecHit2DEnergyError")); + MEs_.erase(std::string("RecHit2DTimeError")); + MEs_.erase(std::string("RecHit2DNonCorrectedTime")); } } @@ -469,6 +485,10 @@ namespace ecaldqm { MESet& meRecHitCpuEnergy(MEs_.at("RecHitCpuEnergy")); MESet& meRecHitCpuTime(MEs_.at("RecHitCpuTime")); MESet& meRecHitCpuFlags(MEs_.at("RecHitCpuFlags")); + MESet& meRecHitCpuChi2(MEs_.at("RecHitCpuChi2")); + MESet& meRecHitCpuEnergyError(MEs_.at("RecHitCpuEnergyError")); + MESet& meRecHitCpuTimeError(MEs_.at("RecHitCpuTimeError")); + MESet& meRecHitCpuNonCorrectedTime(MEs_.at("RecHitCpuNonCorrectedTime")); int iSubdet(collection == kEBCpuRecHit ? EcalBarrel : EcalEndcap); @@ -485,10 +505,18 @@ namespace ecaldqm { float cpuEnergy(cpuHit.energy()); float cpuTime(cpuHit.time()); uint32_t cpuFlags(cpuHit.flagsBits()); + float cpuChi2(cpuHit.chi2()); + float cpuEnergyError(cpuHit.energyError()); + float cpuTimeError(cpuHit.timeError()); + float cpuNonCorrectedTime(cpuHit.nonCorrectedTime()); meRecHitCpuEnergy.fill(getEcalDQMSetupObjects(), iSubdet, cpuEnergy); meRecHitCpuTime.fill(getEcalDQMSetupObjects(), iSubdet, cpuTime); meRecHitCpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, cpuFlags); + meRecHitCpuChi2.fill(getEcalDQMSetupObjects(), iSubdet, cpuChi2); + meRecHitCpuEnergyError.fill(getEcalDQMSetupObjects(), iSubdet, cpuEnergyError); + meRecHitCpuTimeError.fill(getEcalDQMSetupObjects(), iSubdet, cpuTimeError); + meRecHitCpuNonCorrectedTime.fill(getEcalDQMSetupObjects(), iSubdet, cpuNonCorrectedTime); } } @@ -497,6 +525,10 @@ namespace ecaldqm { MESet& meRecHitGpuCpuEnergy(MEs_.at("RecHitGpuCpuEnergy")); MESet& meRecHitGpuCpuTime(MEs_.at("RecHitGpuCpuTime")); MESet& meRecHitGpuCpuFlags(MEs_.at("RecHitGpuCpuFlags")); + MESet& meRecHitGpuCpuChi2(MEs_.at("RecHitGpuCpuChi2")); + MESet& meRecHitGpuCpuEnergyError(MEs_.at("RecHitGpuCpuEnergyError")); + MESet& meRecHitGpuCpuTimeError(MEs_.at("RecHitGpuCpuTimeError")); + MESet& meRecHitGpuCpuNonCorrectedTime(MEs_.at("RecHitGpuCpuNonCorrectedTime")); int iSubdet(collection == kEBGpuRecHit ? EcalBarrel : EcalEndcap); @@ -536,33 +568,61 @@ namespace ecaldqm { float gpuEnergy(gpuHit.energy()); float gpuTime(gpuHit.time()); uint32_t gpuFlags(gpuHit.flagsBits()); + float gpuChi2(gpuHit.chi2()); + float gpuEnergyError(gpuHit.energyError()); + float gpuTimeError(gpuHit.timeError()); + float gpuNonCorrectedTime(gpuHit.nonCorrectedTime()); float cpuEnergy(cpuItr->energy()); float cpuTime(cpuItr->time()); uint32_t cpuFlags(cpuItr->flagsBits()); + float cpuChi2(cpuItr->chi2()); + float cpuEnergyError(cpuItr->energyError()); + float cpuTimeError(cpuItr->timeError()); + float cpuNonCorrectedTime(cpuItr->nonCorrectedTime()); meRecHitGpuCpuEnergy.fill(getEcalDQMSetupObjects(), iSubdet, gpuEnergy - cpuEnergy); meRecHitGpuCpuTime.fill(getEcalDQMSetupObjects(), iSubdet, gpuTime - cpuTime); meRecHitGpuCpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags - cpuFlags); + meRecHitGpuCpuChi2.fill(getEcalDQMSetupObjects(), iSubdet, gpuChi2 - cpuChi2); + meRecHitGpuCpuEnergyError.fill(getEcalDQMSetupObjects(), iSubdet, gpuEnergyError - cpuEnergyError); + meRecHitGpuCpuTimeError.fill(getEcalDQMSetupObjects(), iSubdet, gpuTimeError - cpuTimeError); + meRecHitGpuCpuNonCorrectedTime.fill(getEcalDQMSetupObjects(), iSubdet, gpuNonCorrectedTime - cpuNonCorrectedTime); if (rechit1D_) { MESet& meRecHitGpuEnergy(MEs_.at("RecHitGpuEnergy")); MESet& meRecHitGpuTime(MEs_.at("RecHitGpuTime")); MESet& meRecHitGpuFlags(MEs_.at("RecHitGpuFlags")); + MESet& meRecHitGpuChi2(MEs_.at("RecHitGpuChi2")); + MESet& meRecHitGpuEnergyError(MEs_.at("RecHitGpuEnergyError")); + MESet& meRecHitGpuTimeError(MEs_.at("RecHitGpuTimeError")); + MESet& meRecHitGpuNonCorrectedTime(MEs_.at("RecHitGpuNonCorrectedTime")); meRecHitGpuEnergy.fill(getEcalDQMSetupObjects(), iSubdet, gpuEnergy); meRecHitGpuTime.fill(getEcalDQMSetupObjects(), iSubdet, gpuTime); meRecHitGpuFlags.fill(getEcalDQMSetupObjects(), iSubdet, gpuFlags); + meRecHitGpuChi2.fill(getEcalDQMSetupObjects(), iSubdet, gpuChi2); + meRecHitGpuEnergyError.fill(getEcalDQMSetupObjects(), iSubdet, gpuEnergyError); + meRecHitGpuTimeError.fill(getEcalDQMSetupObjects(), iSubdet, gpuTimeError); + meRecHitGpuNonCorrectedTime.fill(getEcalDQMSetupObjects(), iSubdet, gpuNonCorrectedTime); } if (rechit2D_) { MESet& meRecHit2DEnergy(MEs_.at("RecHit2DEnergy")); MESet& meRecHit2DTime(MEs_.at("RecHit2DTime")); MESet& meRecHit2DFlags(MEs_.at("RecHit2DFlags")); + MESet& meRecHit2DChi2(MEs_.at("RecHit2DChi2")); + MESet& meRecHit2DEnergyError(MEs_.at("RecHit2DEnergyError")); + MESet& meRecHit2DTimeError(MEs_.at("RecHit2DTimeError")); + MESet& meRecHit2DNonCorrectedTime(MEs_.at("RecHit2DNonCorrectedTime")); meRecHit2DEnergy.fill(getEcalDQMSetupObjects(), iSubdet, cpuEnergy, gpuEnergy); meRecHit2DTime.fill(getEcalDQMSetupObjects(), iSubdet, cpuTime, gpuTime); meRecHit2DFlags.fill(getEcalDQMSetupObjects(), iSubdet, cpuFlags, gpuFlags); + meRecHit2DChi2.fill(getEcalDQMSetupObjects(), iSubdet, cpuChi2, gpuChi2); + meRecHit2DEnergyError.fill(getEcalDQMSetupObjects(), iSubdet, cpuEnergyError, gpuEnergyError); + meRecHit2DTimeError.fill(getEcalDQMSetupObjects(), iSubdet, cpuTimeError, gpuTimeError); + meRecHit2DNonCorrectedTime.fill(getEcalDQMSetupObjects(), iSubdet, cpuNonCorrectedTime, gpuNonCorrectedTime); } } } From 00cd8774cb98b0796a6d84cc00d6217d471d58ad Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 24 Nov 2024 00:58:12 +0100 Subject: [PATCH 294/418] Implement comments. --- .../interface/EcalRecHitParametersRcd.h | 8 - .../DataRecord/src/EcalRecHitParametersRcd.cc | 4 - DataFormats/CaloRecHit/interface/CaloRecHit.h | 16 +- DataFormats/EcalRecHit/src/classes_def.xml | 8 +- .../plugins/EcalRecHitSoAToLegacy.cc | 8 +- .../plugins/alpaka/EcalRecHitBuilder.dev.cc | 27 +- ...r.cc => EcalRecHitConditionsESProducer.cc} | 6 +- ...r.cc => EcalRecHitParametersESProducer.cc} | 20 +- .../alpaka/EcalRecHitProducerPortable.cc | 10 +- .../alpaka/EnergyComputationKernels.dev.cc | 318 ++++++++++++++++ .../plugins/alpaka/EnergyComputationKernels.h | 355 ++---------------- .../EcalRecProducers/python/ecalRecHit_cff.py | 12 +- .../plugins/KernelManagerHGCalCellPositions.h | 6 - .../plugins/KernelManagerHGCalRecHit.h | 4 - 14 files changed, 385 insertions(+), 417 deletions(-) delete mode 100644 CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h delete mode 100644 CondFormats/DataRecord/src/EcalRecHitParametersRcd.cc rename RecoLocalCalo/EcalRecProducers/plugins/alpaka/{EcalRecHitConditionsHostESProducer.cc => EcalRecHitConditionsESProducer.cc} (97%) rename RecoLocalCalo/EcalRecProducers/plugins/alpaka/{EcalRecHitParametersHostESProducer.cc => EcalRecHitParametersESProducer.cc} (85%) create mode 100644 RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.dev.cc diff --git a/CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h b/CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h deleted file mode 100644 index 978add26af250..0000000000000 --- a/CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef CondFormats_DataRecord_EcalRecHitParametersRcd_h -#define CondFormats_DataRecord_EcalRecHitParametersRcd_h - -#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" - -class EcalRecHitParametersRcd : public edm::eventsetup::EventSetupRecordImplementation {}; - -#endif diff --git a/CondFormats/DataRecord/src/EcalRecHitParametersRcd.cc b/CondFormats/DataRecord/src/EcalRecHitParametersRcd.cc deleted file mode 100644 index c61c3ee475d91..0000000000000 --- a/CondFormats/DataRecord/src/EcalRecHitParametersRcd.cc +++ /dev/null @@ -1,4 +0,0 @@ -#include "CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h" -#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" - -EVENTSETUP_RECORD_REG(EcalRecHitParametersRcd); diff --git a/DataFormats/CaloRecHit/interface/CaloRecHit.h b/DataFormats/CaloRecHit/interface/CaloRecHit.h index e861ed09f2bc3..5a6c2e6aecf53 100644 --- a/DataFormats/CaloRecHit/interface/CaloRecHit.h +++ b/DataFormats/CaloRecHit/interface/CaloRecHit.h @@ -4,17 +4,15 @@ #include "DataFormats/DetId/interface/DetId.h" #include -#ifdef __CUDA_ARCH__ +#if defined(__CUDA_ARCH__) or defined(__HIP_DEVICE_COMPILE__) __constant__ -#else -constexpr #endif - uint32_t calo_rechit_masks[] = {0x00000000u, 0x00000001u, 0x00000003u, 0x00000007u, 0x0000000fu, 0x0000001fu, - 0x0000003fu, 0x0000007fu, 0x000000ffu, 0x000001ffu, 0x000003ffu, 0x000007ffu, - 0x00000fffu, 0x00001fffu, 0x00003fffu, 0x00007fffu, 0x0000ffffu, 0x0001ffffu, - 0x0003ffffu, 0x0007ffffu, 0x000fffffu, 0x001fffffu, 0x003fffffu, 0x007fffffu, - 0x00ffffffu, 0x01ffffffu, 0x03ffffffu, 0x07ffffffu, 0x0fffffffu, 0x1fffffffu, - 0x3fffffffu, 0x7fffffffu, 0xffffffffu}; + constexpr uint32_t calo_rechit_masks[] = { + 0x00000000u, 0x00000001u, 0x00000003u, 0x00000007u, 0x0000000fu, 0x0000001fu, 0x0000003fu, + 0x0000007fu, 0x000000ffu, 0x000001ffu, 0x000003ffu, 0x000007ffu, 0x00000fffu, 0x00001fffu, + 0x00003fffu, 0x00007fffu, 0x0000ffffu, 0x0001ffffu, 0x0003ffffu, 0x0007ffffu, 0x000fffffu, + 0x001fffffu, 0x003fffffu, 0x007fffffu, 0x00ffffffu, 0x01ffffffu, 0x03ffffffu, 0x07ffffffu, + 0x0fffffffu, 0x1fffffffu, 0x3fffffffu, 0x7fffffffu, 0xffffffffu}; /** \class CaloRecHit * diff --git a/DataFormats/EcalRecHit/src/classes_def.xml b/DataFormats/EcalRecHit/src/classes_def.xml index 128d9bb01c7a4..7d1cdb32f56e7 100644 --- a/DataFormats/EcalRecHit/src/classes_def.xml +++ b/DataFormats/EcalRecHit/src/classes_def.xml @@ -42,16 +42,12 @@ - - - + - - - + diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc index d3a76e7da7ce1..fba6c57f2a72f 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc @@ -5,13 +5,13 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/Framework/interface/global/EDProducer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/EmptyGroupDescription.h" #include "FWCore/Utilities/interface/EDGetToken.h" #include "FWCore/Utilities/interface/EDPutToken.h" -class EcalRecHitSoAToLegacy : public edm::stream::EDProducer<> { +class EcalRecHitSoAToLegacy : public edm::global::EDProducer<> { public: explicit EcalRecHitSoAToLegacy(edm::ParameterSet const &ps); ~EcalRecHitSoAToLegacy() override = default; @@ -19,7 +19,7 @@ class EcalRecHitSoAToLegacy : public edm::stream::EDProducer<> { private: using InputProduct = EcalRecHitHostCollection; - void produce(edm::Event &, edm::EventSetup const &) override; + void produce(edm::StreamID, edm::Event &, edm::EventSetup const &) const override; private: const bool isPhase2_; @@ -51,7 +51,7 @@ EcalRecHitSoAToLegacy::EcalRecHitSoAToLegacy(edm::ParameterSet const &ps) recHitsCPUEEToken_{isPhase2_ ? edm::EDPutTokenT{} : produces(ps.getParameter("recHitsLabelCPUEE"))} {} -void EcalRecHitSoAToLegacy::produce(edm::Event &event, edm::EventSetup const &setup) { +void EcalRecHitSoAToLegacy::produce(edm::StreamID sid, edm::Event &event, edm::EventSetup const &setup) const { auto const &recHitsEBColl = event.get(recHitsPortableEB_); auto const &recHitsEBCollView = recHitsEBColl.const_view(); auto recHitsCPUEB = std::make_unique(); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc index 5c9c85b280398..2806f5988d4bd 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc @@ -24,7 +24,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { ConfigurationParameters const& configParams, bool const isPhase2) { auto nchannels = static_cast(ebUncalibRecHits->const_view().metadata().size()); - if (!isPhase2 && eeUncalibRecHits != nullptr) { + if (!isPhase2) { nchannels += static_cast(eeUncalibRecHits->const_view().metadata().size()); } @@ -35,7 +35,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { auto constexpr threads = nchannels_per_block; auto const blocks = cms::alpakatools::divide_up_by(nchannels, threads); auto workDiv = cms::alpakatools::make_workdiv(blocks, threads); - if (!isPhase2 && eeUncalibRecHits != nullptr) { + if (!isPhase2) { alpaka::exec(queue, workDiv, KernelCreateEcalRechit{}, @@ -46,19 +46,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { conditionsDev.const_view(), parametersDev.const_view(), eventTime, - // configuration - configParams.killDeadChannels, - configParams.recoverEBIsolatedChannels, - configParams.recoverEEIsolatedChannels, - configParams.recoverEBVFE, - configParams.recoverEEVFE, - configParams.recoverEBFE, - configParams.recoverEEFE, - configParams.EBLaserMIN, - configParams.EELaserMIN, - configParams.EBLaserMAX, - configParams.EELaserMAX, - configParams.flagmask); + configParams); } else { alpaka::exec(queue, workDiv, @@ -68,14 +56,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { conditionsDev.const_view(), parametersDev.const_view(), eventTime, - // configuration - configParams.killDeadChannels, - configParams.recoverEBIsolatedChannels, - configParams.recoverEBVFE, - configParams.recoverEBFE, - configParams.EBLaserMIN, - configParams.EBLaserMAX, - configParams.flagmask); + configParams); } } diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsHostESProducer.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsESProducer.cc similarity index 97% rename from RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsHostESProducer.cc rename to RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsESProducer.cc index fab591d65b5fc..67eeeb54520b4 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsHostESProducer.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitConditionsESProducer.cc @@ -36,9 +36,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { - class EcalRecHitConditionsHostESProducer : public ESProducer { + class EcalRecHitConditionsESProducer : public ESProducer { public: - EcalRecHitConditionsHostESProducer(edm::ParameterSet const& iConfig) + EcalRecHitConditionsESProducer(edm::ParameterSet const& iConfig) : ESProducer(iConfig), isPhase2_{iConfig.getParameter("isPhase2")} { auto cc = setWhatProduced(this); adcToGeVConstantToken_ = cc.consumes(); @@ -195,4 +195,4 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } // namespace ALPAKA_ACCELERATOR_NAMESPACE -DEFINE_FWK_EVENTSETUP_ALPAKA_MODULE(EcalRecHitConditionsHostESProducer); +DEFINE_FWK_EVENTSETUP_ALPAKA_MODULE(EcalRecHitConditionsESProducer); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersESProducer.cc similarity index 85% rename from RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc rename to RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersESProducer.cc index e4374445a79a2..b57802fedeedc 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersHostESProducer.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersESProducer.cc @@ -1,7 +1,6 @@ #include "CommonTools/Utils/interface/StringToEnumValue.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h" #include "CondFormats/EcalObjects/interface/EcalChannelStatusCode.h" #include "CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h" #include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" @@ -12,22 +11,23 @@ #include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "HeterogeneousCore/AlpakaInterface/interface/host.h" #include "HeterogeneousCore/AlpakaInterface/interface/memory.h" +#include "HeterogeneousCore/CUDACore/interface/JobConfigurationGPURecord.h" namespace ALPAKA_ACCELERATOR_NAMESPACE { - class EcalRecHitParametersHostESProducer : public ESProducer { + class EcalRecHitParametersESProducer : public ESProducer { public: - EcalRecHitParametersHostESProducer(edm::ParameterSet const&); - ~EcalRecHitParametersHostESProducer() override = default; + EcalRecHitParametersESProducer(edm::ParameterSet const&); + ~EcalRecHitParametersESProducer() override = default; static void fillDescriptions(edm::ConfigurationDescriptions&); - std::unique_ptr produce(EcalRecHitParametersRcd const&); + std::unique_ptr produce(JobConfigurationGPURecord const&); private: std::bitset channelStatusCodesToBeExcluded_; RecoFlagBitsArray recoFlagBitsArray_; }; - EcalRecHitParametersHostESProducer::EcalRecHitParametersHostESProducer(edm::ParameterSet const& iConfig) + EcalRecHitParametersESProducer::EcalRecHitParametersESProducer(edm::ParameterSet const& iConfig) : ESProducer(iConfig), recoFlagBitsArray_() { setWhatProduced(this); @@ -52,7 +52,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } } - void EcalRecHitParametersHostESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + void EcalRecHitParametersESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; // channel statuses to be exluded from reconstruction desc.add>("ChannelStatusToBeExcluded", @@ -79,8 +79,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { descriptions.addWithDefaultLabel(desc); } - std::unique_ptr EcalRecHitParametersHostESProducer::produce( - EcalRecHitParametersRcd const& iRecord) { + std::unique_ptr EcalRecHitParametersESProducer::produce( + JobConfigurationGPURecord const& iRecord) { size_t const sizeone = 1; auto product = std::make_unique(sizeone, cms::alpakatools::host()); auto view = product->view(); @@ -94,4 +94,4 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } // namespace ALPAKA_ACCELERATOR_NAMESPACE -DEFINE_FWK_EVENTSETUP_ALPAKA_MODULE(EcalRecHitParametersHostESProducer); +DEFINE_FWK_EVENTSETUP_ALPAKA_MODULE(EcalRecHitParametersESProducer); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc index 6d98945fc700f..cc212188a16f0 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitProducerPortable.cc @@ -1,5 +1,4 @@ #include "CondFormats/DataRecord/interface/EcalRecHitConditionsRcd.h" -#include "CondFormats/DataRecord/interface/EcalRecHitParametersRcd.h" #include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h" #include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" #include "DataFormats/EcalRecHit/interface/EcalRecHit.h" @@ -15,6 +14,7 @@ #include "HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h" +#include "HeterogeneousCore/CUDACore/interface/JobConfigurationGPURecord.h" #include "DeclsForKernels.h" #include "EcalRecHitBuilder.h" @@ -45,7 +45,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // conditions tokens const device::ESGetToken recHitConditionsToken_; - const device::ESGetToken recHitParametersToken_; + const device::ESGetToken recHitParametersToken_; }; void EcalRecHitProducerPortable::fillDescriptions(edm::ConfigurationDescriptions& confDesc) { @@ -132,13 +132,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { isPhase2_ ? std::unique_ptr() : std::make_unique(uncalibRecHitsSizeEE, queue); // reset the size scalar of the SoA // memset takes an alpaka view that is created from the scalar in a view to the portable device collection - auto recHitSizeViewEB = - cms::alpakatools::make_device_view(alpaka::getDev(queue), recHitsDevEB->view().size()); + auto recHitSizeViewEB = cms::alpakatools::make_device_view(queue, recHitsDevEB->view().size()); alpaka::memset(queue, recHitSizeViewEB, 0); if (!isPhase2_) { - auto recHitSizeViewEE = - cms::alpakatools::make_device_view(alpaka::getDev(queue), recHitsDevEE->view().size()); + auto recHitSizeViewEE = cms::alpakatools::make_device_view(queue, recHitsDevEE->view().size()); alpaka::memset(queue, recHitSizeViewEE, 0); } diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.dev.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.dev.cc new file mode 100644 index 0000000000000..f898cef299570 --- /dev/null +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.dev.cc @@ -0,0 +1,318 @@ +#include "CondFormats/EcalObjects/interface/EcalChannelStatusCode.h" +#include "DataFormats/EcalDetId/interface/EcalSubdetector.h" +#include "DataFormats/EcalDigi/interface/EcalConstants.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" +#include "HeterogeneousCore/AlpakaInterface/interface/workdivision.h" + +#include "EnergyComputationKernels.h" + +namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { + + ALPAKA_FN_ACC void makeRecHit(int const inputCh, + uint32_t const* didCh, + float const* amplitude, + float const* amplitudeError, + float const* jitter, + uint32_t const* aux, + float const* chi2_in, + uint32_t const* flags_in, + uint32_t* did, + float* energy, + float* time, + uint32_t* flagBits, + uint32_t* extra, + EcalRecHitConditionsDevice::ConstView conditionsDev, + EcalRecHitParametersDevice::ConstView parametersDev, + // time, used for time dependent corrections + edm::TimeValue_t const& eventTime, + // configuration + bool const isPhase2, + bool const killDeadChannels, + bool const recoverIsolatedChannels, + bool const recoverVFE, + bool const recoverFE, + float const laserMIN, + float const laserMAX, + uint32_t flagmask) { + // simple copy of input det id to output + did[inputCh] = didCh[inputCh]; + + auto const did_to_use = DetId{didCh[inputCh]}; + + auto const isBarrel = did_to_use.subdetId() == EcalBarrel; + auto const hashedId = isBarrel ? ecal::reconstruction::hashedIndexEB(did_to_use.rawId()) + : conditionsDev.offsetEE() + ecal::reconstruction::hashedIndexEE(did_to_use.rawId()); + + auto const intercalib = conditionsDev.intercalibConstants()[hashedId]; + + // only two values for ADC to GeV, EB or EE + auto const adc2gev_to_use = isBarrel ? conditionsDev.adcToGeVConstantEB() : conditionsDev.adcToGeVConstantEE(); + + auto const timeCalib = conditionsDev.timeCalibConstants()[hashedId]; + auto const timeOffset = isBarrel ? conditionsDev.timeOffsetConstantEB() : conditionsDev.timeOffsetConstantEE(); + + int iLM = 1; + if (isBarrel) { + iLM = ecal::reconstruction::laserMonitoringRegionEB(did_to_use.rawId()); + } else { + iLM = ecal::reconstruction::laserMonitoringRegionEE(did_to_use.rawId()); + } + + long long t_i = 0, t_f = 0; + float p_i = 0, p_f = 0; + auto const t1 = conditionsDev.laserAPDPNRatios_t1()[iLM - 1]; + auto const t2 = conditionsDev.laserAPDPNRatios_t2()[iLM - 1]; + auto const t3 = conditionsDev.laserAPDPNRatios_t3()[iLM - 1]; + auto const p1 = conditionsDev.laserAPDPNRatios_p1()[hashedId]; + auto const p2 = conditionsDev.laserAPDPNRatios_p2()[hashedId]; + auto const p3 = conditionsDev.laserAPDPNRatios_p3()[hashedId]; + + // laser + if (eventTime >= t1 && eventTime < t2) { + t_i = t1; + t_f = t2; + p_i = p1; + p_f = p2; + } else if (eventTime >= t2 && eventTime <= t3) { + t_i = t2; + t_f = t3; + p_i = p2; + p_f = p3; + } else if (eventTime < t1) { + t_i = t1; + t_f = t2; + p_i = p1; + p_f = p2; + } else if (eventTime > t3) { + t_i = t2; + t_f = t3; + p_i = p2; + p_f = p3; + } + + long long lt_i = 0, lt_f = 0; + float lp_i = 0, lp_f = 0; + auto const lt1 = conditionsDev.linearCorrections_t1()[iLM - 1]; + auto const lt2 = conditionsDev.linearCorrections_t2()[iLM - 1]; + auto const lt3 = conditionsDev.linearCorrections_t3()[iLM - 1]; + auto const lp1 = conditionsDev.linearCorrections_p1()[hashedId]; + auto const lp2 = conditionsDev.linearCorrections_p2()[hashedId]; + auto const lp3 = conditionsDev.linearCorrections_p3()[hashedId]; + + // linear corrections + if (eventTime >= lt1 && eventTime < lt2) { + lt_i = lt1; + lt_f = lt2; + lp_i = lp1; + lp_f = lp2; + } else if (eventTime >= lt2 && eventTime <= lt3) { + lt_i = lt2; + lt_f = lt3; + lp_i = lp2; + lp_f = lp3; + } else if (eventTime < lt1) { + lt_i = lt1; + lt_f = lt2; + lp_i = lp1; + lp_f = lp2; + } else if (eventTime > lt3) { + lt_i = lt2; + lt_f = lt3; + lp_i = lp2; + lp_f = lp3; + } + + // apdpnref and alpha + auto const apdpnref = conditionsDev.laserAPDPNref()[hashedId]; + auto const alpha = conditionsDev.laserAlpha()[hashedId]; + + // now calculate transparency correction + float lasercalib = 1.; + if (apdpnref != 0 && (t_i - t_f) != 0 && (lt_i - lt_f) != 0) { + long long tt = eventTime; // never subtract two unsigned! + auto const interpolatedLaserResponse = + p_i / apdpnref + static_cast(tt - t_i) * (p_f - p_i) / (apdpnref * static_cast(t_f - t_i)); + + auto interpolatedLinearResponse = + lp_i / apdpnref + + static_cast(tt - lt_i) * (lp_f - lp_i) / (apdpnref * static_cast(lt_f - lt_i)); // FIXED BY FC + + if (interpolatedLinearResponse > 2.f || interpolatedLinearResponse < 0.1f) { + interpolatedLinearResponse = 1.f; + } + if (interpolatedLaserResponse <= 0.) { + lasercalib = 1.; + } else { + auto const interpolatedTransparencyResponse = interpolatedLaserResponse / interpolatedLinearResponse; + lasercalib = 1.f / (std::pow(interpolatedTransparencyResponse, alpha) * interpolatedLinearResponse); + } + } + + // + // Check for channels to be excluded from reconstruction + // + // Default energy not to be updated if "channelStatusToBeExcluded" + energy[inputCh] = -1.; //un-physical default + + // default values for the flags + flagBits[inputCh] = 0; + extra[inputCh] = 0; + + auto const dbChStatus = static_cast(conditionsDev.channelStatus()[hashedId] & + EcalChannelStatusCode::chStatusMask); + auto const& exclChStatCodes = parametersDev.channelStatusCodesToBeExcluded(); + if (exclChStatCodes[dbChStatus]) { + // skip the channel if the channel status bit is set and should be excluded + return; + } + + // Take our association map of dbChStatuses-> recHit flagbits and return the appropriate flagbit word + auto const& recoFlagBits = parametersDev.recoFlagBits()[dbChStatus]; + flagBits[inputCh] = recoFlagBits; + + if ((flagmask & recoFlagBits) && killDeadChannels) { + // skip this channel + return; + } + + // + // multiply the adc counts with factors to get the energy in GeV + // + energy[inputCh] = amplitude[inputCh] * adc2gev_to_use * intercalib * lasercalib; + + // time + auto const sampPeriod = isPhase2 ? ecalPh2::Samp_Period : ecalPh1::Samp_Period; + time[inputCh] = jitter[inputCh] * sampPeriod + timeCalib + timeOffset; + + // NB: calculate the "flagBits extra" --> not really "flags", but actually an encoded version of energy uncertainty, time unc., ... + + // + // extra packing ... + // + uint32_t extravar = 0; + + // chi2 + // truncate + auto const chi2 = chi2_in[inputCh] > 64 ? 64 : chi2_in[inputCh]; + // use 7 bits + uint32_t const rawChi2 = lround(chi2 / 64.f * ((1 << 7) - 1)); + extravar = ecal::reconstruction::rechitSetMasked(extravar, rawChi2, 0, 7); + + // energy uncertainty (amplitudeError is currently not set in the portable uncalibrated rec hit producer) + auto const energyError = amplitudeError[inputCh] * adc2gev_to_use * intercalib * lasercalib; + uint32_t rawEnergy = 0; + if (energyError > 0.001) { + uint16_t const exponent = static_cast(ecal::reconstruction::rechitGetPower10(energyError)); + uint16_t significand = lround(energyError * ip10[exponent]); + // use 13 bits (3 exponent, 10 significand) + rawEnergy = exponent << 10 | significand; + } + extravar = ecal::reconstruction::rechitSetMasked(extravar, rawEnergy, 8, 13); + + // time uncertainty directly from uncalib rechit (the jitter error is currently not stored in aux in the portable uncalibrated rec hit producer) + uint8_t const timeErrBits = aux[inputCh] & 0xFF; + extravar = ecal::reconstruction::rechitSetMasked(extravar, timeErrBits, 24, 8); + + // + // set output extra variable + // + extra[inputCh] = extravar; + + // + // additional flags setting + // using correctly the flags as calculated at the UncalibRecHit stage + // + bool good = true; + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kLeadingEdgeRecovered)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kLeadingEdgeRecovered); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kSaturated)) { + // leading edge recovery failed - still keep the information + // about the saturation and do not flag as dead + setFlag(flagBits[inputCh], EcalRecHit::Flags::kSaturated); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kOutOfTime)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kOutOfTime); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kPoorReco)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorReco); + good = false; + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain6)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain6); + } + if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain1)) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain1); + } + + if (good) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kGood); + } + + if (lasercalib < laserMIN || lasercalib > laserMAX) { + setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorCalib); + } + + // recover, killing, and other stuff + // + // Structure: + // EB + // EE + // + // - single MVA + // - democratic sharing + // - kill all the other cases + + // recoverable channel status codes + if (dbChStatus == EcalChannelStatusCode::Code::kFixedG0 || + dbChStatus == EcalChannelStatusCode::Code::kNonRespondingIsolated || + dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { + bool is_Single = false; + bool is_FE = false; + bool is_VFE = false; + + if (dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { + is_VFE = true; + } else if (dbChStatus == EcalChannelStatusCode::Code::kDeadFE) { + is_FE = true; + } else { + is_Single = true; + } + + // EB + if (isBarrel) { + if (is_Single || is_FE || is_VFE) { + if (is_Single && (recoverIsolatedChannels || !killDeadChannels)) { + // single MVA + // TODO + } else if (is_FE && (recoverFE || !killDeadChannels)) { + // democratic sharing + // TODO + } else { + // kill all the other cases + energy[inputCh] = 0.; + // TODO: set flags + } + } + } else { // EE + if (is_Single || is_FE || is_VFE) { + if (is_Single && (recoverIsolatedChannels || !killDeadChannels)) { + // single MVA + // TODO + } else if (is_FE && (recoverFE || !killDeadChannels)) { + // democratic sharing + // TODO + } else { + // kill all the other cases + energy[inputCh] = 0.; + // TODO: set flags + } + } + } + } + } + +} // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h index 4fc7e07c706d9..03a7549c87cab 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h @@ -3,12 +3,14 @@ #include -#include "CondFormats/EcalObjects/interface/EcalChannelStatusCode.h" -#include "DataFormats/EcalDetId/interface/EcalSubdetector.h" -#include "DataFormats/EcalDigi/interface/EcalConstants.h" -#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitConditionsDevice.h" +#include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" +#include "DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h" +#include "DataFormats/EcalRecHit/interface/alpaka/EcalUncalibratedRecHitDeviceCollection.h" #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h" +#include "DataFormats/Provenance/interface/Timestamp.h" +#include "DeclsForKernels.h" #include "KernelHelpers.h" //#define DEBUG @@ -16,13 +18,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { - using namespace cms::alpakatools; - ALPAKA_STATIC_ACC_MEM_CONSTANT constexpr float ip10[] = { 1.e5f, 1.e4f, 1.e3f, 1.e2f, 1.e1f, 1.e0f, 1.e-1f, 1.e-2f, 1.e-3f, 1.e-4}; - ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkUncalibRecHitFlag(uint32_t const& flags, - EcalUncalibratedRecHit::Flags flag) { + ALPAKA_FN_ACC ALPAKA_FN_INLINE bool checkUncalibRecHitFlag(uint32_t const flags, EcalUncalibratedRecHit::Flags flag) { return flags & (0x1 << flag); } @@ -53,306 +52,18 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { bool const recoverFE, float const laserMIN, float const laserMAX, - uint32_t flagmask) { - // simple copy of input det id to output - did[inputCh] = didCh[inputCh]; - - auto const did_to_use = DetId{didCh[inputCh]}; - - auto const isBarrel = did_to_use.subdetId() == EcalBarrel; - auto const hashedId = isBarrel ? ecal::reconstruction::hashedIndexEB(did_to_use.rawId()) - : conditionsDev.offsetEE() + ecal::reconstruction::hashedIndexEE(did_to_use.rawId()); - - auto const intercalib = conditionsDev.intercalibConstants()[hashedId]; - - // only two values for ADC to GeV, EB or EE - auto const adc2gev_to_use = isBarrel ? conditionsDev.adcToGeVConstantEB() : conditionsDev.adcToGeVConstantEE(); - - auto const timeCalib = conditionsDev.timeCalibConstants()[hashedId]; - auto const timeOffset = isBarrel ? conditionsDev.timeOffsetConstantEB() : conditionsDev.timeOffsetConstantEE(); - - int iLM = 1; - if (isBarrel) { - iLM = ecal::reconstruction::laserMonitoringRegionEB(did_to_use.rawId()); - } else { - iLM = ecal::reconstruction::laserMonitoringRegionEE(did_to_use.rawId()); - } - - long long t_i = 0, t_f = 0; - float p_i = 0, p_f = 0; - auto const t1 = conditionsDev.laserAPDPNRatios_t1()[iLM - 1]; - auto const t2 = conditionsDev.laserAPDPNRatios_t2()[iLM - 1]; - auto const t3 = conditionsDev.laserAPDPNRatios_t3()[iLM - 1]; - auto const p1 = conditionsDev.laserAPDPNRatios_p1()[hashedId]; - auto const p2 = conditionsDev.laserAPDPNRatios_p2()[hashedId]; - auto const p3 = conditionsDev.laserAPDPNRatios_p3()[hashedId]; - - // laser - if (eventTime >= t1 && eventTime < t2) { - t_i = t1; - t_f = t2; - p_i = p1; - p_f = p2; - } else if (eventTime >= t2 && eventTime <= t3) { - t_i = t2; - t_f = t3; - p_i = p2; - p_f = p3; - } else if (eventTime < t1) { - t_i = t1; - t_f = t2; - p_i = p1; - p_f = p2; - } else if (eventTime > t3) { - t_i = t2; - t_f = t3; - p_i = p2; - p_f = p3; - } - - long long lt_i = 0, lt_f = 0; - float lp_i = 0, lp_f = 0; - auto const lt1 = conditionsDev.linearCorrections_t1()[iLM - 1]; - auto const lt2 = conditionsDev.linearCorrections_t2()[iLM - 1]; - auto const lt3 = conditionsDev.linearCorrections_t3()[iLM - 1]; - auto const lp1 = conditionsDev.linearCorrections_p1()[hashedId]; - auto const lp2 = conditionsDev.linearCorrections_p2()[hashedId]; - auto const lp3 = conditionsDev.linearCorrections_p3()[hashedId]; - - // linear corrections - if (eventTime >= lt1 && eventTime < lt2) { - lt_i = lt1; - lt_f = lt2; - lp_i = lp1; - lp_f = lp2; - } else if (eventTime >= lt2 && eventTime <= lt3) { - lt_i = lt2; - lt_f = lt3; - lp_i = lp2; - lp_f = lp3; - } else if (eventTime < lt1) { - lt_i = lt1; - lt_f = lt2; - lp_i = lp1; - lp_f = lp2; - } else if (eventTime > lt3) { - lt_i = lt2; - lt_f = lt3; - lp_i = lp2; - lp_f = lp3; - } - - // apdpnref and alpha - auto const apdpnref = conditionsDev.laserAPDPNref()[hashedId]; - auto const alpha = conditionsDev.laserAlpha()[hashedId]; - - // now calculate transparency correction - float lasercalib = 1.; - if (apdpnref != 0 && (t_i - t_f) != 0 && (lt_i - lt_f) != 0) { - long long tt = eventTime; // never subtract two unsigned! - auto const interpolatedLaserResponse = - p_i / apdpnref + static_cast(tt - t_i) * (p_f - p_i) / (apdpnref * static_cast(t_f - t_i)); - - auto interpolatedLinearResponse = - lp_i / apdpnref + - static_cast(tt - lt_i) * (lp_f - lp_i) / (apdpnref * static_cast(lt_f - lt_i)); // FIXED BY FC - - if (interpolatedLinearResponse > 2.f || interpolatedLinearResponse < 0.1f) { - interpolatedLinearResponse = 1.f; - } - if (interpolatedLaserResponse <= 0.) { - lasercalib = 1.; - } else { - auto const interpolatedTransparencyResponse = interpolatedLaserResponse / interpolatedLinearResponse; - lasercalib = 1.f / (std::pow(interpolatedTransparencyResponse, alpha) * interpolatedLinearResponse); - } - } - - // - // Check for channels to be excluded from reconstruction - // - // Default energy not to be updated if "channelStatusToBeExcluded" - energy[inputCh] = -1.; //un-physical default - - // default values for the flags - flagBits[inputCh] = 0; - extra[inputCh] = 0; - - auto const dbChStatus = static_cast(conditionsDev.channelStatus()[hashedId] & - EcalChannelStatusCode::chStatusMask); - auto const& exclChStatCodes = parametersDev.channelStatusCodesToBeExcluded(); - if (exclChStatCodes[dbChStatus]) { - // skip the channel if the channel status bit is set and should be excluded - return; - } - - // Take our association map of dbChStatuses-> recHit flagbits and return the appropriate flagbit word - auto const& recoFlagBits = parametersDev.recoFlagBits()[dbChStatus]; - flagBits[inputCh] = recoFlagBits; - - if ((flagmask & recoFlagBits) && killDeadChannels) { - // skip this channel - return; - } - - // - // multiply the adc counts with factors to get the energy in GeV - // - energy[inputCh] = amplitude[inputCh] * adc2gev_to_use * intercalib * lasercalib; - - // time - auto const sampPeriod = isPhase2 ? ecalPh2::Samp_Period : ecalPh1::Samp_Period; - time[inputCh] = jitter[inputCh] * sampPeriod + timeCalib + timeOffset; - - // NB: calculate the "flagBits extra" --> not really "flags", but actually an encoded version of energy uncertainty, time unc., ... - - // - // extra packing ... - // - uint32_t extravar = 0; - - // chi2 - // truncate - auto const chi2 = chi2_in[inputCh] > 64 ? 64 : chi2_in[inputCh]; - // use 7 bits - uint32_t const rawChi2 = lround(chi2 / 64. * ((1 << 7) - 1)); - extravar = ecal::reconstruction::rechitSetMasked(extravar, rawChi2, 0, 7); - - // energy uncertainty (amplitudeError is currently not set in the portable uncalibrated rec hit producer) - auto const energyError = amplitudeError[inputCh] * adc2gev_to_use * intercalib * lasercalib; - uint32_t rawEnergy = 0; - if (energyError > 0.001) { - uint16_t const exponent = static_cast(ecal::reconstruction::rechitGetPower10(energyError)); - uint16_t significand = lround(energyError * ip10[exponent]); - // use 13 bits (3 exponent, 10 significand) - rawEnergy = exponent << 10 | significand; - } - extravar = ecal::reconstruction::rechitSetMasked(extravar, rawEnergy, 8, 13); - - // time uncertainty directly from uncalib rechit (the jitter error is currently not stored in aux in the portable uncalibrated rec hit producer) - uint8_t const timeErrBits = aux[inputCh] & 0xFF; - extravar = ecal::reconstruction::rechitSetMasked(extravar, timeErrBits, 24, 8); - - // - // set output extra variable - // - extra[inputCh] = extravar; - - // - // additional flags setting - // using correctly the flags as calculated at the UncalibRecHit stage - // - bool good = true; - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kLeadingEdgeRecovered)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kLeadingEdgeRecovered); - good = false; - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kSaturated)) { - // leading edge recovery failed - still keep the information - // about the saturation and do not flag as dead - setFlag(flagBits[inputCh], EcalRecHit::Flags::kSaturated); - good = false; - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kOutOfTime)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kOutOfTime); - good = false; - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kPoorReco)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorReco); - good = false; - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain6)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain6); - } - if (checkUncalibRecHitFlag(flags_in[inputCh], EcalUncalibratedRecHit::Flags::kHasSwitchToGain1)) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kHasSwitchToGain1); - } - - if (good) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kGood); - } - - if (lasercalib < laserMIN || lasercalib > laserMAX) { - setFlag(flagBits[inputCh], EcalRecHit::Flags::kPoorCalib); - } - - // recover, killing, and other stuff - // - // Structure: - // EB - // EE - // - // - single MVA - // - democratic sharing - // - kill all the other cases - - // recoverable channel status codes - if (dbChStatus == EcalChannelStatusCode::Code::kFixedG0 || - dbChStatus == EcalChannelStatusCode::Code::kNonRespondingIsolated || - dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { - bool is_Single = false; - bool is_FE = false; - bool is_VFE = false; - - if (dbChStatus == EcalChannelStatusCode::Code::kDeadVFE) { - is_VFE = true; - } else if (dbChStatus == EcalChannelStatusCode::Code::kDeadFE) { - is_FE = true; - } else { - is_Single = true; - } - - // EB - if (isBarrel) { - if (is_Single || is_FE || is_VFE) { - if (is_Single && (recoverIsolatedChannels || !killDeadChannels)) { - // single MVA - // TODO - } else if (is_FE && (recoverFE || !killDeadChannels)) { - // democratic sharing - // TODO - } else { - // kill all the other cases - energy[inputCh] = 0.; - // TODO: set flags - } - } - } else { // EE - if (is_Single || is_FE || is_VFE) { - if (is_Single && (recoverIsolatedChannels || !killDeadChannels)) { - // single MVA - // TODO - } else if (is_FE && (recoverFE || !killDeadChannels)) { - // democratic sharing - // TODO - } else { - // kill all the other cases - energy[inputCh] = 0.; - // TODO: set flags - } - } - } - } - } + uint32_t flagmask); class KernelCreateEcalRechitPhase2 { public: - template >> - ALPAKA_FN_ACC void operator()(TAcc const& acc, + ALPAKA_FN_ACC void operator()(Acc1D const& acc, EcalUncalibratedRecHitDeviceCollection::ConstView uncalibRecHits, EcalRecHitDeviceCollection::View recHits, EcalRecHitConditionsDevice::ConstView conditionsDev, EcalRecHitParametersDevice::ConstView parametersDev, // time, used for time dependent corrections edm::TimeValue_t const& eventTime, - // configuration - bool const killDeadChannels, - bool const recoverIsolatedChannels, - bool const recoverVFE, - bool const recoverFE, - float const laserMIN, - float const laserMAX, - uint32_t flagmask) const { + ConfigurationParameters const& configParams) const { auto const nchannels = uncalibRecHits.size(); for (auto ch : cms::alpakatools::uniform_elements(acc, nchannels)) { @@ -378,13 +89,13 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { parametersDev, eventTime, true, - killDeadChannels, - recoverIsolatedChannels, - recoverVFE, - recoverFE, - laserMIN, - laserMAX, - flagmask); + configParams.killDeadChannels, + configParams.recoverEBIsolatedChannels, + configParams.recoverEBVFE, + configParams.recoverEBFE, + configParams.EBLaserMIN, + configParams.EBLaserMAX, + configParams.flagmask); } // end channel } @@ -392,8 +103,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { class KernelCreateEcalRechit { public: - template >> - ALPAKA_FN_ACC void operator()(TAcc const& acc, + ALPAKA_FN_ACC void operator()(Acc1D const& acc, EcalUncalibratedRecHitDeviceCollection::ConstView ebUncalibRecHits, EcalUncalibratedRecHitDeviceCollection::ConstView eeUncalibRecHits, EcalRecHitDeviceCollection::View ebRecHits, @@ -402,19 +112,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { EcalRecHitParametersDevice::ConstView parametersDev, // time, used for time dependent corrections edm::TimeValue_t const& eventTime, - // configuration - bool const killDeadChannels, - bool const recoverEBIsolatedChannels, - bool const recoverEEIsolatedChannels, - bool const recoverEBVFE, - bool const recoverEEVFE, - bool const recoverEBFE, - bool const recoverEEFE, - float const EBLaserMIN, - float const EELaserMIN, - float const EBLaserMAX, - float const EELaserMAX, - uint32_t flagmask) const { + ConfigurationParameters const& configParams) const { auto const nchannelsEB = ebUncalibRecHits.size(); auto const nchannelsEE = eeUncalibRecHits.size(); auto const nchannels = nchannelsEB + nchannelsEE; @@ -446,11 +144,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { auto* flagBits = isEndcap ? eeRecHits.flagBits() : ebRecHits.flagBits(); auto* extra = isEndcap ? eeRecHits.extra() : ebRecHits.extra(); - bool const recoverIsolatedChannels = isEndcap ? recoverEEIsolatedChannels : recoverEBIsolatedChannels; - bool const recoverVFE = isEndcap ? recoverEEVFE : recoverEBVFE; - bool const recoverFE = isEndcap ? recoverEEFE : recoverEBFE; - float const laserMIN = isEndcap ? EELaserMIN : EBLaserMIN; - float const laserMAX = isEndcap ? EELaserMAX : EBLaserMAX; + bool const recoverIsolatedChannels = + isEndcap ? configParams.recoverEEIsolatedChannels : configParams.recoverEBIsolatedChannels; + bool const recoverVFE = isEndcap ? configParams.recoverEEVFE : configParams.recoverEBVFE; + bool const recoverFE = isEndcap ? configParams.recoverEEFE : configParams.recoverEBFE; + float const laserMIN = isEndcap ? configParams.EELaserMIN : configParams.EBLaserMIN; + float const laserMAX = isEndcap ? configParams.EELaserMAX : configParams.EBLaserMAX; makeRecHit(inputCh, didCh, @@ -469,13 +168,13 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { parametersDev, eventTime, false, - killDeadChannels, + configParams.killDeadChannels, recoverIsolatedChannels, recoverVFE, recoverFE, laserMIN, laserMAX, - flagmask); + configParams.flagmask); } // end channel } diff --git a/RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py b/RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py index 53b776ac96a13..432a8b550e547 100644 --- a/RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py +++ b/RecoLocalCalo/EcalRecProducers/python/ecalRecHit_cff.py @@ -73,11 +73,11 @@ from Configuration.ProcessModifiers.alpaka_cff import alpaka # ECAL conditions used by the rechit producer running on the accelerator -from RecoLocalCalo.EcalRecProducers.ecalRecHitConditionsHostESProducer_cfi import ecalRecHitConditionsHostESProducer -from RecoLocalCalo.EcalRecProducers.ecalRecHitParametersHostESProducer_cfi import ecalRecHitParametersHostESProducer +from RecoLocalCalo.EcalRecProducers.ecalRecHitConditionsESProducer_cfi import ecalRecHitConditionsESProducer +from RecoLocalCalo.EcalRecProducers.ecalRecHitParametersESProducer_cfi import ecalRecHitParametersESProducer ecalRecHitParametersSource = cms.ESSource("EmptyESSource", - recordName = cms.string('EcalRecHitParametersRcd'), + recordName = cms.string('JobConfigurationGPURecord'), iovIsRunNotTime = cms.bool(True), firstValid = cms.vuint32(1) ) @@ -91,7 +91,7 @@ # replace the SwitchProducerCUDA branches with the module to convert the rechits from SoA to legacy format from RecoLocalCalo.EcalRecProducers.ecalRecHitSoAToLegacy_cfi import ecalRecHitSoAToLegacy as _ecalRecHitSoAToLegacy -# TODO: the portably produced ECAL calibrated rechits correct yet. +# TODO: the portably produced ECAL calibrated rechits are not correct yet. # When they are working and validated, remove this comment and uncomment the next lines: #alpaka.toModify(ecalRecHit, # cpu = _ecalRecHitSoAToLegacy.clone() @@ -99,8 +99,8 @@ alpaka.toReplaceWith(ecalCalibratedRecHitTask, cms.Task( # ECAL conditions and parameters used by the rechit producer running on the accelerator - ecalRecHitConditionsHostESProducer, - ecalRecHitParametersHostESProducer, + ecalRecHitConditionsESProducer, + ecalRecHitParametersESProducer, # ECAL rechit producer running on device ecalRecHitPortable, # ECAL rechit producer running on CPU, or convert the rechits from SoA to legacy format diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h index dbc662700e145..2bba2a7b82459 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h +++ b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h @@ -15,12 +15,6 @@ #include #include -/* -#ifdef __CUDA_ARCH__ -extern __constant__ uint32_t calo_rechit_masks[]; -#endif -*/ - class KernelManagerHGCalCellPositions { public: KernelManagerHGCalCellPositions(const size_t&); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h index 6e9f973df876f..8dea82df45b93 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h +++ b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h @@ -13,10 +13,6 @@ #include #include -#ifdef __CUDA_ARCH__ -extern __constant__ uint32_t calo_rechit_masks[]; -#endif - template class KernelConstantData { public: From a3010a9628856ba3890bfcf1258b2d3af3c46560 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 28 Nov 2024 00:28:24 +0100 Subject: [PATCH 295/418] Rename parameters and variables of EcalRecHitSoAToLegacy. --- .../plugins/EcalRecHitSoAToLegacy.cc | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc index fba6c57f2a72f..2837920bd19c7 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitSoAToLegacy.cc @@ -23,73 +23,73 @@ class EcalRecHitSoAToLegacy : public edm::global::EDProducer<> { private: const bool isPhase2_; - const edm::EDGetTokenT recHitsPortableEB_; - const edm::EDGetTokenT recHitsPortableEE_; - const edm::EDPutTokenT recHitsCPUEBToken_; - const edm::EDPutTokenT recHitsCPUEEToken_; + const edm::EDGetTokenT inputTokenEB_; + const edm::EDGetTokenT inputTokenEE_; + const edm::EDPutTokenT outputTokenEB_; + const edm::EDPutTokenT outputTokenEE_; }; void EcalRecHitSoAToLegacy::fillDescriptions(edm::ConfigurationDescriptions &confDesc) { edm::ParameterSetDescription desc; - desc.add("recHitsPortableEB", edm::InputTag("ecalRecHitPortable", "EcalRecHitsEB")); - desc.add("recHitsLabelCPUEB", "EcalRecHitsEB"); + desc.add("inputCollectionEB", edm::InputTag("ecalRecHitPortable", "EcalRecHitsEB")); + desc.add("outputLabelEB", "EcalRecHitsEB"); desc.ifValue(edm::ParameterDescription("isPhase2", false, true), false >> (edm::ParameterDescription( - "recHitsPortableEE", edm::InputTag("ecalRecHitPortable", "EcalRecHitsEE"), true) and - edm::ParameterDescription("recHitsLabelCPUEE", "EcalRecHitsEE", true)) or + "inputCollectionEE", edm::InputTag("ecalRecHitPortable", "EcalRecHitsEE"), true) and + edm::ParameterDescription("outputLabelEE", "EcalRecHitsEE", true)) or true >> edm::EmptyGroupDescription()); confDesc.add("ecalRecHitSoAToLegacy", desc); } EcalRecHitSoAToLegacy::EcalRecHitSoAToLegacy(edm::ParameterSet const &ps) : isPhase2_{ps.getParameter("isPhase2")}, - recHitsPortableEB_{consumes(ps.getParameter("recHitsPortableEB"))}, - recHitsPortableEE_{isPhase2_ ? edm::EDGetTokenT{} - : consumes(ps.getParameter("recHitsPortableEE"))}, - recHitsCPUEBToken_{produces(ps.getParameter("recHitsLabelCPUEB"))}, - recHitsCPUEEToken_{isPhase2_ ? edm::EDPutTokenT{} - : produces(ps.getParameter("recHitsLabelCPUEE"))} {} + inputTokenEB_{consumes(ps.getParameter("inputCollectionEB"))}, + inputTokenEE_{isPhase2_ ? edm::EDGetTokenT{} + : consumes(ps.getParameter("inputCollectionEE"))}, + outputTokenEB_{produces(ps.getParameter("outputLabelEB"))}, + outputTokenEE_{isPhase2_ ? edm::EDPutTokenT{} + : produces(ps.getParameter("outputLabelEE"))} {} void EcalRecHitSoAToLegacy::produce(edm::StreamID sid, edm::Event &event, edm::EventSetup const &setup) const { - auto const &recHitsEBColl = event.get(recHitsPortableEB_); - auto const &recHitsEBCollView = recHitsEBColl.const_view(); - auto recHitsCPUEB = std::make_unique(); - recHitsCPUEB->reserve(recHitsEBCollView.size()); + auto const &inputCollEB = event.get(inputTokenEB_); + auto const &inputCollEBView = inputCollEB.const_view(); + auto outputCollEB = std::make_unique(); + outputCollEB->reserve(inputCollEBView.size()); - for (uint32_t i = 0; i < recHitsEBCollView.size(); ++i) { + for (uint32_t i = 0; i < inputCollEBView.size(); ++i) { // Save only if energy is >= 0 ! // This is important because the channels that were supposed // to be excluded get "-1" as energy - if (recHitsEBCollView.energy()[i] >= 0.) { - recHitsCPUEB->emplace_back(DetId{recHitsEBCollView.id()[i]}, - recHitsEBCollView.energy()[i], - recHitsEBCollView.time()[i], - recHitsEBCollView.extra()[i], - recHitsEBCollView.flagBits()[i]); + if (inputCollEBView.energy()[i] >= 0.) { + outputCollEB->emplace_back(DetId{inputCollEBView.id()[i]}, + inputCollEBView.energy()[i], + inputCollEBView.time()[i], + inputCollEBView.extra()[i], + inputCollEBView.flagBits()[i]); } } - event.put(recHitsCPUEBToken_, std::move(recHitsCPUEB)); + event.put(outputTokenEB_, std::move(outputCollEB)); if (!isPhase2_) { - auto const &recHitsEEColl = event.get(recHitsPortableEE_); - auto const &recHitsEECollView = recHitsEEColl.const_view(); - auto recHitsCPUEE = std::make_unique(); - recHitsCPUEE->reserve(recHitsEECollView.size()); + auto const &inputCollEE = event.get(inputTokenEE_); + auto const &inputCollEEView = inputCollEE.const_view(); + auto outputCollEE = std::make_unique(); + outputCollEE->reserve(inputCollEEView.size()); - for (uint32_t i = 0; i < recHitsEECollView.size(); ++i) { + for (uint32_t i = 0; i < inputCollEEView.size(); ++i) { // Save only if energy is >= 0 ! // This is important because the channels that were supposed // to be excluded get "-1" as energy - if (recHitsEECollView.energy()[i] >= 0.) { - recHitsCPUEE->emplace_back(DetId{recHitsEECollView.id()[i]}, - recHitsEECollView.energy()[i], - recHitsEECollView.time()[i], - recHitsEECollView.extra()[i], - recHitsEECollView.flagBits()[i]); + if (inputCollEEView.energy()[i] >= 0.) { + outputCollEE->emplace_back(DetId{inputCollEEView.id()[i]}, + inputCollEEView.energy()[i], + inputCollEEView.time()[i], + inputCollEEView.extra()[i], + inputCollEEView.flagBits()[i]); } } - event.put(recHitsCPUEEToken_, std::move(recHitsCPUEE)); + event.put(outputTokenEE_, std::move(outputCollEE)); } } From 5e09bb48b9766b04f49d9787ab46af3ee8bcb201 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 9 Dec 2024 15:58:47 +0100 Subject: [PATCH 296/418] Replace PortableCollection with PortableObject. --- .../interface/EcalRecHitParameters.h | 16 ++++++++++++++ .../interface/EcalRecHitParametersHost.h | 8 +++---- .../interface/EcalRecHitParametersSoA.h | 21 ------------------- .../alpaka/EcalRecHitParametersDevice.h | 9 ++++---- .../plugins/alpaka/EcalRecHitBuilder.dev.cc | 4 ++-- .../alpaka/EcalRecHitParametersESProducer.cc | 13 ++++++------ .../alpaka/EnergyComputationKernels.dev.cc | 6 +++--- .../plugins/alpaka/EnergyComputationKernels.h | 7 ++++--- 8 files changed, 40 insertions(+), 44 deletions(-) create mode 100644 CondFormats/EcalObjects/interface/EcalRecHitParameters.h delete mode 100644 CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h diff --git a/CondFormats/EcalObjects/interface/EcalRecHitParameters.h b/CondFormats/EcalObjects/interface/EcalRecHitParameters.h new file mode 100644 index 0000000000000..1939f10643153 --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalRecHitParameters.h @@ -0,0 +1,16 @@ +#ifndef CondFormats_EcalObjects_EcalRecHitParameters_h +#define CondFormats_EcalObjects_EcalRecHitParameters_h + +#include +#include + +constexpr size_t kNEcalChannelStatusCodes = 16; // The HW supports 16 channel status codes +using RecoFlagBitsArray = + std::array; // associate recoFlagBits to all channel status codes + +struct EcalRecHitParameters { + RecoFlagBitsArray recoFlagBits; + std::bitset channelStatusCodesToBeExcluded; +}; + +#endif diff --git a/CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h b/CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h index 33820185c6806..290cffe351a5a 100644 --- a/CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h +++ b/CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h @@ -1,11 +1,9 @@ #ifndef CondFormats_EcalObjects_interface_EcalRecHitParametersHost_h #define CondFormats_EcalObjects_interface_EcalRecHitParametersHost_h -#include "CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h" -#include "DataFormats/Portable/interface/PortableHostCollection.h" -#include "HeterogeneousCore/AlpakaInterface/interface/config.h" -#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" +#include "CondFormats/EcalObjects/interface/EcalRecHitParameters.h" +#include "DataFormats/Portable/interface/PortableHostObject.h" -using EcalRecHitParametersHost = PortableHostCollection; +using EcalRecHitParametersHost = PortableHostObject; #endif diff --git a/CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h b/CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h deleted file mode 100644 index d33028c37a041..0000000000000 --- a/CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef CondFormats_EcalObjects_EcalRecHitParametersSoA_h -#define CondFormats_EcalObjects_EcalRecHitParametersSoA_h - -#include -#include -#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" -#include "DataFormats/SoATemplate/interface/SoACommon.h" -#include "DataFormats/SoATemplate/interface/SoALayout.h" -#include "DataFormats/SoATemplate/interface/SoAView.h" - -constexpr size_t kNEcalChannelStatusCodes = 16; // The HW supports 16 channel status codes -using RecoFlagBitsArray = - std::array; // associate recoFlagBits to all channel status codes - -GENERATE_SOA_LAYOUT(EcalRecHitParametersSoALayout, - SOA_SCALAR(RecoFlagBitsArray, recoFlagBits), - SOA_SCALAR(std::bitset, channelStatusCodesToBeExcluded)) - -using EcalRecHitParametersSoA = EcalRecHitParametersSoALayout<>; - -#endif diff --git a/CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h b/CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h index 569a480ad91d6..f63c8ac34b800 100644 --- a/CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h +++ b/CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h @@ -1,17 +1,18 @@ #ifndef CondFormats_EcalObjects_interface_alpaka_EcalRecHitParametersDevice_h #define CondFormats_EcalObjects_interface_alpaka_EcalRecHitParametersDevice_h +#include "CondFormats/EcalObjects/interface/EcalRecHitParameters.h" #include "CondFormats/EcalObjects/interface/EcalRecHitParametersHost.h" -#include "CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h" -#include "DataFormats/Portable/interface/alpaka/PortableCollection.h" +#include "DataFormats/Portable/interface/alpaka/PortableObject.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" -#include "HeterogeneousCore/AlpakaInterface/interface/memory.h" namespace ALPAKA_ACCELERATOR_NAMESPACE { using ::EcalRecHitParametersHost; - using EcalRecHitParametersDevice = PortableCollection; + using EcalRecHitParametersDevice = PortableObject; } // namespace ALPAKA_ACCELERATOR_NAMESPACE +ASSERT_DEVICE_MATCHES_HOST_COLLECTION(EcalRecHitParametersDevice, EcalRecHitParametersHost); + #endif diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc index 2806f5988d4bd..574d0755f4987 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitBuilder.dev.cc @@ -44,7 +44,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { ebRecHits.view(), eeRecHits.view(), conditionsDev.const_view(), - parametersDev.const_view(), + parametersDev.const_data(), eventTime, configParams); } else { @@ -54,7 +54,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { ebUncalibRecHits->const_view(), ebRecHits.view(), conditionsDev.const_view(), - parametersDev.const_view(), + parametersDev.const_data(), eventTime, configParams); } diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersESProducer.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersESProducer.cc index b57802fedeedc..a87a1675f2038 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersESProducer.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EcalRecHitParametersESProducer.cc @@ -2,9 +2,11 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "CondFormats/EcalObjects/interface/EcalChannelStatusCode.h" -#include "CondFormats/EcalObjects/interface/EcalRecHitParametersSoA.h" +#include "CondFormats/EcalObjects/interface/EcalRecHitParameters.h" #include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" + #include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESGetToken.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/ModuleFactory.h" @@ -81,13 +83,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { std::unique_ptr EcalRecHitParametersESProducer::produce( JobConfigurationGPURecord const& iRecord) { - size_t const sizeone = 1; - auto product = std::make_unique(sizeone, cms::alpakatools::host()); - auto view = product->view(); + auto product = std::make_unique(cms::alpakatools::host()); + auto value = product->value(); - std::memcpy(view.recoFlagBits().data(), recoFlagBitsArray_.data(), sizeof(uint32_t) * recoFlagBitsArray_.size()); + std::memcpy(value.recoFlagBits.data(), recoFlagBitsArray_.data(), sizeof(uint32_t) * recoFlagBitsArray_.size()); - view.channelStatusCodesToBeExcluded() = channelStatusCodesToBeExcluded_; + value.channelStatusCodesToBeExcluded = channelStatusCodesToBeExcluded_; return product; } diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.dev.cc b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.dev.cc index f898cef299570..aa6c6ecdef1df 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.dev.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.dev.cc @@ -22,7 +22,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { uint32_t* flagBits, uint32_t* extra, EcalRecHitConditionsDevice::ConstView conditionsDev, - EcalRecHitParametersDevice::ConstView parametersDev, + EcalRecHitParametersDevice::Product const* parametersDev, // time, used for time dependent corrections edm::TimeValue_t const& eventTime, // configuration @@ -160,14 +160,14 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { auto const dbChStatus = static_cast(conditionsDev.channelStatus()[hashedId] & EcalChannelStatusCode::chStatusMask); - auto const& exclChStatCodes = parametersDev.channelStatusCodesToBeExcluded(); + auto const& exclChStatCodes = parametersDev->channelStatusCodesToBeExcluded; if (exclChStatCodes[dbChStatus]) { // skip the channel if the channel status bit is set and should be excluded return; } // Take our association map of dbChStatuses-> recHit flagbits and return the appropriate flagbit word - auto const& recoFlagBits = parametersDev.recoFlagBits()[dbChStatus]; + auto const& recoFlagBits = parametersDev->recoFlagBits[dbChStatus]; flagBits[inputCh] = recoFlagBits; if ((flagmask & recoFlagBits) && killDeadChannels) { diff --git a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h index 03a7549c87cab..1f9f73cc8236b 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/alpaka/EnergyComputationKernels.h @@ -7,6 +7,7 @@ #include "CondFormats/EcalObjects/interface/alpaka/EcalRecHitParametersDevice.h" #include "DataFormats/EcalRecHit/interface/alpaka/EcalRecHitDeviceCollection.h" #include "DataFormats/EcalRecHit/interface/alpaka/EcalUncalibratedRecHitDeviceCollection.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h" #include "DataFormats/Provenance/interface/Timestamp.h" @@ -41,7 +42,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { uint32_t* flagBits, uint32_t* extra, EcalRecHitConditionsDevice::ConstView conditionsDev, - EcalRecHitParametersDevice::ConstView parametersDev, + EcalRecHitParametersDevice::Product const* parametersDev, // time, used for time dependent corrections edm::TimeValue_t const& eventTime, // configuration @@ -60,7 +61,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { EcalUncalibratedRecHitDeviceCollection::ConstView uncalibRecHits, EcalRecHitDeviceCollection::View recHits, EcalRecHitConditionsDevice::ConstView conditionsDev, - EcalRecHitParametersDevice::ConstView parametersDev, + EcalRecHitParametersDevice::Product const* parametersDev, // time, used for time dependent corrections edm::TimeValue_t const& eventTime, ConfigurationParameters const& configParams) const { @@ -109,7 +110,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::rechit { EcalRecHitDeviceCollection::View ebRecHits, EcalRecHitDeviceCollection::View eeRecHits, EcalRecHitConditionsDevice::ConstView conditionsDev, - EcalRecHitParametersDevice::ConstView parametersDev, + EcalRecHitParametersDevice::Product const* parametersDev, // time, used for time dependent corrections edm::TimeValue_t const& eventTime, ConfigurationParameters const& configParams) const { From 24efaceeb9f3533e64bde75c419b3a014540a815 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Sat, 26 Oct 2024 17:48:46 +0200 Subject: [PATCH 297/418] Test updated MTD hit history --- SimG4CMS/Forward/src/MtdSD.cc | 10 +++++----- SimG4CMS/Forward/src/TimingSD.cc | 2 +- SimG4Core/Notification/src/TrackInformation.cc | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/SimG4CMS/Forward/src/MtdSD.cc b/SimG4CMS/Forward/src/MtdSD.cc index c0908795d803c..0c3f73bf806b0 100644 --- a/SimG4CMS/Forward/src/MtdSD.cc +++ b/SimG4CMS/Forward/src/MtdSD.cc @@ -1,4 +1,4 @@ -//#define EDM_ML_DEBUG +#define EDM_ML_DEBUG #include "SimG4CMS/Forward/interface/MtdSD.h" @@ -108,10 +108,10 @@ int MtdSD::getTrackID(const G4Track* aTrack) { #endif if (rname == "FastTimerRegionSensBTL") { theID = trkInfo->mcTruthID(); - if (trkInfo->isExtSecondary() && !trkInfo->isInTrkFromBackscattering()) { - theID = PSimHit::addTrackIdOffset(theID, k_idsecOffset); - } else if (trkInfo->isInTrkFromBackscattering()) { - theID = PSimHit::addTrackIdOffset(theID, k_idFromCaloOffset); + if (trkInfo->isInTrkFromBackscattering()) { + theID = PSimHit::addTrackIdOffset(trkInfo->getIDonCaloSurface(), k_idFromCaloOffset); + } else if (trkInfo->isExtSecondary() && !trkInfo->isInTrkFromBackscattering()) { + theID = PSimHit::addTrackIdOffset(theID, k_idsecOffset); } else if (trkInfo->isBTLlooper()) { theID = PSimHit::addTrackIdOffset(theID, k_idloopOffset); } diff --git a/SimG4CMS/Forward/src/TimingSD.cc b/SimG4CMS/Forward/src/TimingSD.cc index 8ddfc9e0d185e..b5b8148632b52 100644 --- a/SimG4CMS/Forward/src/TimingSD.cc +++ b/SimG4CMS/Forward/src/TimingSD.cc @@ -1,4 +1,4 @@ -//#define EDM_ML_DEBUG +#define EDM_ML_DEBUG /////////////////////////////////////////////////////////////////////////////// // File: TimingSD.cc diff --git a/SimG4Core/Notification/src/TrackInformation.cc b/SimG4Core/Notification/src/TrackInformation.cc index 8962eb767d667..d138a188fbe30 100644 --- a/SimG4Core/Notification/src/TrackInformation.cc +++ b/SimG4Core/Notification/src/TrackInformation.cc @@ -1,3 +1,5 @@ +#define EDM_ML_DEBUG + #include "SimG4Core/Notification/interface/TrackInformation.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" From 6c60134cb41cc8c7a2a13c42d6f35e38bd50630f Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Thu, 12 Dec 2024 18:48:54 +0100 Subject: [PATCH 298/418] Add information about ETL hit direction, update BTL hit classification --- SimG4CMS/Forward/interface/MtdSD.h | 3 +++ SimG4CMS/Forward/interface/TimingSD.h | 5 ++++ SimG4CMS/Forward/src/MtdSD.cc | 26 ++++++++++++++++--- SimG4CMS/Forward/src/TimingSD.cc | 5 ++++ .../Notification/interface/TrackInformation.h | 5 ++++ 5 files changed, 41 insertions(+), 3 deletions(-) diff --git a/SimG4CMS/Forward/interface/MtdSD.h b/SimG4CMS/Forward/interface/MtdSD.h index c035479bcaa8b..c6bba67d4efbe 100644 --- a/SimG4CMS/Forward/interface/MtdSD.h +++ b/SimG4CMS/Forward/interface/MtdSD.h @@ -27,10 +27,13 @@ class MtdSD : public TimingSD { protected: int getTrackID(const G4Track *) override; + void setHitClassID(const G4Step* ) override; + private: static constexpr unsigned int k_idsecOffset = 1; static constexpr unsigned int k_idloopOffset = 2; static constexpr unsigned int k_idFromCaloOffset = 3; + static constexpr unsigned int k_idETLfromBack = 4; double energyCut; double energyHistoryCut; diff --git a/SimG4CMS/Forward/interface/TimingSD.h b/SimG4CMS/Forward/interface/TimingSD.h index b042f736b90fa..514ad3d0f1115 100644 --- a/SimG4CMS/Forward/interface/TimingSD.h +++ b/SimG4CMS/Forward/interface/TimingSD.h @@ -65,6 +65,11 @@ class TimingSD : public SensitiveTkDetector, public ObserverPrint(); #endif if (rname == "FastTimerRegionSensBTL") { - theID = trkInfo->mcTruthID(); + if (!trkInfo->storeTrack()) { + theID = trkInfo->mcTruthID(); + } if (trkInfo->isInTrkFromBackscattering()) { - theID = PSimHit::addTrackIdOffset(trkInfo->getIDonCaloSurface(), k_idFromCaloOffset); + theID = PSimHit::addTrackIdOffset(trkInfo->getIDonCaloSurface(), k_idFromCaloOffset); } else if (trkInfo->isExtSecondary() && !trkInfo->isInTrkFromBackscattering()) { - theID = PSimHit::addTrackIdOffset(theID, k_idsecOffset); + theID = PSimHit::addTrackIdOffset(theID, k_idsecOffset); } else if (trkInfo->isBTLlooper()) { theID = PSimHit::addTrackIdOffset(theID, k_idloopOffset); } @@ -121,6 +123,9 @@ int MtdSD::getTrackID(const G4Track* aTrack) { #endif } else if (rname == "FastTimerRegionSensETL") { theID = trkInfo->getIDonCaloSurface(); + if (hitClassID == k_idETLfromBack) { + theID = PSimHit::addTrackIdOffset(theID, k_idETLfromBack); + } #ifdef EDM_ML_DEBUG edm::LogVerbatim("MtdSim") << "MtdSD: Track ID: " << aTrack->GetTrackID() << " ETL Track ID: " << trkInfo->mcTruthID() << ":" << theID; @@ -135,3 +140,18 @@ int MtdSD::getTrackID(const G4Track* aTrack) { } return theID; } + +void MtdSD::setHitClassID(const G4Step* aStep) { + TrackInformation* trkInfo = cmsTrackInformation(aStep->GetTrack()); + const G4String& rname = aStep->GetTrack()->GetVolume()->GetLogicalVolume()->GetRegion()->GetName(); + if (rname == "FastTimerRegionSensETL") { + double zin = std::abs(aStep->GetPreStepPoint()->GetPosition().z()); + double zout = std::abs(aStep->GetPostStepPoint()->GetPosition().z()); + if (zout - zin < 0.) { + hitClassID = k_idETLfromBack; + trkInfo->setETLfromBack(); + } else { + trkInfo->setETLfromFront(); + } + } +} diff --git a/SimG4CMS/Forward/src/TimingSD.cc b/SimG4CMS/Forward/src/TimingSD.cc index b5b8148632b52..a9d0c370c3647 100644 --- a/SimG4CMS/Forward/src/TimingSD.cc +++ b/SimG4CMS/Forward/src/TimingSD.cc @@ -181,6 +181,7 @@ void TimingSD::getStepInfo(const G4Step* aStep) { tSlice = timeFactor * preStepPoint->GetGlobalTime() * invns; tSliceID = (int)tSlice; + setHitClassID(aStep); unitID = setDetUnitId(aStep); primaryID = getTrackID(theTrack); } @@ -376,3 +377,7 @@ int TimingSD::getTrackID(const G4Track* aTrack) { LogDebug("TimingSim") << "primary ID: " << aTrack->GetTrackID(); return aTrack->GetTrackID(); } + +void TimingSD::setHitClassID(const G4Step* aStep) { + hitClassID = 0; +} diff --git a/SimG4Core/Notification/interface/TrackInformation.h b/SimG4Core/Notification/interface/TrackInformation.h index c4d24aeba7453..dd61a71dae922 100644 --- a/SimG4Core/Notification/interface/TrackInformation.h +++ b/SimG4Core/Notification/interface/TrackInformation.h @@ -96,6 +96,11 @@ class TrackInformation : public G4VUserTrackInformation { bool isInTrkFromBackscattering() const { return (mtdStatus_ >> 3) & 1; } void setExtSecondary() { mtdStatus_ |= 1 << 4; } //5th bit bool isExtSecondary() const { return (mtdStatus_ >> 4) & 1; } + void setETLfromFront() { mtdStatus_ |= 1 << 5; } //6th bit + bool isETLfromFront() const { return (mtdStatus_ >> 5) & 1; } + void setETLfromBack() { mtdStatus_ |= 1 << 6; } //7th bit + bool isETLfromBack() const { return (mtdStatus_ >> 6) & 1; } + uint8_t mtdStatus() const { return mtdStatus_; } void Print() const override; From 1eb851e3f51990204b3ccbb9ab6bef53ee30d2d4 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Fri, 13 Dec 2024 11:02:29 +0100 Subject: [PATCH 299/418] Update secondary definition --- SimG4CMS/Forward/src/MtdSD.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SimG4CMS/Forward/src/MtdSD.cc b/SimG4CMS/Forward/src/MtdSD.cc index 1720aa0447d6f..e44fd6b53cdde 100644 --- a/SimG4CMS/Forward/src/MtdSD.cc +++ b/SimG4CMS/Forward/src/MtdSD.cc @@ -112,7 +112,7 @@ int MtdSD::getTrackID(const G4Track* aTrack) { } if (trkInfo->isInTrkFromBackscattering()) { theID = PSimHit::addTrackIdOffset(trkInfo->getIDonCaloSurface(), k_idFromCaloOffset); - } else if (trkInfo->isExtSecondary() && !trkInfo->isInTrkFromBackscattering()) { + } else if (trkInfo->isExtSecondary() && !trkInfo->isInTrkFromBackscattering() && !trkInfo->storeTrack()) { theID = PSimHit::addTrackIdOffset(theID, k_idsecOffset); } else if (trkInfo->isBTLlooper()) { theID = PSimHit::addTrackIdOffset(theID, k_idloopOffset); From 3f7f2516eaafcc169d9fb5b77944bce9ab302186 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Fri, 13 Dec 2024 14:53:33 +0100 Subject: [PATCH 300/418] Add last stored ancestor information --- SimG4CMS/Forward/interface/MtdSD.h | 2 +- SimG4CMS/Forward/src/MtdSD.cc | 9 ++++----- SimG4CMS/Forward/src/TimingSD.cc | 4 +--- SimG4Core/Notification/interface/TrackInformation.h | 4 ++++ SimG4Core/Notification/src/MCTruthUtil.cc | 6 ++++++ SimG4Core/Notification/src/TrackInformation.cc | 5 ++++- 6 files changed, 20 insertions(+), 10 deletions(-) diff --git a/SimG4CMS/Forward/interface/MtdSD.h b/SimG4CMS/Forward/interface/MtdSD.h index c6bba67d4efbe..d58c5e220bcc8 100644 --- a/SimG4CMS/Forward/interface/MtdSD.h +++ b/SimG4CMS/Forward/interface/MtdSD.h @@ -27,7 +27,7 @@ class MtdSD : public TimingSD { protected: int getTrackID(const G4Track *) override; - void setHitClassID(const G4Step* ) override; + void setHitClassID(const G4Step *) override; private: static constexpr unsigned int k_idsecOffset = 1; diff --git a/SimG4CMS/Forward/src/MtdSD.cc b/SimG4CMS/Forward/src/MtdSD.cc index e44fd6b53cdde..8acf84cc205a0 100644 --- a/SimG4CMS/Forward/src/MtdSD.cc +++ b/SimG4CMS/Forward/src/MtdSD.cc @@ -106,12 +106,12 @@ int MtdSD::getTrackID(const G4Track* aTrack) { #ifdef EDM_ML_DEBUG trkInfo->Print(); #endif + if (!trkInfo->storeTrack()) { + theID = trkInfo->idLastStoredAncestor(); + } if (rname == "FastTimerRegionSensBTL") { - if (!trkInfo->storeTrack()) { - theID = trkInfo->mcTruthID(); - } if (trkInfo->isInTrkFromBackscattering()) { - theID = PSimHit::addTrackIdOffset(trkInfo->getIDonCaloSurface(), k_idFromCaloOffset); + theID = PSimHit::addTrackIdOffset(theID, k_idFromCaloOffset); } else if (trkInfo->isExtSecondary() && !trkInfo->isInTrkFromBackscattering() && !trkInfo->storeTrack()) { theID = PSimHit::addTrackIdOffset(theID, k_idsecOffset); } else if (trkInfo->isBTLlooper()) { @@ -122,7 +122,6 @@ int MtdSD::getTrackID(const G4Track* aTrack) { << " BTL Track ID: " << trkInfo->mcTruthID() << ":" << theID; #endif } else if (rname == "FastTimerRegionSensETL") { - theID = trkInfo->getIDonCaloSurface(); if (hitClassID == k_idETLfromBack) { theID = PSimHit::addTrackIdOffset(theID, k_idETLfromBack); } diff --git a/SimG4CMS/Forward/src/TimingSD.cc b/SimG4CMS/Forward/src/TimingSD.cc index a9d0c370c3647..01ad4f24bccc0 100644 --- a/SimG4CMS/Forward/src/TimingSD.cc +++ b/SimG4CMS/Forward/src/TimingSD.cc @@ -378,6 +378,4 @@ int TimingSD::getTrackID(const G4Track* aTrack) { return aTrack->GetTrackID(); } -void TimingSD::setHitClassID(const G4Step* aStep) { - hitClassID = 0; -} +void TimingSD::setHitClassID(const G4Step* aStep) { hitClassID = 0; } diff --git a/SimG4Core/Notification/interface/TrackInformation.h b/SimG4Core/Notification/interface/TrackInformation.h index dd61a71dae922..b9e2ff6e90e99 100644 --- a/SimG4Core/Notification/interface/TrackInformation.h +++ b/SimG4Core/Notification/interface/TrackInformation.h @@ -39,6 +39,9 @@ class TrackInformation : public G4VUserTrackInformation { int mcTruthID() const { return mcTruthID_; } void setMCTruthID(int id) { mcTruthID_ = id; } + int idLastStoredAncestor() const { return idLastStoredAncestor_; } + void setIdLastStoredAncestor(int id) { idLastStoredAncestor_ = id; } + // Calo section int getIDonCaloSurface() const { return idOnCaloSurface_; } void setIDonCaloSurface(int id, int ical, int last, int pdgID, double p) { @@ -116,6 +119,7 @@ class TrackInformation : public G4VUserTrackInformation { bool startedInFineVolume_{false}; bool startedInFineVolumeIsSet_{false}; bool hasCastorHit_{false}; + int idLastStoredAncestor_{0}; int idOnCaloSurface_{0}; int idCaloVolume_{-1}; int idLastVolume_{-1}; diff --git a/SimG4Core/Notification/src/MCTruthUtil.cc b/SimG4Core/Notification/src/MCTruthUtil.cc index 89ab353951475..a5cf82282dea7 100644 --- a/SimG4Core/Notification/src/MCTruthUtil.cc +++ b/SimG4Core/Notification/src/MCTruthUtil.cc @@ -1,3 +1,5 @@ +#define EDM_ML_DEBUG + #include "SimG4Core/Notification/interface/MCTruthUtil.h" #include "SimG4Core/Notification/interface/TrackInformation.h" @@ -11,6 +13,7 @@ void MCTruthUtil::primary(G4Track *aTrack) { trkInfo->setGenParticlePID(aTrack->GetDefinition()->GetPDGEncoding()); trkInfo->setGenParticleP(aTrack->GetMomentum().mag()); trkInfo->setMCTruthID(aTrack->GetTrackID()); + trkInfo->setIdLastStoredAncestor(aTrack->GetTrackID()); aTrack->SetUserInformation(trkInfo); } @@ -25,6 +28,7 @@ void MCTruthUtil::secondary(G4Track *aTrack, const G4Track &mother, int flag) { trkInfo->setGenParticlePID(aTrack->GetDefinition()->GetPDGEncoding()); trkInfo->setGenParticleP(aTrack->GetMomentum().mag()); trkInfo->setMCTruthID(aTrack->GetTrackID()); + trkInfo->setIdLastStoredAncestor(aTrack->GetTrackID()); } else { // secondary trkInfo->setGenParticlePID(motherInfo->genParticlePID()); @@ -40,6 +44,7 @@ void MCTruthUtil::secondary(G4Track *aTrack, const G4Track &mother, int flag) { motherInfo->getIDLastVolume(), aTrack->GetDefinition()->GetPDGEncoding(), aTrack->GetMomentum().mag()); + trkInfo->setIdLastStoredAncestor(aTrack->GetTrackID()); } else { // transfer calo ID from mother (to be checked in TrackingAction) trkInfo->setIDonCaloSurface(motherInfo->getIDonCaloSurface(), @@ -47,6 +52,7 @@ void MCTruthUtil::secondary(G4Track *aTrack, const G4Track &mother, int flag) { motherInfo->getIDLastVolume(), motherInfo->caloSurfaceParticlePID(), motherInfo->caloSurfaceParticleP()); + trkInfo->setIdLastStoredAncestor(motherInfo->idLastStoredAncestor()); } // for Run1 and Run2 diff --git a/SimG4Core/Notification/src/TrackInformation.cc b/SimG4Core/Notification/src/TrackInformation.cc index d138a188fbe30..3352f69c683a1 100644 --- a/SimG4Core/Notification/src/TrackInformation.cc +++ b/SimG4Core/Notification/src/TrackInformation.cc @@ -30,6 +30,7 @@ void TrackInformation::Print() const { << " isGeneratedSecondary = " << isGeneratedSecondary_ << "\n" << " mcTruthID = " << mcTruthID_ << "\n" << " isInHistory = " << isInHistory_ << "\n" + << " idLastStoredAncestor = " << idLastStoredAncestor() << "\n" << " idOnCaloSurface = " << getIDonCaloSurface() << "\n" << " caloIDChecked = " << caloIDChecked() << "\n" << " idCaloVolume = " << idCaloVolume_ << "\n" @@ -39,5 +40,7 @@ void TrackInformation::Print() const { << " isBTLlooper = " << isBTLlooper() << "\n" << " isInTrkFromBackscattering = " << isInTrkFromBackscattering() << "\n" - << " isExtSecondary = " << isExtSecondary(); + << " isExtSecondary = " << isExtSecondary() << "\n" + << " isETLFromFront = " << isETLfromFront() << "\n" + << " isETLFromBack = " << isETLfromBack(); } From af6f7653da82cb587521aa2b8f44c1d80c25d4bd Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Mon, 16 Dec 2024 17:27:36 +0100 Subject: [PATCH 301/418] Remove some prints --- Validation/HGCalValidation/plugins/HGCalValidator.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index 59dd3143dc405..84960b97004c3 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -24,7 +24,10 @@ namespace { const auto recoTrackstersProductId = tracksterHandle.id(); const auto simTrackstersProductId = simTracksterHandle.id(); const auto simTrackstersFromCPsProductId = simTracksterFromCPHandle.id(); - + if (recoTrackstersProductId == simTrackstersProductId or recoTrackstersProductId == simTrackstersFromCPsProductId) { + edm::LogInfo("MissingProduct") << "no SimTrackster to Simtrackster map available."; + return false; + } for (const auto& handle : tracksterToTracksterMapsHandles) { const auto& firstID = handle->getCollectionIDs().first.id(); const auto& secondID = handle->getCollectionIDs().second.id(); From ea61e47b2216c3640349de8d81b8da7fcf79ec42 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Mon, 16 Dec 2024 18:00:39 +0100 Subject: [PATCH 302/418] update last stored ancestor for each setStoreTrack() call --- SimG4CMS/Calo/src/CaloSD.cc | 2 ++ SimG4CMS/Forward/src/TimingSD.cc | 1 + SimG4CMS/Muon/src/MuonSensitiveDetector.cc | 1 + SimG4CMS/Tracker/src/TkAccumulatingSensitiveDetector.cc | 1 + SimG4Core/CustomPhysics/plugins/DBremWatcher.cc | 2 ++ SimG4Core/Notification/src/MCTruthUtil.cc | 3 +-- SimG4Core/SaveSimTrackAction/src/SaveSimTrack.cc | 1 + 7 files changed, 9 insertions(+), 2 deletions(-) diff --git a/SimG4CMS/Calo/src/CaloSD.cc b/SimG4CMS/Calo/src/CaloSD.cc index 42b950c04dff2..feaf3fa272cdb 100644 --- a/SimG4CMS/Calo/src/CaloSD.cc +++ b/SimG4CMS/Calo/src/CaloSD.cc @@ -568,6 +568,7 @@ unsigned int CaloSD::findBoundaryCrossingParent(const G4Track* track, bool markA #endif boundaryCrossingParentMap_[id] = id; trkInfo->setStoreTrack(); + trkInfo->setIdLastStoredAncestor(id); return id; } // Else, traverse the history of the track @@ -676,6 +677,7 @@ CaloG4Hit* CaloSD::createNewHit(const G4Step* aStep, const G4Track* theTrack, in #endif if (etrack >= energyCut || forceSave) { trkInfo->setStoreTrack(); + trkInfo->setIdLastStoredAncestor(theTrack->GetTrackID()); } } else { TrackWithHistory* trkh = tkMap[currentID[k].trackID()]; diff --git a/SimG4CMS/Forward/src/TimingSD.cc b/SimG4CMS/Forward/src/TimingSD.cc index 01ad4f24bccc0..68dc56476b877 100644 --- a/SimG4CMS/Forward/src/TimingSD.cc +++ b/SimG4CMS/Forward/src/TimingSD.cc @@ -154,6 +154,7 @@ void TimingSD::getStepInfo(const G4Step* aStep) { if (incidentEnergy > energyCut) { info = cmsTrackInformation(theTrack); info->setStoreTrack(); + info->setIdLastStoredAncestor(theTrack->GetTrackID()); } if (incidentEnergy > energyHistoryCut) { if (nullptr == info) { diff --git a/SimG4CMS/Muon/src/MuonSensitiveDetector.cc b/SimG4CMS/Muon/src/MuonSensitiveDetector.cc index 7acc1590035c6..c8c1f8d16803a 100644 --- a/SimG4CMS/Muon/src/MuonSensitiveDetector.cc +++ b/SimG4CMS/Muon/src/MuonSensitiveDetector.cc @@ -241,6 +241,7 @@ void MuonSensitiveDetector::createHit(const G4Step* aStep) { if (thePabs > ePersistentCutGeV_ || (thePID == 13 && allMuonsPersistent_)) { TrackInformation* info = cmsTrackInformation(theTrack); info->setStoreTrack(); + info->setIdLastStoredAncestor(theTrack->GetTrackID()); } #ifdef EDM_ML_DEBUG diff --git a/SimG4CMS/Tracker/src/TkAccumulatingSensitiveDetector.cc b/SimG4CMS/Tracker/src/TkAccumulatingSensitiveDetector.cc index fdf7f798c8b0e..d97ba804a0b3b 100644 --- a/SimG4CMS/Tracker/src/TkAccumulatingSensitiveDetector.cc +++ b/SimG4CMS/Tracker/src/TkAccumulatingSensitiveDetector.cc @@ -153,6 +153,7 @@ void TkAccumulatingSensitiveDetector::update(const BeginOfTrack* bot) { if (gTrack->GetKineticEnergy() > energyCut) { info = cmsTrackInformation(gTrack); info->setStoreTrack(); + info->setIdLastStoredAncestor(gTrack->GetTrackID()); } // // Save History? diff --git a/SimG4Core/CustomPhysics/plugins/DBremWatcher.cc b/SimG4Core/CustomPhysics/plugins/DBremWatcher.cc index aad672e3944bc..2a56c88aa1201 100644 --- a/SimG4Core/CustomPhysics/plugins/DBremWatcher.cc +++ b/SimG4Core/CustomPhysics/plugins/DBremWatcher.cc @@ -107,6 +107,7 @@ void DBremWatcher::update(const BeginOfTrack* trk) { if (std::find(pdgs_.begin(), pdgs_.end(), pdg) != pdgs_.end()) { //Found an A' trkInfo->setStoreTrack(); + trkInfo->setIdLastStoredAncestor(theTrack->GetTrackID()); VertexPos = Vpos; aPrimeTraj = theTrack->GetMomentum(); LogDebug("DBremWatcher") << "Save SimTrack the Track " << theTrack->GetTrackID() << " Type " @@ -138,6 +139,7 @@ void DBremWatcher::update(const EndOfTrack* trk) { if (std::find(pdgs_.begin(), pdgs_.end(), pdg) == pdgs_.end() && (theTrack->GetCreatorProcess()->GetProcessName()) == "muDBrem") { trkInfo->setStoreTrack(); + trkInfo->setIdLastStoredAncestor(theTrack->GetTrackID()); } } } diff --git a/SimG4Core/Notification/src/MCTruthUtil.cc b/SimG4Core/Notification/src/MCTruthUtil.cc index a5cf82282dea7..ab8759c5e2f59 100644 --- a/SimG4Core/Notification/src/MCTruthUtil.cc +++ b/SimG4Core/Notification/src/MCTruthUtil.cc @@ -1,4 +1,4 @@ -#define EDM_ML_DEBUG +//#define EDM_ML_DEBUG #include "SimG4Core/Notification/interface/MCTruthUtil.h" #include "SimG4Core/Notification/interface/TrackInformation.h" @@ -28,7 +28,6 @@ void MCTruthUtil::secondary(G4Track *aTrack, const G4Track &mother, int flag) { trkInfo->setGenParticlePID(aTrack->GetDefinition()->GetPDGEncoding()); trkInfo->setGenParticleP(aTrack->GetMomentum().mag()); trkInfo->setMCTruthID(aTrack->GetTrackID()); - trkInfo->setIdLastStoredAncestor(aTrack->GetTrackID()); } else { // secondary trkInfo->setGenParticlePID(motherInfo->genParticlePID()); diff --git a/SimG4Core/SaveSimTrackAction/src/SaveSimTrack.cc b/SimG4Core/SaveSimTrackAction/src/SaveSimTrack.cc index 921dcde0baede..cf91f343f9094 100644 --- a/SimG4Core/SaveSimTrackAction/src/SaveSimTrack.cc +++ b/SimG4Core/SaveSimTrackAction/src/SaveSimTrack.cc @@ -29,6 +29,7 @@ void SaveSimTrack::update(const BeginOfTrack *trk) { int pdg = theTrack->GetDefinition()->GetPDGEncoding(); if (std::find(pdgs_.begin(), pdgs_.end(), pdg) != pdgs_.end()) { trkInfo->setStoreTrack(); + trkInfo->setIdLastStoredAncestor(theTrack->GetTrackID()); LogDebug("SaveSimTrack") << "Save SimTrack the Track " << theTrack->GetTrackID() << " Type " << theTrack->GetDefinition()->GetParticleName() << " Momentum " << theTrack->GetMomentum() / CLHEP::MeV << " MeV/c"; From 1ff4d57f4477bec8c824396b9a09c82f3a714cc3 Mon Sep 17 00:00:00 2001 From: Manos Vourliotis Date: Fri, 6 Dec 2024 13:48:58 -0800 Subject: [PATCH 303/418] Improvements to the LST workflows and small general LST fixes --- Configuration/PyReleaseValidation/README.md | 2 +- .../PyReleaseValidation/python/relval_Run4.py | 5 ++- .../PyReleaseValidation/python/relval_gpu.py | 6 ++-- .../python/upgradeWorkflowComponents.py | 23 ++++++++----- .../python/TrackingSourceConfig_Tier0_cff.py | 5 +++ RecoTracker/LST/plugins/LSTOutputConverter.cc | 3 +- RecoTracker/LSTCore/BuildFile.xml | 1 + RecoTracker/LSTCore/interface/Common.h | 2 +- .../LSTCore/interface/QuintupletsSoA.h | 4 +-- RecoTracker/LSTCore/interface/alpaka/Common.h | 6 ++++ RecoTracker/LSTCore/src/ModuleMethods.h | 5 ++- RecoTracker/LSTCore/src/alpaka/Hit.h | 31 +++++------------- .../LSTCore/src/alpaka/LSTEvent.dev.cc | 24 +++++++------- .../LSTCore/src/alpaka/PixelQuintuplet.h | 4 +-- RecoTracker/LSTCore/src/alpaka/Quintuplet.h | 32 +++++++++---------- .../LSTCore/src/alpaka/TrackCandidate.h | 4 +-- RecoTracker/LSTCore/standalone/LST/Makefile | 2 +- RecoTracker/LSTCore/standalone/Makefile | 4 +-- RecoTracker/LSTCore/standalone/setup.sh | 5 +-- 19 files changed, 86 insertions(+), 82 deletions(-) diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index a8690b3454cb6..e4a98de091923 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -66,7 +66,7 @@ The offsets currently in use are: * 0.701: DisplacedRegionalStep tracking iteration for Run-3 * 0.702: trackingMkFit modifier for Phase-2 (initialStep only) * 0.703: LST tracking (Phase-2 only), initialStep+HighPtTripletStep only, on CPU -* 0.704: LST tracking (Phase-2 only), initialStep+HighPtTripletStep only, on GPU +* 0.704: LST tracking (Phase-2 only), initialStep+HighPtTripletStep only, on GPU (if available) * 0.75: HLT phase-2 timing menu * 0.751: HLT phase-2 timing menu Alpaka variant * 0.752: HLT phase-2 timing menu ticl_v5 variant diff --git a/Configuration/PyReleaseValidation/python/relval_Run4.py b/Configuration/PyReleaseValidation/python/relval_Run4.py index 8bf373840841b..a4e587868c493 100644 --- a/Configuration/PyReleaseValidation/python/relval_Run4.py +++ b/Configuration/PyReleaseValidation/python/relval_Run4.py @@ -37,9 +37,6 @@ numWFIB.extend([32034.0]) #Run4D115 numWFIB.extend([32434.0]) #Run4D116 -# Temporary placement for LST workflow to workaround PR conflicts - to be formatted and placed in an upcoming PR -numWFIB.extend([24834.703]) #Run4D98 LST tracking (initialStep+HighPtTripletStep only) - #Additional sample for short matrix and IB #Default Phase-2 Det NoPU numWFIB.extend([prefixDet+34.911]) #DD4hep XML @@ -47,6 +44,7 @@ numWFIB.extend([prefixDet+34.5]) #pixelTrackingOnly numWFIB.extend([prefixDet+34.9]) #vector hits numWFIB.extend([prefixDet+34.402]) #Alpaka local reconstruction offloaded on device (GPU if available) +numWFIB.extend([prefixDet+34.703]) #LST tracking on CPU (initialStep+HighPtTripletStep only) numWFIB.extend([prefixDet+34.21]) #prodlike numWFIB.extend([prefixDet+96.0]) #CloseByPGun CE_E_Front_120um numWFIB.extend([prefixDet+100.0]) #CloseByPGun CE_H_Coarse_Scint @@ -60,6 +58,7 @@ numWFIB.extend([prefixDet+234.21]) #prodlike PU numWFIB.extend([prefixDet+234.9921]) #prodlike premix stage1+stage2 numWFIB.extend([prefixDet+234.114]) #PU, with 10% OT inefficiency +numWFIB.extend([prefixDet+234.703]) #LST tracking on CPU (initialStep+HighPtTripletStep only) # numWFIB.extend([24834.911]) #D98 XML, to monitor instability of DD4hep for numWF in numWFIB: diff --git a/Configuration/PyReleaseValidation/python/relval_gpu.py b/Configuration/PyReleaseValidation/python/relval_gpu.py index e70d877c1daaa..8fb4653b9e77c 100644 --- a/Configuration/PyReleaseValidation/python/relval_gpu.py +++ b/Configuration/PyReleaseValidation/python/relval_gpu.py @@ -70,13 +70,11 @@ 13061.402, # Run4, Alpaka-based noPU - 29634.402, 29634.403, 29634.404, 29634.406, + 29634.402, 29634.403, 29634.404, 29634.406, 29634.704, 29661.402, - # Run4, Alpaka-based noPU GPU LST tracking D98 - 24834.704, # Run4, Alpaka-based PU - 29834.402, 29834.403, 29834.404 + 29834.402, 29834.403, 29834.404, 29834.704 ] for numWF in numWFIB: diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index aebfd585dc480..62bd1c56ad649 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -498,8 +498,9 @@ def setup__(self, step, stepName, stepDict, k, properties): if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]]) elif 'ALCA' in step: stepDict[stepName][k] = None - def condition_(self, fragment, stepList, key, hasHarvest): - return ('Run4' in key) + def condition(self, fragment, stepList, key, hasHarvest): + result = (fragment=="TTbar_14TeV") and hasHarvest and ('Run4' in key) + return result upgradeWFs['lstOnCPUIters01TrackingOnly'] = UpgradeWorkflow_lstOnCPUIters01TrackingOnly( steps = [ 'RecoGlobal', @@ -508,7 +509,10 @@ def condition_(self, fragment, stepList, key, hasHarvest): 'ALCA', 'ALCAPhase2' ], - PU = [], + PU = [ + 'RecoGlobal', + 'HARVESTGlobal', + ], suffix = '_lstOnCPUIters01TrackingOnly', offset = 0.703, ) @@ -517,14 +521,15 @@ def condition_(self, fragment, stepList, key, hasHarvest): '--accelerators' : 'cpu' } -# LST on GPU, initialStep+highPtTripletStep-only tracking-only +# LST on GPU (if available), initialStep+highPtTripletStep-only tracking-only class UpgradeWorkflow_lstOnGPUIters01TrackingOnly(UpgradeWorkflowTracking): def setup__(self, step, stepName, stepDict, k, properties): if 'Reco' in step: stepDict[stepName][k] = merge([self.step3, stepDict[step][k]]) elif 'HARVEST' in step: stepDict[stepName][k] = merge([{'-s': 'HARVESTING:@trackingOnlyValidation+@trackingOnlyDQM'}, stepDict[step][k]]) elif 'ALCA' in step: stepDict[stepName][k] = None - def condition_(self, fragment, stepList, key, hasHarvest): - return ('Run4' in key) + def condition(self, fragment, stepList, key, hasHarvest): + result = (fragment=="TTbar_14TeV") and hasHarvest and ('Run4' in key) + return result upgradeWFs['lstOnGPUIters01TrackingOnly'] = UpgradeWorkflow_lstOnGPUIters01TrackingOnly( steps = [ 'RecoGlobal', @@ -533,13 +538,15 @@ def condition_(self, fragment, stepList, key, hasHarvest): 'ALCA', 'ALCAPhase2' ], - PU = [], + PU = [ + 'RecoGlobal', + 'HARVESTGlobal', + ], suffix = '_lstOnGPUIters01TrackingOnly', offset = 0.704, ) upgradeWFs['lstOnGPUIters01TrackingOnly'].step3 = upgradeWFs['trackingOnly'].step3 | { '--procModifiers': 'trackingIters01,trackingLST', - '--accelerators' : 'gpu-*' } #DeepCore seeding for JetCore iteration workflow diff --git a/DQM/TrackingMonitorSource/python/TrackingSourceConfig_Tier0_cff.py b/DQM/TrackingMonitorSource/python/TrackingSourceConfig_Tier0_cff.py index faef9e465b492..aaeb59bb3fe03 100644 --- a/DQM/TrackingMonitorSource/python/TrackingSourceConfig_Tier0_cff.py +++ b/DQM/TrackingMonitorSource/python/TrackingSourceConfig_Tier0_cff.py @@ -395,6 +395,11 @@ def _copyIfExists(mod, pset, name): from Configuration.ProcessModifiers.seedingDeepCore_cff import seedingDeepCore seedingDeepCore.toReplaceWith(TrackSeedMonSequence,_seedingDeepCore_TrackSeedMonSequence) +from Configuration.ProcessModifiers.trackingLST_cff import trackingLST +trackingLST.toModify(locals()["TrackSeedMonhighPtTripletStep"], + SeedProducer = "lstPixelSeedInputProducer" +) + TrackingDQMSourceTier0 += TrackSeedMonSequence from DQM.TrackingMonitorSource.shortTrackResolution_cff import * diff --git a/RecoTracker/LST/plugins/LSTOutputConverter.cc b/RecoTracker/LST/plugins/LSTOutputConverter.cc index 73209db234b5e..13849e52a1209 100644 --- a/RecoTracker/LST/plugins/LSTOutputConverter.cc +++ b/RecoTracker/LST/plugins/LSTOutputConverter.cc @@ -259,6 +259,7 @@ void LSTOutputConverter::produce(edm::Event& iEvent, const edm::EventSetup& iSet LogDebug("LSTOutputConverter") << "done with conversion: Track candidate output size = " << outputpTC.size() << " (p* objects) + " << outputT5TC.size() << " (T5 objects)"; + std::vector outputSeedStopInfo(pixelSeeds.size()); iEvent.emplace(trajectorySeedPutToken_, std::move(outputTS)); iEvent.emplace(trajectorySeedpLSPutToken_, std::move(outputpLSTS)); iEvent.emplace(trackCandidatePutToken_, std::move(outputTC)); @@ -267,7 +268,7 @@ void LSTOutputConverter::produce(edm::Event& iEvent, const edm::EventSetup& iSet iEvent.emplace(trackCandidateNopLSTCPutToken_, std::move(outputNopLSTC)); iEvent.emplace(trackCandidatepTTCPutToken_, std::move(outputpTTC)); iEvent.emplace(trackCandidatepLSTCPutToken_, std::move(outputpLSTC)); - iEvent.emplace(seedStopInfoPutToken_, 0U); //dummy stop info + iEvent.emplace(seedStopInfoPutToken_, std::move(outputSeedStopInfo)); //dummy stop info } DEFINE_FWK_MODULE(LSTOutputConverter); diff --git a/RecoTracker/LSTCore/BuildFile.xml b/RecoTracker/LSTCore/BuildFile.xml index 8dd2b885bf1b4..10260860cdf2e 100644 --- a/RecoTracker/LSTCore/BuildFile.xml +++ b/RecoTracker/LSTCore/BuildFile.xml @@ -1,6 +1,7 @@ + diff --git a/RecoTracker/LSTCore/interface/Common.h b/RecoTracker/LSTCore/interface/Common.h index 00c9dabbaffc5..5f96da2773f15 100644 --- a/RecoTracker/LSTCore/interface/Common.h +++ b/RecoTracker/LSTCore/interface/Common.h @@ -1,8 +1,8 @@ #ifndef RecoTracker_LSTCore_interface_Common_h #define RecoTracker_LSTCore_interface_Common_h -#include "HeterogeneousCore/AlpakaInterface/interface/config.h" #include "DataFormats/Common/interface/StdArray.h" +#include "HeterogeneousCore/AlpakaInterface/interface/config.h" #if defined(FP16_Base) #if defined ALPAKA_ACC_GPU_CUDA_ENABLED diff --git a/RecoTracker/LSTCore/interface/QuintupletsSoA.h b/RecoTracker/LSTCore/interface/QuintupletsSoA.h index e2991a7fe28d3..3a76b3a26c893 100644 --- a/RecoTracker/LSTCore/interface/QuintupletsSoA.h +++ b/RecoTracker/LSTCore/interface/QuintupletsSoA.h @@ -24,8 +24,8 @@ namespace lst { SOA_COLUMN(bool, tightCutFlag), // tight pass to be a TC SOA_COLUMN(bool, partOfPT5), SOA_COLUMN(float, regressionRadius), - SOA_COLUMN(float, regressionG), - SOA_COLUMN(float, regressionF), + SOA_COLUMN(float, regressionCenterX), + SOA_COLUMN(float, regressionCenterY), SOA_COLUMN(float, rzChiSquared), // r-z only chi2 SOA_COLUMN(float, chiSquared), SOA_COLUMN(float, nonAnchorChiSquared), diff --git a/RecoTracker/LSTCore/interface/alpaka/Common.h b/RecoTracker/LSTCore/interface/alpaka/Common.h index fd59555fe8588..16e53e7bfe099 100644 --- a/RecoTracker/LSTCore/interface/alpaka/Common.h +++ b/RecoTracker/LSTCore/interface/alpaka/Common.h @@ -3,6 +3,7 @@ #include +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "RecoTracker/LSTCore/interface/Common.h" namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { @@ -11,6 +12,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { Vec3D constexpr elementsPerThread(Vec3D::all(static_cast(1))); + ALPAKA_FN_HOST ALPAKA_FN_INLINE void lstWarning(std::string warning) { + edm::LogWarning("LST") << warning; + return; + } + // Adjust grid and block sizes based on backend configuration template > ALPAKA_FN_HOST ALPAKA_FN_INLINE WorkDiv createWorkDiv(const Vec& blocksPerGrid, diff --git a/RecoTracker/LSTCore/src/ModuleMethods.h b/RecoTracker/LSTCore/src/ModuleMethods.h index d2cf81be21d02..13421dbd7e011 100644 --- a/RecoTracker/LSTCore/src/ModuleMethods.h +++ b/RecoTracker/LSTCore/src/ModuleMethods.h @@ -334,9 +334,8 @@ namespace lst { host_moduleType[index] = (m_t == 25 ? lst::TwoS : lst::PS); host_moduleLayerType[index] = (m_t == 23 ? lst::Pixel : lst::Strip); - if (host_moduleType[index] == lst::PS and host_moduleLayerType[index] == lst::Pixel) { - host_isAnchor[index] = true; - } else if (host_moduleType[index] == lst::TwoS and host_isLower[index]) { + if ((host_moduleType[index] == lst::PS and host_moduleLayerType[index] == lst::Pixel) || + (host_moduleType[index] == lst::TwoS and host_isLower[index])) { host_isAnchor[index] = true; } else { host_isAnchor[index] = false; diff --git a/RecoTracker/LSTCore/src/alpaka/Hit.h b/RecoTracker/LSTCore/src/alpaka/Hit.h index 166be95cb432f..e5d3eb4226abc 100644 --- a/RecoTracker/LSTCore/src/alpaka/Hit.h +++ b/RecoTracker/LSTCore/src/alpaka/Hit.h @@ -56,27 +56,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { return dPhi; } - ALPAKA_FN_HOST_ACC ALPAKA_FN_INLINE int binary_search(const unsigned int* data, // Array that we are searching over - unsigned int search_val, // Value we want to find in data array - unsigned int ndata) // Number of elements in data array - { - unsigned int low = 0; - unsigned int high = ndata - 1; - - while (low <= high) { - unsigned int mid = (low + high) / 2; - unsigned int test_val = data[mid]; - if (test_val == search_val) - return mid; - else if (test_val > search_val) - high = mid - 1; - else - low = mid + 1; - } - // Couldn't find search value in array. - return -1; - } - struct ModuleRangesKernel { template ALPAKA_FN_ACC void operator()(TAcc const& acc, @@ -129,13 +108,19 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { ((ihit_z > 0) - (ihit_z < 0)) * alpaka::math::acosh( acc, alpaka::math::sqrt(acc, ihit_x * ihit_x + ihit_y * ihit_y + ihit_z * ihit_z) / hits.rts()[ihit]); - int found_index = binary_search(modules.mapdetId(), iDetId, nModules); + auto found_pointer = std::lower_bound(modules.mapdetId(), modules.mapdetId() + nModules, iDetId); + int found_index = std::distance(modules.mapdetId(), found_pointer); + if (found_pointer == modules.mapdetId() + nModules) + found_index = -1; uint16_t lastModuleIndex = modules.mapIdx()[found_index]; hits.moduleIndices()[ihit] = lastModuleIndex; if (modules.subdets()[lastModuleIndex] == Endcap && modules.moduleType()[lastModuleIndex] == TwoS) { - found_index = binary_search(geoMapDetId, iDetId, nEndCapMap); + found_pointer = std::lower_bound(geoMapDetId, geoMapDetId + nEndCapMap, iDetId); + found_index = std::distance(geoMapDetId, found_pointer); + if (found_pointer == geoMapDetId + nEndCapMap) + found_index = -1; float phi = geoMapPhi[found_index]; float cos_phi = alpaka::math::cos(acc, phi); hits.highEdgeXs()[ihit] = ihit_x + 2.5f * cos_phi; diff --git a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc index cb8a2bcbb457e..8de38b530f93e 100644 --- a/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc +++ b/RecoTracker/LSTCore/src/alpaka/LSTEvent.dev.cc @@ -173,11 +173,12 @@ void LSTEvent::addPixelSegmentToEvent(std::vector const& hitIndice unsigned int size = ptIn.size(); if (size > n_max_pixel_segments_per_module) { - printf( - "*********************************************************\n" - "* Warning: Pixel line segments will be truncated. *\n" - "* You need to increase n_max_pixel_segments_per_module. *\n" - "*********************************************************\n"); + lstWarning( + "\ + *********************************************************\n\ + * Warning: Pixel line segments will be truncated. *\n\ + * You need to increase n_max_pixel_segments_per_module. *\n\ + *********************************************************"); size = n_max_pixel_segments_per_module; } @@ -714,12 +715,13 @@ void LSTEvent::createTrackCandidates(bool no_pls_dupclean, bool tc_pls_triplets) auto nTrackCandidatesT5 = *nTrackCanT5Host_buf.data(); if ((nTrackCandidatespT5 + nTrackCandidatespT3 + nTrackCandidatespLS == n_max_pixel_track_candidates) || (nTrackCandidatesT5 == n_max_nonpixel_track_candidates)) { - printf( - "****************************************************************************************************\n" - "* Warning: Track candidates were possibly truncated. *\n" - "* You may need to increase either n_max_pixel_track_candidates or n_max_nonpixel_track_candidates. *\n" - "* Run the code with the WARNINGS flag activated for more details. *\n" - "****************************************************************************************************\n"); + lstWarning( + "\ + ****************************************************************************************************\n\ + * Track candidates were possibly truncated. *\n\ + * You may need to increase either n_max_pixel_track_candidates or n_max_nonpixel_track_candidates. *\n\ + * Run the code with the WARNINGS flag activated for more details. *\n\ + ****************************************************************************************************"); } } diff --git a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h index 5ec314ef7bb1e..08b7d7d414bf7 100644 --- a/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/PixelQuintuplet.h @@ -597,8 +597,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { centerX = segmentsPixel.circleCenterX()[pixelSegmentArrayIndex]; centerY = segmentsPixel.circleCenterY()[pixelSegmentArrayIndex]; - float T5CenterX = quintuplets.regressionG()[quintupletIndex]; - float T5CenterY = quintuplets.regressionF()[quintupletIndex]; + float T5CenterX = quintuplets.regressionCenterX()[quintupletIndex]; + float T5CenterY = quintuplets.regressionCenterY()[quintupletIndex]; quintupletRadius = quintuplets.regressionRadius()[quintupletIndex]; rPhiChiSquared = computePT5RPhiChiSquared(acc, modules, lowerModuleIndices, centerX, centerY, pixelRadius, xs, ys); diff --git a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h index 679b1334038b2..8bb9a16a5a38b 100644 --- a/RecoTracker/LSTCore/src/alpaka/Quintuplet.h +++ b/RecoTracker/LSTCore/src/alpaka/Quintuplet.h @@ -31,8 +31,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float innerRadius, float bridgeRadius, float outerRadius, - float regressionG, - float regressionF, + float regressionCenterX, + float regressionCenterY, float regressionRadius, float rzChiSquared, float rPhiChiSquared, @@ -63,8 +63,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { quintuplets.isDup()[quintupletIndex] = 0; quintuplets.tightCutFlag()[quintupletIndex] = tightCutFlag; quintuplets.regressionRadius()[quintupletIndex] = regressionRadius; - quintuplets.regressionG()[quintupletIndex] = regressionG; - quintuplets.regressionF()[quintupletIndex] = regressionF; + quintuplets.regressionCenterX()[quintupletIndex] = regressionCenterX; + quintuplets.regressionCenterY()[quintupletIndex] = regressionCenterY; quintuplets.logicalLayers()[quintupletIndex][0] = triplets.logicalLayers()[innerTripletIndex][0]; quintuplets.logicalLayers()[quintupletIndex][1] = triplets.logicalLayers()[innerTripletIndex][1]; quintuplets.logicalLayers()[quintupletIndex][2] = triplets.logicalLayers()[innerTripletIndex][2]; @@ -1456,8 +1456,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { float& innerRadius, float& outerRadius, float& bridgeRadius, - float& regressionG, - float& regressionF, + float& regressionCenterX, + float& regressionCenterY, float& regressionRadius, float& rzChiSquared, float& chiSquared, @@ -1597,8 +1597,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { delta2, slopes, isFlat, - regressionG, - regressionF, + regressionCenterX, + regressionCenterY, sigmas2, chiSquared); @@ -1633,8 +1633,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { nonAnchorDelta2, nonAnchorSlopes, isFlat, - regressionG, - regressionF, + regressionCenterX, + regressionCenterY, regressionRadius); return true; } @@ -1681,8 +1681,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { uint16_t lowerModule4 = triplets.lowerModuleIndices()[outerTripletIndex][1]; uint16_t lowerModule5 = triplets.lowerModuleIndices()[outerTripletIndex][2]; - float innerRadius, outerRadius, bridgeRadius, regressionG, regressionF, regressionRadius, rzChiSquared, - chiSquared, nonAnchorChiSquared, dBeta1, dBeta2; //required for making distributions + float innerRadius, outerRadius, bridgeRadius, regressionCenterX, regressionCenterY, regressionRadius, + rzChiSquared, chiSquared, nonAnchorChiSquared, dBeta1, dBeta2; //required for making distributions bool tightCutFlag = false; bool success = runQuintupletDefaultAlgo(acc, @@ -1700,8 +1700,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { innerRadius, outerRadius, bridgeRadius, - regressionG, - regressionF, + regressionCenterX, + regressionCenterY, regressionRadius, rzChiSquared, chiSquared, @@ -1748,8 +1748,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { innerRadius, bridgeRadius, outerRadius, - regressionG, - regressionF, + regressionCenterX, + regressionCenterY, regressionRadius, rzChiSquared, chiSquared, diff --git a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h index 1863f262ffd7d..315263919aa87 100644 --- a/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h +++ b/RecoTracker/LSTCore/src/alpaka/TrackCandidate.h @@ -379,8 +379,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::lst { quintuplets.lowerModuleIndices()[quintupletIndex].data(), quintuplets.hitIndices()[quintupletIndex].data(), -1 /*no pixel seed index for T5s*/, - quintuplets.regressionG()[quintupletIndex], - quintuplets.regressionF()[quintupletIndex], + quintuplets.regressionCenterX()[quintupletIndex], + quintuplets.regressionCenterY()[quintupletIndex], quintuplets.regressionRadius()[quintupletIndex], trackCandidateIdx, quintupletIndex); diff --git a/RecoTracker/LSTCore/standalone/LST/Makefile b/RecoTracker/LSTCore/standalone/LST/Makefile index 3790a6031b0c8..f77f18b61c7cb 100644 --- a/RecoTracker/LSTCore/standalone/LST/Makefile +++ b/RecoTracker/LSTCore/standalone/LST/Makefile @@ -47,7 +47,7 @@ CXX = g++ CXXFLAGS_CPU = -march=native -mtune=native -Ofast -fno-reciprocal-math -fopenmp-simd -g -Wall -Woverloaded-virtual -fPIC -fopenmp -I.. CXXFLAGS_CUDA = -O3 -g --compiler-options -Wall --compiler-options -Woverloaded-virtual --compiler-options -fPIC --compiler-options -fopenmp -dc -lineinfo --ptxas-options=-v --cudart shared $(GENCODE_CUDA) --use_fast_math --default-stream per-thread -I.. CXXFLAGS_ROCM = -O3 -g -Wall -Woverloaded-virtual -fPIC -I${ROCM_ROOT}/include -I.. -CMSSWINCLUDE := -I${TRACKLOOPERDIR}/../../../ -I${CMSSW_BASE}/src +CMSSWINCLUDE := -I${TRACKLOOPERDIR}/../../../ -I${CMSSW_BASE}/src -I${FMT_ROOT}/include ifdef CMSSW_RELEASE_BASE CMSSWINCLUDE := ${CMSSWINCLUDE} -I${CMSSW_RELEASE_BASE}/src endif diff --git a/RecoTracker/LSTCore/standalone/Makefile b/RecoTracker/LSTCore/standalone/Makefile index 18ec73db8d975..5a5594bcdfbb0 100644 --- a/RecoTracker/LSTCore/standalone/Makefile +++ b/RecoTracker/LSTCore/standalone/Makefile @@ -10,11 +10,11 @@ OBJECTS=$(OBJECTS_CPU) $(OBJECTS_CUDA) $(OBJECTS_ROCM) CXX = g++ CXXFLAGS = -g -O2 -Wall -fPIC -Woverloaded-virtual -Wno-unused-function -fno-var-tracking -std=c++20 -INCLUDEFLAGS= -ILST -I$(shell pwd) -Icode -Icode/core -I${ALPAKA_ROOT}/include -I/${BOOST_ROOT}/include $(shell rooutil-config --include) -I$(shell root-config --incdir) -I${TRACKLOOPERDIR}/../../../ -I${CMSSW_BASE}/src -I../interface/ -I../interface/alpaka/ -I../src/ -I../src/alpaka/ +INCLUDEFLAGS= -ILST -I$(shell pwd) -Icode -Icode/core -I${ALPAKA_ROOT}/include -I/${BOOST_ROOT}/include $(shell rooutil-config --include) -I$(shell root-config --incdir) -I${TRACKLOOPERDIR}/../../../ -I${CMSSW_BASE}/src -I${FMT_ROOT}/include -I../interface/ -I../interface/alpaka/ -I../src/ -I../src/alpaka/ ifdef CMSSW_RELEASE_BASE INCLUDEFLAGS:= ${INCLUDEFLAGS} -I${CMSSW_RELEASE_BASE}/src endif -LDFLAGS = -g -O2 $(LSTLIB) -L${TRACKLOOPERDIR}/LST $(shell rooutil-config --libs) $(shell root-config --libs) +LDFLAGS = -g -O2 $(LSTLIB) -L${TRACKLOOPERDIR}/LST $(shell rooutil-config --libs) $(shell root-config --libs) -L${CMSSW_BASE}/lib/${SCRAM_ARCH} -lFWCoreMessageLogger LDFLAGS_CUDA= -L${CUDA_HOME}/lib64 -lcudart LDFLAGS_ROCM= -L${ROCM_ROOT}/lib -lamdhip64 ALPAKAFLAGS = -DALPAKA_DEBUG=0 diff --git a/RecoTracker/LSTCore/standalone/setup.sh b/RecoTracker/LSTCore/standalone/setup.sh index 570a7ae9fee81..f08180201192d 100644 --- a/RecoTracker/LSTCore/standalone/setup.sh +++ b/RecoTracker/LSTCore/standalone/setup.sh @@ -23,11 +23,12 @@ else fi # Export paths to libraries we need -export BOOST_ROOT=$(scram tool info boost | grep BOOST_BASE | cut -d'=' -f2) export ALPAKA_ROOT=$(scram tool info alpaka | grep ALPAKA_BASE | cut -d'=' -f2) +export BOOST_ROOT=$(scram tool info boost | grep BOOST_BASE | cut -d'=' -f2) export CUDA_HOME=$(scram tool info cuda | grep CUDA_BASE | cut -d'=' -f2) -export ROOT_ROOT=$(scram tool info root_interface | grep ROOT_INTERFACE_BASE | cut -d'=' -f2) +export FMT_ROOT=$(scram tool info fmt | grep FMT_BASE | cut -d'=' -f2) export ROCM_ROOT=$(scram tool info rocm | grep ROCM_BASE | cut -d'=' -f2) +export ROOT_ROOT=$(scram tool info root_interface | grep ROOT_INTERFACE_BASE | cut -d'=' -f2) cd - > /dev/null echo "Setup following ROOT. Make sure the appropriate setup file has been run. Otherwise the looper won't compile." From 00f7cd4fdef9454ea4609d46e82eaf031b0ed6c7 Mon Sep 17 00:00:00 2001 From: AdrianoDee Date: Thu, 5 Dec 2024 16:16:10 +0100 Subject: [PATCH 304/418] Normal 2024 wfs --- .../python/relval_standard.py | 56 +++---------------- .../python/relval_steps.py | 17 +++++- .../PyReleaseValidation/scripts/README.md | 14 +++-- .../scripts/runTheMatrix.py | 18 +++--- 4 files changed, 45 insertions(+), 60 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/relval_standard.py b/Configuration/PyReleaseValidation/python/relval_standard.py index 086f989eb5f97..626cb43284e64 100644 --- a/Configuration/PyReleaseValidation/python/relval_standard.py +++ b/Configuration/PyReleaseValidation/python/relval_standard.py @@ -573,57 +573,19 @@ ### run3-2025 (2025 HI OXY data) workflows[143.911] = ['',['RunUPC2024','RECODR3_2025_OXY','HARVESTDPROMPTR3']] -################################################################## -### Golden Data Wfs -# for a limited set of eras and PDs not to overflow the IB matrices -# the full set in relval_data_highstats.py -offset_era = 0.1 # less than 10 eras per year +## Lumi mask fixed 2024 wfs +base_wf = 145.0 +offset_era = 0.1 # less than 10 eras per year (hopefully) offset_pd = 0.001 # less than 100 pds per year -# 2024 -base_wf = 2024 -for e_n,era in enumerate(['Run2024B','Run2024C','Run2024D','Run2024E']): - for p_n,pd in enumerate(['ZeroBias','BTagMu','JetMET0','DisplacedJet']): - wf_number = base_wf - wf_number = wf_number + offset_era * e_n - wf_number = wf_number + offset_pd * p_n - wf_number = wf_number + 0.0001 * 0.01 - wf_number = round(wf_number,6) - - step_name = "Run" + pd.replace("ParkingDouble","Park2") + era.split("Run")[1] + "_10k" - y = str(base_wf) - suff = "ZB_" if "ZeroBias" in step_name else "" - workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]] - -# 2023 -base_wf = 2023 -for e_n,era in enumerate(['Run2023D']): - for p_n,pd in enumerate(['MuonEG','DisplacedJet','ZeroBias']): - wf_number = base_wf - wf_number = wf_number + offset_era * e_n - wf_number = wf_number + offset_pd * p_n - wf_number = wf_number + 0.0001 * 0.01 - wf_number = round(wf_number,6) - - step_name = "Run" + pd.replace("ParkingDouble","Park2") + era.split("Run")[1] + "_10k" - y = str(base_wf) + "B" if "2023B" in era else str(base_wf) - suff = "ZB_" if "ZeroBias" in step_name else "" - workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]] - -# 2022 -base_wf = 2022 -for e_n,era in enumerate(['Run2022C']): - for p_n,pd in enumerate(['JetHT','EGamma','ZeroBias']): - wf_number = base_wf - wf_number = wf_number + offset_era * e_n - wf_number = wf_number + offset_pd * p_n - wf_number = wf_number + 0.0001 * 0.01 - wf_number = round(wf_number,6) - step_name = "Run" + pd + era.split("Run")[1] + "_10k" - y = str(base_wf) +for e_n,era in enumerate(era_mask_2024): + for p_n,pd in enumerate(pds_2024): + wf_number = round(base_wf + offset_era * e_n + offset_pd * p_n,3) + dataset = "/" + pd + "/" + era + "-v1/RAW" + step_name = "Run" + pd.replace("ParkingDouble","Park2") + era.split("Run")[1] suff = "ZB_" if "ZeroBias" in step_name else "" - workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]] + workflows[wf_number] = ['',[step_name,'HLTDR3_2024','RECONANORUN3_' + suff + 'reHLT_2024','HARVESTRUN3_' + suff + '2024']] ################################################################## diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 5884a86631c9f..3c9b8dbcb4f7f 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -654,7 +654,7 @@ ###2024 pds_2024 = ['BTagMu', 'DisplacedJet', 'EGamma0', 'HcalNZS', 'JetMET0', 'Muon0', 'MuonEG', 'NoBPTX', 'ParkingDoubleMuonLowMass0', 'ParkingHH', 'ParkingLLP', 'ParkingSingleMuon0', 'ParkingVBF0', 'Tau', 'ZeroBias'] -eras_2024 = ['Run2024B', 'Run2024C', 'Run2024D', 'Run2024E', 'Run2024F'] +eras_2024 = ['Run2024B', 'Run2024C', 'Run2024D', 'Run2024E', 'Run2024F','Run2024G','Run2024H','Run2024I'] for era in eras_2024: for pd in pds_2024: dataset = "/" + pd + "/" + era + "-v1/RAW" @@ -698,6 +698,21 @@ steps[step_name] = {'INPUT':InputInfo(dataSet=dataset,label=era.split("Run")[1],events=int(evs*1e6), skimEvents=True, location='STD')} +### 2024 single lumi mask wfs for the limited matrix only +### Mask chosen from golden json away from run start + +good_runs_2024 = [379238,379454,380360,381079,382258,383814,385889,386593] +lumi_mask_2024 = [{ r : [[110, 111]]} for r in good_runs_2024] +era_mask_2024 = dict(zip(eras_2024,lumi_mask_2024)) + +for era in era_mask_2024: + for pd in pds_2024: + dataset = "/" + pd + "/" + era + "-v1/RAW" + lm = era_mask_2024[era] + step_name = "Run" + pd.replace("ParkingDouble","Park2") + era.split("Run")[1] + steps[step_name]={'INPUT':InputInfo(dataSet=dataset,label=era.split("Run")[1],events=100000,location='STD', ls=lm)} + + ################################################################## # Highstat HLTPhysics diff --git a/Configuration/PyReleaseValidation/scripts/README.md b/Configuration/PyReleaseValidation/scripts/README.md index 829b8f1288e59..1640272426310 100644 --- a/Configuration/PyReleaseValidation/scripts/README.md +++ b/Configuration/PyReleaseValidation/scripts/README.md @@ -369,12 +369,18 @@ pp Data reRECO workflows: | 2022 | | | | | | 2022.002001 | Run2022D ZeroBias | run3_hlt_relval + run3_data_relval | Run3 | HLT:@relval2022 | | 2022.000001 | Run2022D JetHT | run3_hlt_relval + run3_data_relval | Run3 | HLT:@relval2022 | +| 2023 | | | | | | 2023.002001 | Run2023D ZeroBias | run3_hlt_relval + run3_data_relval| Run3_2023 | HLT:@relval2023 | | 2023.000001 | Run2023D MuonEG | run3_hlt_relval + run3_data_relval| Run3_2023 | HLT:@relval2023 | -| 2024.000001 | Run2024B ZeroBias | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2023 | -| 2024.101001 | Run2024C BTagMu | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | -| 2024.202001 | Run2024D JetMET0 | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | -| 2024.303001 | Run2024E RunDisplacedJet | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | +| 2024 | | | | | +| 145.014 | Run2024B ZeroBias | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | +| 145.104 | Run2024C JetMet0 | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | +| 145.202 | Run2024D EGamma0 | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | +| 145.301 | Run2024E DisplacedJet | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | +| 145.408 | Run2024B ParkingDoubleMuonLowMass0 | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | +| 145.500 | Run2024B BTagMu | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | +| 145.604 | Run2024B JetMET0 | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | +| 145.713 | Run2024B Tau | run3_hlt_relval + run3_data_prompt_relval| Run3_2024 | HLT:@relval2025 | And Heavy Ion workflows: diff --git a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py index a6608f9dba521..53a456833b3e8 100755 --- a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py +++ b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py @@ -115,18 +115,20 @@ def runSelected(opt): 139.001, # Run2021 MinimumBias Commissioning2021 # 2022 - 2022.002001, # Run2022C ZeroBias - 2022.000001, # Run2022C JetHT + 140.045, # Run2022C JetHT # 2023 - 2023.002001, # Run2023D ZeroBias - 2023.002001, # Run2023D MuonEG + 141.042, # Run2023D ZeroBias # 2024 - 2024.000001, # Run2024B ZeroBias - 2024.101001, # Run2024C BTagMu - 2024.202001, # Run2024D JetMET0 - 2024.303001, # Run2024E DisplacedJet + 145.014, # Run2024B ZeroBias + 145.104, # Run2024C JetMet0 + 145.202, # Run2024D EGamma0 + 145.301, # Run2024E DisplacedJet + 145.408, # Run2024F ParkingDoubleMuonLowMass0 + 145.500, # Run2024G BTagMu + 145.604, # Run2024H JetMET0 + 145.713, # Run2024I Tau ###### Heavy Ions ## Data From 0c89fc94ed2bfb65d1d2403fe5c8e4ce6cbec2c4 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 17 Dec 2024 10:20:39 +0100 Subject: [PATCH 305/418] Fix initialization of hitClassID in TimingSD/MtdSD --- SimG4CMS/Forward/interface/TimingSD.h | 5 +++-- SimG4CMS/Forward/src/MtdSD.cc | 1 + SimG4CMS/Forward/src/TimingSD.cc | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/SimG4CMS/Forward/interface/TimingSD.h b/SimG4CMS/Forward/interface/TimingSD.h index 514ad3d0f1115..8cb888f93840f 100644 --- a/SimG4CMS/Forward/interface/TimingSD.h +++ b/SimG4CMS/Forward/interface/TimingSD.h @@ -68,8 +68,6 @@ class TimingSD : public SensitiveTkDetector, public ObserversetETLfromBack(); } else { + hitClassID = 0; trkInfo->setETLfromFront(); } } diff --git a/SimG4CMS/Forward/src/TimingSD.cc b/SimG4CMS/Forward/src/TimingSD.cc index 68dc56476b877..c60eb13ce7a9a 100644 --- a/SimG4CMS/Forward/src/TimingSD.cc +++ b/SimG4CMS/Forward/src/TimingSD.cc @@ -51,7 +51,8 @@ TimingSD::TimingSD(const std::string& name, const SensitiveDetectorCatalog& clg, tSliceID(-1), timeFactor(1.0), energyCut(1.e+9), - energyHistoryCut(1.e+9) { + energyHistoryCut(1.e+9), + hitClassID(0) { slave = new TrackingSlaveSD(name); theEnumerator = new G4ProcessTypeEnumerator(); } From 15bd342be03ebe5d023f29699bd97575125143a2 Mon Sep 17 00:00:00 2001 From: cquarant Date: Tue, 17 Dec 2024 10:46:43 +0100 Subject: [PATCH 306/418] overall update of BTLDetId to match BTL geo v2,v3 (v1 not supported), BTL electronics mapping introduced --- DataFormats/ForwardDetId/interface/BTLDetId.h | 167 +++++++++++---- DataFormats/ForwardDetId/src/BTLDetId.cc | 34 +-- DataFormats/ForwardDetId/src/classes_def.xml | 9 +- DataFormats/TrackReco/src/HitPattern.cc | 2 +- .../interface/BTLElectronicsMapping.h | 80 +++++++ .../interface/BTLNumberingScheme.h | 3 - .../src/BTLElectronicsMapping.cc | 198 ++++++++++++++++++ .../MTDCommonData/src/BTLNumberingScheme.cc | 162 +++++++------- .../test/DD4hep_TestPixelTopology.cc | 8 +- .../plugins/CmsMTDConstruction.cc | 4 +- 10 files changed, 520 insertions(+), 147 deletions(-) create mode 100644 Geometry/MTDCommonData/interface/BTLElectronicsMapping.h create mode 100644 Geometry/MTDCommonData/src/BTLElectronicsMapping.cc diff --git a/DataFormats/ForwardDetId/interface/BTLDetId.h b/DataFormats/ForwardDetId/interface/BTLDetId.h index 0a1bd7eab1699..3b2337cb7e982 100644 --- a/DataFormats/ForwardDetId/interface/BTLDetId.h +++ b/DataFormats/ForwardDetId/interface/BTLDetId.h @@ -2,8 +2,10 @@ #define DataFormats_BTLDetId_BTLDetId_h #include "DataFormats/ForwardDetId/interface/MTDDetId.h" +#include #include #include +#include /** @class BTLDetId @@ -14,29 +16,59 @@ bit 9-8 : crystal type (1 - 3) bit 7-6 : readout unit sequential number within a type ( 1 - 2 ) bit 5-0 : crystal sequential number within a module ( 0 - 15 ) + + // Geometry v3 new DetID (all type 1 modules) + bit 15: kBTLNewFormat (0 - old BTLDetID, 1 - new BTLDetID) + bit 12-10: Readout unit number ( 1 - 6 ) + bit 9-6 : Detector Module ( 1 - 12 ) + bit 5 : Sensor Module inside DM ( 0 - 1 ) + bit 4-0 : Crystal number in a SM ( 1 - 16 ) */ class BTLDetId : public MTDDetId { public: - static constexpr uint32_t kBTLmoduleOffset = 10; - static constexpr uint32_t kBTLmoduleMask = 0x3F; - static constexpr uint32_t kBTLmodTypeOffset = 8; - static constexpr uint32_t kBTLmodTypeMask = 0x3; - static constexpr uint32_t kBTLRUOffset = 6; - static constexpr uint32_t kBTLRUMask = 0x3; + // old BTLDetID RU and module number scheme + static constexpr uint32_t kBTLoldModuleOffset = 10; + static constexpr uint32_t kBTLoldModuleMask = 0x3F; + static constexpr uint32_t kBTLoldModTypeOffset = 8; + static constexpr uint32_t kBTLoldModTypeMask = 0x3; + static constexpr uint32_t kBTLoldRUOffset = 6; + static constexpr uint32_t kBTLoldRUMask = 0x3; + + // New BTLDetID + static constexpr uint32_t kBTLRodOffset = 16; + static constexpr uint32_t kBTLRodMask = 0x3F; + static constexpr uint32_t kBTLRUOffset = 10; + static constexpr uint32_t kBTLRUMask = 0x7; + static constexpr uint32_t kBTLdetectorModOffset = 6; + static constexpr uint32_t kBTLdetectorModMask = 0xF; + static constexpr uint32_t kBTLsensorModOffset = 5; + static constexpr uint32_t kBTLsensorModMask = 0x1; static constexpr uint32_t kBTLCrystalOffset = 0; - static constexpr uint32_t kBTLCrystalMask = 0x3F; + static constexpr uint32_t kBTLCrystalMask = 0x1F; /// range constants, need two sets for the time being (one for tiles and one for bars) static constexpr uint32_t HALF_ROD = 36; static constexpr uint32_t kModulesPerRODBarPhiFlat = 48; static constexpr uint32_t kModulePerTypeBarPhiFlat = 48 / 3; static constexpr uint32_t kRUPerTypeV2 = 2; + static constexpr uint32_t kRUPerRod = 6; static constexpr uint32_t kModulesPerRUV2 = 24; + static constexpr uint32_t kDModulesPerRU = 12; + static constexpr uint32_t kSModulesPerDM = 2; + static constexpr uint32_t kDModulesInRUCol = 3; + static constexpr uint32_t kDModulesInRURow = 4; + static constexpr uint32_t kSModulesInDM = 2; static constexpr uint32_t kCrystalsPerModuleV2 = 16; static constexpr uint32_t kModulesPerTrkV2 = 3; static constexpr uint32_t kCrystalTypes = 3; + // conversion + static constexpr uint32_t kBTLoldFieldMask = 0x3FFFFF; + static constexpr uint32_t kBTLNewFormat = 1 << 15; + + // + // Number of crystals in BTL according to TDR design, valid also for barphiflat scenario: // 16 crystals x 24 modules x 2 readout units/type x 3 types x 36 rods/side x 2 sides // @@ -50,67 +82,120 @@ class BTLDetId : public MTDDetId { /** Construct a null id */ BTLDetId() : MTDDetId(DetId::Forward, ForwardSubdetector::FastTime) { id_ |= (MTDType::BTL & kMTDsubdMask) << kMTDsubdOffset; + id_ |= kBTLNewFormat; } /** Construct from a raw value */ - BTLDetId(const uint32_t& raw_id) : MTDDetId(raw_id) { ; } + BTLDetId(const uint32_t& raw_id) : MTDDetId(raw_id) { + uint32_t tmpId = raw_id; + if ((tmpId & kBTLNewFormat) == 0) { + tmpId = newForm(tmpId); + } + id_ = MTDDetId(tmpId).rawId(); + } /** Construct from generic DetId */ - BTLDetId(const DetId& det_id) : MTDDetId(det_id.rawId()) { ; } - - /** Construct from complete geometry information, v1 **/ - BTLDetId(uint32_t zside, uint32_t rod, uint32_t module, uint32_t modtyp, uint32_t crystal) - : MTDDetId(DetId::Forward, ForwardSubdetector::FastTime) { - id_ |= (MTDType::BTL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset | - (rod & kRodRingMask) << kRodRingOffset | (module & kBTLmoduleMask) << kBTLmoduleOffset | - (modtyp & kBTLmodTypeMask) << kBTLmodTypeOffset | ((crystal - 1) & kBTLCrystalMask) << kBTLCrystalOffset; + BTLDetId(const DetId& det_id) : MTDDetId(det_id.rawId()) { + uint32_t tmpId = det_id.rawId(); + if ((tmpId & kBTLNewFormat) == 0) { + tmpId = newForm(tmpId); + } + id_ = MTDDetId(tmpId).rawId(); } - /** Construct from complete geometry information, v2 **/ - BTLDetId(uint32_t zside, uint32_t rod, uint32_t runit, uint32_t module, uint32_t modtyp, uint32_t crystal) + /** Construct from complete geometry information, v2, v3 **/ + /** Geometry v1 is obsolete and not supported **/ + BTLDetId(uint32_t zside, uint32_t rod, uint32_t runit, uint32_t dmodule, uint32_t smodule, uint32_t crystal) : MTDDetId(DetId::Forward, ForwardSubdetector::FastTime) { + //RU, DM, SM & Xtal numbers start from 0 id_ |= (MTDType::BTL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset | - (rod & kRodRingMask) << kRodRingOffset | (module & kBTLmoduleMask) << kBTLmoduleOffset | - (modtyp & kBTLmodTypeMask) << kBTLmodTypeOffset | (runit & kBTLRUMask) << kBTLRUOffset | - ((crystal - 1) & kBTLCrystalMask) << kBTLCrystalOffset; + (rod & kRodRingMask) << kRodRingOffset | (runit & kBTLRUMask) << kBTLRUOffset | + (dmodule & kBTLdetectorModMask) << kBTLdetectorModOffset | + (smodule & kBTLsensorModMask) << kBTLsensorModOffset | + (crystal & kBTLCrystalMask) << kBTLCrystalOffset; + id_ |= kBTLNewFormat; } // ---------- Common methods ---------- - /** Returns BTL module number. */ - inline int module() const { return (id_ >> kBTLmoduleOffset) & kBTLmoduleMask; } + /** Returns BTL crystal number. */ + inline int crystal() const { return ((id_ >> kBTLCrystalOffset) & kBTLCrystalMask);} - /** Returns BTL crystal type number. */ - inline int modType() const { return (id_ >> kBTLmodTypeOffset) & kBTLmodTypeMask; } + /** Returns BTL crystal number in construction database. */ + inline int crystalConsDB() const { + if (crystal() == kCrystalsPerModuleV2) return -1; + if (smodule() == 0) return kCrystalsPerModuleV2-1 - crystal() ; + else return crystal(); + } - /** Returns BTL crystal number. */ - inline int crystal() const { return ((id_ >> kBTLCrystalOffset) & kBTLCrystalMask) + 1; } + /** Returns BTL detector module number. */ + inline int dmodule() const { return ((id_ >> kBTLdetectorModOffset) & kBTLdetectorModMask); } - /** Returns BTL readout unit number per type. */ - inline int runit() const { return (id_ >> kBTLRUOffset) & kBTLRUMask; } + /** Returns BTL sensor module number. */ + inline int smodule() const { return ((id_ >> kBTLsensorModOffset) & kBTLsensorModMask); } - /** Returns BTL global readout unit number. */ - inline int globalRunit() const { - if (runit() == 0) { - // pre-V2: build a RU identifier from available information - return (module() - 1) / kModulePerTypeBarPhiFlat / kRUPerTypeV2 + 1; - } else if (runit() > 0 && modType() > 0) { - // V2/V3: build global RU identifier from RU per type and type - return (modType() - 1) * kRUPerTypeV2 + runit(); - } - return 0; + /** Returns BTL module number [1-24] (OLD BTL NUMBERING). */ + inline int module() const { + int mod = ((dmodule() % kDModulesInRURow) * (kSModulesInDM * kDModulesInRUCol) + int(dmodule() / kDModulesInRURow) + kDModulesInRUCol * smodule()) + 1; + return mod; + } + + /** Returns BTL crystal type number [1-3] (OLD BTL NUMBERING). */ + inline int modType() const { + int gRU = runit(); + return int(gRU / kRUPerTypeV2 + 1); } + /** Returns BTL readout unit number per type [1-2], from Global RU number [1-6]. */ + inline int runitByType() const { return (runit() % kRUPerTypeV2); } + + /** Returns BTL global readout unit number. */ + inline int runit() const { return ((id_ >> kBTLRUOffset) & kBTLRUMask); } + /** return the row in GeomDet language **/ inline int row(unsigned nrows = kCrystalsPerModuleV2) const { - return (crystal() - 1) % nrows; // anything else for now + return crystal() % nrows; // anything else for now } /** return the column in GeomDetLanguage **/ - inline int column(unsigned nrows = kCrystalsPerModuleV2) const { return (crystal() - 1) / nrows; } + inline int column(unsigned nrows = kCrystalsPerModuleV2) const { return crystal() / nrows; } /** create a Geographical DetId for Tracking **/ BTLDetId geographicalId(CrysLayout lay) const; + + /** conversion from old to new BTLDetID**/ + uint32_t newForm(const uint32_t& rawid) { + uint32_t fixedP = rawid & (0xFFFFFFFF - kBTLoldFieldMask); // unchanged part of id + + // convert old tray number into new tray nymber + uint32_t oldTray = (rawid >> kBTLRodOffset) & kBTLRodMask; + uint32_t newTray = oldTray - 1; + + // convert old module number into detector module + sensor module numbers + uint32_t oldModule = (rawid >> kBTLoldModuleOffset) & kBTLoldModuleMask; + uint32_t detModule = int((oldModule - 1) % (kDModulesInRUCol)) * kDModulesInRURow + + int((oldModule - 1) / (kDModulesInRUCol * kSModulesInDM)); + uint32_t senModule = int((oldModule - 1) / kDModulesInRUCol) % kSModulesInDM; + + // change detector module number if on the negative side + int zside = int(mtdSide()); + if (zside < 1) detModule = detModule - 2 * kDModulesInRURow * (int(detModule/kDModulesInRURow) - 1); + + // convert old RU and type number into new RU number + uint32_t oldRU = (rawid >> kBTLoldRUOffset) & kBTLoldRUMask; + uint32_t oldType = (rawid >> kBTLoldModTypeOffset) & kBTLoldModTypeMask; + uint32_t newRU = ((oldType - 1) * kRUPerTypeV2) + (oldRU-1); + + // get crystal number + uint32_t crystal = (rawid & kBTLCrystalMask) >> kBTLCrystalOffset; + + // return new BTLDetID for v3 geom + return (fixedP | (newTray & kBTLRodMask) << kBTLRodOffset | (newRU & kBTLRUMask) << kBTLRUOffset | + (detModule & kBTLdetectorModMask) << kBTLdetectorModOffset | + (senModule & kBTLsensorModMask) << kBTLsensorModOffset | + ((crystal & kBTLCrystalMask) << kBTLCrystalOffset)) | + kBTLNewFormat; + } }; std::ostream& operator<<(std::ostream&, const BTLDetId&); diff --git a/DataFormats/ForwardDetId/src/BTLDetId.cc b/DataFormats/ForwardDetId/src/BTLDetId.cc index 7a3ab9461fbdc..a0c218bb9d543 100644 --- a/DataFormats/ForwardDetId/src/BTLDetId.cc +++ b/DataFormats/ForwardDetId/src/BTLDetId.cc @@ -1,15 +1,16 @@ #include "DataFormats/ForwardDetId/interface/BTLDetId.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" BTLDetId BTLDetId::geographicalId(CrysLayout lay) const { + // For tracking geometry navigation - - if (lay == CrysLayout::barphiflat) { - // barphiflat: count modules in a rod, combining all types - return BTLDetId(mtdSide(), mtdRR(), module() + kModulePerTypeBarPhiFlat * (modType() - 1), 0, 1); - } else if (lay == CrysLayout::v2 || lay == CrysLayout::v3) { - // v2: set number of crystals to 17 to distinguish from crystal BTLDetId - // v3: set number of crystals to 17 to distinguish from crystal BTLDetId, build V2-like type and RU number as in BTLNumberingScheme - return BTLDetId(mtdSide(), mtdRR(), runit(), module(), modType(), kCrystalsPerModuleV2 + 1); + // v2,v3: set number of crystals to 17 to distinguish from crystal BTLDetId + // v1: obsolete and not supported + + if (lay == CrysLayout::v2 || lay == CrysLayout::v3) { + return BTLDetId(mtdSide(), mtdRR(), runit(), dmodule(), smodule(), kCrystalsPerModuleV2); + } else { + edm::LogWarning("MTDGeom") << "CrysLayout could only be v2 or v3"; } return 0; @@ -20,12 +21,15 @@ BTLDetId BTLDetId::geographicalId(CrysLayout lay) const { std::ostream& operator<<(std::ostream& os, const BTLDetId& id) { os << (MTDDetId&)id; os << " BTL " << std::endl - << " Side : " << id.mtdSide() << std::endl - << " Rod : " << id.mtdRR() << std::endl - << " Crystal type: " << id.modType() << std::endl - << " Readout unit: " << id.runit() << std::endl - << " Global RU : " << id.globalRunit() << std::endl - << " Module : " << id.module() << std::endl - << " Crystal : " << id.crystal() << std::endl; + << " Side : " << id.mtdSide() << std::endl + << " Rod : " << id.mtdRR() << std::endl + << " Crystal type : " << id.modType() << std::endl // crystal type in v1 geometry scheme + << " Runit by Type : " << id.runitByType() << std::endl + << " Readout unit : " << id.runit() << std::endl + << " Detector module: " << id.dmodule() << std::endl + << " Sensor module : " << id.smodule() << std::endl + << " Module : " << id.module() << std::endl + << " Crystal : " << id.crystal() << std::endl + << " Crystal in ConsDB: " << id.crystalConsDB() << std::endl; return os; } diff --git a/DataFormats/ForwardDetId/src/classes_def.xml b/DataFormats/ForwardDetId/src/classes_def.xml index c61a79616422b..f35c116c0b3e9 100644 --- a/DataFormats/ForwardDetId/src/classes_def.xml +++ b/DataFormats/ForwardDetId/src/classes_def.xml @@ -23,8 +23,15 @@ - + + + + newForm(newObj->rawId())); + *newObj=tmp; + ]]> + diff --git a/DataFormats/TrackReco/src/HitPattern.cc b/DataFormats/TrackReco/src/HitPattern.cc index cdc722cc29679..17bc4d0eca57e 100644 --- a/DataFormats/TrackReco/src/HitPattern.cc +++ b/DataFormats/TrackReco/src/HitPattern.cc @@ -143,7 +143,7 @@ namespace { MTDDetId mtdid(id); switch (mtdid.mtdSubDetector()) { case MTDDetId::BTL: - layer = BTLDetId(id).globalRunit(); + layer = BTLDetId(id).runit(); break; case MTDDetId::ETL: layer = ETLDetId(id).mtdRR(); diff --git a/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h b/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h new file mode 100644 index 0000000000000..aa40cee120555 --- /dev/null +++ b/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h @@ -0,0 +1,80 @@ +#ifndef DATAFORMATS_BTLELECTRONICSMAPPING_H +#define DATAFORMATS_BTLELECTRONICSMAPPING_H 1 + +#include +#include + +#include "DataFormats/ForwardDetId/interface/BTLDetId.h" + +/** \brief BTL TOFHIR channel mapping with crystal BTLDetId + Convention: + SiPMside 0 == Minus Side + SiPMside 1 == Plus Side + */ + +class BTLElectronicsMapping { +public: + struct SiPMChPair { + int Minus; + int Plus; + }; + + struct TOFHIRChPair { + int Minus; + int Plus; + }; + + // Map SiPM Channel to crystal bars for Forward module orientation + static constexpr std::array SiPMChannelMapFW{ + {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}}; + // Map SiPM Channel to crystal bars for Backward module orientation + static constexpr std::array SiPMChannelMapBW{ + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}}; + + // Map TOFHIR Channel to SiPM Channel + static constexpr std::array THChannelMap{ + {4, 1, 0, 3, 2, 6, 7, 9, 5, 11, 8, 12, 10, 14, 15, 13, + 17, 16, 18, 19, 20, 23, 21, 26, 22, 27, 28, 31, 30, 24, 25, 29}}; + + /** Default constructor -- invalid value */ + BTLElectronicsMapping(); + + // Get SiPM Channel number from crystal + int SiPMCh(uint32_t smodCopy, uint32_t crystal, uint32_t SiPMSide); + int SiPMCh(BTLDetId det, uint32_t SiPMSide); + int SiPMCh(uint32_t rawID, uint32_t SiPMSide); + + SiPMChPair GetSiPMChPair(uint32_t smodCopy, uint32_t crystal); + SiPMChPair GetSiPMChPair(BTLDetId det); + SiPMChPair GetSiPMChPair(uint32_t rawID); + + // Get TOFHIR Channel number from crystal + int TOFHIRCh(uint32_t smodCopy, uint32_t crystal, uint32_t SiPMSide); + int TOFHIRCh(BTLDetId det, uint32_t SiPMSide); + int TOFHIRCh(uint32_t rawID, uint32_t SiPMSide); + + TOFHIRChPair GetTOFHIRChPair(uint32_t smodCopy, uint32_t crystal); + TOFHIRChPair GetTOFHIRChPair(BTLDetId det); + TOFHIRChPair GetTOFHIRChPair(uint32_t rawID); + + // Get xtal from TOFHIR Channel number + int THChToXtal(uint32_t smodCopy, uint32_t THCh); + BTLDetId THChToBTLDetId(uint32_t zside, uint32_t rod, uint32_t runit, uint32_t dmodule, uint32_t smodCopy, uint32_t THCh); + // int BTLElectronicsMapping::SiPMChToXtal(uint32_t zside, uint32_t smodCopy, uint32_t SiPMCh); + + /** Returns TOFHIR ASIC number in construction database. */ + int TOFHIRASIC(uint32_t dmodule, uint32_t smodCopy); + int TOFHIRASIC(BTLDetId det); + int TOFHIRASIC(uint32_t rawID); + + /** Returns FE board number */ + int FEBoardFromDM(uint32_t dmodule); + int FEBoard(BTLDetId det); + int FEBoard(uint32_t rawID); + +private: +}; + +#endif diff --git a/Geometry/MTDCommonData/interface/BTLNumberingScheme.h b/Geometry/MTDCommonData/interface/BTLNumberingScheme.h index e19b25a57cf4a..09e7b166e142a 100644 --- a/Geometry/MTDCommonData/interface/BTLNumberingScheme.h +++ b/Geometry/MTDCommonData/interface/BTLNumberingScheme.h @@ -9,9 +9,6 @@ class BTLNumberingScheme : public MTDNumberingScheme { static constexpr uint32_t kBTLcrystalLevel = 9; static constexpr uint32_t kBTLmoduleLevel = 8; - static constexpr std::array negModCopy{ - {3, 2, 1, 6, 5, 4, 9, 8, 7, 12, 11, 10, 15, 14, 13, 18, 17, 16, 21, 20, 19, 24, 23, 22}}; - // to temporarily map V3 into V2-like input static constexpr std::array globalru2type{ {1, 1, 2, 2, 3, 3}}; diff --git a/Geometry/MTDCommonData/src/BTLElectronicsMapping.cc b/Geometry/MTDCommonData/src/BTLElectronicsMapping.cc new file mode 100644 index 0000000000000..f0105cc7ece80 --- /dev/null +++ b/Geometry/MTDCommonData/src/BTLElectronicsMapping.cc @@ -0,0 +1,198 @@ +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "Geometry/MTDCommonData/interface/BTLElectronicsMapping.h" +#include "FWCore/Utilities/interface/Exception.h" + +#include +#include +#include +BTLElectronicsMapping::BTLElectronicsMapping() {} + +// Get SiPM Channel from crystal ID + +int BTLElectronicsMapping::SiPMCh(uint32_t smodCopy, uint32_t crystal, uint32_t SiPMSide) { + if (0 > int(crystal) || crystal > BTLDetId::kCrystalsPerModuleV2) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::BTLElectronicsMapping(): " + << "****************** Bad crystal number = " << int(crystal); + return 0; + } + + if (0 > int(smodCopy) || smodCopy > BTLDetId::kSModulesPerDM) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad detector module copy = " << int(smodCopy); + return 0; + } + + if (smodCopy == 0) + return BTLElectronicsMapping::SiPMChannelMapFW[crystal + SiPMSide * BTLDetId::kCrystalsPerModuleV2]; + else + return BTLElectronicsMapping::SiPMChannelMapBW[crystal + SiPMSide * BTLDetId::kCrystalsPerModuleV2]; +} + +int BTLElectronicsMapping::SiPMCh(BTLDetId det, uint32_t SiPMSide) { + uint32_t smodCopy = det.smodule(); + uint32_t crystal = det.crystal(); + + return BTLElectronicsMapping::SiPMCh(smodCopy, crystal, SiPMSide); +} + +int BTLElectronicsMapping::SiPMCh(uint32_t rawId, uint32_t SiPMSide) { + BTLDetId theId(rawId); + return BTLElectronicsMapping::SiPMCh(theId, SiPMSide); +} + +BTLElectronicsMapping::SiPMChPair BTLElectronicsMapping::GetSiPMChPair(uint32_t smodCopy, uint32_t crystal) { + BTLElectronicsMapping::SiPMChPair SiPMChs; + SiPMChs.Minus = BTLElectronicsMapping::SiPMCh(smodCopy, crystal, 0); + SiPMChs.Plus = BTLElectronicsMapping::SiPMCh(smodCopy, crystal, 1); + return SiPMChs; +} + +BTLElectronicsMapping::SiPMChPair BTLElectronicsMapping::GetSiPMChPair(BTLDetId det) { + BTLElectronicsMapping::SiPMChPair SiPMChs; + SiPMChs.Minus = BTLElectronicsMapping::SiPMCh(det, 0); + SiPMChs.Plus = BTLElectronicsMapping::SiPMCh(det, 1); + return SiPMChs; +} +BTLElectronicsMapping::SiPMChPair BTLElectronicsMapping::GetSiPMChPair(uint32_t rawID) { + BTLElectronicsMapping::SiPMChPair SiPMChs; + SiPMChs.Minus = BTLElectronicsMapping::SiPMCh(rawID, 0); + SiPMChs.Plus = BTLElectronicsMapping::SiPMCh(rawID, 1); + return SiPMChs; +} + +// Get TOFHIR Channel from crystal ID + +int BTLElectronicsMapping::TOFHIRCh(uint32_t smodCopy, uint32_t crystal, uint32_t SiPMSide) { + int SiPMCh_ = BTLElectronicsMapping::SiPMCh(smodCopy, crystal, SiPMSide); + return BTLElectronicsMapping::THChannelMap[SiPMCh_]; +} + +int BTLElectronicsMapping::TOFHIRCh(BTLDetId det, uint32_t SiPMSide) { + uint32_t smodCopy = det.smodule(); + uint32_t crystal = det.crystal(); + + return BTLElectronicsMapping::TOFHIRCh(smodCopy, crystal, SiPMSide); +} + +int BTLElectronicsMapping::TOFHIRCh(uint32_t rawId, uint32_t SiPMSide) { + BTLDetId theId(rawId); + return BTLElectronicsMapping::TOFHIRCh(theId, SiPMSide); +} + +BTLElectronicsMapping::TOFHIRChPair BTLElectronicsMapping::GetTOFHIRChPair(uint32_t smodCopy, uint32_t crystal) { + BTLElectronicsMapping::TOFHIRChPair TOFHIRChs; + TOFHIRChs.Minus = BTLElectronicsMapping::TOFHIRCh(smodCopy, crystal, 0); + TOFHIRChs.Plus = BTLElectronicsMapping::TOFHIRCh(smodCopy, crystal, 1); + return TOFHIRChs; +} + +BTLElectronicsMapping::TOFHIRChPair BTLElectronicsMapping::GetTOFHIRChPair(BTLDetId det) { + BTLElectronicsMapping::TOFHIRChPair TOFHIRChs; + TOFHIRChs.Minus = BTLElectronicsMapping::TOFHIRCh(det, 0); + TOFHIRChs.Plus = BTLElectronicsMapping::TOFHIRCh(det, 1); + return TOFHIRChs; +} +BTLElectronicsMapping::TOFHIRChPair BTLElectronicsMapping::GetTOFHIRChPair(uint32_t rawID) { + BTLElectronicsMapping::TOFHIRChPair TOFHIRChs; + TOFHIRChs.Minus = BTLElectronicsMapping::TOFHIRCh(rawID, 0); + TOFHIRChs.Plus = BTLElectronicsMapping::TOFHIRCh(rawID, 1); + return TOFHIRChs; +} + +// Get crystal ID from TOFHIR Channel + +int BTLElectronicsMapping::THChToXtal(uint32_t smodCopy, uint32_t THCh) { + if (0 > int(smodCopy) || BTLDetId::kSModulesPerDM < smodCopy) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad detector module copy = " << int(smodCopy); + return 0; + } + + auto THChPos = + std::find(BTLElectronicsMapping::THChannelMap.begin(), BTLElectronicsMapping::THChannelMap.end(), THCh); + int targetSiPMCh = std::distance(BTLElectronicsMapping::THChannelMap.begin(), THChPos); + + std::array SiPMChMap; + if (smodCopy == 0) + SiPMChMap = BTLElectronicsMapping::SiPMChannelMapFW; + else + SiPMChMap = BTLElectronicsMapping::SiPMChannelMapBW; + + auto targetpos = std::find(SiPMChMap.begin(), SiPMChMap.end(), targetSiPMCh); + return std::distance(SiPMChMap.begin(), targetpos) % BTLDetId::kCrystalsPerModuleV2 + 1; +} + +BTLDetId BTLElectronicsMapping::THChToBTLDetId( + uint32_t zside, uint32_t rod, uint32_t runit, uint32_t dmodule, uint32_t smodCopy, uint32_t THCh) { + if (0 > int(THCh) || 31 < THCh) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad TOFHIR channel = " << int(THCh); + return 0; + } + + if (0 > int(smodCopy) || BTLDetId::kSModulesPerDM < smodCopy) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad detector module copy = " << int(smodCopy); + return 0; + } + + if (0 > int(dmodule) || 12 < dmodule) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad module copy = " << int(dmodule); + return 0; + } + + if (1 > rod || 36 < rod) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad rod copy = " << rod; + return 0; + } + + if (1 < zside) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad side = " << zside; + return 0; + } + + int crystal = BTLElectronicsMapping::THChToXtal(smodCopy, THCh); + + return BTLDetId(zside, rod, runit, dmodule, smodCopy, crystal); +} + +// Get TOFHIR asic number +// if dmodule is odd number (DM range [1-12]) +// SM1 --> TOFHIR A0 (simply 0) +// SM2 --> TOFHIR A1 (simply 1) +// else if dmodule is even number the order is inverted +// SM1 --> TOFHIR A1 (simply 1) +// SM2 --> TOFHIR A0 (simply 0) +int BTLElectronicsMapping::TOFHIRASIC(uint32_t dmodule, uint32_t smodCopy) { + if (dmodule % BTLDetId::kSModulesInDM == 0) return smodCopy; + else return BTLDetId::kSModulesInDM - smodCopy - 1; + } + +int BTLElectronicsMapping::TOFHIRASIC(BTLDetId det) { + uint32_t dmodule = det.dmodule(); + uint32_t smodCopy = det.smodule(); + return BTLElectronicsMapping::TOFHIRASIC(dmodule, smodCopy); +} + +int BTLElectronicsMapping::TOFHIRASIC(uint32_t rawID) { + BTLDetId theId(rawID); + return BTLElectronicsMapping::TOFHIRASIC(theId); +} + + +/** Returns FE board number */ +int BTLElectronicsMapping::FEBoardFromDM(uint32_t dmodule) { return dmodule; } + +int BTLElectronicsMapping::FEBoard(BTLDetId det) { + uint32_t dmodule = det.dmodule(); + return BTLElectronicsMapping::FEBoardFromDM(dmodule); +} + +int BTLElectronicsMapping::FEBoard(uint32_t rawID) { + BTLDetId theId(rawID); + return BTLElectronicsMapping::FEBoard(theId); +} + diff --git a/Geometry/MTDCommonData/src/BTLNumberingScheme.cc b/Geometry/MTDCommonData/src/BTLNumberingScheme.cc index bd06ad10c7606..ae9dd8934052e 100644 --- a/Geometry/MTDCommonData/src/BTLNumberingScheme.cc +++ b/Geometry/MTDCommonData/src/BTLNumberingScheme.cc @@ -1,3 +1,5 @@ +#define EDM_ML_DEBUG + #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" @@ -17,7 +19,7 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { LogDebug("MTDGeom") << "BTLNumberingScheme geometry levels = " << nLevels; - uint32_t zside(999), rodCopy(0), runitCopy(0), modCopy(0), modtyp(0), crystal(0); + uint32_t zside(999), rodCopy(0), runitCopy(0), modCopy(0), modtyp(0), crystal(0), dmodCopy(0), smodCopy(0); bool isDD4hepOK(false); if (nLevels == kBTLcrystalLevel + 1) { @@ -26,16 +28,13 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { } } -#ifdef EDM_ML_DEBUG - LogDebug("MTDGeom") << "BTLNumberingScheme::getUnitID(): isDD4hep " << isDD4hepOK; -#endif - auto bareBaseName = [&](std::string_view name) { size_t ipos = name.rfind('_'); return (isDD4hepOK) ? name.substr(0, ipos) : name; }; if (nLevels == kBTLcrystalLevel || isDD4hepOK) { + // barphiflat scenario LogDebug("MTDGeom") << bareBaseName(baseNumber.getLevelName(0)) << "[" << baseNumber.getCopyNumber(0) << "], " << bareBaseName(baseNumber.getLevelName(1)) << "[" << baseNumber.getCopyNumber(1) << "], " << bareBaseName(baseNumber.getLevelName(2)) << "[" << baseNumber.getCopyNumber(2) << "], " @@ -46,7 +45,6 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { << bareBaseName(baseNumber.getLevelName(7)) << "[" << baseNumber.getCopyNumber(7) << "], " << bareBaseName(baseNumber.getLevelName(8)) << "[" << baseNumber.getCopyNumber(8) << "]"; - // barphiflat scenario if (baseNumber.getLevelName(0).find("Timingactive") != std::string_view::npos) { crystal = baseNumber.getCopyNumber(0); @@ -106,70 +104,74 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { } else if (baseNumber.getLevelName(0).find("BTLCrystal") != std::string_view::npos) { // v2 or v3 scenario - crystal = baseNumber.getCopyNumber(0); - modCopy = baseNumber.getCopyNumber(1); - runitCopy = baseNumber.getCopyNumber(2); - rodCopy = baseNumber.getCopyNumber(3); - + // zside copy number const std::string_view& rodName(baseNumber.getLevelName(3)); // name of module volume uint32_t pos = rodName.find("Zpos"); zside = (pos <= rodName.size() ? 1 : 0); - // for negative side swap module numbers betwee sides of the tray, so as to keep the same number for the same phi angle - // in the existing model. This introduces a misalignemtn between module number and volume copy for the negative side. - if (zside == 0) { - modCopy = negModCopy[modCopy - 1]; - } + // rod (tray) copy number + rodCopy = baseNumber.getCopyNumber(3) - 1; + + // RU, global module and crystal copy numbers + // (make everything start from 0) - bool isV2(bareBaseName(baseNumber.getLevelName(0)).back() != 'l'); - -#ifdef EDM_ML_DEBUG - LogDebug("MTDGeom") << "BTLNumberingScheme::getUnitID(): isV2 " << isV2; -#endif - - if (isV2) { - // V2: the type is embedded in crystal name + // V3: RU number is global RU number + runitCopy = baseNumber.getCopyNumber(2) - 1; + // V2: the type is embedded in crystal name and RU number is by type + if (bareBaseName(baseNumber.getLevelName(0)).back() != 'l') { modtyp = ::atoi(&bareBaseName(baseNumber.getLevelName(2)).back()); - } else { - // V3: build type and RU number per type from global RU number - modtyp = globalru2type[runitCopy - 1]; - runitCopy = globalru2ru[runitCopy - 1]; + runitCopy = (modtyp - 1) * BTLDetId::kRUPerTypeV2 + baseNumber.getCopyNumber(2) - 1; } + modCopy = int(baseNumber.getCopyNumber(1)) - 1; + crystal = int(baseNumber.getCopyNumber(0)) - 1; + + // Detector and sensor module numbers from global module number 0-23 + dmodCopy = int((modCopy / BTLDetId::kDModulesInRUCol) / BTLDetId::kSModulesInDM) + (modCopy % BTLDetId::kDModulesInRUCol) * BTLDetId::kDModulesInRURow; + smodCopy = int( modCopy / BTLDetId::kDModulesInRUCol ) % BTLDetId::kSModulesInDM; + // error checking + if (0 > int(crystal) || BTLDetId::kCrystalsPerModuleV2-1 < crystal) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad crystal number = " << int(crystal) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(0) - 1; + return 0; + } - if (1 > crystal || BTLDetId::kCrystalsPerModuleV2 < crystal) { + if (0 > int(modCopy) || BTLDetId::kModulesPerRUV2-1 < modCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad crystal number = " << crystal - << ", Volume Number = " << baseNumber.getCopyNumber(0); + << "****************** Bad module copy = " << int(modCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(1) - 1; return 0; } - if (1 > modtyp || 3 < modtyp) { + if (0 > int(smodCopy) || BTLDetId::kSModulesPerDM-1 < smodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad RU name, Volume Name = " - << bareBaseName(baseNumber.getLevelName(2)); + << "****************** Bad detector module copy = " << int(smodCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(1) - 1; return 0; } - if (1 > modCopy || BTLDetId::kModulesPerRUV2 < modCopy) { + if (0 > int(dmodCopy) || BTLDetId::kDModulesPerRU-1 < dmodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad module copy = " << modCopy - << ", Volume Number = " << baseNumber.getCopyNumber(1); + << "****************** Bad detector module copy = " << int(dmodCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(1) - 1; return 0; } - if (1 > runitCopy || BTLDetId::kRUPerTypeV2 < runitCopy) { + if (0 > int(runitCopy) || BTLDetId::kRUPerRod-1 < runitCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad readout unit copy = " << runitCopy - << ", Volume Number = " << baseNumber.getCopyNumber(2); + << "****************** Bad readout unit copy = " << int(runitCopy) + << " module type = " << int(modtyp) + << ", Volume Name= " << baseNumber.getLevelName(2) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(2) - 1; return 0; } - if (1 > rodCopy || BTLDetId::HALF_ROD < rodCopy) { + if (0 > int(rodCopy) || BTLDetId::HALF_ROD-1 < rodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad rod copy = " << rodCopy - << ", Volume Number = " << baseNumber.getCopyNumber(3); + << "****************** Bad rod copy = " << int(rodCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(3); return 0; } @@ -183,7 +185,7 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { // all inputs are fine. Go ahead and decode - BTLDetId thisBTLdetid(zside, rodCopy, runitCopy, modCopy, modtyp, crystal); + BTLDetId thisBTLdetid(zside, rodCopy, runitCopy, dmodCopy, smodCopy, crystal); intindex = thisBTLdetid.rawId(); } else if (nLevels == kBTLmoduleLevel && baseNumber.getLevelName(0).find("BTLModule") != std::string_view::npos) { @@ -198,62 +200,63 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { << bareBaseName(baseNumber.getLevelName(6)) << "[" << baseNumber.getCopyNumber(6) << "], " << bareBaseName(baseNumber.getLevelName(7)) << "[" << baseNumber.getCopyNumber(7) << "]"; - modCopy = baseNumber.getCopyNumber(0); - runitCopy = baseNumber.getCopyNumber(1); - rodCopy = baseNumber.getCopyNumber(2); - const std::string_view& rodName(baseNumber.getLevelName(2)); // name of module volume uint32_t pos = rodName.find("Zpos"); zside = (pos <= rodName.size() ? 1 : 0); - // for negative side swap module numbers betwee sides of the tray, so as to keep the same number for the same phi angle - // in the existing model. This introduces a misalignemtn between module number and volume copy for the negative side. - if (zside == 0) { - modCopy = negModCopy[modCopy - 1]; - } + // rod (tray) copy number + rodCopy = baseNumber.getCopyNumber(2) - 1; - bool isV2(bareBaseName(baseNumber.getLevelName(0)).back() != 'e'); + // RU, and global module copy numbers + // (make everything start from 0) -#ifdef EDM_ML_DEBUG - LogDebug("MTDGeom") << "BTLNumberingScheme::getUnitID(): isV2 " << isV2; -#endif - - if (isV2) { - // V2: the type is embedded in crystal name + // V3: RU number is global RU number + runitCopy = baseNumber.getCopyNumber(1) - 1; + // V2: the type is embedded in crystal name and RU number is by type + if (bareBaseName(baseNumber.getLevelName(0)).back() != 'e') { modtyp = ::atoi(&bareBaseName(baseNumber.getLevelName(1)).back()); - } else { - // V3: build type and RU number per type from global RU number - modtyp = globalru2type[runitCopy - 1]; - runitCopy = globalru2ru[runitCopy - 1]; + runitCopy = (modtyp - 1) * BTLDetId::kRUPerTypeV2 + baseNumber.getCopyNumber(1) - 1; } + modCopy = baseNumber.getCopyNumber(0) - 1; + + // eval detector and sensor module numbers from global module number 1-24 + dmodCopy = int((modCopy / BTLDetId::kDModulesInRUCol) / BTLDetId::kSModulesInDM) + (modCopy % BTLDetId::kDModulesInRUCol) * BTLDetId::kDModulesInRURow; + smodCopy = int( modCopy / BTLDetId::kDModulesInRUCol) % BTLDetId::kSModulesInDM; // error checking - if (1 > modtyp || 3 < modtyp) { + if (0 > int(modCopy) || BTLDetId::kModulesPerRUV2-1 < modCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad RU name, Volume Name = " - << bareBaseName(baseNumber.getLevelName(1)); + << "****************** Bad module copy = " << int(modCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(0) - 1; return 0; } - if (1 > modCopy || BTLDetId::kModulesPerRUV2 < modCopy) { + if (0 > int(smodCopy) || BTLDetId::kSModulesPerDM-1 < smodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad module copy = " << modCopy - << ", Volume Number = " << baseNumber.getCopyNumber(0); + << "****************** Bad detector module copy = " << int(smodCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(0) - 1; return 0; } - if (1 > runitCopy || BTLDetId::kRUPerTypeV2 < runitCopy) { + if (0 > int(dmodCopy) || BTLDetId::kDModulesPerRU-1 < dmodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad readout unit copy = " << runitCopy - << ", Volume Number = " << baseNumber.getCopyNumber(1); + << "****************** Bad detector module copy = " << int(dmodCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(0) - 1; return 0; } - if (1 > rodCopy || BTLDetId::HALF_ROD < rodCopy) { + if (0 > int(runitCopy) || BTLDetId::kRUPerRod-1 < runitCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad rod copy = " << rodCopy - << ", Volume Number = " << baseNumber.getCopyNumber(2); + << "****************** Bad readout unit copy = " << int(runitCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(1) - 1; + return 0; + } + + if (0 > int(rodCopy) || BTLDetId::HALF_ROD-1 < rodCopy) { + edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " + << "****************** Bad rod copy = " << int(rodCopy) + << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(2); return 0; } @@ -265,8 +268,7 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { } // all inputs are fine. Go ahead and decode - - BTLDetId thisBTLdetid(zside, rodCopy, runitCopy, modCopy, modtyp, 0); + BTLDetId thisBTLdetid(zside, rodCopy, runitCopy, dmodCopy, smodCopy, 0); intindex = thisBTLdetid.geographicalId(BTLDetId::CrysLayout::v2).rawId(); } else { @@ -277,8 +279,8 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { } LogDebug("MTDGeom") << "BTL Numbering scheme: " - << " zside = " << zside << " rod = " << rodCopy << " modtyp = " << modtyp << " RU = " << runitCopy - << " module = " << modCopy << " crystal = " << crystal << " Raw Id = " << intindex << "\n" + << " Raw Id = " << intindex << " zside = " << zside << " rod = " << rodCopy << " runit = " << runitCopy + << " dmodule = " << dmodCopy << " smodule = " << smodCopy << " module = " << modCopy+1 << " crystal = " << crystal << "\n" << BTLDetId(intindex); return intindex; diff --git a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc index f8720bafec958..31cc46fdc9737 100644 --- a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc +++ b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc @@ -294,9 +294,9 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even if (isBarrel) { edm::LogVerbatim("DD4hep_TestPixelTopology") << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() - << " RU/mod= " << modIdBTL.globalRunit() << " / " << modIdBTL.module(); + << " RU/mod= " << modIdBTL.runit() << " / " << modIdBTL.module(); sunitt_ << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() - << " RU/mod= " << modIdBTL.globalRunit() << " / " << modIdBTL.module(); + << " RU/mod= " << modIdBTL.runit() << " / " << modIdBTL.module(); } else { edm::LogVerbatim("DD4hep_TestPixelTopology") << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() @@ -412,12 +412,12 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even if (isBarrel) { edm::LogVerbatim("DD4hep_TestPixelTopology") << "rawId= " << theIdBTL.rawId() << " geoId= " << geoId.rawId() << " side/rod= " << theIdBTL.mtdSide() - << " / " << theIdBTL.mtdRR() << " RU= " << theIdBTL.globalRunit() + << " / " << theIdBTL.mtdRR() << " RU= " << theIdBTL.runit() << " module/geomodule= " << theIdBTL.module() << " / " << static_cast(geoId).module() << " crys= " << theIdBTL.crystal() << " BTLDetId row/col= " << origRow << " / " << origCol << "\n"; sunitt_ << "rawId= " << theIdBTL.rawId() << " geoId= " << geoId.rawId() << " side/rod= " << theIdBTL.mtdSide() << " / " << theIdBTL.mtdRR() - << " RU= " << theIdBTL.globalRunit() << " module/geomodule= " << theIdBTL.module() << " / " + << " RU= " << theIdBTL.runit() << " module/geomodule= " << theIdBTL.module() << " / " << static_cast(geoId).module() << " crys= " << theIdBTL.crystal() << " BTLDetId row/col= " << origRow << " / " << origCol << "\n"; } else { diff --git a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc index 2554b25a89881..9c03f0fd1cdda 100644 --- a/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc +++ b/Geometry/MTDNumberingBuilder/plugins/CmsMTDConstruction.cc @@ -148,10 +148,10 @@ GeometricTimingDet* CmsMTDConstruction::buildSubdet(FilteredView& GeometricTimingDet* subdet = new GeometricTimingDet(&fv, thisDet); if (thisDet == GeometricTimingDet::BTL) { - subdet->setGeographicalID(BTLDetId(0, 0, 0, 0, 0)); + subdet->setGeographicalID(BTLDetId(0, 0, 0, 0, 0, 0)); } else if (thisDet == GeometricTimingDet::ETL) { const uint32_t side = subdet->translation().z() > 0 ? 1 : 0; - subdet->setGeographicalID(ETLDetId(side, 0, 0, 0, 0)); + subdet->setGeographicalID(ETLDetId(side, 0, 0, 0, 0, 0)); } else { throw cms::Exception("CmsMTDConstruction") << " ERROR - I was expecting a SubDet, I got a " << fv.name(); } From 3bc5fd9ced20558769610074ab6a43fee542e22f Mon Sep 17 00:00:00 2001 From: Ivan Razumov Date: Tue, 17 Dec 2024 11:11:59 +0100 Subject: [PATCH 307/418] [DQM] Replace fabs with std::abs to fix clang warnings --- .../HcalTools/plugins/CMTRawAnalyzer.cc | 20 +++++++++---------- .../src/CalibrationScanAlgorithm.cc | 10 +++++----- .../plugins/DQMHcalPhiSymAlCaReco.cc | 16 +++++++-------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/DPGAnalysis/HcalTools/plugins/CMTRawAnalyzer.cc b/DPGAnalysis/HcalTools/plugins/CMTRawAnalyzer.cc index a0aa9563b7502..72e4a97f5915c 100644 --- a/DPGAnalysis/HcalTools/plugins/CMTRawAnalyzer.cc +++ b/DPGAnalysis/HcalTools/plugins/CMTRawAnalyzer.cc @@ -5349,12 +5349,12 @@ void CMTRawAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iS mapRADDAM_HED2[k1][k2] /= mapRADDAM_HED2[2][kk2]; // (d1 & eta 17-29) L1 int LLLLLL111111 = 0; - if ((k1 == 0 && fabs(kkk - 41) > 16 && fabs(kkk - 41) < 30)) + if ((k1 == 0 && std::abs(kkk - 41) > 16 && std::abs(kkk - 41) < 30)) LLLLLL111111 = 1; // (d2 & eta 17-26) && (d3 & eta 27-28) L2 int LLLLLL222222 = 0; - if ((k1 == 1 && fabs(kkk - 41) > 16 && fabs(kkk - 41) < 27) || - (k1 == 2 && fabs(kkk - 41) > 26 && fabs(kkk - 41) < 29)) + if ((k1 == 1 && std::abs(kkk - 41) > 16 && std::abs(kkk - 41) < 27) || + (k1 == 2 && std::abs(kkk - 41) > 26 && std::abs(kkk - 41) < 29)) LLLLLL222222 = 1; // if (LLLLLL111111 == 1) { @@ -5389,11 +5389,11 @@ void CMTRawAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iS if (mapRADDAM_HE[k1][k2][k3] != 0. && mapRADDAM_HE[2][kk2][k3] != 0) { mapRADDAM_HE[k1][k2][k3] /= mapRADDAM_HE[2][kk2][k3]; int LLLLLL111111 = 0; - if ((k1 == 0 && fabs(kkk - 41) > 16 && fabs(kkk - 41) < 30)) + if ((k1 == 0 && std::abs(kkk - 41) > 16 && std::abs(kkk - 41) < 30)) LLLLLL111111 = 1; int LLLLLL222222 = 0; - if ((k1 == 1 && fabs(kkk - 41) > 16 && fabs(kkk - 41) < 27) || - (k1 == 2 && fabs(kkk - 41) > 26 && fabs(kkk - 41) < 29)) + if ((k1 == 1 && std::abs(kkk - 41) > 16 && std::abs(kkk - 41) < 27) || + (k1 == 2 && std::abs(kkk - 41) > 26 && std::abs(kkk - 41) < 29)) LLLLLL222222 = 1; if (LLLLLL111111 == 1) { h_sigLayer1RADDAM5_HE->Fill(double(kkk - 41), mapRADDAM_HE[k1][k2][k3]); @@ -9945,12 +9945,12 @@ void CMTRawAnalyzer::fillDigiAmplitude(HBHEDigiCollection::const_iterator& digiI // (d1 & eta 17-29) L1 int LLLLLL111111 = 0; - if ((mdepth == 1 && fabs(ieta0) > 16 && fabs(ieta0) < 30)) + if ((mdepth == 1 && std::abs(ieta0) > 16 && std::abs(ieta0) < 30)) LLLLLL111111 = 1; // (d2 & eta 17-26) && (d3 & eta 27-28) L2 int LLLLLL222222 = 0; - if ((mdepth == 2 && fabs(ieta0) > 16 && fabs(ieta0) < 27) || - (mdepth == 3 && fabs(ieta0) > 26 && fabs(ieta0) < 29)) + if ((mdepth == 2 && std::abs(ieta0) > 16 && std::abs(ieta0) < 27) || + (mdepth == 3 && std::abs(ieta0) > 26 && std::abs(ieta0) < 29)) LLLLLL222222 = 1; // if (LLLLLL111111 == 1) { @@ -9965,7 +9965,7 @@ void CMTRawAnalyzer::fillDigiAmplitude(HBHEDigiCollection::const_iterator& digiI } // - if (mdepth == 3 && fabs(ieta0) == 16) { + if (mdepth == 3 && std::abs(ieta0) == 16) { h_mapDepth3RADDAM16_HE->Fill(amplitudewithPedSubtr); // forStudy h_mapDepth3RADDAM160_HE->Fill(1.); } diff --git a/DQM/SiStripCommissioningAnalysis/src/CalibrationScanAlgorithm.cc b/DQM/SiStripCommissioningAnalysis/src/CalibrationScanAlgorithm.cc index f84cf2421fea4..ea4d4939cb510 100644 --- a/DQM/SiStripCommissioningAnalysis/src/CalibrationScanAlgorithm.cc +++ b/DQM/SiStripCommissioningAnalysis/src/CalibrationScanAlgorithm.cc @@ -425,7 +425,7 @@ void CalibrationScanAlgorithm::tuneIndependently(const int& iapv, imap = 0; // store for each isha value all rise time (changing isha) for (auto map_element : histo_) { - if (fabs(scanned_vfs_.at(imap) - cal_->vfs_[iapv]) < CalibrationScanAnalysis::VFSrange_ and + if (std::abs(scanned_vfs_.at(imap) - cal_->vfs_[iapv]) < CalibrationScanAnalysis::VFSrange_ and cal_->isValid(map_element.first)[iapv]) //around chosen VFS by \pm 20 riseTime_vs_isha[scanned_isha_.at(imap)].push_back(cal_->riseTime(map_element.first)[iapv]); if (name == "") { @@ -568,8 +568,8 @@ void CalibrationScanAlgorithm::fillTunedObservables(const int& apvid) { // find close by ISHA for (size_t i = 0; i < scanned_isha_.size(); i++) { - if (fabs(scanned_isha_.at(i) - cal_->bestISHA().at(apvid)) < distance_apv) { - distance_apv = fabs(scanned_isha_.at(i) - cal_->bestISHA().at(apvid)); + if (std::abs(scanned_isha_.at(i) - cal_->bestISHA().at(apvid)) < distance_apv) { + distance_apv = std::abs(scanned_isha_.at(i) - cal_->bestISHA().at(apvid)); cal_->tunedISHA_.at(apvid) = scanned_isha_.at(i); } } @@ -578,8 +578,8 @@ void CalibrationScanAlgorithm::fillTunedObservables(const int& apvid) { // find close by VFS for (size_t i = 0; i < scanned_vfs_.size(); i++) { - if (fabs(scanned_vfs_.at(i) - cal_->bestVFS().at(apvid)) < distance_apv) { - distance_apv = fabs(scanned_vfs_.at(i) - cal_->bestVFS().at(apvid)); + if (std::abs(scanned_vfs_.at(i) - cal_->bestVFS().at(apvid)) < distance_apv) { + distance_apv = std::abs(scanned_vfs_.at(i) - cal_->bestVFS().at(apvid)); cal_->tunedVFS_.at(apvid) = scanned_vfs_.at(i); } } diff --git a/DQMOffline/CalibCalo/plugins/DQMHcalPhiSymAlCaReco.cc b/DQMOffline/CalibCalo/plugins/DQMHcalPhiSymAlCaReco.cc index 50fb72e341b83..8771705683234 100644 --- a/DQMOffline/CalibCalo/plugins/DQMHcalPhiSymAlCaReco.cc +++ b/DQMOffline/CalibCalo/plugins/DQMHcalPhiSymAlCaReco.cc @@ -456,8 +456,8 @@ void DQMHcalPhiSymAlCaReco::analyze(const edm::Event &iEvent, const edm::EventSe hiDistrNoisePl2D_->Fill(hid.ieta(), hid.iphi(), hbheItr->energy()); hiDistrNoise2Pl2D_->Fill(hid.ieta(), hid.iphi(), hbheItr->energy() * hbheItr->energy()); } else { - hiDistrNoiseMin2D_->Fill(fabs(hid.ieta()), hid.iphi(), hbheItr->energy()); - hiDistrNoise2Min2D_->Fill(fabs(hid.ieta()), hid.iphi(), hbheItr->energy() * hbheItr->energy()); + hiDistrNoiseMin2D_->Fill(std::abs(hid.ieta()), hid.iphi(), hbheItr->energy()); + hiDistrNoise2Min2D_->Fill(std::abs(hid.ieta()), hid.iphi(), hbheItr->energy() * hbheItr->energy()); } } } @@ -473,8 +473,8 @@ void DQMHcalPhiSymAlCaReco::analyze(const edm::Event &iEvent, const edm::EventSe hiDistrMBPl2D_->Fill(hid.ieta(), hid.iphi(), hbheItr->energy()); hiDistrMB2Pl2D_->Fill(hid.ieta(), hid.iphi(), hbheItr->energy() * hbheItr->energy()); } else { - hiDistrMBMin2D_->Fill(fabs(hid.ieta()), hid.iphi(), hbheItr->energy()); - hiDistrMB2Min2D_->Fill(fabs(hid.ieta()), hid.iphi(), hbheItr->energy() * hbheItr->energy()); + hiDistrMBMin2D_->Fill(std::abs(hid.ieta()), hid.iphi(), hbheItr->energy()); + hiDistrMB2Min2D_->Fill(std::abs(hid.ieta()), hid.iphi(), hbheItr->energy() * hbheItr->energy()); } } } @@ -492,8 +492,8 @@ void DQMHcalPhiSymAlCaReco::analyze(const edm::Event &iEvent, const edm::EventSe hiDistrNoisePl2D_->Fill(hid.ieta(), hid.iphi(), hbheItr->energy()); hiDistrNoise2Pl2D_->Fill(hid.ieta(), hid.iphi(), hbheItr->energy() * hbheItr->energy()); } else { - hiDistrNoiseMin2D_->Fill(fabs(hid.ieta()), hid.iphi(), hbheItr->energy()); - hiDistrNoise2Min2D_->Fill(fabs(hid.ieta()), hid.iphi(), hbheItr->energy() * hbheItr->energy()); + hiDistrNoiseMin2D_->Fill(std::abs(hid.ieta()), hid.iphi(), hbheItr->energy()); + hiDistrNoise2Min2D_->Fill(std::abs(hid.ieta()), hid.iphi(), hbheItr->energy() * hbheItr->energy()); } } } @@ -509,8 +509,8 @@ void DQMHcalPhiSymAlCaReco::analyze(const edm::Event &iEvent, const edm::EventSe hiDistrMBPl2D_->Fill(hid.ieta(), hid.iphi(), hbheItr->energy()); hiDistrMB2Pl2D_->Fill(hid.ieta(), hid.iphi(), hbheItr->energy() * hbheItr->energy()); } else { - hiDistrMBMin2D_->Fill(fabs(hid.ieta()), hid.iphi(), hbheItr->energy()); - hiDistrMB2Min2D_->Fill(fabs(hid.ieta()), hid.iphi(), hbheItr->energy() * hbheItr->energy()); + hiDistrMBMin2D_->Fill(std::abs(hid.ieta()), hid.iphi(), hbheItr->energy()); + hiDistrMB2Min2D_->Fill(std::abs(hid.ieta()), hid.iphi(), hbheItr->energy() * hbheItr->energy()); } } } From e70390e737316c6cd564344a3d18702557a08f90 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 17 Dec 2024 11:44:56 +0100 Subject: [PATCH 308/418] Propagate to MtdTruthAccumulator the update of MTD hits classification --- SimG4CMS/Forward/interface/MtdHitCategory.h | 13 +++++++++++++ SimG4CMS/Forward/interface/MtdSD.h | 7 ++----- SimG4CMS/Forward/src/MtdSD.cc | 2 ++ SimGeneral/CaloAnalysis/plugins/BuildFile.xml | 1 + .../CaloAnalysis/plugins/MtdTruthAccumulator.cc | 4 +++- 5 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 SimG4CMS/Forward/interface/MtdHitCategory.h diff --git a/SimG4CMS/Forward/interface/MtdHitCategory.h b/SimG4CMS/Forward/interface/MtdHitCategory.h new file mode 100644 index 0000000000000..7aa810189b979 --- /dev/null +++ b/SimG4CMS/Forward/interface/MtdHitCategory.h @@ -0,0 +1,13 @@ +#ifndef SimG4CMSForward_MtdHitCategory_h +#define SimG4CMSForward_MtdHitCategory_h + +namespace MtdHitCategory { + static constexpr unsigned int k_idsecOffset = 1; + static constexpr unsigned int k_idloopOffset = 2; + static constexpr unsigned int k_idFromCaloOffset = 3; + static constexpr unsigned int k_idETLfromBack = 4; + static constexpr unsigned int n_categories = + std::max({k_idsecOffset, k_idloopOffset, k_idFromCaloOffset, k_idETLfromBack}); +}; // namespace MtdHitCategory + +#endif diff --git a/SimG4CMS/Forward/interface/MtdSD.h b/SimG4CMS/Forward/interface/MtdSD.h index d58c5e220bcc8..19d651fb84996 100644 --- a/SimG4CMS/Forward/interface/MtdSD.h +++ b/SimG4CMS/Forward/interface/MtdSD.h @@ -2,6 +2,8 @@ #define SimG4CMSForward_MtdSD_h #include "SimG4CMS/Forward/interface/TimingSD.h" +#include "SimG4CMS/Forward/interface/MtdHitCategory.h" + #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/ParameterSet/interface/ParameterSetfwd.h" @@ -30,11 +32,6 @@ class MtdSD : public TimingSD { void setHitClassID(const G4Step *) override; private: - static constexpr unsigned int k_idsecOffset = 1; - static constexpr unsigned int k_idloopOffset = 2; - static constexpr unsigned int k_idFromCaloOffset = 3; - static constexpr unsigned int k_idETLfromBack = 4; - double energyCut; double energyHistoryCut; diff --git a/SimG4CMS/Forward/src/MtdSD.cc b/SimG4CMS/Forward/src/MtdSD.cc index 4ef7dc731104e..800a78d929257 100644 --- a/SimG4CMS/Forward/src/MtdSD.cc +++ b/SimG4CMS/Forward/src/MtdSD.cc @@ -16,6 +16,8 @@ #include +using namespace MtdHitCategory; + //------------------------------------------------------------------- MtdSD::MtdSD(const std::string& name, const SensitiveDetectorCatalog& clg, diff --git a/SimGeneral/CaloAnalysis/plugins/BuildFile.xml b/SimGeneral/CaloAnalysis/plugins/BuildFile.xml index 3300315764d4a..7b1458cd095ba 100644 --- a/SimGeneral/CaloAnalysis/plugins/BuildFile.xml +++ b/SimGeneral/CaloAnalysis/plugins/BuildFile.xml @@ -23,6 +23,7 @@ + diff --git a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc index 0cc0f9196430e..930a1b5daec5e 100644 --- a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc +++ b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc @@ -59,6 +59,8 @@ #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" +#include "SimG4CMS/Forward/interface/MtdHitCategory.h" + #include namespace { @@ -187,7 +189,7 @@ namespace { if (!vertex_property.simTrack) return; // -- loop over possible trackIdOffsets to save also sim clusters from non-direct hits - for (unsigned int offset = 0; offset < 4; offset++) { + for (unsigned int offset = 0; offset < MtdHitCategory::n_categories + 1; offset++) { auto trackIdx = vertex_property.simTrack->trackId(); trackIdx += offset * (static_cast(PSimHit::k_tidOffset)); IfLogDebug(DEBUG, messageCategoryGraph_) From 66e285002a1c8c361cc3318b92980abca79d961a Mon Sep 17 00:00:00 2001 From: Ivan Razumov Date: Tue, 17 Dec 2024 11:45:28 +0100 Subject: [PATCH 309/418] [Geometry] Use std::abs to fix clang compilation warnings --- DetectorDescription/DDCMS/test/DDFilteredView.find.cppunit.cc | 4 ++-- DetectorDescription/DDCMS/test/DDFilteredView.get.cppunit.cc | 4 ++-- DetectorDescription/DDCMS/test/DDFilteredView.goto.cppunit.cc | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/DetectorDescription/DDCMS/test/DDFilteredView.find.cppunit.cc b/DetectorDescription/DDCMS/test/DDFilteredView.find.cppunit.cc index 124407bb42de7..74be43d5c7561 100644 --- a/DetectorDescription/DDCMS/test/DDFilteredView.find.cppunit.cc +++ b/DetectorDescription/DDCMS/test/DDFilteredView.find.cppunit.cc @@ -70,8 +70,8 @@ void testDDFilteredViewFind::checkFilteredView() { double radLength = fview.getNextValue("TrackerRadLength"); std::cout << radLength << "\n"; double xi = fview.getNextValue("TrackerXi"); - CPPUNIT_ASSERT(abs(radLength - refRadLength_) < 10e-6); - CPPUNIT_ASSERT(abs(xi - refXi_) < 10e-6); + CPPUNIT_ASSERT(std::abs(radLength - refRadLength_) < 10e-6); + CPPUNIT_ASSERT(std::abs(xi - refXi_) < 10e-6); std::cout << "TrackerRadLength = " << radLength << "\nTrackerXi = " << xi << "\n"; diff --git a/DetectorDescription/DDCMS/test/DDFilteredView.get.cppunit.cc b/DetectorDescription/DDCMS/test/DDFilteredView.get.cppunit.cc index 6e95b8cb03cb3..1c34c4efda29b 100644 --- a/DetectorDescription/DDCMS/test/DDFilteredView.get.cppunit.cc +++ b/DetectorDescription/DDCMS/test/DDFilteredView.get.cppunit.cc @@ -69,8 +69,8 @@ void testDDFilteredViewGet::checkFilteredView() { double radLength = fview.getNextValue("TrackerRadLength"); double xi = fview.getNextValue("TrackerXi"); - CPPUNIT_ASSERT(abs(radLength - refRadLength_) < 10e-6); - CPPUNIT_ASSERT(abs(xi - refXi_) < 10e-6); + CPPUNIT_ASSERT(std::abs(radLength - refRadLength_) < 10e-6); + CPPUNIT_ASSERT(std::abs(xi - refXi_) < 10e-6); std::cout << "TrackerRadLength = " << radLength << "\nTrackerXi = " << xi << "\n"; auto vals = fview.getValuesNS("TrackerRadLength"); diff --git a/DetectorDescription/DDCMS/test/DDFilteredView.goto.cppunit.cc b/DetectorDescription/DDCMS/test/DDFilteredView.goto.cppunit.cc index b97695b18ffe7..fea657984f584 100644 --- a/DetectorDescription/DDCMS/test/DDFilteredView.goto.cppunit.cc +++ b/DetectorDescription/DDCMS/test/DDFilteredView.goto.cppunit.cc @@ -65,8 +65,8 @@ void testDDFilteredViewGoTo::checkFilteredView() { double radLength = fview.get("TrackerRadLength"); double xi = fview.getNextValue("TrackerXi"); - CPPUNIT_ASSERT(abs(radLength - refRadLength_) < 10e-6); - CPPUNIT_ASSERT(abs(xi - refXi_) < 10e-6); + CPPUNIT_ASSERT(std::abs(radLength - refRadLength_) < 10e-6); + CPPUNIT_ASSERT(std::abs(xi - refXi_) < 10e-6); std::cout << "TrackerRadLength = " << radLength << "\nTrackerXi = " << xi << "\n"; From 32a553bc31003e5ec7745f744c2749af854f61b6 Mon Sep 17 00:00:00 2001 From: cquarant Date: Tue, 17 Dec 2024 11:47:04 +0100 Subject: [PATCH 310/418] removed useless portion of code, add error message if BTL v1 geometry used --- .../interface/BTLElectronicsMapping.h | 1 - .../MTDCommonData/src/BTLNumberingScheme.cc | 62 ++----------------- 2 files changed, 4 insertions(+), 59 deletions(-) diff --git a/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h b/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h index aa40cee120555..42af8cde77e75 100644 --- a/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h +++ b/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h @@ -62,7 +62,6 @@ class BTLElectronicsMapping { // Get xtal from TOFHIR Channel number int THChToXtal(uint32_t smodCopy, uint32_t THCh); BTLDetId THChToBTLDetId(uint32_t zside, uint32_t rod, uint32_t runit, uint32_t dmodule, uint32_t smodCopy, uint32_t THCh); - // int BTLElectronicsMapping::SiPMChToXtal(uint32_t zside, uint32_t smodCopy, uint32_t SiPMCh); /** Returns TOFHIR ASIC number in construction database. */ int TOFHIRASIC(uint32_t dmodule, uint32_t smodCopy); diff --git a/Geometry/MTDCommonData/src/BTLNumberingScheme.cc b/Geometry/MTDCommonData/src/BTLNumberingScheme.cc index ae9dd8934052e..7bfd69e578c68 100644 --- a/Geometry/MTDCommonData/src/BTLNumberingScheme.cc +++ b/Geometry/MTDCommonData/src/BTLNumberingScheme.cc @@ -47,60 +47,8 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { if (baseNumber.getLevelName(0).find("Timingactive") != std::string_view::npos) { - crystal = baseNumber.getCopyNumber(0); - - modCopy = baseNumber.getCopyNumber(2); - rodCopy = baseNumber.getCopyNumber(3); - - const std::string_view& modName(baseNumber.getLevelName(2)); // name of module volume - uint32_t pos = modName.find("Positive"); - - zside = (pos <= modName.size() ? 1 : 0); - std::string_view baseName = modName.substr(modName.find(':') + 1); - - modtyp = ::atoi(&baseName.at(7)); - if (modtyp == 17) { - modtyp = 2; - } else if (modtyp == 33) { - modtyp = 3; - } - - // error checking - - if (1 > crystal || 64 < crystal) { - edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad crystal number = " << crystal - << ", Volume Number = " << baseNumber.getCopyNumber(0); - return 0; - } - - if (1 > modtyp || 3 < modtyp) { - edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad module name = " << modName - << ", Volume Name = " << baseNumber.getLevelName(2); - return 0; - } - - if (1 > modCopy || 54 < modCopy) { - edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad module copy = " << modCopy - << ", Volume Number = " << baseNumber.getCopyNumber(2); - return 0; - } - - if (1 > rodCopy || 36 < rodCopy) { - edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad rod copy = " << rodCopy - << ", Volume Number = " << baseNumber.getCopyNumber(4); - return 0; - } - - if (1 < zside) { - edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " - << "****************** Bad side = " << zside - << ", Volume Name = " << baseNumber.getLevelName(2); - return 0; - } + edm::LogError("MTDGeom") << "Geometry v1 of BTL not supported, run on a Geometry configuration D95 or latest "; + throw cms::Exception("Configuration") << "Invalid BTL Geometry configuration (v1)"; } else if (baseNumber.getLevelName(0).find("BTLCrystal") != std::string_view::npos) { // v2 or v3 scenario @@ -113,8 +61,7 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { rodCopy = baseNumber.getCopyNumber(3) - 1; // RU, global module and crystal copy numbers - // (make everything start from 0) - + // (everything start from 0) // V3: RU number is global RU number runitCopy = baseNumber.getCopyNumber(2) - 1; // V2: the type is embedded in crystal name and RU number is by type @@ -208,8 +155,7 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { rodCopy = baseNumber.getCopyNumber(2) - 1; // RU, and global module copy numbers - // (make everything start from 0) - + // (everything start from 0) // V3: RU number is global RU number runitCopy = baseNumber.getCopyNumber(1) - 1; // V2: the type is embedded in crystal name and RU number is by type From 594697d38951fa9b61d434a795c4bc2b12452d1a Mon Sep 17 00:00:00 2001 From: Ivan Razumov Date: Tue, 17 Dec 2024 11:48:23 +0100 Subject: [PATCH 311/418] [Visualization] Replace fabs with std::abs to fix clang compilation warnings --- Fireworks/Calo/plugins/FWTracksterLayersProxyBuilder.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Fireworks/Calo/plugins/FWTracksterLayersProxyBuilder.cc b/Fireworks/Calo/plugins/FWTracksterLayersProxyBuilder.cc index 69f8e4a9cfc64..60fcb9c311e06 100644 --- a/Fireworks/Calo/plugins/FWTracksterLayersProxyBuilder.cc +++ b/Fireworks/Calo/plugins/FWTracksterLayersProxyBuilder.cc @@ -237,7 +237,7 @@ void FWTracksterLayersProxyBuilder::build(const ticl::Trackster &iData, const bool isAdjacent = std::abs(layerOut - layerIn) == 1; // draw 3D cross - if (layer_ == 0 || fabs(layerIn - layer_) == 0 || fabs(layerOut - layer_) == 0) { + if (layer_ == 0 || std::abs(layerIn - layer_) == 0 || std::abs(layerOut - layer_) == 0) { if (isAdjacent) adjacent_marker->AddLine(doublet.first.x(), doublet.first.y(), From 62c4e649cc25c549d5a66ac804be1d00165335ab Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Tue, 10 Dec 2024 16:06:39 +0100 Subject: [PATCH 312/418] Address PR comments - Introduce more named constants for later maintainability - Make the maxChi2 in the estimator customizable - Use vdt trig functions and precompute all values when possible - Fix code style: remove not-needed member variable, use DTChamberId constants instead of magic numbers --- .../modules/hltL2MuonSeedsFromL1TkMuon_cfi.py | 22 ++-- .../modules/hltPhase2L3MuonFilter_cfi.py | 2 +- .../src/Phase2L2MuonSeedCreator.cc | 116 ++++++++++-------- .../src/Phase2L2MuonSeedCreator.h | 5 +- ...orForL3.h => Phase2HLTMuonSelectorForL3.h} | 8 +- ...ForL3.cc => Phase2HLTMuonSelectorForL3.cc} | 20 +-- 6 files changed, 97 insertions(+), 76 deletions(-) rename RecoMuon/L3TrackFinder/interface/{phase2HLTMuonSelectorForL3.h => Phase2HLTMuonSelectorForL3.h} (93%) rename RecoMuon/L3TrackFinder/src/{phase2HLTMuonSelectorForL3.cc => Phase2HLTMuonSelectorForL3.cc} (93%) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltL2MuonSeedsFromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltL2MuonSeedsFromL1TkMuon_cfi.py index 06aa1b6fa1219..60e6c350f1e93 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltL2MuonSeedsFromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltL2MuonSeedsFromL1TkMuon_cfi.py @@ -22,24 +22,28 @@ ) phase2HltL2MuonSeedsFromL1TkMuon = cms.EDProducer('Phase2L2MuonSeedCreator', - InputObjects = cms.InputTag('l1tTkMuonsGmt'), - CSCRecSegmentLabel = cms.InputTag('hltCscSegments'), - DTRecSegmentLabel = cms.InputTag('hltDt4DSegments'), - MinPL1Tk = cms.double(3.5), - MaxPL1Tk = cms.double(200), + inputObjects = cms.InputTag('l1tTkMuonsGmt'), + cscRecSegmentLabel = cms.InputTag('hltCscSegments'), + dtRecSegmentLabel = cms.InputTag('hltDt4DSegments'), + minPL1Tk = cms.double(3.5), + maxPL1Tk = cms.double(200), stubMatchDPhi = cms.double(0.05), stubMatchDTheta = cms.double(0.1), extrapolationWindowClose = cms.double(0.2), extrapolationWindowFar = cms.double(0.1), maximumEtaBarrel = cms.double(0.7), maximumEtaOverlap = cms.double(1.3), - Propagator = cms.string('SteppingHelixPropagatorAny'), - ServiceParameters = cms.PSet( + propagator = cms.string('SteppingHelixPropagatorAny'), + serviceParameters = cms.PSet( Propagators = cms.untracked.vstring('SteppingHelixPropagatorAny'), RPCLayers = cms.bool(True), UseMuonNavigation = cms.untracked.bool(True) - ) + ), + estimatorMaxChi2 = cms.double(1000.0) ) from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons -phase2L2AndL3Muons.toReplaceWith(hltL2MuonSeedsFromL1TkMuon, phase2HltL2MuonSeedsFromL1TkMuon) +phase2L2AndL3Muons.toReplaceWith( + hltL2MuonSeedsFromL1TkMuon, + phase2HltL2MuonSeedsFromL1TkMuon + ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonFilter_cfi.py index bfae8f433951f..6b4b90afb9f6d 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonFilter_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPhase2L3MuonFilter_cfi.py @@ -1,6 +1,6 @@ import FWCore.ParameterSet.Config as cms -hltPhase2L3MuonFilter = cms.EDProducer("phase2HLTMuonSelectorForL3", +hltPhase2L3MuonFilter = cms.EDProducer("Phase2HLTMuonSelectorForL3", l1TkMuons = cms.InputTag("l1tTkMuonsGmt"), l2MuonsUpdVtx = cms.InputTag("hltL2MuonsFromL1TkMuon:UpdatedAtVtx"), l3Tracks = cms.InputTag("hltIter2Phase2L3FromL1TkMuonMerged"), diff --git a/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.cc b/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.cc index 970ac8626ee36..4c7855f37238f 100644 --- a/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.cc +++ b/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.cc @@ -30,56 +30,59 @@ #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "CLHEP/Vector/ThreeVector.h" +#include +#include +#include #include // Constructor Phase2L2MuonSeedCreator::Phase2L2MuonSeedCreator(const edm::ParameterSet& pset) - : l1TkMuCollToken_{consumes(pset.getParameter("InputObjects"))}, - cscSegmentCollToken_{consumes(pset.getParameter("CSCRecSegmentLabel"))}, - dtSegmentCollToken_{consumes(pset.getParameter("DTRecSegmentLabel"))}, + : l1TkMuCollToken_{consumes(pset.getParameter("inputObjects"))}, + cscSegmentCollToken_{consumes(pset.getParameter("cscRecSegmentLabel"))}, + dtSegmentCollToken_{consumes(pset.getParameter("dtRecSegmentLabel"))}, cscGeometryToken_{esConsumes()}, dtGeometryToken_{esConsumes()}, magneticFieldToken_{esConsumes()}, - minMomentum_{pset.getParameter("MinPL1Tk")}, - maxMomentum_{pset.getParameter("MaxPL1Tk")}, + minMomentum_{pset.getParameter("minPL1Tk")}, + maxMomentum_{pset.getParameter("maxPL1Tk")}, matchingPhiWindow_{pset.getParameter("stubMatchDPhi")}, matchingThetaWindow_{pset.getParameter("stubMatchDTheta")}, extrapolationDeltaPhiClose_{pset.getParameter("extrapolationWindowClose")}, extrapolationDeltaPhiFar_{pset.getParameter("extrapolationWindowFar")}, maxEtaBarrel_{pset.getParameter("maximumEtaBarrel")}, maxEtaOverlap_{pset.getParameter("maximumEtaOverlap")}, - propagatorName_{pset.getParameter("Propagator")} { + propagatorName_{pset.getParameter("propagator")} { // Service parameters - edm::ParameterSet serviceParameters = pset.getParameter("ServiceParameters"); + edm::ParameterSet serviceParameters = pset.getParameter("serviceParameters"); // Services service_ = std::make_unique(serviceParameters, consumesCollector()); - estimator_ = std::make_unique(10000.); + estimator_ = std::make_unique(pset.getParameter("estimatorMaxChi2")); produces(); } void Phase2L2MuonSeedCreator::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - desc.add("InputObjects", edm::InputTag("l1tTkMuonsGmt")); - desc.add("CSCRecSegmentLabel", edm::InputTag("hltCscSegments")); - desc.add("DTRecSegmentLabel", edm::InputTag("hltDt4DSegments")); - desc.add("MinPL1Tk", 3.5); - desc.add("MaxPL1Tk", 200); + desc.add("inputObjects", edm::InputTag("l1tTkMuonsGmt")); + desc.add("cscRecSegmentLabel", edm::InputTag("hltCscSegments")); + desc.add("dtRecSegmentLabel", edm::InputTag("hltDt4DSegments")); + desc.add("minPL1Tk", 3.5); + desc.add("maxPL1Tk", 200); desc.add("stubMatchDPhi", 0.05); desc.add("stubMatchDTheta", 0.1); desc.add("extrapolationWindowClose", 0.1); desc.add("extrapolationWindowFar", 0.05); desc.add("maximumEtaBarrel", 0.7); desc.add("maximumEtaOverlap", 1.3); - desc.add("Propagator", "SteppingHelixPropagatorAny"); + desc.add("propagator", "SteppingHelixPropagatorAny"); // Service parameters edm::ParameterSetDescription psd0; psd0.addUntracked>("Propagators", {"SteppingHelixPropagatorAny"}); psd0.add("RPCLayers", true); psd0.addUntracked("UseMuonNavigation", true); - desc.add("ServiceParameters", psd0); + desc.add("serviceParameters", psd0); + desc.add("estimatorMaxChi2", 1000.0); descriptions.add("Phase2L2MuonSeedCreator", desc); } @@ -97,7 +100,8 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& cscGeometry_ = iSetup.getHandle(cscGeometryToken_); dtGeometry_ = iSetup.getHandle(dtGeometryToken_); - magneticField_ = iSetup.getHandle(magneticFieldToken_); + + auto magneticFieldHandle = iSetup.getHandle(magneticFieldToken_); LogDebug(metname) << "Number of L1 Tracker Muons in the Event: " << l1TkMuColl->size(); @@ -106,14 +110,25 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& l1t::TrackerMuonRef l1TkMuRef(l1TkMuColl, l1TkMuIndex); // Physical info of L1TkMu - float pt = l1TkMuRef->phPt(); + const float pt = l1TkMuRef->phPt(); if (pt < minMomentum_) { continue; } - float eta = l1TkMuRef->phEta(); - float theta = 2 * std::atan(std::exp(-eta)); - float phi = l1TkMuRef->phPhi(); - int charge = l1TkMuRef->phCharge(); + const float eta = l1TkMuRef->phEta(); + const float phi = l1TkMuRef->phPhi(); + const int charge = l1TkMuRef->phCharge(); + + // Calculate theta once to use it for stub-segment matching + // theta == 2 * atan(e^(-eta)) + const float theta = 2 * vdt::fast_atanf(vdt::fast_expf(-eta)); + + // Precompute trig functions for theta + float sinTheta, cosTheta; + vdt::fast_sincosf(theta, sinTheta, cosTheta); + + // Precompute trig functions for phi + float sinPhi, cosPhi; + vdt::fast_sincosf(phi, sinPhi, cosPhi); LogDebug(metname) << "L1TKMu pT: " << pt << ", eta: " << eta << ", phi: " << phi; Type muonType = overlap; @@ -165,7 +180,7 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& stub->phiRegion() + 1); // sector, online to offline LogDebug(metname) << "Stub DT detId: " << stubId << ". RawId: " << stubId.rawId(); - auto& tmpMatch = matchingStubSegment(stubId, stub, dtSegments, l1TkMuRef); + auto& tmpMatch = matchingStubSegment(stubId, stub, dtSegments, theta); // Found a match -> update matching info if (tmpMatch.first != -1) { @@ -196,7 +211,7 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& stub->phiRegion()); // chamber LogDebug(metname) << "Stub CSC detId: " << stubId << ". RawId: " << stubId.rawId(); - auto& tmpMatch = matchingStubSegment(stubId, stub, cscSegments, l1TkMuRef); + auto& tmpMatch = matchingStubSegment(stubId, stub, cscSegments, theta); // Found a match -> update matching info if (tmpMatch.first != -1) { @@ -225,7 +240,7 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& stub->phiRegion() + 1); // sector, online to offline LogDebug(metname) << "Stub DT detId: " << stubId << ". RawId: " << stubId.rawId(); - auto& tmpMatch = matchingStubSegment(stubId, stub, dtSegments, l1TkMuRef); + auto& tmpMatch = matchingStubSegment(stubId, stub, dtSegments, theta); totalBarrelQuality += tmpMatch.second; // Found a match -> update matching info @@ -254,7 +269,7 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& stub->phiRegion()); // chamber LogDebug(metname) << "Stub CSC detId: " << stubId << ". RawId: " << stubId.rawId(); - auto& tmpMatch = matchingStubSegment(stubId, stub, cscSegments, l1TkMuRef); + auto& tmpMatch = matchingStubSegment(stubId, stub, cscSegments, theta); totalEndcapQuality += tmpMatch.second; // Found a match -> update matching info @@ -322,22 +337,18 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& const DetLayer* detLayer = nullptr; float radius = 0.; - CLHEP::Hep3Vector vec(0., 1., 0.); - vec.setTheta(theta); - vec.setPhi(phi); - DetId propagateToId; edm::OwnVector container; if (bestInDt) { - // Found at least one matching segment in DT -> propagate to MB2 + // Found at least one matching segment in DT -> propagate to Muon Barrel 2 (MB2) for track finding LogDebug(metname) << "Found matching segment(s) in DTs, propagating L1TkMu info to MB2 to seed"; - // MB2 + // MB2 detId propagateToId = DTChamberId(0, 2, 0); detLayer = service_->detLayerGeometry()->idToLayer(propagateToId); const BoundSurface* sur = &(detLayer->surface()); const BoundCylinder* bc = dynamic_cast(sur); - radius = std::abs(bc->radius() / sin(theta)); + radius = std::abs(bc->radius() / sinTheta); // Propagate matched segments to the seed and try to extrapolate in unmatched chambers std::vector matchedStations; @@ -348,7 +359,8 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& container.push_back(dtSegments[matchingPair.first]); matchedStations.push_back(detId.station()); } - for (int station = 1; station != 5; ++station) { + // Loop over all barrel muon stations (1-4) + for (int station = DTChamberId::minStationId; station <= DTChamberId::maxStationId; ++station) { if (std::find(matchedStations.begin(), matchedStations.end(), station) == matchedStations.end()) { // Try to extrapolate from stations with a match to the ones without LogDebug(metname) << "No matching DT segment found in station " << station; @@ -361,12 +373,12 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& } } } else if (!bestInDt) { - // Found a matching segment in CSC -> propagate to ME2 + // Found a matching segment in CSC -> propagate to Muon Endcap 2 (ME2) for track finding LogDebug(metname) << "Found matching segment(s) in CSCs, propagating L1TkMu info to ME2 to seed"; - // ME2 + // ME2 detId propagateToId = eta > 0 ? CSCDetId(1, 2, 0, 0, 0) : CSCDetId(2, 2, 0, 0, 0); detLayer = service_->detLayerGeometry()->idToLayer(propagateToId); - radius = std::abs(detLayer->position().z() / cos(theta)); + radius = std::abs(detLayer->position().z() / cosTheta); // Fill seed with matched segment(s) for (auto& [detId, matchingPair] : matchesInEndcap) { @@ -374,12 +386,11 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& container.push_back(cscSegments[matchingPair.first]); } } - vec.setMag(radius); // Get Global point and direction - GlobalPoint pos(vec.x(), vec.y(), vec.z()); - GlobalVector mom(pt * cos(phi), pt * sin(phi), pt * cos(theta) / sin(theta)); + GlobalPoint pos(radius * cosPhi * sinTheta, radius * sinPhi * sinTheta, radius * cosTheta); + GlobalVector mom(pt * cosPhi, pt * sinPhi, pt * cosTheta / sinTheta); - GlobalTrajectoryParameters param(pos, mom, charge, &*magneticField_); + GlobalTrajectoryParameters param(pos, mom, charge, &*magneticFieldHandle); AlgebraicSymMatrix55 mat; @@ -407,8 +418,7 @@ void Phase2L2MuonSeedCreator::produce(edm::Event& iEvent, const edm::EventSetup& // Propagation to MB2 failed, fallback to ME2 (might be an overlap edge case) LogDebug(metname) << "Warning: detsWithStates collection is empty for a barrel collection. Falling back to ME2"; // Get ME2 DetLayer - DetId fallback_id; - theta < Geom::pi() / 2. ? fallback_id = CSCDetId(1, 2, 0, 0, 0) : fallback_id = CSCDetId(2, 2, 0, 0, 0); + DetId fallback_id = eta > 0 ? CSCDetId(1, 2, 0, 0, 0) : CSCDetId(2, 2, 0, 0, 0); const DetLayer* ME2DetLayer = service_->detLayerGeometry()->idToLayer(fallback_id); // Trajectory state on ME2 DetLayer tsos = service_->propagator(propagatorName_)->propagate(state, ME2DetLayer->surface()); @@ -465,7 +475,7 @@ const std::vector Phase2L2MuonSeedCreator::matchingIds(const DTCham const std::pair Phase2L2MuonSeedCreator::matchingStubSegment(const DTChamberId& stubId, const l1t::MuonStubRef stub, const DTRecSegment4DCollection& segments, - const l1t::TrackerMuonRef l1TkMuRef) const { + const float l1TkMuTheta) const { const std::string metname = "RecoMuon|Phase2L2MuonSeedCreator"; int bestSegIndex = -1; @@ -492,7 +502,7 @@ const std::pair Phase2L2MuonSeedCreator::matchingStubSegment(const DTC double deltaPhi = std::abs(segPos.phi() - stub->offline_coord1()); LogDebug(metname) << "deltaPhi: " << deltaPhi; - double deltaTheta = std::abs(segPos.theta() - 2 * std::atan(std::exp(-l1TkMuRef->phEta()))); + double deltaTheta = std::abs(segPos.theta() - l1TkMuTheta); LogDebug(metname) << "deltaTheta: " << deltaTheta; // Skip segments outside phi window or very far in the theta view @@ -573,7 +583,7 @@ const std::vector Phase2L2MuonSeedCreator::matchingIds(const CSCDetId& const std::pair Phase2L2MuonSeedCreator::matchingStubSegment(const CSCDetId& stubId, const l1t::MuonStubRef stub, const CSCSegmentCollection& segments, - const l1t::TrackerMuonRef l1TkMuRef) const { + const float l1TkMuTheta) const { const std::string metname = "RecoMuon|Phase2L2MuonSeedCreator"; int bestSegIndex = -1; @@ -597,10 +607,14 @@ const std::pair Phase2L2MuonSeedCreator::matchingStubSegment(const CSC double deltaPhi = std::abs(segPos.phi() - stub->offline_coord1()); LogDebug(metname) << "deltaPhi: " << deltaPhi; - double deltaTheta = std::abs(segPos.theta() - 2 * std::atan(std::exp(-l1TkMuRef->phEta()))); + double deltaTheta = std::abs(segPos.theta() - l1TkMuTheta); LogDebug(metname) << "deltaTheta: " << deltaTheta; - if (deltaPhi > matchingPhiWindow_ or deltaTheta > 0.4) { + // Theta mainly used in cases where multiple matches are found + // to keep only the best one. Still skip segments way outside + // a reasonable window + const double roughThetaWindow = 0.4; + if (deltaPhi > matchingPhiWindow_ or deltaTheta > roughThetaWindow) { continue; // skip segments outside phi window } @@ -791,7 +805,11 @@ const std::pair Phase2L2MuonSeedCreator::extrapolateMatch(const int be double matchingDeltaPhi = std::abs(matchId.station() - endingStation) == 1 ? extrapolationDeltaPhiClose_ : extrapolationDeltaPhiFar_; - if (deltaPhi > matchingDeltaPhi or deltaTheta > 0.4) { + // Theta mainly used in cases where multiple matches are found + // to keep only the best one. Still skip segments way outside + // a reasonable window + const double roughThetaWindow = 0.4; + if (deltaPhi > matchingDeltaPhi or deltaTheta > roughThetaWindow) { continue; } diff --git a/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h b/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h index 2a88d0a2fdbdb..d77ac4f1898c7 100644 --- a/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h +++ b/RecoMuon/L2MuonSeedGenerator/src/Phase2L2MuonSeedCreator.h @@ -111,7 +111,6 @@ class Phase2L2MuonSeedCreator : public edm::stream::EDProducer<> { const double maxEtaOverlap_; // overlap with |eta| < 1.3, endcap after that // Handles - edm::ESHandle magneticField_; edm::ESHandle cscGeometry_; edm::ESHandle dtGeometry_; @@ -132,13 +131,13 @@ class Phase2L2MuonSeedCreator : public edm::stream::EDProducer<> { const std::pair matchingStubSegment(const DTChamberId& stubId, const l1t::MuonStubRef stub, const DTRecSegment4DCollection& segments, - const l1t::TrackerMuonRef l1TkMuRef) const; + const float l1TkMuTheta) const; // Logic to match L1 stubs to CSC segments const std::pair matchingStubSegment(const CSCDetId& stubId, const l1t::MuonStubRef stub, const CSCSegmentCollection& segments, - const l1t::TrackerMuonRef l1TkMuRef) const; + const float l1TkMuTheta) const; // Logic to extrapolate from nearby stations in the barrel const std::pair extrapolateToNearbyStation(const int endingStation, diff --git a/RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h b/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h similarity index 93% rename from RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h rename to RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h index 9a807f7df1c28..e7fcc02585b55 100644 --- a/RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h +++ b/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h @@ -1,7 +1,7 @@ #ifndef RecoMuon_L3TrackFinder_phase2HLTMuonSelectorForL3_H #define RecoMuon_L3TrackFinder_phase2HLTMuonSelectorForL3_H -/** \class phase2HLTMuonSelectorForL3 +/** \class Phase2HLTMuonSelectorForL3 * * Phase-2 L3 selector for Muons * This module allows to choose whether to perform @@ -49,13 +49,13 @@ namespace edm { class EventSetup; } // End namespace edm -class phase2HLTMuonSelectorForL3 : public edm::stream::EDProducer<> { +class Phase2HLTMuonSelectorForL3 : public edm::stream::EDProducer<> { public: // Constructor - phase2HLTMuonSelectorForL3(const edm::ParameterSet&); + Phase2HLTMuonSelectorForL3(const edm::ParameterSet&); // Destructor - ~phase2HLTMuonSelectorForL3() override = default; + ~Phase2HLTMuonSelectorForL3() override = default; // Default values static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); diff --git a/RecoMuon/L3TrackFinder/src/phase2HLTMuonSelectorForL3.cc b/RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc similarity index 93% rename from RecoMuon/L3TrackFinder/src/phase2HLTMuonSelectorForL3.cc rename to RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc index a8090c8d149ac..4f339ba43a1f6 100644 --- a/RecoMuon/L3TrackFinder/src/phase2HLTMuonSelectorForL3.cc +++ b/RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc @@ -1,8 +1,8 @@ -/** \class phase2HLTMuonSelectorForL3 +/** \class Phase2HLTMuonSelectorForL3 * See header file for a description of this class * \author Luca Ferragina (INFN BO), 2024 */ -#include "RecoMuon/L3TrackFinder/interface/phase2HLTMuonSelectorForL3.h" +#include "RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -11,7 +11,7 @@ #include // Constructor -phase2HLTMuonSelectorForL3::phase2HLTMuonSelectorForL3(const edm::ParameterSet& iConfig) +Phase2HLTMuonSelectorForL3::Phase2HLTMuonSelectorForL3(const edm::ParameterSet& iConfig) : l1TkMuCollToken_(consumes(iConfig.getParameter("l1TkMuons"))), l2MuCollectionToken_(consumes(iConfig.getParameter("l2MuonsUpdVtx"))), l3TrackCollectionToken_(consumes(iConfig.getParameter("l3Tracks"))), @@ -33,7 +33,7 @@ phase2HLTMuonSelectorForL3::phase2HLTMuonSelectorForL3(const edm::ParameterSet& } } -void phase2HLTMuonSelectorForL3::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { +void Phase2HLTMuonSelectorForL3::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; desc.add("l1TkMuons", edm::InputTag("l1tTkMuonsGmt")); desc.add("l2MuonsUpdVtx", edm::InputTag("hltL2MuonsFromL1TkMuon", "UpdatedAtVtx")); @@ -47,13 +47,13 @@ void phase2HLTMuonSelectorForL3::fillDescriptions(edm::ConfigurationDescriptions desc.add("MinNhitsPixel", 1); desc.add("MinNhitsTracker", 6); desc.add("MaxPtDifference", 999.0); //relative difference - descriptions.add("phase2HLTMuonSelectorForL3", desc); + descriptions.add("Phase2HLTMuonSelectorForL3", desc); } // IO first -> collection of L2 muons not already matched to a L3 inner track // OI first -> collection of L1Tk Muons not matched to a L3 track -void phase2HLTMuonSelectorForL3::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - const std::string metname = "RecoMuon|phase2HLTMuonSelectorForL3"; +void Phase2HLTMuonSelectorForL3::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { + const std::string metname = "RecoMuon|Phase2HLTMuonSelectorForL3"; // L3 tracks (IO or OI) auto l3TracksCollectionH = iEvent.getHandle(l3TrackCollectionToken_); @@ -183,8 +183,8 @@ void phase2HLTMuonSelectorForL3::produce(edm::Event& iEvent, const edm::EventSet } } -const bool phase2HLTMuonSelectorForL3::rejectL3Track(l1t::TrackerMuonRef l1TkMuRef, reco::TrackRef l3TrackRef) const { - const std::string metname = "RecoMuon|phase2HLTMuonSelectorForL3"; +const bool Phase2HLTMuonSelectorForL3::rejectL3Track(l1t::TrackerMuonRef l1TkMuRef, reco::TrackRef l3TrackRef) const { + const std::string metname = "RecoMuon|Phase2HLTMuonSelectorForL3"; bool nHitsCut = l3TrackRef->numberOfValidHits() < minNhits_; bool chi2Cut = l3TrackRef->normalizedChi2() > maxNormalizedChi2_; @@ -203,4 +203,4 @@ const bool phase2HLTMuonSelectorForL3::rejectL3Track(l1t::TrackerMuonRef l1TkMuR return reject; } -DEFINE_FWK_MODULE(phase2HLTMuonSelectorForL3); +DEFINE_FWK_MODULE(Phase2HLTMuonSelectorForL3); From 93099c0fd3d77063fd9481ccc0648dda76196df7 Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Wed, 11 Dec 2024 16:45:46 +0100 Subject: [PATCH 313/418] Update L1 Muon stubs naming to save them in FEVT --- L1Trigger/Configuration/python/L1Trigger_EventContent_cff.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/L1Trigger/Configuration/python/L1Trigger_EventContent_cff.py b/L1Trigger/Configuration/python/L1Trigger_EventContent_cff.py index dd24349b56e03..a5ee86d334285 100644 --- a/L1Trigger/Configuration/python/L1Trigger_EventContent_cff.py +++ b/L1Trigger/Configuration/python/L1Trigger_EventContent_cff.py @@ -251,7 +251,7 @@ def _appendPhase2Digis(obj): 'keep *_TTClustersFromPhase2TrackerDigis_*_*', 'keep *_l1tTTTracksFromExtendedTrackletEmulation_*_*', 'keep *_l1tTTTracksFromTrackletEmulation_*_*', - 'keep *_l1tTkStubsGmt_*_*', + 'keep *_l1tStubsGmt_*_*', 'keep *_l1tTkMuonsGmt_*_*', 'keep *_l1tSAMuonsGmt_*_*', 'keep *_l1tTkMuonsGmtLowPtFix_*_*', # in the long run this should be removed, but these fix objects will be used for now. From 9ad6dc283525ab3f00bf8f3992aa530e55040f92 Mon Sep 17 00:00:00 2001 From: rdewanje Date: Tue, 17 Dec 2024 12:34:30 +0100 Subject: [PATCH 314/418] deleted the file HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py --- .../modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py deleted file mode 100644 index 8208b61e03cd1..0000000000000 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltPuppiTauTkIsoEle4522L1TkFilter_cfi.py +++ /dev/null @@ -1,5 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -hltPuppiTauTkIsoEle4522L1TkFilter = cms.EDFilter("PathStatusFilter", - logicalExpression = cms.string('pPuppiTauTkIsoEle45_22') -) From 30a84a1ebc935b1cb3686f05abcc6beab16c9acc Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 17 Dec 2024 13:16:55 +0100 Subject: [PATCH 315/418] Add include for std::max to MtdHitCategory --- SimG4CMS/Forward/interface/MtdHitCategory.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SimG4CMS/Forward/interface/MtdHitCategory.h b/SimG4CMS/Forward/interface/MtdHitCategory.h index 7aa810189b979..29c4f02601249 100644 --- a/SimG4CMS/Forward/interface/MtdHitCategory.h +++ b/SimG4CMS/Forward/interface/MtdHitCategory.h @@ -1,6 +1,8 @@ #ifndef SimG4CMSForward_MtdHitCategory_h #define SimG4CMSForward_MtdHitCategory_h +#include + namespace MtdHitCategory { static constexpr unsigned int k_idsecOffset = 1; static constexpr unsigned int k_idloopOffset = 2; From 48ca33ec29770582ec09ff595ba990c50b0ba881 Mon Sep 17 00:00:00 2001 From: Fabio Cossutti Date: Tue, 17 Dec 2024 13:49:14 +0100 Subject: [PATCH 316/418] Switch off verbosity --- SimG4CMS/Forward/src/MtdSD.cc | 2 +- SimG4CMS/Forward/src/TimingSD.cc | 2 +- SimG4Core/Notification/src/TrackInformation.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SimG4CMS/Forward/src/MtdSD.cc b/SimG4CMS/Forward/src/MtdSD.cc index 800a78d929257..dc4a709306615 100644 --- a/SimG4CMS/Forward/src/MtdSD.cc +++ b/SimG4CMS/Forward/src/MtdSD.cc @@ -1,4 +1,4 @@ -#define EDM_ML_DEBUG +//#define EDM_ML_DEBUG #include "SimG4CMS/Forward/interface/MtdSD.h" diff --git a/SimG4CMS/Forward/src/TimingSD.cc b/SimG4CMS/Forward/src/TimingSD.cc index c60eb13ce7a9a..3bc7082b23019 100644 --- a/SimG4CMS/Forward/src/TimingSD.cc +++ b/SimG4CMS/Forward/src/TimingSD.cc @@ -1,4 +1,4 @@ -#define EDM_ML_DEBUG +//#define EDM_ML_DEBUG /////////////////////////////////////////////////////////////////////////////// // File: TimingSD.cc diff --git a/SimG4Core/Notification/src/TrackInformation.cc b/SimG4Core/Notification/src/TrackInformation.cc index 3352f69c683a1..769d4a4706951 100644 --- a/SimG4Core/Notification/src/TrackInformation.cc +++ b/SimG4Core/Notification/src/TrackInformation.cc @@ -1,4 +1,4 @@ -#define EDM_ML_DEBUG +//#define EDM_ML_DEBUG #include "SimG4Core/Notification/interface/TrackInformation.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" From 6a8a23ade30f5336180de85e5a3dc82b2e73be65 Mon Sep 17 00:00:00 2001 From: cquarant Date: Tue, 17 Dec 2024 15:46:24 +0100 Subject: [PATCH 317/418] updated dummy constructor to new BTLDetId constructor --- RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc b/RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc index 5472945566382..66bda88bc4a05 100644 --- a/RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc +++ b/RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc @@ -78,7 +78,7 @@ DetId MTDDetLayerGeometry::makeDetLayerId(const DetLayer* detLayer) const { return ETLDetId(id.mtdSide(), 0, 0, 0, 0); // Constructor of new geometry is compatible with prev8 } else if (detLayer->subDetector() == GeomDetEnumerators::TimingBarrel) { BTLDetId id(detLayer->basicComponents().front()->geographicalId().rawId()); - return BTLDetId(id.mtdSide(), 0, 0, 0, 0); + return BTLDetId(id.mtdSide(), 0, 0, 0, 0, 0); } else throw cms::Exception("InvalidModuleIdentification"); // << detLayer->module(); } @@ -108,7 +108,7 @@ const DetLayer* MTDDetLayerGeometry::idToLayer(const DetId& id) const { idout = ETLDetId(etlId.mtdSide(), 0, 0, 0, 0); } else if (detId.mtdSubDetector() == 1) { // 1 is BTL BTLDetId btlId(detId.rawId()); - idout = BTLDetId(btlId.mtdSide(), 0, 0, 0, 0); + idout = BTLDetId(btlId.mtdSide(), 0, 0, 0, 0, 0); } else throw cms::Exception("InvalidSubdetId") << detId.subdetId(); From 2413b698843175b2c33a6cef6f9912578fde0f9a Mon Sep 17 00:00:00 2001 From: cquarant Date: Tue, 17 Dec 2024 16:55:25 +0100 Subject: [PATCH 318/418] code formatting --- DataFormats/ForwardDetId/interface/BTLDetId.h | 35 +++++++++------- DataFormats/ForwardDetId/src/BTLDetId.cc | 5 +-- .../interface/BTLElectronicsMapping.h | 5 ++- .../src/BTLElectronicsMapping.cc | 14 +++---- .../MTDCommonData/src/BTLNumberingScheme.cc | 40 ++++++++++--------- .../test/DD4hep_TestPixelTopology.cc | 12 +++--- 6 files changed, 59 insertions(+), 52 deletions(-) diff --git a/DataFormats/ForwardDetId/interface/BTLDetId.h b/DataFormats/ForwardDetId/interface/BTLDetId.h index 3b2337cb7e982..dacc25bb13fbb 100644 --- a/DataFormats/ForwardDetId/interface/BTLDetId.h +++ b/DataFormats/ForwardDetId/interface/BTLDetId.h @@ -67,7 +67,7 @@ class BTLDetId : public MTDDetId { static constexpr uint32_t kBTLoldFieldMask = 0x3FFFFF; static constexpr uint32_t kBTLNewFormat = 1 << 15; - // + // // Number of crystals in BTL according to TDR design, valid also for barphiflat scenario: // 16 crystals x 24 modules x 2 readout units/type x 3 types x 36 rods/side x 2 sides @@ -111,21 +111,23 @@ class BTLDetId : public MTDDetId { id_ |= (MTDType::BTL & kMTDsubdMask) << kMTDsubdOffset | (zside & kZsideMask) << kZsideOffset | (rod & kRodRingMask) << kRodRingOffset | (runit & kBTLRUMask) << kBTLRUOffset | (dmodule & kBTLdetectorModMask) << kBTLdetectorModOffset | - (smodule & kBTLsensorModMask) << kBTLsensorModOffset | - (crystal & kBTLCrystalMask) << kBTLCrystalOffset; + (smodule & kBTLsensorModMask) << kBTLsensorModOffset | (crystal & kBTLCrystalMask) << kBTLCrystalOffset; id_ |= kBTLNewFormat; } // ---------- Common methods ---------- /** Returns BTL crystal number. */ - inline int crystal() const { return ((id_ >> kBTLCrystalOffset) & kBTLCrystalMask);} + inline int crystal() const { return ((id_ >> kBTLCrystalOffset) & kBTLCrystalMask); } /** Returns BTL crystal number in construction database. */ - inline int crystalConsDB() const { - if (crystal() == kCrystalsPerModuleV2) return -1; - if (smodule() == 0) return kCrystalsPerModuleV2-1 - crystal() ; - else return crystal(); + inline int crystalConsDB() const { + if (crystal() == kCrystalsPerModuleV2) + return -1; + if (smodule() == 0) + return kCrystalsPerModuleV2 - 1 - crystal(); + else + return crystal(); } /** Returns BTL detector module number. */ @@ -136,7 +138,9 @@ class BTLDetId : public MTDDetId { /** Returns BTL module number [1-24] (OLD BTL NUMBERING). */ inline int module() const { - int mod = ((dmodule() % kDModulesInRURow) * (kSModulesInDM * kDModulesInRUCol) + int(dmodule() / kDModulesInRURow) + kDModulesInRUCol * smodule()) + 1; + int mod = ((dmodule() % kDModulesInRURow) * (kSModulesInDM * kDModulesInRUCol) + int(dmodule() / kDModulesInRURow) + + kDModulesInRUCol * smodule()) + + 1; return mod; } @@ -173,28 +177,29 @@ class BTLDetId : public MTDDetId { // convert old module number into detector module + sensor module numbers uint32_t oldModule = (rawid >> kBTLoldModuleOffset) & kBTLoldModuleMask; - uint32_t detModule = int((oldModule - 1) % (kDModulesInRUCol)) * kDModulesInRURow + + uint32_t detModule = int((oldModule - 1) % (kDModulesInRUCol)) * kDModulesInRURow + int((oldModule - 1) / (kDModulesInRUCol * kSModulesInDM)); - uint32_t senModule = int((oldModule - 1) / kDModulesInRUCol) % kSModulesInDM; + uint32_t senModule = int((oldModule - 1) / kDModulesInRUCol) % kSModulesInDM; // change detector module number if on the negative side int zside = int(mtdSide()); - if (zside < 1) detModule = detModule - 2 * kDModulesInRURow * (int(detModule/kDModulesInRURow) - 1); + if (zside < 1) + detModule = detModule - 2 * kDModulesInRURow * (int(detModule / kDModulesInRURow) - 1); // convert old RU and type number into new RU number uint32_t oldRU = (rawid >> kBTLoldRUOffset) & kBTLoldRUMask; uint32_t oldType = (rawid >> kBTLoldModTypeOffset) & kBTLoldModTypeMask; - uint32_t newRU = ((oldType - 1) * kRUPerTypeV2) + (oldRU-1); + uint32_t newRU = ((oldType - 1) * kRUPerTypeV2) + (oldRU - 1); // get crystal number uint32_t crystal = (rawid & kBTLCrystalMask) >> kBTLCrystalOffset; // return new BTLDetID for v3 geom - return (fixedP | (newTray & kBTLRodMask) << kBTLRodOffset | (newRU & kBTLRUMask) << kBTLRUOffset | + return (fixedP | (newTray & kBTLRodMask) << kBTLRodOffset | (newRU & kBTLRUMask) << kBTLRUOffset | (detModule & kBTLdetectorModMask) << kBTLdetectorModOffset | (senModule & kBTLsensorModMask) << kBTLsensorModOffset | ((crystal & kBTLCrystalMask) << kBTLCrystalOffset)) | - kBTLNewFormat; + kBTLNewFormat; } }; diff --git a/DataFormats/ForwardDetId/src/BTLDetId.cc b/DataFormats/ForwardDetId/src/BTLDetId.cc index a0c218bb9d543..b865f2f1efab5 100644 --- a/DataFormats/ForwardDetId/src/BTLDetId.cc +++ b/DataFormats/ForwardDetId/src/BTLDetId.cc @@ -2,11 +2,10 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" BTLDetId BTLDetId::geographicalId(CrysLayout lay) const { - // For tracking geometry navigation // v2,v3: set number of crystals to 17 to distinguish from crystal BTLDetId // v1: obsolete and not supported - + if (lay == CrysLayout::v2 || lay == CrysLayout::v3) { return BTLDetId(mtdSide(), mtdRR(), runit(), dmodule(), smodule(), kCrystalsPerModuleV2); } else { @@ -23,7 +22,7 @@ std::ostream& operator<<(std::ostream& os, const BTLDetId& id) { os << " BTL " << std::endl << " Side : " << id.mtdSide() << std::endl << " Rod : " << id.mtdRR() << std::endl - << " Crystal type : " << id.modType() << std::endl // crystal type in v1 geometry scheme + << " Crystal type : " << id.modType() << std::endl // crystal type in v1 geometry scheme << " Runit by Type : " << id.runitByType() << std::endl << " Readout unit : " << id.runit() << std::endl << " Detector module: " << id.dmodule() << std::endl diff --git a/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h b/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h index 42af8cde77e75..9fa4dfaf0ac6f 100644 --- a/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h +++ b/Geometry/MTDCommonData/interface/BTLElectronicsMapping.h @@ -31,7 +31,7 @@ class BTLElectronicsMapping { // Map SiPM Channel to crystal bars for Backward module orientation static constexpr std::array SiPMChannelMapBW{ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}}; + 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}}; // Map TOFHIR Channel to SiPM Channel static constexpr std::array THChannelMap{ @@ -61,7 +61,8 @@ class BTLElectronicsMapping { // Get xtal from TOFHIR Channel number int THChToXtal(uint32_t smodCopy, uint32_t THCh); - BTLDetId THChToBTLDetId(uint32_t zside, uint32_t rod, uint32_t runit, uint32_t dmodule, uint32_t smodCopy, uint32_t THCh); + BTLDetId THChToBTLDetId( + uint32_t zside, uint32_t rod, uint32_t runit, uint32_t dmodule, uint32_t smodCopy, uint32_t THCh); /** Returns TOFHIR ASIC number in construction database. */ int TOFHIRASIC(uint32_t dmodule, uint32_t smodCopy); diff --git a/Geometry/MTDCommonData/src/BTLElectronicsMapping.cc b/Geometry/MTDCommonData/src/BTLElectronicsMapping.cc index f0105cc7ece80..f751fbd411033 100644 --- a/Geometry/MTDCommonData/src/BTLElectronicsMapping.cc +++ b/Geometry/MTDCommonData/src/BTLElectronicsMapping.cc @@ -160,16 +160,18 @@ BTLDetId BTLElectronicsMapping::THChToBTLDetId( } // Get TOFHIR asic number -// if dmodule is odd number (DM range [1-12]) +// if dmodule is odd number (DM range [1-12]) // SM1 --> TOFHIR A0 (simply 0) // SM2 --> TOFHIR A1 (simply 1) // else if dmodule is even number the order is inverted // SM1 --> TOFHIR A1 (simply 1) // SM2 --> TOFHIR A0 (simply 0) -int BTLElectronicsMapping::TOFHIRASIC(uint32_t dmodule, uint32_t smodCopy) { - if (dmodule % BTLDetId::kSModulesInDM == 0) return smodCopy; - else return BTLDetId::kSModulesInDM - smodCopy - 1; - } +int BTLElectronicsMapping::TOFHIRASIC(uint32_t dmodule, uint32_t smodCopy) { + if (dmodule % BTLDetId::kSModulesInDM == 0) + return smodCopy; + else + return BTLDetId::kSModulesInDM - smodCopy - 1; +} int BTLElectronicsMapping::TOFHIRASIC(BTLDetId det) { uint32_t dmodule = det.dmodule(); @@ -182,7 +184,6 @@ int BTLElectronicsMapping::TOFHIRASIC(uint32_t rawID) { return BTLElectronicsMapping::TOFHIRASIC(theId); } - /** Returns FE board number */ int BTLElectronicsMapping::FEBoardFromDM(uint32_t dmodule) { return dmodule; } @@ -195,4 +196,3 @@ int BTLElectronicsMapping::FEBoard(uint32_t rawID) { BTLDetId theId(rawID); return BTLElectronicsMapping::FEBoard(theId); } - diff --git a/Geometry/MTDCommonData/src/BTLNumberingScheme.cc b/Geometry/MTDCommonData/src/BTLNumberingScheme.cc index 7bfd69e578c68..11815440c7cd6 100644 --- a/Geometry/MTDCommonData/src/BTLNumberingScheme.cc +++ b/Geometry/MTDCommonData/src/BTLNumberingScheme.cc @@ -45,7 +45,6 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { << bareBaseName(baseNumber.getLevelName(7)) << "[" << baseNumber.getCopyNumber(7) << "], " << bareBaseName(baseNumber.getLevelName(8)) << "[" << baseNumber.getCopyNumber(8) << "]"; - if (baseNumber.getLevelName(0).find("Timingactive") != std::string_view::npos) { edm::LogError("MTDGeom") << "Geometry v1 of BTL not supported, run on a Geometry configuration D95 or latest "; throw cms::Exception("Configuration") << "Invalid BTL Geometry configuration (v1)"; @@ -59,7 +58,7 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { // rod (tray) copy number rodCopy = baseNumber.getCopyNumber(3) - 1; - + // RU, global module and crystal copy numbers // (everything start from 0) // V3: RU number is global RU number @@ -74,39 +73,40 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { crystal = int(baseNumber.getCopyNumber(0)) - 1; // Detector and sensor module numbers from global module number 0-23 - dmodCopy = int((modCopy / BTLDetId::kDModulesInRUCol) / BTLDetId::kSModulesInDM) + (modCopy % BTLDetId::kDModulesInRUCol) * BTLDetId::kDModulesInRURow; - smodCopy = int( modCopy / BTLDetId::kDModulesInRUCol ) % BTLDetId::kSModulesInDM; + dmodCopy = int((modCopy / BTLDetId::kDModulesInRUCol) / BTLDetId::kSModulesInDM) + + (modCopy % BTLDetId::kDModulesInRUCol) * BTLDetId::kDModulesInRURow; + smodCopy = int(modCopy / BTLDetId::kDModulesInRUCol) % BTLDetId::kSModulesInDM; // error checking - if (0 > int(crystal) || BTLDetId::kCrystalsPerModuleV2-1 < crystal) { + if (0 > int(crystal) || BTLDetId::kCrystalsPerModuleV2 - 1 < crystal) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad crystal number = " << int(crystal) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(0) - 1; return 0; } - if (0 > int(modCopy) || BTLDetId::kModulesPerRUV2-1 < modCopy) { + if (0 > int(modCopy) || BTLDetId::kModulesPerRUV2 - 1 < modCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad module copy = " << int(modCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(1) - 1; return 0; } - if (0 > int(smodCopy) || BTLDetId::kSModulesPerDM-1 < smodCopy) { + if (0 > int(smodCopy) || BTLDetId::kSModulesPerDM - 1 < smodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad detector module copy = " << int(smodCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(1) - 1; return 0; } - if (0 > int(dmodCopy) || BTLDetId::kDModulesPerRU-1 < dmodCopy) { + if (0 > int(dmodCopy) || BTLDetId::kDModulesPerRU - 1 < dmodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad detector module copy = " << int(dmodCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(1) - 1; return 0; } - if (0 > int(runitCopy) || BTLDetId::kRUPerRod-1 < runitCopy) { + if (0 > int(runitCopy) || BTLDetId::kRUPerRod - 1 < runitCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad readout unit copy = " << int(runitCopy) << " module type = " << int(modtyp) @@ -115,7 +115,7 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { return 0; } - if (0 > int(rodCopy) || BTLDetId::HALF_ROD-1 < rodCopy) { + if (0 > int(rodCopy) || BTLDetId::HALF_ROD - 1 < rodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad rod copy = " << int(rodCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(3); @@ -166,40 +166,41 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { modCopy = baseNumber.getCopyNumber(0) - 1; // eval detector and sensor module numbers from global module number 1-24 - dmodCopy = int((modCopy / BTLDetId::kDModulesInRUCol) / BTLDetId::kSModulesInDM) + (modCopy % BTLDetId::kDModulesInRUCol) * BTLDetId::kDModulesInRURow; - smodCopy = int( modCopy / BTLDetId::kDModulesInRUCol) % BTLDetId::kSModulesInDM; + dmodCopy = int((modCopy / BTLDetId::kDModulesInRUCol) / BTLDetId::kSModulesInDM) + + (modCopy % BTLDetId::kDModulesInRUCol) * BTLDetId::kDModulesInRURow; + smodCopy = int(modCopy / BTLDetId::kDModulesInRUCol) % BTLDetId::kSModulesInDM; // error checking - if (0 > int(modCopy) || BTLDetId::kModulesPerRUV2-1 < modCopy) { + if (0 > int(modCopy) || BTLDetId::kModulesPerRUV2 - 1 < modCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad module copy = " << int(modCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(0) - 1; return 0; } - if (0 > int(smodCopy) || BTLDetId::kSModulesPerDM-1 < smodCopy) { + if (0 > int(smodCopy) || BTLDetId::kSModulesPerDM - 1 < smodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad detector module copy = " << int(smodCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(0) - 1; return 0; } - if (0 > int(dmodCopy) || BTLDetId::kDModulesPerRU-1 < dmodCopy) { + if (0 > int(dmodCopy) || BTLDetId::kDModulesPerRU - 1 < dmodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad detector module copy = " << int(dmodCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(0) - 1; return 0; } - if (0 > int(runitCopy) || BTLDetId::kRUPerRod-1 < runitCopy) { + if (0 > int(runitCopy) || BTLDetId::kRUPerRod - 1 < runitCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad readout unit copy = " << int(runitCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(1) - 1; return 0; } - if (0 > int(rodCopy) || BTLDetId::HALF_ROD-1 < rodCopy) { + if (0 > int(rodCopy) || BTLDetId::HALF_ROD - 1 < rodCopy) { edm::LogWarning("MTDGeom") << "BTLNumberingScheme::getUnitID(): " << "****************** Bad rod copy = " << int(rodCopy) << ", Volume Number (counting from 0)= " << baseNumber.getCopyNumber(2); @@ -225,8 +226,9 @@ uint32_t BTLNumberingScheme::getUnitID(const MTDBaseNumber& baseNumber) const { } LogDebug("MTDGeom") << "BTL Numbering scheme: " - << " Raw Id = " << intindex << " zside = " << zside << " rod = " << rodCopy << " runit = " << runitCopy - << " dmodule = " << dmodCopy << " smodule = " << smodCopy << " module = " << modCopy+1 << " crystal = " << crystal << "\n" + << " Raw Id = " << intindex << " zside = " << zside << " rod = " << rodCopy + << " runit = " << runitCopy << " dmodule = " << dmodCopy << " smodule = " << smodCopy + << " module = " << modCopy + 1 << " crystal = " << crystal << "\n" << BTLDetId(intindex); return intindex; diff --git a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc index 31cc46fdc9737..64317d821e7b5 100644 --- a/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc +++ b/Geometry/MTDGeometryBuilder/test/DD4hep_TestPixelTopology.cc @@ -293,8 +293,8 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even if (isBarrel) { edm::LogVerbatim("DD4hep_TestPixelTopology") - << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() - << " RU/mod= " << modIdBTL.runit() << " / " << modIdBTL.module(); + << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() << " RU/mod= " << modIdBTL.runit() + << " / " << modIdBTL.module(); sunitt_ << "geoId= " << modIdBTL.rawId() << " side= " << modIdBTL.mtdSide() << " RU/mod= " << modIdBTL.runit() << " / " << modIdBTL.module(); } else { @@ -416,10 +416,10 @@ void DD4hep_TestPixelTopology::analyze(const edm::Event& iEvent, const edm::Even << " module/geomodule= " << theIdBTL.module() << " / " << static_cast(geoId).module() << " crys= " << theIdBTL.crystal() << " BTLDetId row/col= " << origRow << " / " << origCol << "\n"; sunitt_ << "rawId= " << theIdBTL.rawId() << " geoId= " << geoId.rawId() - << " side/rod= " << theIdBTL.mtdSide() << " / " << theIdBTL.mtdRR() - << " RU= " << theIdBTL.runit() << " module/geomodule= " << theIdBTL.module() << " / " - << static_cast(geoId).module() << " crys= " << theIdBTL.crystal() - << " BTLDetId row/col= " << origRow << " / " << origCol << "\n"; + << " side/rod= " << theIdBTL.mtdSide() << " / " << theIdBTL.mtdRR() << " RU= " << theIdBTL.runit() + << " module/geomodule= " << theIdBTL.module() << " / " << static_cast(geoId).module() + << " crys= " << theIdBTL.crystal() << " BTLDetId row/col= " << origRow << " / " << origCol + << "\n"; } else { edm::LogVerbatim("DD4hep_TestPixelTopology") << "geoId= " << modIdETL.rawId() << " side= " << modIdETL.mtdSide() From 94635d096da23b0794303ddd3c724e9e4beae405 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Tue, 17 Dec 2024 20:46:02 +0100 Subject: [PATCH 319/418] Added unit test to make sure scram code-checks run --- Utilities/ReleaseScripts/test/BuildFile.xml | 4 ++ .../test/ref/test-clang-tidy.cc | 31 +++++++++++++++ .../ReleaseScripts/test/test-clang-tidy.cc | 2 +- .../test/test-clang-tidy.cc.yaml | 12 +++--- .../test/test-scram-code-checks.sh | 38 +++++++++++++++++++ 5 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 Utilities/ReleaseScripts/test/ref/test-clang-tidy.cc create mode 100755 Utilities/ReleaseScripts/test/test-scram-code-checks.sh diff --git a/Utilities/ReleaseScripts/test/BuildFile.xml b/Utilities/ReleaseScripts/test/BuildFile.xml index cb3a56d1959ad..3107c6ccb9ac9 100644 --- a/Utilities/ReleaseScripts/test/BuildFile.xml +++ b/Utilities/ReleaseScripts/test/BuildFile.xml @@ -4,6 +4,10 @@ + + + + diff --git a/Utilities/ReleaseScripts/test/ref/test-clang-tidy.cc b/Utilities/ReleaseScripts/test/ref/test-clang-tidy.cc new file mode 100644 index 0000000000000..a8f1a68a9483d --- /dev/null +++ b/Utilities/ReleaseScripts/test/ref/test-clang-tidy.cc @@ -0,0 +1,31 @@ +class BaseClass { +public: + BaseClass(int x) { + m_x = x; + ch = nullptr; + }; + virtual ~BaseClass(); + virtual int someMethod(); + +protected: + int m_x; + char* ch; +}; + +BaseClass::~BaseClass() { + if (ch != nullptr) { + delete ch; + ch = nullptr; + } +} +int BaseClass::someMethod() { return m_x; } + +class DrivedClass : public BaseClass { +public: + DrivedClass(int x) : BaseClass(x) {}; + ~DrivedClass() override; + int someMethod() override; +}; + +DrivedClass::~DrivedClass() {} +int DrivedClass::someMethod() { return m_x * 2; } diff --git a/Utilities/ReleaseScripts/test/test-clang-tidy.cc b/Utilities/ReleaseScripts/test/test-clang-tidy.cc index 2debbccc9acdc..9c5cdb62cfb21 100644 --- a/Utilities/ReleaseScripts/test/test-clang-tidy.cc +++ b/Utilities/ReleaseScripts/test/test-clang-tidy.cc @@ -22,7 +22,7 @@ int BaseClass::someMethod() { return m_x; } class DrivedClass : public BaseClass { public: - DrivedClass(int x) : BaseClass(x){}; + DrivedClass(int x) : BaseClass(x) {}; virtual ~DrivedClass(); virtual int someMethod(); }; diff --git a/Utilities/ReleaseScripts/test/test-clang-tidy.cc.yaml b/Utilities/ReleaseScripts/test/test-clang-tidy.cc.yaml index 462d9fd109097..cbcbdf4830446 100644 --- a/Utilities/ReleaseScripts/test/test-clang-tidy.cc.yaml +++ b/Utilities/ReleaseScripts/test/test-clang-tidy.cc.yaml @@ -35,28 +35,28 @@ Diagnostics: DiagnosticMessage: Message: 'prefer using ''override'' or (rarely) ''final'' instead of ''virtual''' FilePath: 'Utilities/ReleaseScripts/test/test-clang-tidy.cc' - FileOffset: 385 + FileOffset: 386 Replacements: - FilePath: 'Utilities/ReleaseScripts/test/test-clang-tidy.cc' - Offset: 377 + Offset: 378 Length: 8 ReplacementText: '' - FilePath: 'Utilities/ReleaseScripts/test/test-clang-tidy.cc' - Offset: 399 + Offset: 400 Length: 0 ReplacementText: ' override' - DiagnosticName: modernize-use-override DiagnosticMessage: Message: 'prefer using ''override'' or (rarely) ''final'' instead of ''virtual''' FilePath: 'Utilities/ReleaseScripts/test/test-clang-tidy.cc' - FileOffset: 415 + FileOffset: 416 Replacements: - FilePath: 'Utilities/ReleaseScripts/test/test-clang-tidy.cc' - Offset: 403 + Offset: 404 Length: 8 ReplacementText: '' - FilePath: 'Utilities/ReleaseScripts/test/test-clang-tidy.cc' - Offset: 427 + Offset: 428 Length: 0 ReplacementText: ' override' ... diff --git a/Utilities/ReleaseScripts/test/test-scram-code-checks.sh b/Utilities/ReleaseScripts/test/test-scram-code-checks.sh new file mode 100755 index 0000000000000..bea5794599185 --- /dev/null +++ b/Utilities/ReleaseScripts/test/test-scram-code-checks.sh @@ -0,0 +1,38 @@ +#!/bin/bash -ex + +ORIG_TEST_PATH=$SCRAM_TEST_PATH +scram project $CMSSW_VERSION +cd $CMSSW_VERSION + +#Get FWCore/Version +mkdir src/FWCore +RefDir=$CMSSW_BASE/src/FWCore/Version +[ -e $RefDir ] || RefDir=$CMSSW_RELEASE_BASE/src/FWCore/Version +rsync -a $RefDir/ src/FWCore/Version/ +chmod -R u+w src/FWCore/Version + +#Get latest clang-tidy and format files +RefDir=$CMSSW_BASE/src +[ -e ${RefDir}/.clang-tidy ] || RefDir=$CMSSW_RELEASE_BASE/src +cp ${RefDir}/.clang-tidy src/ +cp ${RefDir}/.clang-format src/ + +#Get latest build rules +rm -rf config/SCRAM +rsync -a $CMSSW_BASE/config/SCRAM/ config/SCRAM/ + +#Make sure external release external lib/bin are in env +chmod a-x config/SCRAM/hooks/runtime/50-remove-release-external-lib + +#Test clang-tidy +cp $ORIG_TEST_PATH/test-clang-tidy.cc src/FWCore/Version/src +USER_CODE_CHECKS_FILES=src/FWCore/Version/src/test-clang-tidy.cc scram b code-checks +diff -u src/FWCore/Version/src/test-clang-tidy.cc $ORIG_TEST_PATH/ref/test-clang-tidy.cc +cp $ORIG_TEST_PATH/test-clang-tidy.cc src/FWCore/Version/src +scram b code-checks-all +diff -u src/FWCore/Version/src/test-clang-tidy.cc $ORIG_TEST_PATH/ref/test-clang-tidy.cc + +#Test clang-format +sed -i -e 's|int m_x| int m_x |' src/FWCore/Version/src/test-clang-tidy.cc +USER_CODE_FORMAT_FILES=src/FWCore/Version/src/test-clang-tidy.cc scram b code-format +diff -u src/FWCore/Version/src/test-clang-tidy.cc $ORIG_TEST_PATH/ref/test-clang-tidy.cc From 88e29b0ea9945c2a9eaae226bad085a54daa10c1 Mon Sep 17 00:00:00 2001 From: Nurfikri Norjoharuddeen Date: Tue, 17 Dec 2024 22:10:40 +0100 Subject: [PATCH 320/418] Remove pt cut for slimmedGenJets --- PhysicsTools/PatAlgos/python/slimming/slimmedGenJets_cfi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PhysicsTools/PatAlgos/python/slimming/slimmedGenJets_cfi.py b/PhysicsTools/PatAlgos/python/slimming/slimmedGenJets_cfi.py index 860903307b777..61881d05ea778 100644 --- a/PhysicsTools/PatAlgos/python/slimming/slimmedGenJets_cfi.py +++ b/PhysicsTools/PatAlgos/python/slimming/slimmedGenJets_cfi.py @@ -3,7 +3,7 @@ slimmedGenJets = cms.EDProducer("PATGenJetSlimmer", src = cms.InputTag("ak4GenJetsNoNu"), packedGenParticles = cms.InputTag("packedGenParticles"), - cut = cms.string("pt > 8"), + cut = cms.string(""), cutLoose = cms.string(""), nLoose = cms.uint32(0), clearDaughters = cms.bool(False), #False means rekeying From a927dcbbcd69185346df6d40561f25fde3f51f9b Mon Sep 17 00:00:00 2001 From: sihyunjeon Date: Tue, 17 Dec 2024 23:03:07 +0100 Subject: [PATCH 321/418] address comments --- .../interface/Phase2ITChip.h | 7 ++- .../interface/Phase2ITQCore.h | 34 +++++------ .../Phase2TrackerDigi/src/Phase2ITChip.cc | 12 ++-- .../Phase2TrackerDigi/src/Phase2ITQCore.cc | 47 +++++++-------- .../plugins/Phase2ITQCoreProducer.cc | 59 +++++++------------ .../Phase2TrackerRawToDigi/test/BuildFile.xml | 14 ----- 6 files changed, 68 insertions(+), 105 deletions(-) diff --git a/DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h b/DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h index ce2ec737167ee..521061aa870a6 100644 --- a/DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h +++ b/DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h @@ -8,11 +8,9 @@ class Phase2ITChip { // Quarter cores collected into a chip (only active quarter cores with hits gets collected) - std::vector hitList; - int rocnum_; public: - Phase2ITChip(int rocnum, std::vector hl); + Phase2ITChip(int rocnum, const std::vector hl); unsigned int size(); int rocnum() const { return rocnum_; } @@ -21,6 +19,9 @@ class Phase2ITChip { std::vector get_chip_code(); private: + std::vector hitList_; + int rocnum_; + std::pair get_QCore_pos(Phase2ITDigiHit hit); Phase2ITQCore get_QCore_from_hit(Phase2ITDigiHit pixel); diff --git a/DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h b/DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h index e433da5f926f6..bdb829ac406db 100644 --- a/DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h +++ b/DataFormats/Phase2TrackerDigi/interface/Phase2ITQCore.h @@ -4,14 +4,6 @@ class Phase2ITQCore { // Collects hits and creates a quarter core (16 pixel positions) -private: - std::vector adcs; // Full array of adc values in a quarter core - std::vector hits; // Full array of hit occurrences - bool islast_; // RD53 chip encoding bits - bool isneighbour_; // RD53 chip encoding bits - int rocid_; // Chip index number - int ccol; // QCore position column - int qcrow; // QCore position row public: Phase2ITQCore(int rocid, @@ -19,15 +11,15 @@ class Phase2ITQCore { int qcrow_in, bool isneighbour_in, bool islast_in, - std::vector adcs_in, - std::vector hits_in); + const std::vector& adcs_in, + const std::vector& hits_in); Phase2ITQCore() { rocid_ = -1; islast_ = false; isneighbour_ = false; - ccol = -1; - qcrow = -1; + ccol_ = -1; + qcrow_ = -1; } void setIsLast(bool islast) { islast_ = islast; } @@ -36,22 +28,30 @@ class Phase2ITQCore { void setIsNeighbour(bool isneighbour) { isneighbour_ = isneighbour; } int rocid() const { return rocid_; } - int get_col() const { return ccol; } - int get_row() const { return qcrow; } + int get_col() const { return ccol_; } + int get_row() const { return qcrow_; } std::vector getHitmap(); std::vector getADCs(); std::vector encodeQCore(bool is_new_col); const bool operator<(const Phase2ITQCore& other) { - if (ccol == other.ccol) { - return (ccol < other.ccol); + if (ccol_ == other.ccol_) { + return (ccol_ < other.ccol_); } else { - return (qcrow < other.qcrow); + return (qcrow_ < other.qcrow_); } } private: + std::vector adcs_; // Full array of adc values in a quarter core + std::vector hits_; // Full array of hit occurrences + bool islast_; // RD53 chip encoding bits + bool isneighbour_; // RD53 chip encoding bits + int rocid_; // Chip index number + int ccol_; // QCore position column + int qcrow_; // QCore position row + std::vector toRocCoordinates(std::vector& hitmap); std::vector intToBinary(int num, int length); bool containsHit(std::vector& hitmap); diff --git a/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc b/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc index 6bd9688d05574..e56f6fa947f8f 100644 --- a/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc +++ b/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc @@ -6,12 +6,12 @@ #include "DataFormats/Phase2TrackerDigi/interface/Phase2ITChip.h" #include "DataFormats/Phase2TrackerDigi/interface/Phase2ITDigiHit.h" -Phase2ITChip::Phase2ITChip(int rocnum, std::vector hl) { - hitList = hl; +Phase2ITChip::Phase2ITChip(int rocnum, const std::vector hl) { + hitList_ = hl; rocnum_ = rocnum; } -unsigned int Phase2ITChip::size() { return hitList.size(); } +unsigned int Phase2ITChip::size() { return hitList_.size(); } //Returns the position (row,col) of the 4x4 QCores that contains a hit std::pair Phase2ITChip::get_QCore_pos(Phase2ITDigiHit hit) { @@ -25,7 +25,7 @@ Phase2ITQCore Phase2ITChip::get_QCore_from_hit(Phase2ITDigiHit pixel) { std::vector adcs(16, 0), hits(16, 0); std::pair pos = get_QCore_pos(pixel); - for (const auto& hit : hitList) { + for (const auto& hit : hitList_) { if (get_QCore_pos(hit) == pos) { int i = (4 * (hit.row() % 4) + (hit.col() % 4) + 8) % 16; adcs[i] = hit.adc(); @@ -103,7 +103,7 @@ std::vector link_QCores(std::vector qcores) { std::vector Phase2ITChip::get_organized_QCores() { std::vector qcores = {}; - for (const auto& hit : hitList) { + for (const auto& hit : hitList_) { qcores.push_back(get_QCore_from_hit(hit)); } @@ -114,7 +114,7 @@ std::vector Phase2ITChip::get_organized_QCores() { std::vector Phase2ITChip::get_chip_code() { std::vector code = {}; - if (hitList.size() > 0) { + if (hitList_.size() > 0) { std::vector qcores = get_organized_QCores(); bool is_new_col = true; diff --git a/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc b/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc index 292d1d3e5d189..f6e6d4dc11e73 100644 --- a/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc +++ b/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc @@ -9,20 +9,20 @@ Phase2ITQCore::Phase2ITQCore(int rocid, int qcrow_in, bool isneighbour_in, bool islast_in, - std::vector adcs_in, - std::vector hits_in) { + const std::vector& adcs_in, + const std::vector& hits_in) { rocid_ = rocid; - ccol = ccol_in; - qcrow = qcrow_in; + ccol_ = ccol_in; + qcrow_ = qcrow_in; isneighbour_ = isneighbour_in; islast_ = islast_in; - adcs = adcs_in; - hits = hits_in; + adcs_ = adcs_in; + hits_ = hits_in; } //Takes a hitmap in sensor coordinates in 4x4 and converts it to readout chip coordinates with 2x8 std::vector Phase2ITQCore::toRocCoordinates(std::vector& hitmap) { - std::vector ROC_hitmap(16, 0); + std::vector ROC_hitmap(16, false); for (size_t i = 0; i < hitmap.size(); i++) { int row = std::floor(i / 4); @@ -49,7 +49,7 @@ std::vector Phase2ITQCore::toRocCoordinates(std::vector& hitmap) { std::vector Phase2ITQCore::getHitmap() { std::vector hitmap = {}; - for (auto hit : hits) { + for (auto hit : hits_) { hitmap.push_back(hit > 0); } @@ -59,7 +59,7 @@ std::vector Phase2ITQCore::getHitmap() { std::vector Phase2ITQCore::getADCs() { std::vector adcmap = {}; - for (auto adc : adcs) { + for (auto adc : adcs_) { adcmap.push_back(adc); } @@ -68,16 +68,11 @@ std::vector Phase2ITQCore::getADCs() { //Converts an integer into a binary, and formats it with the given length std::vector Phase2ITQCore::intToBinary(int num, int length) { - int n = num; - std::vector bi_num(length, 0); + std::vector bi_num(length, false); - for (int i = length; i > 0; i--) { - if (n >= pow(2, i - 1)) { - bi_num[length - i] = 1; - n -= pow(2, i - 1); - } else { - bi_num[length - i] = 0; - } + for (int i = 0; i < length; ++i) { + // Extract the (length - 1 - i)th bit from num + bi_num[i] = (num >> (length - 1 - i)) & 1; } return bi_num; @@ -111,8 +106,8 @@ std::vector Phase2ITQCore::getHitmapCode(std::vector hitmap) { bool hit_right = containsHit(right_hitmap); if (hit_left && hit_right) { - code.push_back(1); - code.push_back(1); + code.push_back(true); + code.push_back(true); std::vector left_code = getHitmapCode(left_hitmap); std::vector right_code = getHitmapCode(right_hitmap); @@ -122,14 +117,14 @@ std::vector Phase2ITQCore::getHitmapCode(std::vector hitmap) { } else if (hit_right) { //Huffman encoding compresses 01 into 0 - code.push_back(0); + code.push_back(false); std::vector right_code = getHitmapCode(right_hitmap); code.insert(code.end(), right_code.begin(), right_code.end()); } else if (hit_left) { - code.push_back(1); - code.push_back(0); + code.push_back(true); + code.push_back(false); std::vector left_code = getHitmapCode(left_hitmap); code.insert(code.end(), left_code.begin(), left_code.end()); @@ -143,7 +138,7 @@ std::vector Phase2ITQCore::encodeQCore(bool is_new_col) { std::vector code = {}; if (is_new_col) { - std::vector col_code = intToBinary(ccol, 6); + std::vector col_code = intToBinary(ccol_, 6); code.insert(code.end(), col_code.begin(), col_code.end()); } @@ -151,14 +146,14 @@ std::vector Phase2ITQCore::encodeQCore(bool is_new_col) { code.push_back(isneighbour_); if (!isneighbour_) { - std::vector row_code = intToBinary(qcrow, 8); + std::vector row_code = intToBinary(qcrow_, 8); code.insert(code.end(), row_code.begin(), row_code.end()); } std::vector hitmap_code = getHitmapCode(getHitmap()); code.insert(code.end(), hitmap_code.begin(), hitmap_code.end()); - for (auto adc : adcs) { + for (auto adc : adcs_) { std::vector adc_code = intToBinary(adc, 4); code.insert(code.end(), adc_code.begin(), adc_code.end()); } diff --git a/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc b/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc index d0512eaa153af..8cacc7a1c1e45 100644 --- a/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc +++ b/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc @@ -38,9 +38,7 @@ class Phase2ITQCoreProducer : public edm::stream::EDProducer<> { ~Phase2ITQCoreProducer() override = default; private: - virtual void beginJob(const edm::EventSetup&); virtual void produce(edm::Event&, const edm::EventSetup&); - virtual void endJob(); const edm::InputTag src_; const edm::EDGetTokenT> pixelDigi_token_; @@ -51,8 +49,8 @@ class Phase2ITQCoreProducer : public edm::stream::EDProducer<> { Phase2ITQCoreProducer::Phase2ITQCoreProducer(const edm::ParameterSet& iConfig) : src_(iConfig.getParameter("src")), - pixelDigi_token_(consumes>(iConfig.getParameter("siPixelDigi"))), - tTopoToken_(esConsumes()) { + pixelDigi_token_(consumes(iConfig.getParameter("siPixelDigi"))), + tTopoToken_(esConsumes()) { produces>(); produces>(); } @@ -62,13 +60,13 @@ namespace { // Dimension for 4 chips module = 1354 X 434 = (672 + 5 + 672 + 5) X (216 + 1 + 216 + 1) // Spacing 1 in column and 5 in row is introduced for each chip in between // if neighboring chip exists - const int kQCoresInChipRow = (672); - const int kQCoresInChipColumn = (216); - const int kQCoresInChipRowGap = (5); - const int kQCoresInChipColumnGap = (10); + constexpr int kQCoresInChipRow = (672); + constexpr int kQCoresInChipColumn = (216); + constexpr int kQCoresInChipRowGap = (5); + constexpr int kQCoresInChipColumnGap = (10); } // namespace -Phase2ITDigiHit updateHitCoordinatesForLargePixels(Phase2ITDigiHit& hit) { +void updateHitCoordinatesForLargePixels(Phase2ITDigiHit& hit) { /* In-place modification of Hit coordinates to take into account large pixels Hits corresponding to large pixels are remapped so they lie on the boundary of the chip @@ -109,21 +107,18 @@ Phase2ITDigiHit updateHitCoordinatesForLargePixels(Phase2ITDigiHit& hit) { hit.set_row(updated_row); hit.set_col(updated_col); - - return hit; } -std::vector adjustEdges(std::vector hitList) { +void adjustEdges(std::vector hitList) { /* In-place modification of Hit coordinates to take into account large pixels */ std::for_each(hitList.begin(), hitList.end(), &updateHitCoordinatesForLargePixels); - return hitList; } -std::vector splitByChip(std::vector hitList) { +std::vector splitByChip(const std::vector& hitList) { // Split the hit list by read out chip - std::vector> hits_per_chip(4); + std::array, 4> hits_per_chip; for (auto hit : hitList) { int chip_index = (hit.col() < kQCoresInChipColumn) ? 0 : 1; if (hit.row() >= kQCoresInChipRow) { @@ -134,6 +129,7 @@ std::vector splitByChip(std::vector hitList) { // Generate Phase2ITChip objects from the hit lists std::vector chips; + chips.reserve(4); for (int chip_index = 0; chip_index < 4; chip_index++) { chips.push_back(Phase2ITChip(chip_index, hits_per_chip[chip_index])); } @@ -142,16 +138,8 @@ std::vector splitByChip(std::vector hitList) { } std::vector processHits(std::vector hitList) { - std::vector newHitList; - newHitList = adjustEdges(hitList); - - std::vector chips = splitByChip(newHitList); - std::vector code; - - for (size_t i = 0; i < chips.size(); i++) { - Phase2ITChip chip = chips[i]; - code = chip.get_chip_code(); - } + adjustEdges(hitList); + std::vector chips = splitByChip(hitList); return chips; } @@ -167,13 +155,10 @@ void Phase2ITQCoreProducer::produce(edm::Event& iEvent, const edm::EventSetup& i auto const& tTopo = iSetup.getData(tTopoToken_); - edm::Handle> pixelDigiHandle; - iEvent.getByToken(pixelDigi_token_, pixelDigiHandle); - - edm::DetSetVector::const_iterator iterDet; - for (iterDet = pixelDigiHandle->begin(); iterDet != pixelDigiHandle->end(); iterDet++) { - DetId tkId = iterDet->id; - edm::DetSet theDigis = (*pixelDigiHandle)[tkId]; + auto pixelDigiHandle = iEvent.getHandle(pixelDigi_token_); + const edm::DetSetVector& pixelDigi = *pixelDigiHandle; + for (const auto& theDigis : pixelDigi) { + DetId tkId = theDigis.id; std::vector hitlist; std::vector id; @@ -191,11 +176,11 @@ void Phase2ITQCoreProducer::produce(edm::Event& iEvent, const edm::EventSetup& i id = {tkId.subdetId(), module_num, disk_num, blade_num, panel_num, side_num}; } - for (auto iterDigi = theDigis.begin(); iterDigi != theDigis.end(); ++iterDigi) { - hitlist.emplace_back(Phase2ITDigiHit(iterDigi->row(), iterDigi->column(), iterDigi->adc())); + for (const auto& digi : theDigis) { + hitlist.emplace_back(digi.row(), digi.column(), digi.adc()); } - std::vector chips = processHits(hitlist); + std::vector chips = processHits(std::move(hitlist)); DetSet DetSetQCores(tkId); DetSet DetSetBitStream(tkId); @@ -219,8 +204,4 @@ void Phase2ITQCoreProducer::produce(edm::Event& iEvent, const edm::EventSetup& i iEvent.put(std::move(aBitStreamVector)); } -void Phase2ITQCoreProducer::beginJob(edm::EventSetup const&) {} - -void Phase2ITQCoreProducer::endJob() {} - DEFINE_FWK_MODULE(Phase2ITQCoreProducer); diff --git a/EventFilter/Phase2TrackerRawToDigi/test/BuildFile.xml b/EventFilter/Phase2TrackerRawToDigi/test/BuildFile.xml index a63f51311e57a..3f7cb6c741495 100644 --- a/EventFilter/Phase2TrackerRawToDigi/test/BuildFile.xml +++ b/EventFilter/Phase2TrackerRawToDigi/test/BuildFile.xml @@ -1,5 +1,4 @@ - @@ -7,18 +6,5 @@ - - - - - - - - - - - - - From 9814921854dc5018a3558f151c865f1f5639f6d3 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Tue, 17 Dec 2024 22:33:38 +0100 Subject: [PATCH 322/418] Template {Copy,Move}ToDevice over Device instead of Queue --- HeterogeneousCore/AlpakaCore/README.md | 4 +- .../AlpakaCore/interface/CopyToDeviceCache.h | 37 ++++++++----------- .../AlpakaCore/interface/MoveToDeviceCache.h | 35 +++++++----------- ...stAlpakaGlobalProducerCopyToDeviceCache.cc | 2 +- ...stAlpakaGlobalProducerMoveToDeviceCache.cc | 2 +- 5 files changed, 33 insertions(+), 47 deletions(-) diff --git a/HeterogeneousCore/AlpakaCore/README.md b/HeterogeneousCore/AlpakaCore/README.md index 586db296972c9..844b14a8be92b 100644 --- a/HeterogeneousCore/AlpakaCore/README.md +++ b/HeterogeneousCore/AlpakaCore/README.md @@ -190,14 +190,14 @@ Also note that the `fillDescription()` function must have the same content for a While the EventSetup can be used to handle copying data to all devices of an Alpaka backend, for data used only by one EDProducer a simpler way would be to use one of -* `cms::alpakatools::MoveToDeviceCache` (recommended) +* `cms::alpakatools::MoveToDeviceCache` (recommended) * `#include "HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h"` * Moves the `THostObject` to all devices using `cms::alpakatools::CopyToDevice` synchronously. On host backends the argument `THostObject` is moved around, but not copied. * The `THostObject` must not be copyable * This is to avoid easy mistakes with objects that follow copy semantics of `std::shared_ptr` (that includes Alpaka buffers), that would allow the source memory buffer to be used via another copy during the asynchronous data copy to the device. * The constructor argument `THostObject` object may not be used, unless it is initialized again e.g. by assigning another `THostObject` into it. * The corresponding device-side object can be obtained with `get()` member function using either alpaka Device or Queue object. It can be used immediately after the constructor returns. -* `cms::alpakatools::CopyToDeviceCache` (use only if **must** use copyable `THostObject`) +* `cms::alpakatools::CopyToDeviceCache` (use only if **must** use copyable `THostObject`) * `#include "HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h"` * Copies the `THostObject` to all devices using `cms::alpakatools::CopyToDevice` synchronously. Also host backends do a copy. * The constructor argument `THostObject` object can be used for other purposes immediately after the constructor returns diff --git a/HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h b/HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h index f33c8c170c90c..3e3a04f0c1834 100644 --- a/HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h +++ b/HeterogeneousCore/AlpakaCore/interface/CopyToDeviceCache.h @@ -15,11 +15,11 @@ namespace cms::alpakatools { // std::conditional_t and if constexpr) because the // CopyToDevice::copyAsync() is ill-defined e.g. for // PortableCollection on host device - template + template class CopyToDeviceCacheImpl { public: - using Device = TDev; - using Queue = TQueue; + using Device = TDevice; + using Queue = alpaka::Queue; using HostObject = THostObject; using Copy = CopyToDevice; using DeviceObject = decltype(Copy::copyAsync(std::declval(), std::declval())); @@ -47,8 +47,8 @@ namespace cms::alpakatools { }; // For host device, copy the host object directly instead - template - class CopyToDeviceCacheImpl { + template + class CopyToDeviceCacheImpl { public: using HostObject = THostObject; using DeviceObject = HostObject; @@ -63,9 +63,9 @@ namespace cms::alpakatools { } // namespace detail /** - * This class template implements a cache for data that is copied + * This class template implements a cache for data that is moved * from the host (of type THostObject) to all the devices - * corresponding the TQueue queue type. + * corresponding to the TDevice device type. * * The host-side object to be copied is given as an argument to the * class constructor. The constructor uses the @@ -77,31 +77,24 @@ namespace cms::alpakatools { * type is the return type of CopyToDevice::copyAsync()) * can be obtained with get() member function, that has either the * queue or device argument. - * - * TODO: In principle it would be better to template over Device, - * but then we'd need a way to have a "default queue" type for each - * Device in order to infer the return type of - * CopyToDevice::copyAsync(). Alternatively, the template over - * TQueue could be removed by moving the class definition to - * ALPAKA_ACCELERATOR_NAMESPACE. */ - template + template + requires alpaka::isDevice class CopyToDeviceCache { - using Queue = TQueue; - using Device = alpaka::Dev; + using Device = TDevice; using HostObject = THostObject; - using Impl = detail::CopyToDeviceCacheImpl; + using Impl = detail::CopyToDeviceCacheImpl; using DeviceObject = typename Impl::DeviceObject; public: CopyToDeviceCache(THostObject const& srcData) : data_(srcData) {} - // TODO: I could make this function to return the contained object - // in case of alpaka buffer, PortableObject, or PortableCollection - // (in PortableCollection case it would be the View) DeviceObject const& get(Device const& dev) const { return data_.get(alpaka::getNativeHandle(dev)); } - DeviceObject const& get(Queue const& queue) const { return get(alpaka::getDev(queue)); } + template + DeviceObject const& get(TQueue const& queue) const { + return get(alpaka::getDev(queue)); + } private: Impl data_; diff --git a/HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h b/HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h index 2f5bcbb765bac..2c66fd384798a 100644 --- a/HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h +++ b/HeterogeneousCore/AlpakaCore/interface/MoveToDeviceCache.h @@ -17,11 +17,11 @@ namespace cms::alpakatools { // std::conditional_t and if constexpr) because the // CopyToDevice::copyAsync() is ill-defined e.g. for // PortableCollection on host device - template + template class MoveToDeviceCacheImpl { public: using HostObject = THostObject; - using Impl = CopyToDeviceCacheImpl; + using Impl = CopyToDeviceCacheImpl; using DeviceObject = typename Impl::DeviceObject; MoveToDeviceCacheImpl(HostObject&& srcObject) : impl_(srcObject) {} @@ -33,8 +33,8 @@ namespace cms::alpakatools { }; // For host device, move the host object instead - template - class MoveToDeviceCacheImpl { + template + class MoveToDeviceCacheImpl { public: using HostObject = THostObject; using DeviceObject = HostObject; @@ -51,14 +51,14 @@ namespace cms::alpakatools { /** * This class template implements a cache for data that is moved * from the host (of type THostObject) to all the devices - * corresponding the TQueue queue type. + * corresponding to the TDevice device type. * * The host-side object to be moved is given as an argument to the * class constructor. The constructor uses the * CopyToDevice class template to copy the data to the * devices, and waits for the data copies to finish, i.e. the * constructor is synchronous wrt. the data copies. The "move" is - * achieved by requiring the constructor argument to the rvalue + * achieved by requiring the constructor argument to be an rvalue * reference. * * Note that the host object type is required to be non-copyable. @@ -71,21 +71,14 @@ namespace cms::alpakatools { * type is the return type of CopyToDevice::copyAsync()) * can be obtained with get() member function, that has either the * queue or device argument. - * - * TODO: In principle it would be better to template over Device, - * but then we'd need a way to have a "default queue" type for each - * Device in order to infer the return type of - * CopyToDevice::copyAsync(). Alternatively, the template over - * TQueue could be removed by moving the class definition to - * ALPAKA_ACCELERATOR_NAMESPACE. */ - template + template + requires alpaka::isDevice class MoveToDeviceCache { public: - using Queue = TQueue; - using Device = alpaka::Dev; + using Device = TDevice; using HostObject = THostObject; - using Impl = detail::MoveToDeviceCacheImpl; + using Impl = detail::MoveToDeviceCacheImpl; using DeviceObject = typename Impl::DeviceObject; static_assert(not(std::is_copy_constructible_v or std::is_copy_assignable_v), @@ -93,12 +86,12 @@ namespace cms::alpakatools { MoveToDeviceCache(HostObject&& srcData) : data_(std::move(srcData)) {} - // TODO: I could make this function to return the contained object - // in case of alpaka buffer, PortableObject, or PortableCollection - // (in PortableCollection case it would be the View) DeviceObject const& get(Device const& dev) const { return data_.get(alpaka::getNativeHandle(dev)); } - DeviceObject const& get(Queue const& queue) const { return get(alpaka::getDev(queue)); } + template + DeviceObject const& get(TQueue const& queue) const { + return get(alpaka::getDev(queue)); + } private: Impl data_; diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc index 331b85d093bda..8d8ea5b7ac181 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerCopyToDeviceCache.cc @@ -74,7 +74,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // implementation of the algorithm TestAlgo algo_; - cms::alpakatools::CopyToDeviceCache> deviceCache_; + cms::alpakatools::CopyToDeviceCache> deviceCache_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc index 51d756e5dbc8f..6c8fe100f0ec5 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerMoveToDeviceCache.cc @@ -73,7 +73,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // implementation of the algorithm TestAlgo algo_; - cms::alpakatools::MoveToDeviceCache> deviceCache_; + cms::alpakatools::MoveToDeviceCache> deviceCache_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE From 25fe7a6f4aac8d8c368c04631f04bd35eace7032 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Tue, 17 Dec 2024 15:42:38 -0600 Subject: [PATCH 323/418] Use Acc1D directly in TestAlgo Co-authored-by: Andrea Bocci --- .../AlpakaTest/plugins/alpaka/TestAlgo.dev.cc | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.dev.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.dev.cc index a9034ead09e0f..53d7318c907df 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.dev.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlgo.dev.cc @@ -177,8 +177,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } } - template >> - ALPAKA_FN_ACC void operator()(TAcc const& acc, + ALPAKA_FN_ACC void operator()(Acc1D const& acc, portabletest::TestDeviceCollection::ConstView input, TestAlgo::UpdateInfo const* updateInfo, portabletest::TestDeviceCollection::View output) const { @@ -228,8 +227,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } } - template >> - ALPAKA_FN_ACC void operator()(TAcc const& acc, + ALPAKA_FN_ACC void operator()(Acc1D const& acc, portabletest::TestSoA::ConstView input, portabletest::TestSoA2::ConstView input2, TestAlgo::UpdateInfo const* updateInfo, @@ -299,8 +297,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } } - template >> - ALPAKA_FN_ACC void operator()(TAcc const& acc, + ALPAKA_FN_ACC void operator()(Acc1D const& acc, portabletest::TestSoA::ConstView input, portabletest::TestSoA2::ConstView input2, portabletest::TestSoA3::ConstView input3, From dedd6c570511e47a7f7f5a04748dd646da0130b2 Mon Sep 17 00:00:00 2001 From: Malik Shahzad Muzaffar Date: Wed, 18 Dec 2024 07:44:04 +0100 Subject: [PATCH 324/418] Update test-scram-code-checks.sh --- Utilities/ReleaseScripts/test/test-scram-code-checks.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Utilities/ReleaseScripts/test/test-scram-code-checks.sh b/Utilities/ReleaseScripts/test/test-scram-code-checks.sh index bea5794599185..351697b774eba 100755 --- a/Utilities/ReleaseScripts/test/test-scram-code-checks.sh +++ b/Utilities/ReleaseScripts/test/test-scram-code-checks.sh @@ -8,7 +8,7 @@ cd $CMSSW_VERSION mkdir src/FWCore RefDir=$CMSSW_BASE/src/FWCore/Version [ -e $RefDir ] || RefDir=$CMSSW_RELEASE_BASE/src/FWCore/Version -rsync -a $RefDir/ src/FWCore/Version/ +rsync -a --no-g $RefDir/ src/FWCore/Version/ chmod -R u+w src/FWCore/Version #Get latest clang-tidy and format files From ccd8211fbc12cfcbd0245a86c678ed7b811e9e6e Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:27:48 +0100 Subject: [PATCH 325/418] [ALCA-DB] Apply code checks/format --- Alignment/CocoaUtilities/src/ALIFileIn.cc | 6 +++--- Alignment/CommonAlignment/src/AlignableModifier.cc | 4 ++-- .../plugins/MillePedeAlignmentAlgorithm.cc | 2 +- Alignment/MuonAlignment/src/MuonScenarioBuilder.cc | 2 +- .../plugins/TrackerOfflineValidation.cc | 12 ++++++------ .../plugins/TrackerOfflineValidationSummary.cc | 6 +++--- .../plugins/PPSModifySingularModes.cc | 2 +- .../SiStripChannelGain/src/APVGainHelpers.cc | 2 +- CaloOnlineTools/HcalOnlineDb/src/RooGKCounter.cc | 2 +- CondCore/CondDB/src/Binary.cc | 5 +++-- CondCore/CondDB/src/CoralMsgReporter.cc | 3 ++- CondCore/CondDB/src/PayloadReader.cc | 4 +++- CondCore/Utilities/bin/conddb_test_gt_load.cpp | 3 ++- CondCore/Utilities/bin/conddb_test_gt_perf.cpp | 2 +- CondCore/Utilities/src/Utilities.cc | 2 +- .../src/FactorizedJetCorrectorCalculator.cc | 8 ++++---- .../src/SimpleJetCorrectionUncertainty.cc | 2 +- .../MomentumScaleCalibration/plugins/DBReader.cc | 7 ++++--- .../plugins/MuScleFitMuonProducer.cc | 2 +- OnlineDB/EcalCondDB/bin/cmsecal_rootplot.cpp | 4 ++-- OnlineDB/EcalCondDB/src/LMFDat.cc | 2 +- OnlineDB/EcalCondDB/src/LMFRunTag.cc | 2 +- OnlineDB/EcalCondDB/src/LMFSeqDat.cc | 4 ++-- 23 files changed, 47 insertions(+), 41 deletions(-) diff --git a/Alignment/CocoaUtilities/src/ALIFileIn.cc b/Alignment/CocoaUtilities/src/ALIFileIn.cc index de453718274cb..57dd5a66f46cb 100644 --- a/Alignment/CocoaUtilities/src/ALIFileIn.cc +++ b/Alignment/CocoaUtilities/src/ALIFileIn.cc @@ -128,9 +128,9 @@ ALIint ALIFileIn::getWordsInLine(std::vector& wordlist) { } } tt++; - } while (*tt != '\0' && stemp.length() != 0); + } while (*tt != '\0' && !stemp.empty()); ALIstring stempt(ltemp); - if (stempt.length() == 0) + if (stempt.empty()) NoWords = 0; //--------- Read words from istr_line and write them into wordlist @@ -138,7 +138,7 @@ ALIint ALIFileIn::getWordsInLine(std::vector& wordlist) { for (ii = 0; ii < NoWords; ii++) { ALIstring stemp = ""; istr_line >> stemp; //?? gives warning in Insure++ - if (stemp.length() == 0) + if (stemp.empty()) break; ALIint comment = stemp.find(ALIstring("//")); // std::cout << "!!!COMMENT" << comment << stemp.c_str() << std::endl; diff --git a/Alignment/CommonAlignment/src/AlignableModifier.cc b/Alignment/CommonAlignment/src/AlignableModifier.cc index 3239172e43fb6..fe8407a18a504 100644 --- a/Alignment/CommonAlignment/src/AlignableModifier.cc +++ b/Alignment/CommonAlignment/src/AlignableModifier.cc @@ -174,7 +174,7 @@ bool AlignableModifier::modify(Alignable* alignable, const edm::ParameterSet& pS << "with 's' or a digit at the end.\n"; } // other PSets should now be hierarchy levels and thus be OK to ignore here } else { - if (!error.str().length()) + if (error.str().empty()) error << "Unknown parameter name(s): "; error << " " << *iParam; } @@ -189,7 +189,7 @@ bool AlignableModifier::modify(Alignable* alignable, const edm::ParameterSet& pS throw cms::Exception("BadConfig") << "Found both localZ and phiZlocal"; // Check error - if (error.str().length()) + if (!error.str().empty()) throw cms::Exception("BadConfig") << error.str(); // Decode distribution diff --git a/Alignment/MillePedeAlignmentAlgorithm/plugins/MillePedeAlignmentAlgorithm.cc b/Alignment/MillePedeAlignmentAlgorithm/plugins/MillePedeAlignmentAlgorithm.cc index 1cc31f5b2db17..5ffe0431cea6e 100644 --- a/Alignment/MillePedeAlignmentAlgorithm/plugins/MillePedeAlignmentAlgorithm.cc +++ b/Alignment/MillePedeAlignmentAlgorithm/plugins/MillePedeAlignmentAlgorithm.cc @@ -396,7 +396,7 @@ void MillePedeAlignmentAlgorithm::terminate() { std::string filesForLogOutput; for (const auto &file : files) filesForLogOutput += " " + file + ","; - if (filesForLogOutput.length() != 0) + if (!filesForLogOutput.empty()) filesForLogOutput.pop_back(); edm::LogInfo("Alignment") << "Based on the config parameter mergeBinaryFiles, using the following " << "files as input (assigned weights are indicated by ' -- '):" diff --git a/Alignment/MuonAlignment/src/MuonScenarioBuilder.cc b/Alignment/MuonAlignment/src/MuonScenarioBuilder.cc index 5715d4f4104cd..5e57d107b3afb 100644 --- a/Alignment/MuonAlignment/src/MuonScenarioBuilder.cc +++ b/Alignment/MuonAlignment/src/MuonScenarioBuilder.cc @@ -89,7 +89,7 @@ align::Scalars MuonScenarioBuilder::extractParameters(const edm::ParameterSet& p else if ((*iParam) == "dZ") dZ_ = Parameters.getParameter(*iParam); else if (Parameters.retrieve(*iParam).typeCode() != 'P') { // Add unknown parameter to list - if (!error.str().length()) + if (error.str().empty()) error << "Unknown parameter name(s): "; error << " " << *iParam; } diff --git a/Alignment/OfflineValidation/plugins/TrackerOfflineValidation.cc b/Alignment/OfflineValidation/plugins/TrackerOfflineValidation.cc index 399015744e964..794367cc4f786 100644 --- a/Alignment/OfflineValidation/plugins/TrackerOfflineValidation.cc +++ b/Alignment/OfflineValidation/plugins/TrackerOfflineValidation.cc @@ -169,8 +169,8 @@ class TrackerOfflineValidation : public edm::one::EDAnalyzer(upDir.tfd->mkdir(newDir)); @@ -191,15 +191,15 @@ class TrackerOfflineValidation : public edm::one::EDAnalyzer fs; - if (newDir.length() == 0) { + if (newDir.empty()) { tfd = std::make_unique(fs->tFileDirectory()); } else { tfd = std::make_unique(fs->mkdir(newDir)); directoryString = newDir; } } else { - if (newDir.length() != 0) { - if (basedir.length() != 0) + if (!newDir.empty()) { + if (!basedir.empty()) directoryString = basedir + "/" + newDir; else directoryString = newDir; diff --git a/Alignment/OfflineValidation/plugins/TrackerOfflineValidationSummary.cc b/Alignment/OfflineValidation/plugins/TrackerOfflineValidationSummary.cc index 23f4f86a0e7e3..705cb5f1ab978 100644 --- a/Alignment/OfflineValidation/plugins/TrackerOfflineValidationSummary.cc +++ b/Alignment/OfflineValidation/plugins/TrackerOfflineValidationSummary.cc @@ -504,7 +504,7 @@ const std::string TrackerOfflineValidationSummary::associateModuleHistsWithTree( std::map& substructureName) { std::stringstream histDir, sSubdetName; std::string componentName; - if (moduleDirectory_.length() != 0) + if (!moduleDirectory_.empty()) histDir << moduleDirectory_ << "/"; std::string wheelOrLayer("_layer_"); if (treeMem.subDetId == PixelSubdetector::PixelBarrel) { @@ -770,7 +770,7 @@ void TrackerOfflineValidationSummary::applyHarvestingHierarchy(TTree& tree) { iSubdet == StripSubdetector::TID || iSubdet == StripSubdetector::TEC)) continue; treeEntries.push_back(iTree); - if (hierarchyName.length() == 0) { + if (hierarchyName.empty()) { hierarchyName = (*substructureName)["subdet"]; componentName = (*substructureName)["component"]; } @@ -804,7 +804,7 @@ void TrackerOfflineValidationSummary::bookHarvestingHists() { dmrYprimeHistoTitle << "DMR for " << iHier->hierarchyName << ";<#DeltaY> [cm];# modules"; std::string directoryString(moduleDirectory_); - if (directoryString.length() != 0) + if (!directoryString.empty()) directoryString += "/"; directoryString += iHier->componentName; dbe_->setCurrentFolder(directoryString); diff --git a/CalibPPS/AlignmentRelative/plugins/PPSModifySingularModes.cc b/CalibPPS/AlignmentRelative/plugins/PPSModifySingularModes.cc index b2f2b1dc5c59c..9aedcc8a9c5b5 100644 --- a/CalibPPS/AlignmentRelative/plugins/PPSModifySingularModes.cc +++ b/CalibPPS/AlignmentRelative/plugins/PPSModifySingularModes.cc @@ -60,7 +60,7 @@ void PPSModifySingularModes::beginRun(edm::Run const &, edm::EventSetup const &e const double de_rho2 = ps_.getUntrackedParameter("de_rho2"); FileInPath inputFileInPath(ps_.getUntrackedParameter("inputFile")); - const string inputFile = inputFileInPath.fullPath(); + const string &inputFile = inputFileInPath.fullPath(); const string outputFile = ps_.getUntrackedParameter("outputFile"); // validate config parameters diff --git a/CalibTracker/SiStripChannelGain/src/APVGainHelpers.cc b/CalibTracker/SiStripChannelGain/src/APVGainHelpers.cc index a55b005b304bb..3e45517aa4d87 100644 --- a/CalibTracker/SiStripChannelGain/src/APVGainHelpers.cc +++ b/CalibTracker/SiStripChannelGain/src/APVGainHelpers.cc @@ -225,7 +225,7 @@ std::vector> APVGain::monHnames(std::vector< out.reserve(re); std::string Tag = tag; - if (Tag.length()) + if (!Tag.empty()) Tag = "__" + Tag; std::string h_tag = ""; diff --git a/CaloOnlineTools/HcalOnlineDb/src/RooGKCounter.cc b/CaloOnlineTools/HcalOnlineDb/src/RooGKCounter.cc index f4e3dff334c8b..b22bbb8aa0805 100644 --- a/CaloOnlineTools/HcalOnlineDb/src/RooGKCounter.cc +++ b/CaloOnlineTools/HcalOnlineDb/src/RooGKCounter.cc @@ -14,7 +14,7 @@ RooGKCounter::RooGKCounter() { init(); } RooGKCounter::RooGKCounter(const char *message) { init(); _message = message; - if (_message.length() == 0) + if (_message.empty()) printCount = false; } diff --git a/CondCore/CondDB/src/Binary.cc b/CondCore/CondDB/src/Binary.cc index 43cb226a345d9..6d21db0c020e1 100644 --- a/CondCore/CondDB/src/Binary.cc +++ b/CondCore/CondDB/src/Binary.cc @@ -5,8 +5,9 @@ // #include -#include #include +#include +#include cond::Binary::Binary() : m_data(new coral::Blob(0)) {} @@ -30,7 +31,7 @@ cond::Binary& cond::Binary::operator=(const Binary& rhs) { const coral::Blob& cond::Binary::get() const { return *m_data; } void cond::Binary::copy(const std::string& source) { - m_data.reset(new coral::Blob(source.size())); + m_data = std::make_shared(source.size()); ::memcpy(m_data->startingAddress(), source.c_str(), source.size()); } diff --git a/CondCore/CondDB/src/CoralMsgReporter.cc b/CondCore/CondDB/src/CoralMsgReporter.cc index 7acc72e746878..d87516bbf095c 100644 --- a/CondCore/CondDB/src/CoralMsgReporter.cc +++ b/CondCore/CondDB/src/CoralMsgReporter.cc @@ -2,6 +2,7 @@ #include #include // fix bug #58581 #include // fix bug #58581 +#include // Local include files #include "CondCore/CondDB/interface/Logger.h" @@ -142,7 +143,7 @@ void cond::persistency::CoralMsgReporter::report(int lvl, const std::string&, co } void cond::persistency::CoralMsgReporter::subscribe(Logger& logger) { - m_dispatcher.reset(new MsgDispatcher(logger)); + m_dispatcher = std::make_shared(logger); std::weak_ptr callBack(m_dispatcher); logger.subscribeCoralMessages(callBack); } diff --git a/CondCore/CondDB/src/PayloadReader.cc b/CondCore/CondDB/src/PayloadReader.cc index 1b042dbb21091..2d96409fee39e 100644 --- a/CondCore/CondDB/src/PayloadReader.cc +++ b/CondCore/CondDB/src/PayloadReader.cc @@ -1,10 +1,12 @@ +#include + #include "CondCore/CondDB/interface/PayloadReader.h" namespace cond { namespace persistency { - PayloadReader::PayloadReader() { m_connection.reset(new ConnectionPool); } + PayloadReader::PayloadReader() { m_connection = std::make_shared(); } PayloadReader::PayloadReader(const PayloadReader& rhs) : m_connection(rhs.m_connection), m_session(rhs.m_session) {} diff --git a/CondCore/Utilities/bin/conddb_test_gt_load.cpp b/CondCore/Utilities/bin/conddb_test_gt_load.cpp index 1696695b9902c..9a9df3fe1c2b5 100644 --- a/CondCore/Utilities/bin/conddb_test_gt_load.cpp +++ b/CondCore/Utilities/bin/conddb_test_gt_load.cpp @@ -6,6 +6,7 @@ #include #include +#include // ================================================================================ @@ -156,7 +157,7 @@ namespace cond { } // namespace cond cond::UntypedPayloadProxy::UntypedPayloadProxy(Session& session) : m_session(session) { - m_data.reset(new pimpl); + m_data = std::make_shared(); m_data->current.clear(); } diff --git a/CondCore/Utilities/bin/conddb_test_gt_perf.cpp b/CondCore/Utilities/bin/conddb_test_gt_perf.cpp index 46448140c61b3..9342d082115a2 100644 --- a/CondCore/Utilities/bin/conddb_test_gt_perf.cpp +++ b/CondCore/Utilities/bin/conddb_test_gt_perf.cpp @@ -115,7 +115,7 @@ cond::Session cond::ConnectionPoolWrapper::createSession(const std::string& conn } cond::UntypedPayloadProxy::UntypedPayloadProxy() : m_session(), m_iov(), m_data(), m_buffer() { - m_data.reset(new pimpl); + m_data = std::make_shared(); m_data->current.clear(); } diff --git a/CondCore/Utilities/src/Utilities.cc b/CondCore/Utilities/src/Utilities.cc index c81517a00358a..62f2cdefcb1d6 100644 --- a/CondCore/Utilities/src/Utilities.cc +++ b/CondCore/Utilities/src/Utilities.cc @@ -42,7 +42,7 @@ namespace cond { while ((ch = getch()) != RETURN) { if (ch == BACKSPACE) { - if (password.length() != 0) { + if (!password.empty()) { if (show_asterisk) std::cout << "\b \b"; password.resize(password.length() - 1); diff --git a/CondFormats/JetMETObjects/src/FactorizedJetCorrectorCalculator.cc b/CondFormats/JetMETObjects/src/FactorizedJetCorrectorCalculator.cc index e610b07cfe9a2..2c1bbf8b8a794 100644 --- a/CondFormats/JetMETObjects/src/FactorizedJetCorrectorCalculator.cc +++ b/CondFormats/JetMETObjects/src/FactorizedJetCorrectorCalculator.cc @@ -118,15 +118,15 @@ void FactorizedJetCorrectorCalculator::initCorrectors(const std::string& fLevels if (mLevels[i] == kL1 || mLevels[i] == kL1JPT || mLevels[i] == kL2 || mLevels[i] == kL3 || mLevels[i] == kL4 || mLevels[i] == kL6 || mLevels[i] == kL1fj) mCorrectors.push_back(new SimpleJetCorrector(Files[i])); - else if (mLevels[i] == kL5 && FlavorOption.length() == 0) + else if (mLevels[i] == kL5 && FlavorOption.empty()) handleError("FactorizedJetCorrectorCalculator", "must specify flavor option when requesting L5Flavor correction!"); - else if (mLevels[i] == kL5 && FlavorOption.length() > 0) + else if (mLevels[i] == kL5 && !FlavorOption.empty()) mCorrectors.push_back(new SimpleJetCorrector(Files[i], FlavorOption)); - else if (mLevels[i] == kL7 && PartonOption.length() == 0) + else if (mLevels[i] == kL7 && PartonOption.empty()) handleError("FactorizedJetCorrectorCalculator", "must specify parton option when requesting L7Parton correction!"); - else if (mLevels[i] == kL7 && PartonOption.length() > 0) + else if (mLevels[i] == kL7 && !PartonOption.empty()) mCorrectors.push_back(new SimpleJetCorrector(Files[i], PartonOption)); else { std::stringstream sserr; diff --git a/CondFormats/JetMETObjects/src/SimpleJetCorrectionUncertainty.cc b/CondFormats/JetMETObjects/src/SimpleJetCorrectionUncertainty.cc index c3546acc405f8..3370c9e26959a 100644 --- a/CondFormats/JetMETObjects/src/SimpleJetCorrectionUncertainty.cc +++ b/CondFormats/JetMETObjects/src/SimpleJetCorrectionUncertainty.cc @@ -54,7 +54,7 @@ float SimpleJetCorrectionUncertainty::uncertaintyBin(unsigned fBin, float fY, bo return -999.0; } const std::vector& p = mParameters.record(fBin).parameters(); - if ((p.size() % 3) != 0 or p.size() == 0) + if ((p.size() % 3) != 0 or p.empty()) throw cms::Exception("SimpleJetCorrectionUncertainty") << "wrong # of parameters: multiple of 3 expected, " << p.size() << " got"; Span3 yGrid{p}; diff --git a/MuonAnalysis/MomentumScaleCalibration/plugins/DBReader.cc b/MuonAnalysis/MomentumScaleCalibration/plugins/DBReader.cc index 3982db4ba43de..1426db1c18413 100644 --- a/MuonAnalysis/MomentumScaleCalibration/plugins/DBReader.cc +++ b/MuonAnalysis/MomentumScaleCalibration/plugins/DBReader.cc @@ -1,6 +1,7 @@ // system include files #include #include +#include #include #include #include @@ -71,11 +72,11 @@ void DBReader::initialize(const edm::EventSetup& iSetup) { // This string is one of: scale, resolution, background. // Create the corrector and set the parameters if (type_ == "scale") - corrector_.reset(new MomentumScaleCorrector(dbObject)); + corrector_ = std::make_shared(dbObject); else if (type_ == "resolution") - resolution_.reset(new ResolutionFunction(dbObject)); + resolution_ = std::make_shared(dbObject); else if (type_ == "background") - background_.reset(new BackgroundFunction(dbObject)); + background_ = std::make_shared(dbObject); else { edm::LogPrint("DBReader") << "Error: unrecognized type. Use one of those: 'scale', 'resolution', 'background'" << std::endl; diff --git a/MuonAnalysis/MomentumScaleCalibration/plugins/MuScleFitMuonProducer.cc b/MuonAnalysis/MomentumScaleCalibration/plugins/MuScleFitMuonProducer.cc index ed6e61e80fad3..b63aa11575d2b 100644 --- a/MuonAnalysis/MomentumScaleCalibration/plugins/MuScleFitMuonProducer.cc +++ b/MuonAnalysis/MomentumScaleCalibration/plugins/MuScleFitMuonProducer.cc @@ -104,7 +104,7 @@ void MuScleFitMuonProducer::produce(edm::Event& iEvent, const edm::EventSetup& i //std::cout << "parameters size from dbObject = " << dbObject_->parameters.size() << std::endl;; // Create the corrector and set the parameters - corrector_.reset(new MomentumScaleCorrector(dbObject_.product())); + corrector_ = std::make_shared(dbObject_.product()); if (patMuons_ == true) { edm::Handle allMuons; diff --git a/OnlineDB/EcalCondDB/bin/cmsecal_rootplot.cpp b/OnlineDB/EcalCondDB/bin/cmsecal_rootplot.cpp index 15c41fd1c6e86..9b50a2faddfd1 100644 --- a/OnlineDB/EcalCondDB/bin/cmsecal_rootplot.cpp +++ b/OnlineDB/EcalCondDB/bin/cmsecal_rootplot.cpp @@ -744,7 +744,7 @@ int main(int argc, char* argv[]) { string line; ifstream* finput = (ifstream*)&cin; - if (file.length() > 0) { + if (!file.empty()) { finput = new ifstream(file.c_str()); } while (getline(*finput, line) && finput->good() && !finput->eof()) { @@ -757,7 +757,7 @@ int main(int argc, char* argv[]) { finput->close(); - if (file.length() > 0) { + if (!file.empty()) { delete finput; } rootplot.draw(); diff --git a/OnlineDB/EcalCondDB/src/LMFDat.cc b/OnlineDB/EcalCondDB/src/LMFDat.cc index 1d59f42481e27..269cfb3cb6561 100644 --- a/OnlineDB/EcalCondDB/src/LMFDat.cc +++ b/OnlineDB/EcalCondDB/src/LMFDat.cc @@ -131,7 +131,7 @@ std::string LMFDat::buildSelectSql(int logic_id, int direction) { std::stringstream sql; int count = 1; if (getLMFRunIOVID() > 0) { - if (_where.length() > 0) { + if (!_where.empty()) { // check if this is an expert query. If so, add a WHERE clause _where = " AND " + _where; } diff --git a/OnlineDB/EcalCondDB/src/LMFRunTag.cc b/OnlineDB/EcalCondDB/src/LMFRunTag.cc index a659a4a3d20e5..878e6a6fe441f 100644 --- a/OnlineDB/EcalCondDB/src/LMFRunTag.cc +++ b/OnlineDB/EcalCondDB/src/LMFRunTag.cc @@ -79,7 +79,7 @@ bool LMFRunTag::isValid() { if (getVersion() <= 0) { ret = false; } - if (getGeneralTag().length() <= 0) { + if (getGeneralTag().empty()) { ret = false; } return ret; diff --git a/OnlineDB/EcalCondDB/src/LMFSeqDat.cc b/OnlineDB/EcalCondDB/src/LMFSeqDat.cc index 36a3e82a28074..2bb357188bcfb 100644 --- a/OnlineDB/EcalCondDB/src/LMFSeqDat.cc +++ b/OnlineDB/EcalCondDB/src/LMFSeqDat.cc @@ -129,7 +129,7 @@ bool LMFSeqDat::isValid() const { if (getSequenceStart().isNull()) { ret = false; } - if ((getSequenceStop().str().length() > 0) && (getSequenceStop().microsTime() < getSequenceStart().microsTime())) { + if ((!getSequenceStop().str().empty()) && (getSequenceStop().microsTime() < getSequenceStart().microsTime())) { ret = false; } if (getSequenceStop() == Tm().plusInfinity()) { @@ -147,7 +147,7 @@ std::string LMFSeqDat::writeDBSql(Statement *stmt) { throw(std::runtime_error("LMFSeqDat::writeDB: not valid")); } - if (getSequenceStop().str().length() == 0) { + if (getSequenceStop().str().empty()) { setSequenceStop(dh.getPlusInfTm()); } int runIOVID = m_runIOV.getID(); From 234f7d3e3382cc805894af9a3a73489620f19b77 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:27:57 +0100 Subject: [PATCH 326/418] [RECONSTRUCTION] Apply code checks/format --- .../Utils/src/ExpressionFunctionSetter.cc | 53 ++++++++++--------- CommonTools/Utils/src/TFileDirectory.cc | 8 +-- DataFormats/Math/interface/private/AVXVec.h | 12 ++--- .../plugins/SuperclusValueMapProducer.cc | 3 +- .../plugins/PhotonXGBoostProducer.cc | 2 +- .../src/CMSBoostedTauSeedingAlgorithm.cc | 4 +- RecoJets/JetProducers/plugins/ECFAdder.cc | 20 ++++--- RecoLocalMuon/RPCRecHit/plugins/DTSegtoRPC.cc | 2 +- .../LumiProducer/plugins/Lumi2DB.cc | 2 +- .../plugins/LumiCorrectionSource.cc | 2 +- .../LumiProducer/plugins/LumiProducer.cc | 2 +- .../METFilters/plugins/MultiEventFilter.cc | 2 +- .../plugins/MuonHLTSeedMVAClassifierPhase2.cc | 6 +-- RecoMuon/TrackingTools/src/MuonErrorMatrix.cc | 2 +- .../plugins/GroupedCkfTrajectoryBuilder.cc | 3 +- .../CkfPattern/src/CkfTrajectoryBuilder.cc | 2 +- .../src/SeedFromNuclearInteraction.cc | 6 +-- .../src/LocalTrajectoryError.cc | 4 +- 18 files changed, 73 insertions(+), 62 deletions(-) diff --git a/CommonTools/Utils/src/ExpressionFunctionSetter.cc b/CommonTools/Utils/src/ExpressionFunctionSetter.cc index ade3ccbf0ec9c..4a326a8a65121 100644 --- a/CommonTools/Utils/src/ExpressionFunctionSetter.cc +++ b/CommonTools/Utils/src/ExpressionFunctionSetter.cc @@ -1,11 +1,12 @@ #include "CommonTools/Utils/interface/parser/ExpressionFunctionSetter.h" -#include "CommonTools/Utils/interface/parser/ExpressionUnaryOperator.h" #include "CommonTools/Utils/interface/parser/ExpressionBinaryOperator.h" +#include "CommonTools/Utils/interface/parser/ExpressionUnaryOperator.h" #include "CommonTools/Utils/src/ExpressionQuaterOperator.h" -#include -#include #include #include +#include +#include +#include namespace reco { namespace parser { @@ -89,73 +90,73 @@ void ExpressionFunctionSetter::operator()(const char *, const char *) const { ExpressionPtr funExp; switch (fun) { case (kAbs): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kAcos): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kAsin): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kAtan): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kAtan2): - funExp.reset(new ExpressionBinaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kChi2Prob): - funExp.reset(new ExpressionBinaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kCos): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kCosh): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kDeltaR): - funExp.reset(new ExpressionQuaterOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kDeltaPhi): - funExp.reset(new ExpressionBinaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kExp): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kHypot): - funExp.reset(new ExpressionBinaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kLog): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kLog10): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kMax): - funExp.reset(new ExpressionBinaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kMin): - funExp.reset(new ExpressionBinaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kPow): - funExp.reset(new ExpressionBinaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kSin): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kSinh): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kSqrt): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kTan): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kTanh): - funExp.reset(new ExpressionUnaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; case (kTestBit): - funExp.reset(new ExpressionBinaryOperator(expStack_)); + funExp = std::make_shared>(expStack_); break; }; expStack_.push_back(funExp); diff --git a/CommonTools/Utils/src/TFileDirectory.cc b/CommonTools/Utils/src/TFileDirectory.cc index aff2f0751f315..a07a2b775b5b4 100644 --- a/CommonTools/Utils/src/TFileDirectory.cc +++ b/CommonTools/Utils/src/TFileDirectory.cc @@ -16,9 +16,9 @@ bool TFileDirectory::cd() const { TDirectory *TFileDirectory::_cd(const string &subdir, bool createNeededDirectories) const { string fpath = fullPath(); - if (subdir.length()) { + if (!subdir.empty()) { // not empty, we need to append it to path - if (fpath.length()) { + if (!fpath.empty()) { // path is also not empty, so add a slash and let's get going. fpath += "/" + subdir; } else { @@ -50,7 +50,7 @@ TDirectory *TFileDirectory::_cd(const string &subdir, bool createNeededDirectori // already exist (since you shoudln't be cd'ing into a directory // before making it and the cd with a subdir is only used to get // histograms that are already made). - if (subdir.length()) { + if (!subdir.empty()) { throw cms::Exception("InvalidDirectory") << "directory " << fpath << " doesn't exist."; } // if we're here, then that means that this is the first time @@ -98,7 +98,7 @@ TObject *TFileDirectory::_getObj(const string &objname, const string &subdir) co TObject *objPtr = getBareDirectory(subdir)->Get(objname.c_str()); if (!objPtr) { // no histogram found by that name. Sorry dude. - if (subdir.length()) { + if (!subdir.empty()) { throw cms::Exception("ObjectNotFound") << "Can not find object named " << objname << " in subdir " << subdir; } else { throw cms::Exception("ObjectNotFound") << "Can not find object named " << objname; diff --git a/DataFormats/Math/interface/private/AVXVec.h b/DataFormats/Math/interface/private/AVXVec.h index 776387e339743..1c146204d99c6 100644 --- a/DataFormats/Math/interface/private/AVXVec.h +++ b/DataFormats/Math/interface/private/AVXVec.h @@ -134,22 +134,22 @@ inline mathSSE::Vec4 operator/(mathSSE::Vec4 b, double a) { return _mm256_div_pd(b.vec, _mm256_set1_pd(a)); } -inline double __attribute__((always_inline)) __attribute__((pure)) -dot(mathSSE::Vec4 a, mathSSE::Vec4 b) { +inline double __attribute__((always_inline)) __attribute__((pure)) dot(mathSSE::Vec4 a, + mathSSE::Vec4 b) { using mathSSE::_mm256_dot_pd; mathSSE::Vec4 ret; ret.vec = _mm256_dot_pd(a.vec, b.vec); return ret.arr[0]; } -inline mathSSE::Vec4 __attribute__((always_inline)) __attribute__((pure)) -cross(mathSSE::Vec4 a, mathSSE::Vec4 b) { +inline mathSSE::Vec4 __attribute__((always_inline)) __attribute__((pure)) cross(mathSSE::Vec4 a, + mathSSE::Vec4 b) { using mathSSE::_mm256_cross_pd; return _mm256_cross_pd(a.vec, b.vec); } -inline double __attribute__((always_inline)) __attribute__((pure)) -dotxy(mathSSE::Vec4 a, mathSSE::Vec4 b) { +inline double __attribute__((always_inline)) __attribute__((pure)) dotxy(mathSSE::Vec4 a, + mathSSE::Vec4 b) { mathSSE::Vec4 mul = a * b; mul = hadd(mul, mul); return mul.arr[0]; diff --git a/RecoEgamma/EgammaIsolationAlgos/plugins/SuperclusValueMapProducer.cc b/RecoEgamma/EgammaIsolationAlgos/plugins/SuperclusValueMapProducer.cc index 28ee8eac7ebe3..1c055ac68326a 100644 --- a/RecoEgamma/EgammaIsolationAlgos/plugins/SuperclusValueMapProducer.cc +++ b/RecoEgamma/EgammaIsolationAlgos/plugins/SuperclusValueMapProducer.cc @@ -18,7 +18,7 @@ class SuperclusValueMapProducer : public edm::stream::EDProducer<> { public: explicit SuperclusValueMapProducer(const edm::ParameterSet&); - ~SuperclusValueMapProducer() = default; + ~SuperclusValueMapProducer() override = default; private: void produce(edm::Event&, const edm::EventSetup&) override; @@ -108,6 +108,7 @@ std::vector> SuperclusValueMapP const std::vector& tags) { std::vector> out; + out.reserve(tags.size()); for (const auto& tag : tags) out.push_back(consumes(tag)); diff --git a/RecoEgamma/PhotonIdentification/plugins/PhotonXGBoostProducer.cc b/RecoEgamma/PhotonIdentification/plugins/PhotonXGBoostProducer.cc index 5553bc4cdd752..54db8d79a7c5d 100644 --- a/RecoEgamma/PhotonIdentification/plugins/PhotonXGBoostProducer.cc +++ b/RecoEgamma/PhotonIdentification/plugins/PhotonXGBoostProducer.cc @@ -20,7 +20,7 @@ class PhotonXGBoostProducer : public edm::global::EDProducer<> { public: explicit PhotonXGBoostProducer(edm::ParameterSet const&); - ~PhotonXGBoostProducer() = default; + ~PhotonXGBoostProducer() override = default; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); diff --git a/RecoJets/JetAlgorithms/src/CMSBoostedTauSeedingAlgorithm.cc b/RecoJets/JetAlgorithms/src/CMSBoostedTauSeedingAlgorithm.cc index dd07224634883..08dd7ea9d5fca 100644 --- a/RecoJets/JetAlgorithms/src/CMSBoostedTauSeedingAlgorithm.cc +++ b/RecoJets/JetAlgorithms/src/CMSBoostedTauSeedingAlgorithm.cc @@ -64,7 +64,7 @@ FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh if (!hasSubjets) return; std::string depth_and_idx_string_subjet1 = depth_and_idx_string; - if (depth_and_idx_string_subjet1.length() > 0) + if (!depth_and_idx_string_subjet1.empty()) depth_and_idx_string_subjet1.append("."); depth_and_idx_string_subjet1.append("0"); for (int iSpace = 0; iSpace < depth; ++iSpace) { @@ -76,7 +76,7 @@ FASTJET_BEGIN_NAMESPACE // defined in fastjet/internal/base.hh << " (constituents = " << subjet1.constituents().size() << ")" << std::endl; dumpSubJetStructure(subjet1, depth + 1, maxDepth, depth_and_idx_string_subjet1); std::string depth_and_idx_string_subjet2 = depth_and_idx_string; - if (depth_and_idx_string_subjet2.length() > 0) + if (!depth_and_idx_string_subjet2.empty()) depth_and_idx_string_subjet2.append("."); depth_and_idx_string_subjet2.append("1"); for (int iSpace = 0; iSpace < depth; ++iSpace) { diff --git a/RecoJets/JetProducers/plugins/ECFAdder.cc b/RecoJets/JetProducers/plugins/ECFAdder.cc index 3eb47f98def89..8089633e2007e 100644 --- a/RecoJets/JetProducers/plugins/ECFAdder.cc +++ b/RecoJets/JetProducers/plugins/ECFAdder.cc @@ -1,3 +1,5 @@ +#include + #include "RecoJets/JetProducers/interface/ECFAdder.h" #include "fastjet/PseudoJet.hh" #include "fastjet/ClusterSequence.hh" @@ -28,23 +30,27 @@ ECFAdder::ECFAdder(const edm::ParameterSet& iConfig) if (ecftype_ == "ECF" || ecftype_.empty()) { ecfN_str << "ecf" << *n; - pfunc.reset(new fastjet::contrib::EnergyCorrelator(*n, beta_, fastjet::contrib::EnergyCorrelator::pt_R)); + pfunc = std::make_shared(*n, beta_, fastjet::contrib::EnergyCorrelator::pt_R); } else if (ecftype_ == "C") { ecfN_str << "ecfC" << *n; - pfunc.reset(new fastjet::contrib::EnergyCorrelatorCseries(*n, beta_, fastjet::contrib::EnergyCorrelator::pt_R)); + pfunc = std::make_shared( + *n, beta_, fastjet::contrib::EnergyCorrelator::pt_R); } else if (ecftype_ == "D") { ecfN_str << "ecfD" << *n; - pfunc.reset( - new fastjet::contrib::EnergyCorrelatorGeneralizedD2(alpha_, beta_, fastjet::contrib::EnergyCorrelator::pt_R)); + pfunc = std::make_shared( + alpha_, beta_, fastjet::contrib::EnergyCorrelator::pt_R); } else if (ecftype_ == "N") { ecfN_str << "ecfN" << *n; - pfunc.reset(new fastjet::contrib::EnergyCorrelatorNseries(*n, beta_, fastjet::contrib::EnergyCorrelator::pt_R)); + pfunc = std::make_shared( + *n, beta_, fastjet::contrib::EnergyCorrelator::pt_R); } else if (ecftype_ == "M") { ecfN_str << "ecfM" << *n; - pfunc.reset(new fastjet::contrib::EnergyCorrelatorMseries(*n, beta_, fastjet::contrib::EnergyCorrelator::pt_R)); + pfunc = std::make_shared( + *n, beta_, fastjet::contrib::EnergyCorrelator::pt_R); } else if (ecftype_ == "U") { ecfN_str << "ecfU" << *n; - pfunc.reset(new fastjet::contrib::EnergyCorrelatorUseries(*n, beta_, fastjet::contrib::EnergyCorrelator::pt_R)); + pfunc = std::make_shared( + *n, beta_, fastjet::contrib::EnergyCorrelator::pt_R); } variables_.push_back(ecfN_str.str()); produces>(ecfN_str.str()); diff --git a/RecoLocalMuon/RPCRecHit/plugins/DTSegtoRPC.cc b/RecoLocalMuon/RPCRecHit/plugins/DTSegtoRPC.cc index d563795c2b4db..aa14febec4449 100644 --- a/RecoLocalMuon/RPCRecHit/plugins/DTSegtoRPC.cc +++ b/RecoLocalMuon/RPCRecHit/plugins/DTSegtoRPC.cc @@ -278,7 +278,7 @@ std::unique_ptr DTSegtoRPC::thePoints(const DTRecSegment4DC if (debug) LogDebug("DTSegtoRPC") << "DT \t \t \t No, Exrtrapolation too long!, canceled" << std::endl; } //D so big - } //loop over all the rolls asociated + } //loop over all the rolls asociated } } diff --git a/RecoLuminosity/LumiProducer/plugins/Lumi2DB.cc b/RecoLuminosity/LumiProducer/plugins/Lumi2DB.cc index 513565b6c1976..710f4c0dff93e 100644 --- a/RecoLuminosity/LumiProducer/plugins/Lumi2DB.cc +++ b/RecoLuminosity/LumiProducer/plugins/Lumi2DB.cc @@ -680,7 +680,7 @@ void lumi::Lumi2DB::cleanTemporaryMemory(lumi::Lumi2DB::LumiResult::iterator lum lumi::Lumi2DB::Lumi2DB(const std::string& dest) : DataPipe(dest) {} void lumi::Lumi2DB::parseSourceString(lumi::Lumi2DB::LumiSource& result) const { //parse lumi source file name - if (m_source.length() == 0) + if (m_source.empty()) throw lumi::Exception("lumi source is not set", "parseSourceString", "Lumi2DB"); //std::cout<<"source "<("siteconfpath", ""); - if (siteconfpath.length() == 0) { + if (siteconfpath.empty()) { std::string url = (std::filesystem::path("SITECONF") / std::filesystem::path("local") / std::filesystem::path("JobConfig") / std::filesystem::path("site-local-config.xml")) .string(); diff --git a/RecoMET/METFilters/plugins/MultiEventFilter.cc b/RecoMET/METFilters/plugins/MultiEventFilter.cc index 8416dea909510..b9e43e58ad815 100644 --- a/RecoMET/METFilters/plugins/MultiEventFilter.cc +++ b/RecoMET/METFilters/plugins/MultiEventFilter.cc @@ -36,7 +36,7 @@ MultiEventFilter::MultiEventFilter(const edm::ParameterSet& iConfig) : eventList_(iConfig.getParameter >("EventList")), taggingMode_(iConfig.getParameter("taggingMode")) { edm::FileInPath fp = iConfig.getParameter("file"); - std::string fFile = fp.fullPath(); + const std::string& fFile = fp.fullPath(); std::ifstream inStream(fFile.c_str()); for (unsigned int i = 0; i < eventList_.size(); ++i) { diff --git a/RecoMuon/TrackerSeedGenerator/plugins/MuonHLTSeedMVAClassifierPhase2.cc b/RecoMuon/TrackerSeedGenerator/plugins/MuonHLTSeedMVAClassifierPhase2.cc index a5e5c63537482..159587343de15 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/MuonHLTSeedMVAClassifierPhase2.cc +++ b/RecoMuon/TrackerSeedGenerator/plugins/MuonHLTSeedMVAClassifierPhase2.cc @@ -155,11 +155,11 @@ void MuonHLTSeedMVAClassifierPhase2::produce(edm::Event& iEvent, const edm::Even return; } - if (h_L1TkMu->size() == 0 or h_Seed->size() == 0) { - if (h_Seed->size() != 0) { + if (h_L1TkMu->empty() or h_Seed->empty()) { + if (!h_Seed->empty()) { edm::LogInfo("SeedClassifierError") << "Empty L1TkMu collection" << '\n'; } - if (h_L1TkMu->size() != 0) { + if (!h_L1TkMu->empty()) { edm::LogInfo("SeedClassifierError") << "Empty Muon Pixel seeds collection" << '\n'; } else { edm::LogInfo("SeedClassifierError") << "Empty L1TkMu and Muon Pixel seeds collections" << '\n'; diff --git a/RecoMuon/TrackingTools/src/MuonErrorMatrix.cc b/RecoMuon/TrackingTools/src/MuonErrorMatrix.cc index e4dd8d866a01d..b3985f051c411 100644 --- a/RecoMuon/TrackingTools/src/MuonErrorMatrix.cc +++ b/RecoMuon/TrackingTools/src/MuonErrorMatrix.cc @@ -120,7 +120,7 @@ MuonErrorMatrix::MuonErrorMatrix(const edm::ParameterSet &iConfig) : theD(nullpt if (!madeFromCff) { edm::LogInfo(theCategory) << "using an error matrix object from: " << fileName; edm::FileInPath data(fileName); - std::string fullpath = data.fullPath(); + const std::string &fullpath = data.fullPath(); gROOT->cd(); theD = new TFile(fullpath.c_str()); theD->SetWritable(false); diff --git a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc index f21372a44826e..1ff0e980e089e 100644 --- a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc @@ -1,5 +1,6 @@ #include #include +#include #include "GroupedCkfTrajectoryBuilder.h" #include "TrajectorySegmentBuilder.h" @@ -230,7 +231,7 @@ void GroupedCkfTrajectoryBuilder::rebuildTrajectories(const TrajectorySeed& seed // better the seed to be always the same... std::shared_ptr sharedSeed; if (result.empty()) - sharedSeed.reset(new TrajectorySeed(seed)); + sharedSeed = std::make_shared(seed); else sharedSeed = result.front().sharedSeed(); diff --git a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc index 7ee61329f57de..d016289130e7e 100644 --- a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc @@ -118,7 +118,7 @@ unsigned int CkfTrajectoryBuilder::limitedCandidates(const std::shared_ptr meas; findCompatibleMeasurements(*sharedSeed, *traj, meas); diff --git a/RecoTracker/NuclearSeedGenerator/src/SeedFromNuclearInteraction.cc b/RecoTracker/NuclearSeedGenerator/src/SeedFromNuclearInteraction.cc index 05943ba2d95cf..5c040d71ebdf5 100644 --- a/RecoTracker/NuclearSeedGenerator/src/SeedFromNuclearInteraction.cc +++ b/RecoTracker/NuclearSeedGenerator/src/SeedFromNuclearInteraction.cc @@ -35,7 +35,7 @@ void SeedFromNuclearInteraction::setMeasurements(const TSOS& inner_TSOS, //theHits.push_back( inner_TM.recHit() ); // put temporarily - TODO: remove this line theHits.push_back(outerHit_); - initialTSOS_.reset(new TrajectoryStateOnSurface(inner_TSOS)); + initialTSOS_ = std::make_shared(inner_TSOS); // calculate the initial FreeTrajectoryState. freeTS_.reset(stateWithError()); @@ -70,7 +70,7 @@ void SeedFromNuclearInteraction::setMeasurements(TangentHelix& thePrimaryHelix, theHits.push_back(innerHit_); theHits.push_back(outerHit_); - initialTSOS_.reset(new TrajectoryStateOnSurface(inner_TSOS)); + initialTSOS_ = std::make_shared(inner_TSOS); // calculate the initial FreeTrajectoryState from the inner and outer TM assuming that the helix equation is already known. freeTS_.reset(stateWithError(helix)); @@ -149,7 +149,7 @@ bool SeedFromNuclearInteraction::construct() { return false; const TransientTrackingRecHit::ConstRecHitPointer& tth = theHits[iHit]; - updatedTSOS_.reset(new TrajectoryStateOnSurface(theUpdator.update(state, *tth))); + updatedTSOS_ = std::make_shared(theUpdator.update(state, *tth)); } LogDebug("NuclearSeedGenerator") << "Seed ** updated state " << updatedTSOS_->cartesianError().matrix(); diff --git a/TrackingTools/TrajectoryParametrization/src/LocalTrajectoryError.cc b/TrackingTools/TrajectoryParametrization/src/LocalTrajectoryError.cc index 62d1a3b06baf2..cdef0daa71919 100644 --- a/TrackingTools/TrajectoryParametrization/src/LocalTrajectoryError.cc +++ b/TrackingTools/TrajectoryParametrization/src/LocalTrajectoryError.cc @@ -1,3 +1,5 @@ +#include + #include "TrackingTools/TrajectoryParametrization/interface/LocalTrajectoryError.h" #include "DataFormats/Math/interface/invertPosDefMatrix.h" #include "FWCore/Utilities/interface/Likely.h" @@ -13,7 +15,7 @@ LocalTrajectoryError::LocalTrajectoryError(float dx, float dy, float dxdir, floa const AlgebraicSymMatrix55& LocalTrajectoryError::weightMatrix() const { if UNLIKELY (theWeightMatrixPtr.get() == nullptr) { - theWeightMatrixPtr.reset(new AlgebraicSymMatrix55()); + theWeightMatrixPtr = std::make_shared(); invertPosDefMatrix(theCovarianceMatrix, *theWeightMatrixPtr); } return *theWeightMatrixPtr; From 23f17a4b37897cca400db3225c75cd92be19f09b Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:28:05 +0100 Subject: [PATCH 327/418] [DB-HLT] Apply code checks/format --- .../plugins/AlCaRecoTriggerBits_PayloadInspector.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CondCore/HLTPlugins/plugins/AlCaRecoTriggerBits_PayloadInspector.cc b/CondCore/HLTPlugins/plugins/AlCaRecoTriggerBits_PayloadInspector.cc index d4206508702ae..e3273d7ac25d5 100644 --- a/CondCore/HLTPlugins/plugins/AlCaRecoTriggerBits_PayloadInspector.cc +++ b/CondCore/HLTPlugins/plugins/AlCaRecoTriggerBits_PayloadInspector.cc @@ -347,7 +347,7 @@ namespace { toAppend += not_in_last[iPath] + ";"; } // if it's the last and not empty, dump it - if (toAppend.length() > 0 && iPath == not_in_last.size() - 1) + if (!toAppend.empty() && iPath == not_in_last.size() - 1) output.push_back(toAppend); } @@ -372,7 +372,7 @@ namespace { toAppend += not_in_first[jPath] + ";"; } // if it's the last and not empty, dump it - if (toAppend.length() > 0 && jPath == not_in_first.size() - 1) + if (!toAppend.empty() && jPath == not_in_first.size() - 1) output.push_back(toAppend); } From 2e4e263ff468f0400ed09d3faa829b068bedd7f3 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:28:12 +0100 Subject: [PATCH 328/418] [DB-L1] Apply code checks/format --- .../L1TPlugins/plugins/L1TMuonGlobalParams_PayloadInspector.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CondCore/L1TPlugins/plugins/L1TMuonGlobalParams_PayloadInspector.cc b/CondCore/L1TPlugins/plugins/L1TMuonGlobalParams_PayloadInspector.cc index 3e50b65cd9799..26ad0cf444970 100644 --- a/CondCore/L1TPlugins/plugins/L1TMuonGlobalParams_PayloadInspector.cc +++ b/CondCore/L1TPlugins/plugins/L1TMuonGlobalParams_PayloadInspector.cc @@ -72,7 +72,7 @@ namespace { leg.SetLineColor(0); leg.SetFillColor(0); - input1.SetStats(0); + input1.SetStats(false); input1.SetMaximum(5); input1.SetXTitle("InputBits"); input1.SetYTitle("Bit value"); From 0e08584e82132eb4f3f00c16e16e41cf5243778f Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:28:20 +0100 Subject: [PATCH 329/418] [ALCA-DB-L1] Apply code checks/format --- CondFormats/L1TObjects/src/L1MuDTEtaPatternLut.cc | 2 +- CondFormats/L1TObjects/src/L1MuDTExtLut.cc | 2 +- CondFormats/L1TObjects/src/L1MuDTPhiLut.cc | 2 +- CondFormats/L1TObjects/src/L1MuDTPtaLut.cc | 2 +- CondFormats/L1TObjects/src/L1MuDTQualPatternLut.cc | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CondFormats/L1TObjects/src/L1MuDTEtaPatternLut.cc b/CondFormats/L1TObjects/src/L1MuDTEtaPatternLut.cc index 8c2334765028c..0dbaa540a0411 100644 --- a/CondFormats/L1TObjects/src/L1MuDTEtaPatternLut.cc +++ b/CondFormats/L1TObjects/src/L1MuDTEtaPatternLut.cc @@ -78,7 +78,7 @@ int L1MuDTEtaPatternLut::load() { // assemble file name edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + eau_dir + "ETFPatternList.lut")); - string etf_file = lut_f.fullPath(); + const string& etf_file = lut_f.fullPath(); // open file L1TriggerLutFile file(etf_file); diff --git a/CondFormats/L1TObjects/src/L1MuDTExtLut.cc b/CondFormats/L1TObjects/src/L1MuDTExtLut.cc index c1780afab1317..d04d63c9646bc 100644 --- a/CondFormats/L1TObjects/src/L1MuDTExtLut.cc +++ b/CondFormats/L1TObjects/src/L1MuDTExtLut.cc @@ -141,7 +141,7 @@ int L1MuDTExtLut::load() { // assemble file name edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + ext_dir + ext_str + ".lut")); - string ext_file = lut_f.fullPath(); + const string& ext_file = lut_f.fullPath(); // open file L1TriggerLutFile file(ext_file); diff --git a/CondFormats/L1TObjects/src/L1MuDTPhiLut.cc b/CondFormats/L1TObjects/src/L1MuDTPhiLut.cc index 4f61b1c5e2cc1..aa9c952ad49d3 100644 --- a/CondFormats/L1TObjects/src/L1MuDTPhiLut.cc +++ b/CondFormats/L1TObjects/src/L1MuDTPhiLut.cc @@ -110,7 +110,7 @@ int L1MuDTPhiLut::load() { // assemble file name edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + phi_dir + phi_str + ".lut")); - string phi_file = lut_f.fullPath(); + const string& phi_file = lut_f.fullPath(); // open file L1TriggerLutFile file(phi_file); diff --git a/CondFormats/L1TObjects/src/L1MuDTPtaLut.cc b/CondFormats/L1TObjects/src/L1MuDTPtaLut.cc index 0219c5e979523..6d9c002022e50 100644 --- a/CondFormats/L1TObjects/src/L1MuDTPtaLut.cc +++ b/CondFormats/L1TObjects/src/L1MuDTPtaLut.cc @@ -221,7 +221,7 @@ int L1MuDTPtaLut::load() { // assemble file name edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + pta_dir + pta_str + ".lut")); - string pta_file = lut_f.fullPath(); + const string& pta_file = lut_f.fullPath(); // open file L1TriggerLutFile file(pta_file); diff --git a/CondFormats/L1TObjects/src/L1MuDTQualPatternLut.cc b/CondFormats/L1TObjects/src/L1MuDTQualPatternLut.cc index 8f5d2d43b578f..7dd1de0246e7a 100644 --- a/CondFormats/L1TObjects/src/L1MuDTQualPatternLut.cc +++ b/CondFormats/L1TObjects/src/L1MuDTQualPatternLut.cc @@ -118,7 +118,7 @@ int L1MuDTQualPatternLut::load() { // assemble file name edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + eau_dir + emu_str + ".lut")); - string emu_file = lut_f.fullPath(); + const string& emu_file = lut_f.fullPath(); // open file L1TriggerLutFile file(emu_file); From ae9039fda201355d76a047c78e8057710a402c68 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:28:28 +0100 Subject: [PATCH 330/418] [L1-XPOG] Apply code checks/format --- DPGAnalysis/L1TNanoAOD/plugins/P2GTTriggerResultsConverter.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DPGAnalysis/L1TNanoAOD/plugins/P2GTTriggerResultsConverter.cc b/DPGAnalysis/L1TNanoAOD/plugins/P2GTTriggerResultsConverter.cc index 15645adadbaa8..3bedf4605b847 100644 --- a/DPGAnalysis/L1TNanoAOD/plugins/P2GTTriggerResultsConverter.cc +++ b/DPGAnalysis/L1TNanoAOD/plugins/P2GTTriggerResultsConverter.cc @@ -58,7 +58,7 @@ void P2GTTriggerResultsConverter::produce(edm::Event& event, const edm::EventSet bool fillAlgoNames = false; - if (algoNames_.size() == 0) { + if (algoNames_.empty()) { algoNames_ = std::vector(algoBlockMap.size()); fillAlgoNames = true; } From c7f535ac7249d7a625827e4cc6a2924ce298710c Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:28:47 +0100 Subject: [PATCH 331/418] [L1] Apply code checks/format --- DataFormats/L1GlobalTrigger/src/L1GtLogicParser.cc | 2 +- DataFormats/L1TGlobal/src/GlobalLogicParser.cc | 2 +- EventFilter/CSCTFRawToDigi/plugins/CSCTFPacker.cc | 2 +- EventFilter/CSCTFRawToDigi/plugins/CSCTFUnpacker.cc | 2 +- L1Trigger/GlobalCaloTrigger/plugins/L1GctEmulator.cc | 2 +- L1Trigger/GlobalCaloTrigger/plugins/L1GctPrintLuts.cc | 5 +++-- L1Trigger/L1TCaloLayer1/plugins/L1TCaloSummary.cc | 4 ++-- .../plugins/L1TGlobalPrescalesVetosESProducer.cc | 8 ++++---- .../plugins/L1TGlobalPrescalesVetosFractESProducer.cc | 8 ++++---- L1Trigger/L1TGlobal/plugins/TriggerMenuParser.cc | 2 +- L1Trigger/L1TMuonBarrel/src/L1MuBMTEtaPatternLut.cc | 2 +- L1Trigger/L1TMuonBarrel/src/L1MuBMTQualPatternLut.cc | 2 +- L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelParamsHelper.cc | 6 +++--- .../L1TMuonOverlapPhase1/src/Omtf/OMTFReconstruction.cc | 2 +- .../src/Tools/EmulationObserverBase.cc | 4 +++- .../CSCTFConfigProducers/src/CSCTFConfigProducer.cc | 2 +- .../L1GtConfigProducers/src/L1GtVhdlTemplateFile.cc | 4 ++-- .../L1TConfigProducers/src/OnlineDBqueryHelper.cc | 2 +- L1TriggerConfig/RPCTriggerConfig/src/RPCTriggerConfig.cc | 2 +- 19 files changed, 33 insertions(+), 30 deletions(-) diff --git a/DataFormats/L1GlobalTrigger/src/L1GtLogicParser.cc b/DataFormats/L1GlobalTrigger/src/L1GtLogicParser.cc index 2ea833255ddf0..4fad30e1d0089 100644 --- a/DataFormats/L1GlobalTrigger/src/L1GtLogicParser.cc +++ b/DataFormats/L1GlobalTrigger/src/L1GtLogicParser.cc @@ -187,7 +187,7 @@ bool L1GtLogicParser::buildRpnVector(const std::string& logicalExpressionVal) { exprStringStream >> std::skipws >> std::ws >> tokenString; // skip the end - if (tokenString.find_first_not_of(whitespaces) == std::string::npos || tokenString.length() == 0) { + if (tokenString.find_first_not_of(whitespaces) == std::string::npos || tokenString.empty()) { //LogTrace("L1GtLogicParser") //<< " Break for token string = " << tokenString //<< std::endl; diff --git a/DataFormats/L1TGlobal/src/GlobalLogicParser.cc b/DataFormats/L1TGlobal/src/GlobalLogicParser.cc index f4130ec70c057..00217dd768b50 100644 --- a/DataFormats/L1TGlobal/src/GlobalLogicParser.cc +++ b/DataFormats/L1TGlobal/src/GlobalLogicParser.cc @@ -187,7 +187,7 @@ bool GlobalLogicParser::buildRpnVector(const std::string& logicalExpressionVal) exprStringStream >> std::skipws >> std::ws >> tokenString; // skip the end - if (tokenString.find_first_not_of(whitespaces) == std::string::npos || tokenString.length() == 0) { + if (tokenString.find_first_not_of(whitespaces) == std::string::npos || tokenString.empty()) { //LogTrace("L1TGlobal") //<< " Break for token string = " << tokenString //<< std::endl; diff --git a/EventFilter/CSCTFRawToDigi/plugins/CSCTFPacker.cc b/EventFilter/CSCTFRawToDigi/plugins/CSCTFPacker.cc index edc65539eee02..5e92d834de8d8 100644 --- a/EventFilter/CSCTFRawToDigi/plugins/CSCTFPacker.cc +++ b/EventFilter/CSCTFRawToDigi/plugins/CSCTFPacker.cc @@ -75,7 +75,7 @@ CSCTFPacker::CSCTFPacker(const edm::ParameterSet& conf) : edm::one::EDProducer<> swapME1strips = conf.getParameter("swapME1strips"); file = nullptr; - if (outputFile.length() && (file = fopen(outputFile.c_str(), "wt")) == nullptr) + if (!outputFile.empty() && (file = fopen(outputFile.c_str(), "wt")) == nullptr) throw cms::Exception("OutputFile ") << "CSCTFPacker: cannot open output file (errno=" << errno << "). Try outputFile=\"\""; diff --git a/EventFilter/CSCTFRawToDigi/plugins/CSCTFUnpacker.cc b/EventFilter/CSCTFRawToDigi/plugins/CSCTFUnpacker.cc index 8bfff33e07542..6cbc3d5189ca3 100644 --- a/EventFilter/CSCTFRawToDigi/plugins/CSCTFUnpacker.cc +++ b/EventFilter/CSCTFRawToDigi/plugins/CSCTFUnpacker.cc @@ -94,7 +94,7 @@ CSCTFUnpacker::CSCTFUnpacker(const edm::ParameterSet& pset) : edm::stream::EDPro // As we use standard CSC digi containers, we have to initialize mapping: std::string mappingFile = pset.getParameter("mappingFile"); - if (mappingFile.length()) { + if (!mappingFile.empty()) { LogDebug("CSCTFUnpacker|ctor") << "Define ``mapping'' only if you want to screw up real geometry"; mapping = new CSCTriggerMappingFromFile(mappingFile); } else { diff --git a/L1Trigger/GlobalCaloTrigger/plugins/L1GctEmulator.cc b/L1Trigger/GlobalCaloTrigger/plugins/L1GctEmulator.cc index 5baf3f931dbe7..48bd76e749712 100644 --- a/L1Trigger/GlobalCaloTrigger/plugins/L1GctEmulator.cc +++ b/L1Trigger/GlobalCaloTrigger/plugins/L1GctEmulator.cc @@ -80,7 +80,7 @@ L1GctEmulator::L1GctEmulator(const edm::ParameterSet& ps) for (unsigned ieta = 0; ieta < L1GctJetFinderParams::NUMBER_ETA_VALUES; ieta++) { nextLut->setEtaBin(ieta); m_jetEtCalibLuts.push_back(nextLut); - nextLut.reset(new L1GctJetEtCalibrationLut()); + nextLut = std::make_shared(); } // Setup the tau algorithm parameters diff --git a/L1Trigger/GlobalCaloTrigger/plugins/L1GctPrintLuts.cc b/L1Trigger/GlobalCaloTrigger/plugins/L1GctPrintLuts.cc index 2929a354357aa..72952db6c83ad 100644 --- a/L1Trigger/GlobalCaloTrigger/plugins/L1GctPrintLuts.cc +++ b/L1Trigger/GlobalCaloTrigger/plugins/L1GctPrintLuts.cc @@ -16,8 +16,9 @@ #include "L1Trigger/GlobalCaloTrigger/interface/L1GctHfEtSumsLut.h" #include "L1Trigger/GlobalCaloTrigger/interface/L1GlobalCaloTrigger.h" -#include #include +#include +#include #include L1GctPrintLuts::L1GctPrintLuts(const edm::ParameterSet& iConfig) @@ -33,7 +34,7 @@ L1GctPrintLuts::L1GctPrintLuts(const edm::ParameterSet& iConfig) for (unsigned ieta = 0; ieta < L1GctJetFinderBase::COL_OFFSET; ieta++) { nextLut->setEtaBin(ieta); m_jetEtCalibLuts.push_back(nextLut); - nextLut.reset(new L1GctJetEtCalibrationLut()); + nextLut = std::make_shared(); } m_jfParsToken = esConsumes(); m_etScaleToken = esConsumes(); diff --git a/L1Trigger/L1TCaloLayer1/plugins/L1TCaloSummary.cc b/L1Trigger/L1TCaloLayer1/plugins/L1TCaloSummary.cc index 3ee5b3f9b132f..d9a7f67fea010 100644 --- a/L1Trigger/L1TCaloLayer1/plugins/L1TCaloSummary.cc +++ b/L1Trigger/L1TCaloLayer1/plugins/L1TCaloSummary.cc @@ -202,7 +202,7 @@ void L1TCaloSummary::produce(edm::Event& iEvent, const edm::Event edm::LogError("L1TCaloSummary") << "UCT: Failed to get regions from region collection!"; iEvent.getByToken(regionToken, regionCollection); - if (regionCollection->size() == 0) { + if (regionCollection->empty()) { iEvent.getByToken(backupRegionToken, regionCollection); edm::LogWarning("L1TCaloSummary") << "Switched to emulated regions since data regions was empty.\n"; } @@ -285,7 +285,7 @@ void L1TCaloSummary::produce(edm::Event& iEvent, const edm::Event std::list> boostedJetObjs = summaryCard.getBoostedJetObjs(); for (std::list>::const_iterator i = boostedJetObjs.begin(); i != boostedJetObjs.end(); i++) { - const std::shared_ptr object = *i; + const std::shared_ptr& object = *i; pt = ((double)object->et()) * caloScaleFactor * boostedJetPtFactor; eta = g.getUCTTowerEta(object->iEta()); phi = g.getUCTTowerPhi(object->iPhi()); diff --git a/L1Trigger/L1TGlobal/plugins/L1TGlobalPrescalesVetosESProducer.cc b/L1Trigger/L1TGlobal/plugins/L1TGlobalPrescalesVetosESProducer.cc index 77c57e7bbf5ac..2d4825b32bf42 100644 --- a/L1Trigger/L1TGlobal/plugins/L1TGlobalPrescalesVetosESProducer.cc +++ b/L1Trigger/L1TGlobal/plugins/L1TGlobalPrescalesVetosESProducer.cc @@ -103,16 +103,16 @@ L1TGlobalPrescalesVetosESProducer::L1TGlobalPrescalesVetosESProducer(const edm:: // Full path edm::FileInPath f1_prescale("L1Trigger/L1TGlobal/data/Luminosity/" + menuDir + "/" + prescalesFileName); - std::string m_prescaleFile = f1_prescale.fullPath(); + const std::string& m_prescaleFile = f1_prescale.fullPath(); edm::FileInPath f1_mask_algobx("L1Trigger/L1TGlobal/data/Luminosity/" + menuDir + "/" + algobxmaskFileName); - std::string m_algobxmaskFile = f1_mask_algobx.fullPath(); + const std::string& m_algobxmaskFile = f1_mask_algobx.fullPath(); edm::FileInPath f1_mask_finor("L1Trigger/L1TGlobal/data/Luminosity/" + menuDir + "/" + finormaskFileName); - std::string m_finormaskFile = f1_mask_finor.fullPath(); + const std::string& m_finormaskFile = f1_mask_finor.fullPath(); edm::FileInPath f1_mask_veto("L1Trigger/L1TGlobal/data/Luminosity/" + menuDir + "/" + vetomaskFileName); - std::string m_vetomaskFile = f1_mask_veto.fullPath(); + const std::string& m_vetomaskFile = f1_mask_veto.fullPath(); // XML payloads std::string xmlPayload_prescale; diff --git a/L1Trigger/L1TGlobal/plugins/L1TGlobalPrescalesVetosFractESProducer.cc b/L1Trigger/L1TGlobal/plugins/L1TGlobalPrescalesVetosFractESProducer.cc index 9cfc8993931e5..be4c7876fdb64 100644 --- a/L1Trigger/L1TGlobal/plugins/L1TGlobalPrescalesVetosFractESProducer.cc +++ b/L1Trigger/L1TGlobal/plugins/L1TGlobalPrescalesVetosFractESProducer.cc @@ -103,16 +103,16 @@ L1TGlobalPrescalesVetosFractESProducer::L1TGlobalPrescalesVetosFractESProducer(c // Full path edm::FileInPath f1_prescale("L1Trigger/L1TGlobal/data/Luminosity/" + menuDir + "/" + prescalesFileName); - std::string m_prescaleFile = f1_prescale.fullPath(); + const std::string& m_prescaleFile = f1_prescale.fullPath(); edm::FileInPath f1_mask_algobx("L1Trigger/L1TGlobal/data/Luminosity/" + menuDir + "/" + algobxmaskFileName); - std::string m_algobxmaskFile = f1_mask_algobx.fullPath(); + const std::string& m_algobxmaskFile = f1_mask_algobx.fullPath(); edm::FileInPath f1_mask_finor("L1Trigger/L1TGlobal/data/Luminosity/" + menuDir + "/" + finormaskFileName); - std::string m_finormaskFile = f1_mask_finor.fullPath(); + const std::string& m_finormaskFile = f1_mask_finor.fullPath(); edm::FileInPath f1_mask_veto("L1Trigger/L1TGlobal/data/Luminosity/" + menuDir + "/" + vetomaskFileName); - std::string m_vetomaskFile = f1_mask_veto.fullPath(); + const std::string& m_vetomaskFile = f1_mask_veto.fullPath(); // XML payloads std::string xmlPayload_prescale; diff --git a/L1Trigger/L1TGlobal/plugins/TriggerMenuParser.cc b/L1Trigger/L1TGlobal/plugins/TriggerMenuParser.cc index 264cc1579f94c..fc8c2198aed0a 100644 --- a/L1Trigger/L1TGlobal/plugins/TriggerMenuParser.cc +++ b/L1Trigger/L1TGlobal/plugins/TriggerMenuParser.cc @@ -2849,7 +2849,7 @@ bool l1t::TriggerMenuParser::parseAXOL1TL(L1TUtmCondition condAXOL1TL, unsigned } // check model version is not empty - if (model == "") { + if (model.empty()) { edm::LogError("TriggerMenuParser") << " Error: AXOL1TL movel version is empty" << std::endl; return false; } diff --git a/L1Trigger/L1TMuonBarrel/src/L1MuBMTEtaPatternLut.cc b/L1Trigger/L1TMuonBarrel/src/L1MuBMTEtaPatternLut.cc index 19fa92897800f..c55b8e17c1715 100644 --- a/L1Trigger/L1TMuonBarrel/src/L1MuBMTEtaPatternLut.cc +++ b/L1Trigger/L1TMuonBarrel/src/L1MuBMTEtaPatternLut.cc @@ -79,7 +79,7 @@ int L1MuBMTEtaPatternLut::load() { // assemble file name edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + eau_dir + "ETFPatternList.lut")); - string etf_file = lut_f.fullPath(); + const string& etf_file = lut_f.fullPath(); // open file L1TriggerLutFile file(etf_file); diff --git a/L1Trigger/L1TMuonBarrel/src/L1MuBMTQualPatternLut.cc b/L1Trigger/L1TMuonBarrel/src/L1MuBMTQualPatternLut.cc index db556a77f6dfe..915b172ea4a2b 100644 --- a/L1Trigger/L1TMuonBarrel/src/L1MuBMTQualPatternLut.cc +++ b/L1Trigger/L1TMuonBarrel/src/L1MuBMTQualPatternLut.cc @@ -86,7 +86,7 @@ int L1MuBMTQualPatternLut::load() { // assemble file name edm::FileInPath lut_f = edm::FileInPath(string(defaultPath + eau_dir + emu_str + ".lut")); - string emu_file = lut_f.fullPath(); + const string& emu_file = lut_f.fullPath(); // open file L1TriggerLutFile file(emu_file); diff --git a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelParamsHelper.cc b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelParamsHelper.cc index 3e7ba1cf2f1ba..67d2b5c5a54d8 100644 --- a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelParamsHelper.cc +++ b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelParamsHelper.cc @@ -399,7 +399,7 @@ int L1TMuonBarrelParamsHelper::load_pt(std::vector& pta_lut, // assemble file name const string& lutpath = AssLUTpath; edm::FileInPath lut_f = edm::FileInPath(string(lutpath + pta_str + ".lut")); - string pta_file = lut_f.fullPath(); + const string& pta_file = lut_f.fullPath(); // open file L1TriggerLutFile file(pta_file); @@ -476,7 +476,7 @@ int L1TMuonBarrelParamsHelper::load_phi(std::vector& phi_lut, // assemble file name edm::FileInPath lut_f = edm::FileInPath(string(AssLUTpath + phi_str + ".lut")); - string phi_file = lut_f.fullPath(); + const string& phi_file = lut_f.fullPath(); // open file L1TriggerLutFile file(phi_file); @@ -599,7 +599,7 @@ int L1TMuonBarrelParamsHelper::load_ext(std::vector(); xmlConfigReader.readConfig(omtfParams.get()); //getPatternsVersion() parses the entire patterns xml - si it is very inefficient diff --git a/L1Trigger/L1TMuonOverlapPhase1/src/Tools/EmulationObserverBase.cc b/L1Trigger/L1TMuonOverlapPhase1/src/Tools/EmulationObserverBase.cc index 2b7ebb884bcd8..107321f386eac 100644 --- a/L1Trigger/L1TMuonOverlapPhase1/src/Tools/EmulationObserverBase.cc +++ b/L1Trigger/L1TMuonOverlapPhase1/src/Tools/EmulationObserverBase.cc @@ -5,6 +5,8 @@ * Author: kbunkow */ +#include + #include "L1Trigger/L1TMuonOverlapPhase1/interface/Tools/EmulationObserverBase.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -65,7 +67,7 @@ void EmulationObserverBase::observeProcesorEmulation(unsigned int iProcessor, } void EmulationObserverBase::observeEventBegin(const edm::Event& iEvent) { - omtfCand.reset(new AlgoMuon()); + omtfCand = std::make_shared(); candProcIndx = 0xffff; simMuon = findSimMuon(iEvent); diff --git a/L1TriggerConfig/CSCTFConfigProducers/src/CSCTFConfigProducer.cc b/L1TriggerConfig/CSCTFConfigProducers/src/CSCTFConfigProducer.cc index 32169429da84b..c596eb566ad1c 100644 --- a/L1TriggerConfig/CSCTFConfigProducers/src/CSCTFConfigProducer.cc +++ b/L1TriggerConfig/CSCTFConfigProducers/src/CSCTFConfigProducer.cc @@ -58,7 +58,7 @@ std::unique_ptr CSCTFConfigProducer::produceL1MuCSCPtLutRcd(const std::unique_ptr pt_lut = std::make_unique(); - if (ptLUT_path.length()) { + if (!ptLUT_path.empty()) { readLUT(ptLUT_path, (unsigned short*)pt_lut->pt_lut, 1 << 21); //CSCBitWidths::kPtAddressWidth } else { throw cms::Exception("Undefined pT LUT") diff --git a/L1TriggerConfig/L1GtConfigProducers/src/L1GtVhdlTemplateFile.cc b/L1TriggerConfig/L1GtConfigProducers/src/L1GtVhdlTemplateFile.cc index 5aad609338f54..822af2a61c0d4 100644 --- a/L1TriggerConfig/L1GtConfigProducers/src/L1GtVhdlTemplateFile.cc +++ b/L1TriggerConfig/L1GtConfigProducers/src/L1GtVhdlTemplateFile.cc @@ -120,7 +120,7 @@ bool L1GtVhdlTemplateFile::open(const std::string &fileName, bool internal) { //remove empty lines iter = lines_.begin(); while (iter != lines_.end()) { - if ((*iter).empty() || (*iter).length() == 0 || (*iter) == " ") + if ((*iter).empty() || (*iter).empty() || (*iter) == " ") lines_.erase(iter); else iter++; @@ -293,7 +293,7 @@ bool L1GtVhdlTemplateFile::removeEmptyLines() { std::vector::iterator iter = lines_.begin(); while (iter != lines_.end()) { - if ((*iter).empty() || (*iter).length() == 0 || (*iter) == " ") + if ((*iter).empty() || (*iter).empty() || (*iter) == " ") lines_.erase(iter); else iter++; diff --git a/L1TriggerConfig/L1TConfigProducers/src/OnlineDBqueryHelper.cc b/L1TriggerConfig/L1TConfigProducers/src/OnlineDBqueryHelper.cc index 7a7371fe3d384..499ec9c61f008 100644 --- a/L1TriggerConfig/L1TConfigProducers/src/OnlineDBqueryHelper.cc +++ b/L1TriggerConfig/L1TConfigProducers/src/OnlineDBqueryHelper.cc @@ -4,7 +4,7 @@ std::map l1t::OnlineDBqueryHelper::fetch(const std::ve const std::string &table, const std::string &key, l1t::OMDSReader &m_omdsReader) { - if (queryColumns.empty() || table.length() == 0) + if (queryColumns.empty() || table.empty()) return std::map(); l1t::OMDSReader::QueryResults queryResult = diff --git a/L1TriggerConfig/RPCTriggerConfig/src/RPCTriggerConfig.cc b/L1TriggerConfig/RPCTriggerConfig/src/RPCTriggerConfig.cc index 3521dbf5672d5..066deeb8c3899 100644 --- a/L1TriggerConfig/RPCTriggerConfig/src/RPCTriggerConfig.cc +++ b/L1TriggerConfig/RPCTriggerConfig/src/RPCTriggerConfig.cc @@ -74,7 +74,7 @@ RPCTriggerConfig::RPCTriggerConfig(const edm::ParameterSet& iConfig) { std::string dataDir = iConfig.getUntrackedParameter("filedir"); edm::FileInPath fp(dataDir + "pacPat_t0sc0sg0.xml"); - std::string patternsDirNameUnstriped = fp.fullPath(); + const std::string& patternsDirNameUnstriped = fp.fullPath(); m_patternsDir = patternsDirNameUnstriped.substr(0, patternsDirNameUnstriped.find_last_of('/') + 1); } From 835ce30ededc234e401c817e13910caeabe6fc47 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:28:55 +0100 Subject: [PATCH 332/418] [RECONSTRUCTION-XPOG] Apply code checks/format --- DataFormats/PatCandidates/src/TriggerObjectStandAlone.cc | 4 ++-- PhysicsTools/PatAlgos/plugins/DeDxEstimatorRekeyer.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DataFormats/PatCandidates/src/TriggerObjectStandAlone.cc b/DataFormats/PatCandidates/src/TriggerObjectStandAlone.cc index b60631737c7e3..cf9ffef12b9cb 100644 --- a/DataFormats/PatCandidates/src/TriggerObjectStandAlone.cc +++ b/DataFormats/PatCandidates/src/TriggerObjectStandAlone.cc @@ -99,7 +99,7 @@ bool TriggerObjectStandAlone::hasAnyName(const std::string &name, const std::vec // Empty parts due to // - wild-card at beginning/end or // - multiple wild-cards (should be supressed by 'boost::token_compress_on') - if (iName->length() == 0) + if (iName->empty()) continue; // Search from current index and // set index to found occurence @@ -115,7 +115,7 @@ bool TriggerObjectStandAlone::hasAnyName(const std::string &name, const std::vec index += iName->length(); } // Failed, if end of name not reached - if (index < iVec->length() && namePartsVec.back().length() != 0) + if (index < iVec->length() && !namePartsVec.back().empty()) failed = true; // Match found! if (!failed) diff --git a/PhysicsTools/PatAlgos/plugins/DeDxEstimatorRekeyer.cc b/PhysicsTools/PatAlgos/plugins/DeDxEstimatorRekeyer.cc index 0a91c694ec94e..54d487ddc33bd 100644 --- a/PhysicsTools/PatAlgos/plugins/DeDxEstimatorRekeyer.cc +++ b/PhysicsTools/PatAlgos/plugins/DeDxEstimatorRekeyer.cc @@ -113,7 +113,7 @@ void DeDxEstimatorRekeyer::produce(edm::StreamID, edm::Event& iEvent, const edm: auto dedxHitInfoAssociation = std::make_unique(dedxHitInfoHandle); reco::DeDxHitInfoAss::Filler filler(*dedxHitInfoAssociation); auto resultdedxHitColl = std::make_unique(); - resultdedxHitColl->reserve(pcTrkMap.size() > 0 ? pcTrkMap.size() * pcTrkMap[0].second.size() : 0); + resultdedxHitColl->reserve(!pcTrkMap.empty() ? pcTrkMap.size() * pcTrkMap[0].second.size() : 0); std::vector> momenta; momenta.reserve(resultdedxHitColl->capacity()); // Loop over packed candidates From 29f49122b66ffd13c207a536341ad568ffeb06ee Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:29:12 +0100 Subject: [PATCH 333/418] [GEOMETRY] Apply code checks/format --- DetectorDescription/Core/src/DDValue.cc | 9 +++++---- DetectorDescription/Parser/src/DDLParser.cc | 2 +- Geometry/ForwardGeometry/plugins/moduleDB.cc | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/DetectorDescription/Core/src/DDValue.cc b/DetectorDescription/Core/src/DDValue.cc index 4294afac68dce..0fc363987bfcc 100644 --- a/DetectorDescription/Core/src/DDValue.cc +++ b/DetectorDescription/Core/src/DDValue.cc @@ -5,6 +5,7 @@ #include "DetectorDescription/Core/interface/DDComparator.h" #include +#include #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Utilities/interface/Exception.h" @@ -49,7 +50,7 @@ DDValue::DDValue(const std::string& name, const std::vector& v) : i auto it = v.begin(); std::vector svec; std::vector dvec; - vecPair_.reset(new vecpair_type(false, std::make_pair(svec, dvec))); + vecPair_ = std::make_shared(false, std::make_pair(svec, dvec)); for (; it != v.end(); ++it) { vecPair_->second.first.emplace_back(it->first); vecPair_->second.second.emplace_back(it->second); @@ -62,7 +63,7 @@ DDValue::DDValue(const std::string& name, double val) : id_(0) { std::vector svec(1, ""); std::vector dvec(1, val); - vecPair_.reset(new vecpair_type(false, std::make_pair(svec, dvec))); + vecPair_ = std::make_shared(false, std::make_pair(svec, dvec)); setEvalState(true); } @@ -71,7 +72,7 @@ DDValue::DDValue(const std::string& name, const std::string& sval, double dval) std::vector svec(1, sval); std::vector dvec(1, dval); - vecPair_.reset(new vecpair_type(false, std::make_pair(svec, dvec))); + vecPair_ = std::make_shared(false, std::make_pair(svec, dvec)); setEvalState(true); } @@ -80,7 +81,7 @@ DDValue::DDValue(const std::string& name, const std::string& sval) : id_(0) { std::vector svec(1, sval); std::vector dvec(1, 0); - vecPair_.reset(new vecpair_type(false, std::make_pair(svec, dvec))); + vecPair_ = std::make_shared(false, std::make_pair(svec, dvec)); setEvalState(false); } diff --git a/DetectorDescription/Parser/src/DDLParser.cc b/DetectorDescription/Parser/src/DDLParser.cc index 5a485742c1592..5e00dc871a978 100644 --- a/DetectorDescription/Parser/src/DDLParser.cc +++ b/DetectorDescription/Parser/src/DDLParser.cc @@ -80,7 +80,7 @@ bool DDLParser::isParsed(const std::string& filename) { bool DDLParser::parseOneFile(const std::string& fullname) { std::string filename = extractFileName(fullname); edm::FileInPath fp(fullname); - std::string absoluteFileName = fp.fullPath(); + const std::string& absoluteFileName = fp.fullPath(); size_t foundFile = isFound(filename); if (!foundFile) { pair pss; diff --git a/Geometry/ForwardGeometry/plugins/moduleDB.cc b/Geometry/ForwardGeometry/plugins/moduleDB.cc index 57efa4faa0b72..d0fa964bc5b0c 100644 --- a/Geometry/ForwardGeometry/plugins/moduleDB.cc +++ b/Geometry/ForwardGeometry/plugins/moduleDB.cc @@ -41,7 +41,7 @@ CaloGeometryDBEP::produceAligned(const typena ZdcGeometry* zdcGeometry = new ZdcGeometry(&zdcTopology); PtrType ptr(zdcGeometry); - if (dins.size() > 0) { + if (!dins.empty()) { const unsigned int nTrParm(tvec.size() / zdcTopology.kSizeForDenseIndexing()); assert(dvec.size() == ZdcGeometry::k_NumberOfShapes * ZdcGeometry::k_NumberOfParametersPerShape); From d71ab113a07c76861ba9970f9e51c2bcbc6a13d8 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:29:20 +0100 Subject: [PATCH 334/418] [DAQ] Apply code checks/format --- .../Utilities/plugins/GlobalEvFOutputModule.cc | 7 ++++--- EventFilter/Utilities/src/DAQSource.cc | 11 ++++++----- IORawData/CSCCommissioning/src/CSCFileDumper.cc | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/EventFilter/Utilities/plugins/GlobalEvFOutputModule.cc b/EventFilter/Utilities/plugins/GlobalEvFOutputModule.cc index ed4a99b5c0459..b545b079df607 100644 --- a/EventFilter/Utilities/plugins/GlobalEvFOutputModule.cc +++ b/EventFilter/Utilities/plugins/GlobalEvFOutputModule.cc @@ -31,9 +31,10 @@ #include "FWCore/Framework/interface/MakerMacros.h" -#include -#include #include +#include +#include +#include typedef edm::detail::TriggerResultsBasedEventSelector::handle_t Trig; @@ -310,7 +311,7 @@ namespace evf { mergeType_.setName("MergeType"); hltErrorEvents_.setName("HLTErrorEvents"); - jsonMonitor_.reset(new jsoncollector::FastMonitor(&outJsonDef, true)); + jsonMonitor_ = std::make_shared(&outJsonDef, true); jsonMonitor_->setDefPath(outJsonDefName); jsonMonitor_->registerGlobalMonitorable(&processed_, false); jsonMonitor_->registerGlobalMonitorable(&accepted_, false); diff --git a/EventFilter/Utilities/src/DAQSource.cc b/EventFilter/Utilities/src/DAQSource.cc index bc8c4bde37f38..bcc63f7e70bd9 100644 --- a/EventFilter/Utilities/src/DAQSource.cc +++ b/EventFilter/Utilities/src/DAQSource.cc @@ -1,8 +1,9 @@ +#include +#include +#include #include #include #include -#include -#include #include "EventFilter/Utilities/interface/DAQSource.h" #include "EventFilter/Utilities/interface/DAQSourceModels.h" @@ -78,11 +79,11 @@ DAQSource::DAQSource(edm::ParameterSet const& pset, edm::InputSourceDescription //load mode class based on parameter if (dataModeConfig_ == "FRD") { - dataMode_.reset(new DataModeFRD(this)); + dataMode_ = std::make_shared(this); } else if (dataModeConfig_ == "FRDStriped") { - dataMode_.reset(new DataModeFRDStriped(this)); + dataMode_ = std::make_shared(this); } else if (dataModeConfig_ == "ScoutingRun3") { - dataMode_.reset(new DataModeScoutingRun3(this)); + dataMode_ = std::make_shared(this); } else throw cms::Exception("DAQSource::DAQSource") << "Unknown data mode " << dataModeConfig_; diff --git a/IORawData/CSCCommissioning/src/CSCFileDumper.cc b/IORawData/CSCCommissioning/src/CSCFileDumper.cc index a97d224ae3bb2..da86b015cc59e 100644 --- a/IORawData/CSCCommissioning/src/CSCFileDumper.cc +++ b/IORawData/CSCCommissioning/src/CSCFileDumper.cc @@ -45,7 +45,7 @@ CSCFileDumper::CSCFileDumper(edm::ParameterSet const &pset) { } */ - if (events.length()) { + if (!events.empty()) { for (size_t pos1 = 0, pos2 = events.find(',');; pos1 = pos2 + 1, pos2 = events.find(',', pos2 + 1)) { if (pos2 != std::string::npos) { long event = 0; From 08af6cd48aef8beae08dff7642d64fef3814da56 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:29:28 +0100 Subject: [PATCH 335/418] [FASTSIM] Apply code checks/format --- FastSimulation/ForwardDetectors/plugins/ProtonTaggerFilter.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FastSimulation/ForwardDetectors/plugins/ProtonTaggerFilter.cc b/FastSimulation/ForwardDetectors/plugins/ProtonTaggerFilter.cc index f9d2af5d09730..a4bf4cc80ecf7 100644 --- a/FastSimulation/ForwardDetectors/plugins/ProtonTaggerFilter.cc +++ b/FastSimulation/ForwardDetectors/plugins/ProtonTaggerFilter.cc @@ -119,7 +119,7 @@ void ProtonTaggerFilter::beginJob() { edm::LogVerbatim("FastSimProtonTaggerFilter") << "ProtonTaggerFilter: Getting ready ..."; edm::FileInPath myDataFile("FastSimulation/ForwardDetectors/data/acceptance_420_220.root"); - std::string fullPath = myDataFile.fullPath(); + const std::string& fullPath = myDataFile.fullPath(); edm::LogVerbatim("FastSimProtonTaggerFilter") << "Opening " << fullPath; TFile f(fullPath.c_str()); From 1da3c1013510746cc3a0dbb14ee77d4a8f0570e9 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:29:36 +0100 Subject: [PATCH 336/418] [VISUALIZATION] Apply code checks/format --- Fireworks/Core/src/FWEveViewManager.cc | 13 +++++++------ Fireworks/Core/src/FWGeometryTableViewManager.cc | 5 +++-- Fireworks/Core/src/FWTriggerTableViewManager.cc | 7 ++++--- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Fireworks/Core/src/FWEveViewManager.cc b/Fireworks/Core/src/FWEveViewManager.cc index 4f4c37390f6c7..ea7c4247b3725 100644 --- a/Fireworks/Core/src/FWEveViewManager.cc +++ b/Fireworks/Core/src/FWEveViewManager.cc @@ -13,6 +13,7 @@ // system include files #include +#include // user include files #include "TEveManager.h" @@ -278,25 +279,25 @@ FWViewBase* FWEveViewManager::buildView(TEveWindowSlot* iParent, const std::stri std::shared_ptr view; switch (type) { case FWViewType::k3D: - view.reset(new FW3DView(iParent, type)); + view = std::make_shared(iParent, type); break; case FWViewType::kISpy: - view.reset(new FWISpyView(iParent, type)); + view = std::make_shared(iParent, type); break; case FWViewType::kRhoPhi: case FWViewType::kRhoZ: case FWViewType::kRhoPhiPF: - view.reset(new FWRPZView(iParent, type)); + view = std::make_shared(iParent, type); break; case FWViewType::kLego: case FWViewType::kLegoPFECAL: - view.reset(new FWEveLegoView(iParent, type)); + view = std::make_shared(iParent, type); break; case FWViewType::kLegoHF: - view.reset(new FWHFView(iParent, type)); + view = std::make_shared(iParent, type); break; case FWViewType::kGlimpse: - view.reset(new FWGlimpseView(iParent, type)); + view = std::make_shared(iParent, type); break; default: break; diff --git a/Fireworks/Core/src/FWGeometryTableViewManager.cc b/Fireworks/Core/src/FWGeometryTableViewManager.cc index 1fdc3a5af321f..22c397bd2dc24 100644 --- a/Fireworks/Core/src/FWGeometryTableViewManager.cc +++ b/Fireworks/Core/src/FWGeometryTableViewManager.cc @@ -11,6 +11,7 @@ // #include +#include #include "TFile.h" #include "TSystem.h" @@ -48,9 +49,9 @@ FWViewBase* FWGeometryTableViewManager::buildView(TEveWindowSlot* iParent, const FWViewType::EType typeId = (type == FWViewType::sName[FWViewType::kGeometryTable]) ? FWViewType::kGeometryTable : FWViewType::kOverlapTable; if (typeId == FWViewType::kGeometryTable) - view.reset(new FWGeometryTableView(iParent, &colorManager())); + view = std::make_shared(iParent, &colorManager()); else - view.reset(new FWOverlapTableView(iParent, &colorManager())); + view = std::make_shared(iParent, &colorManager()); view->setBackgroundColor(); m_views.push_back(std::shared_ptr(view)); diff --git a/Fireworks/Core/src/FWTriggerTableViewManager.cc b/Fireworks/Core/src/FWTriggerTableViewManager.cc index 6c976cb8bd16a..7d7801e51e7d3 100644 --- a/Fireworks/Core/src/FWTriggerTableViewManager.cc +++ b/Fireworks/Core/src/FWTriggerTableViewManager.cc @@ -12,8 +12,9 @@ // system include files #include -#include #include +#include +#include // user include files @@ -39,9 +40,9 @@ class FWViewBase* FWTriggerTableViewManager::buildView(TEveWindowSlot* iParent, std::shared_ptr view; if (type == FWViewType::sName[FWViewType::kTableHLT]) - view.reset(new FWHLTTriggerTableView(iParent)); + view = std::make_shared(iParent); else - view.reset(new FWL1TriggerTableView(iParent)); + view = std::make_shared(iParent); view->setProcessList(&(context().metadataManager()->processNamesInJob())); From 719b5e64b9aa86975fb616f518b611a402a0c749 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:29:44 +0100 Subject: [PATCH 337/418] [GENERATORS] Apply code checks/format --- .../src/CepGenEventGenerator.cc | 4 +- .../Herwig7Interface/src/Herwig7Interface.cc | 2 +- .../LHEInterface/src/LH5Reader.cc | 4 +- .../LHEInterface/src/LHEReader.cc | 4 +- .../Pythia6Interface/src/PtYDistributor.cc | 2 +- .../Pythia6Interface/src/Pythia6Service.cc | 4 +- .../plugins/Pythia8HepMC3Hadronizer.cc | 97 ++++++++++--------- .../Pythia8Interface/src/Py8GunBase.cc | 4 +- .../plugins/GenParticles2HepMCConverter.cc | 2 +- .../plugins/HTXSRivetProducer.cc | 2 +- .../src/HiggsTemplateCrossSections.cc | 8 +- .../src/BeamMomentumGunProducer.cc | 2 +- .../src/FileRandomKEThetaGunProducer.cc | 2 +- .../FileRandomMultiParticlePGunProducer.cc | 2 +- 14 files changed, 72 insertions(+), 67 deletions(-) diff --git a/GeneratorInterface/CepGenInterface/src/CepGenEventGenerator.cc b/GeneratorInterface/CepGenInterface/src/CepGenEventGenerator.cc index 4507f5d7ec415..a1cd0e42a19da 100644 --- a/GeneratorInterface/CepGenInterface/src/CepGenEventGenerator.cc +++ b/GeneratorInterface/CepGenInterface/src/CepGenEventGenerator.cc @@ -20,6 +20,8 @@ #include #include +#include + using namespace gen; CepGenEventGenerator::CepGenEventGenerator(const edm::ParameterSet& iConfig, edm::ConsumesCollector&& iC) @@ -85,7 +87,7 @@ bool CepGenEventGenerator::initializeForInternalPartons() { } bool CepGenEventGenerator::generatePartonsAndHadronize() { - event().reset(new HepMC::CepGenEvent(gen_->next())); + event() = std::make_unique(gen_->next()); event()->set_cross_section(xsec_); event()->weights().push_back(1.); return true; diff --git a/GeneratorInterface/Herwig7Interface/src/Herwig7Interface.cc b/GeneratorInterface/Herwig7Interface/src/Herwig7Interface.cc index 063676b55bce3..8ff321089d189 100644 --- a/GeneratorInterface/Herwig7Interface/src/Herwig7Interface.cc +++ b/GeneratorInterface/Herwig7Interface/src/Herwig7Interface.cc @@ -99,7 +99,7 @@ void Herwig7Interface::initRepository(const edm::ParameterSet &pset) { else runModeTemp.erase(0, pos + 1); - HwUI_.reset(new Herwig::HerwigUIProvider(pset, dumpConfig_, Herwig::RunMode::READ)); + HwUI_ = std::make_shared(pset, dumpConfig_, Herwig::RunMode::READ); edm::LogInfo("Herwig7Interface") << "HerwigUIProvider object with run mode " << HwUI_->runMode() << " created.\n"; // Chose run mode diff --git a/GeneratorInterface/LHEInterface/src/LH5Reader.cc b/GeneratorInterface/LHEInterface/src/LH5Reader.cc index dc64a6968ef14..a718b8827a7b1 100644 --- a/GeneratorInterface/LHEInterface/src/LH5Reader.cc +++ b/GeneratorInterface/LHEInterface/src/LH5Reader.cc @@ -233,7 +233,7 @@ namespace lhef { // Use temporary process info block to define const HEPRUP const HEPRUP heprup(tmprup); - curRunInfo.reset(new LHERunInfo(heprup)); + curRunInfo = std::make_shared(heprup); // Run info has now been set when a new file is encountered } // Handler should be modified to have these capabilities @@ -277,7 +277,7 @@ namespace lhef { // Use temporary event to construct const HEPEUP; const HEPEUP hepeup(tmp); - lheevent.reset(new LHEEvent(curRunInfo, hepeup)); + lheevent = std::make_shared(curRunInfo, hepeup); // Might have to add this capability later /* const XMLHandler::wgt_info &info = handler->weightsinevent; for (size_t i = 0; i < info.size(); ++i) { diff --git a/GeneratorInterface/LHEInterface/src/LHEReader.cc b/GeneratorInterface/LHEInterface/src/LHEReader.cc index 76a05926a3301..06f804b0febc8 100644 --- a/GeneratorInterface/LHEInterface/src/LHEReader.cc +++ b/GeneratorInterface/LHEInterface/src/LHEReader.cc @@ -489,7 +489,7 @@ namespace lhef { data.str(handler->buffer); handler->buffer.clear(); - curRunInfo.reset(new LHERunInfo(data)); + curRunInfo = std::make_shared(data); std::for_each(handler->headers.begin(), handler->headers.end(), @@ -521,7 +521,7 @@ namespace lhef { handler->buffer.clear(); std::shared_ptr lheevent; - lheevent.reset(new LHEEvent(curRunInfo, data)); + lheevent = std::make_shared(curRunInfo, data); const XMLHandler::wgt_info &info = handler->weightsinevent; for (size_t i = 0; i < info.size(); ++i) { double num = -1.0; diff --git a/GeneratorInterface/Pythia6Interface/src/PtYDistributor.cc b/GeneratorInterface/Pythia6Interface/src/PtYDistributor.cc index 2f8c9d9bdfbf5..26a872aa83e04 100644 --- a/GeneratorInterface/Pythia6Interface/src/PtYDistributor.cc +++ b/GeneratorInterface/Pythia6Interface/src/PtYDistributor.cc @@ -22,7 +22,7 @@ PtYDistributor::PtYDistributor(const edm::FileInPath& fip, int ybins = 50) : ptmax_(ptmax), ptmin_(ptmin), ymax_(ymax), ymin_(ymin), ptbins_(ptbins), ybins_(ybins) { // edm::FileInPath f1(input); - std::string fDataFile = fip.fullPath(); + const std::string& fDataFile = fip.fullPath(); std::cout << " File from " << fDataFile << std::endl; TFile f(fDataFile.c_str(), "READ"); diff --git a/GeneratorInterface/Pythia6Interface/src/Pythia6Service.cc b/GeneratorInterface/Pythia6Interface/src/Pythia6Service.cc index ba0be2ad86112..10a9360457a66 100644 --- a/GeneratorInterface/Pythia6Interface/src/Pythia6Service.cc +++ b/GeneratorInterface/Pythia6Interface/src/Pythia6Service.cc @@ -175,7 +175,7 @@ void Pythia6Service::setCSAParams() { for (size_t i = 0; i < SETCSAPARBUFSIZE; ++i) buf[i] = ' '; // Skip empty parameters. - if (iter->length() <= 0) + if (iter->empty()) continue; // Limit the size of the string to something which fits the buffer. size_t maxSize = iter->length() > (SETCSAPARBUFSIZE - 2) ? (SETCSAPARBUFSIZE - 2) : iter->length(); @@ -251,7 +251,7 @@ void Pythia6Service::setSLHAParams() { //std::cout << " start, end = " << start << " " << end << std::endl; std::string shortfile = iter->substr(start, end - start + 1); FileInPath f1(shortfile); - std::string file = f1.fullPath(); + const std::string& file = f1.fullPath(); /* // diff --git a/GeneratorInterface/Pythia8Interface/plugins/Pythia8HepMC3Hadronizer.cc b/GeneratorInterface/Pythia8Interface/plugins/Pythia8HepMC3Hadronizer.cc index 8d29061c09e8c..29b7f2be78be5 100644 --- a/GeneratorInterface/Pythia8Interface/plugins/Pythia8HepMC3Hadronizer.cc +++ b/GeneratorInterface/Pythia8Interface/plugins/Pythia8HepMC3Hadronizer.cc @@ -218,8 +218,8 @@ Pythia8HepMC3Hadronizer::Pythia8HepMC3Hadronizer(const edm::ParameterSet ¶ms if (params.exists("reweightGen")) { edm::LogInfo("Pythia8Interface") << "Start setup for reweightGen"; edm::ParameterSet rgParams = params.getParameter("reweightGen"); - fReweightUserHook.reset( - new PtHatReweightUserHook(rgParams.getParameter("pTRef"), rgParams.getParameter("power"))); + fReweightUserHook = std::make_shared(rgParams.getParameter("pTRef"), + rgParams.getParameter("power")); edm::LogInfo("Pythia8Interface") << "End setup for reweightGen"; } if (params.exists("reweightGenEmp")) { @@ -229,29 +229,30 @@ Pythia8HepMC3Hadronizer::Pythia8HepMC3Hadronizer(const edm::ParameterSet ¶ms std::string tuneName = ""; if (rgeParams.exists("tune")) tuneName = rgeParams.getParameter("tune"); - fReweightEmpUserHook.reset(new PtHatEmpReweightUserHook(tuneName)); + fReweightEmpUserHook = std::make_shared(tuneName); edm::LogInfo("Pythia8Interface") << "End setup for reweightGenEmp"; } if (params.exists("reweightGenRap")) { edm::LogInfo("Pythia8Interface") << "Start setup for reweightGenRap"; edm::ParameterSet rgrParams = params.getParameter("reweightGenRap"); - fReweightRapUserHook.reset(new RapReweightUserHook(rgrParams.getParameter("yLabSigmaFunc"), - rgrParams.getParameter("yLabPower"), - rgrParams.getParameter("yCMSigmaFunc"), - rgrParams.getParameter("yCMPower"), - rgrParams.getParameter("pTHatMin"), - rgrParams.getParameter("pTHatMax"))); + fReweightRapUserHook = std::make_shared(rgrParams.getParameter("yLabSigmaFunc"), + rgrParams.getParameter("yLabPower"), + rgrParams.getParameter("yCMSigmaFunc"), + rgrParams.getParameter("yCMPower"), + rgrParams.getParameter("pTHatMin"), + rgrParams.getParameter("pTHatMax")); edm::LogInfo("Pythia8Interface") << "End setup for reweightGenRap"; } if (params.exists("reweightGenPtHatRap")) { edm::LogInfo("Pythia8Interface") << "Start setup for reweightGenPtHatRap"; edm::ParameterSet rgrParams = params.getParameter("reweightGenPtHatRap"); - fReweightPtHatRapUserHook.reset(new PtHatRapReweightUserHook(rgrParams.getParameter("yLabSigmaFunc"), - rgrParams.getParameter("yLabPower"), - rgrParams.getParameter("yCMSigmaFunc"), - rgrParams.getParameter("yCMPower"), - rgrParams.getParameter("pTHatMin"), - rgrParams.getParameter("pTHatMax"))); + fReweightPtHatRapUserHook = + std::make_shared(rgrParams.getParameter("yLabSigmaFunc"), + rgrParams.getParameter("yLabPower"), + rgrParams.getParameter("yCMSigmaFunc"), + rgrParams.getParameter("yCMPower"), + rgrParams.getParameter("pTHatMin"), + rgrParams.getParameter("pTHatMax")); edm::LogInfo("Pythia8Interface") << "End setup for reweightGenPtHatRap"; } @@ -265,7 +266,7 @@ Pythia8HepMC3Hadronizer::Pythia8HepMC3Hadronizer(const edm::ParameterSet ¶ms edm::ParameterSet jmParams = params.getUntrackedParameter("jetMatching"); std::string scheme = jmParams.getParameter("scheme"); if (scheme == "Madgraph" || scheme == "MadgraphFastJet") { - fJetMatchingHook.reset(new JetMatchingHook(jmParams, &fMasterGen->info)); + fJetMatchingHook = std::make_shared(jmParams, &fMasterGen->info); } } @@ -304,17 +305,17 @@ Pythia8HepMC3Hadronizer::Pythia8HepMC3Hadronizer(const edm::ParameterSet ¶ms EV1_nFinalMode = 0; if (params.exists("EV1_nFinalMode")) EV1_nFinalMode = params.getParameter("EV1_nFinalMode"); - fEmissionVetoHook1.reset(new EmissionVetoHook1(EV1_nFinal, - EV1_vetoOn, - EV1_maxVetoCount, - EV1_pThardMode, - EV1_pTempMode, - EV1_emittedMode, - EV1_pTdefMode, - EV1_MPIvetoOn, - EV1_QEDvetoMode, - EV1_nFinalMode, - 0)); + fEmissionVetoHook1 = std::make_shared(EV1_nFinal, + EV1_vetoOn, + EV1_maxVetoCount, + EV1_pThardMode, + EV1_pTempMode, + EV1_emittedMode, + EV1_pTdefMode, + EV1_MPIvetoOn, + EV1_QEDvetoMode, + EV1_nFinalMode, + 0); } if (params.exists("UserCustomization")) { @@ -364,7 +365,7 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { } if (!fUserHooksVector.get()) - fUserHooksVector.reset(new UserHooksVector); + fUserHooksVector = std::make_shared(); (fUserHooksVector->hooks).clear(); if (fReweightUserHook.get()) @@ -389,7 +390,7 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { "are : jetMatching, emissionVeto1 \n"; if (!fEmissionVetoHook.get()) - fEmissionVetoHook.reset(new PowhegHooks()); + fEmissionVetoHook = std::make_shared(); edm::LogInfo("Pythia8Interface") << "Turning on Emission Veto Hook from pythia8 code"; (fUserHooksVector->hooks).push_back(fEmissionVetoHook); @@ -399,7 +400,7 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { if (PowhegRes) { edm::LogInfo("Pythia8Interface") << "Turning on resonance scale setting from CMSSW Pythia8Interface"; if (!fPowhegResHook.get()) - fPowhegResHook.reset(new PowhegResHook()); + fPowhegResHook = std::make_shared(); (fUserHooksVector->hooks).push_back(fPowhegResHook); } @@ -407,7 +408,7 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { if (PowhegBB4L) { edm::LogInfo("Pythia8Interface") << "Turning on BB4l hook from CMSSW Pythia8Interface"; if (!fPowhegHooksBB4L.get()) - fPowhegHooksBB4L.reset(new PowhegHooksBB4L()); + fPowhegHooksBB4L = std::make_shared(); (fUserHooksVector->hooks).push_back(fPowhegHooksBB4L); } @@ -422,7 +423,7 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { if (internalMatching) { if (!fJetMatchingPy8InternalHook.get()) - fJetMatchingPy8InternalHook.reset(new Pythia8::JetMatchingMadgraph); + fJetMatchingPy8InternalHook = std::make_shared(); (fUserHooksVector->hooks).push_back(fJetMatchingPy8InternalHook); } @@ -436,7 +437,7 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { ? 2 : 0); if (!fMergingHook.get()) - fMergingHook.reset(new Pythia8::amcnlo_unitarised_interface(scheme)); + fMergingHook = std::make_shared(scheme); (fUserHooksVector->hooks).push_back(fMergingHook); } @@ -444,7 +445,7 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { if (biasedTauDecayer) { if (!fBiasedTauDecayer.get()) { Pythia8::Info localInfo = fMasterGen->info; - fBiasedTauDecayer.reset(new BiasedTauDecayer(&localInfo, &(fMasterGen->settings))); + fBiasedTauDecayer = std::make_shared(&localInfo, &(fMasterGen->settings)); } std::vector handledParticles; handledParticles.push_back(15); @@ -453,13 +454,13 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { bool resonanceDecayFilter = fMasterGen->settings.flag("ResonanceDecayFilter:filter"); if (resonanceDecayFilter) { - fResonanceDecayFilterHook.reset(new ResonanceDecayFilterHook); + fResonanceDecayFilterHook = std::make_shared(); (fUserHooksVector->hooks).push_back(fResonanceDecayFilterHook); } bool PTFilter = fMasterGen->settings.flag("PTFilter:filter"); if (PTFilter) { - fPTFilterHook.reset(new PTFilterHook); + fPTFilterHook = std::make_shared(); (fUserHooksVector->hooks).push_back(fPTFilterHook); } @@ -501,7 +502,7 @@ bool Pythia8HepMC3Hadronizer::initializeForInternalPartons() { if (useEvtGen) { edm::LogInfo("Pythia8Hadronizer") << "Creating and initializing pythia8 EvtGen plugin"; if (!evtgenDecays.get()) { - evtgenDecays.reset(new EvtGenDecays(fMasterGen.get(), evtgenDecFile, evtgenPdlFile)); + evtgenDecays = std::make_shared(fMasterGen.get(), evtgenDecFile, evtgenPdlFile); for (unsigned int i = 0; i < evtgenUserFiles.size(); i++) evtgenDecays->readDecayFile(evtgenUserFiles.at(i)); } @@ -516,7 +517,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { bool status = false, status1 = false; if (!fUserHooksVector.get()) - fUserHooksVector.reset(new UserHooksVector); + fUserHooksVector = std::make_shared(); (fUserHooksVector->hooks).clear(); if (fReweightUserHook.get()) @@ -548,7 +549,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { "are : jetMatching, emissionVeto1 \n"; if (!fEmissionVetoHook.get()) - fEmissionVetoHook.reset(new PowhegHooks()); + fEmissionVetoHook = std::make_shared(); edm::LogInfo("Pythia8Interface") << "Turning on Emission Veto Hook from pythia8 code"; (fUserHooksVector->hooks).push_back(fEmissionVetoHook); @@ -558,7 +559,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { if (PowhegRes) { edm::LogInfo("Pythia8Interface") << "Turning on resonance scale setting from CMSSW Pythia8Interface"; if (!fPowhegResHook.get()) - fPowhegResHook.reset(new PowhegResHook()); + fPowhegResHook = std::make_shared(); (fUserHooksVector->hooks).push_back(fPowhegResHook); } @@ -566,7 +567,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { if (PowhegBB4L) { edm::LogInfo("Pythia8Interface") << "Turning on BB4l hook from CMSSW Pythia8Interface"; if (!fPowhegHooksBB4L.get()) - fPowhegHooksBB4L.reset(new PowhegHooksBB4L()); + fPowhegHooksBB4L = std::make_shared(); (fUserHooksVector->hooks).push_back(fPowhegHooksBB4L); } @@ -581,7 +582,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { if (internalMatching) { if (!fJetMatchingPy8InternalHook.get()) - fJetMatchingPy8InternalHook.reset(new Pythia8::JetMatchingMadgraph); + fJetMatchingPy8InternalHook = std::make_shared(); (fUserHooksVector->hooks).push_back(fJetMatchingPy8InternalHook); } @@ -595,7 +596,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { ? 2 : 0); if (!fMergingHook.get()) - fMergingHook.reset(new Pythia8::amcnlo_unitarised_interface(scheme)); + fMergingHook = std::make_shared(scheme); (fUserHooksVector->hooks).push_back(fMergingHook); } @@ -603,7 +604,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { if (biasedTauDecayer) { if (!fBiasedTauDecayer.get()) { Pythia8::Info localInfo = fMasterGen->info; - fBiasedTauDecayer.reset(new BiasedTauDecayer(&localInfo, &(fMasterGen->settings))); + fBiasedTauDecayer = std::make_shared(&localInfo, &(fMasterGen->settings)); } std::vector handledParticles; handledParticles.push_back(15); @@ -612,13 +613,13 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { bool resonanceDecayFilter = fMasterGen->settings.flag("ResonanceDecayFilter:filter"); if (resonanceDecayFilter) { - fResonanceDecayFilterHook.reset(new ResonanceDecayFilterHook); + fResonanceDecayFilterHook = std::make_shared(); (fUserHooksVector->hooks).push_back(fResonanceDecayFilterHook); } bool PTFilter = fMasterGen->settings.flag("PTFilter:filter"); if (PTFilter) { - fPTFilterHook.reset(new PTFilterHook); + fPTFilterHook = std::make_shared(); (fUserHooksVector->hooks).push_back(fPTFilterHook); } @@ -637,7 +638,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { status = fMasterGen->init(); } else { - lhaUP.reset(new LHAupLesHouches()); + lhaUP = std::make_shared(); lhaUP->setScalesFromLHEF(fMasterGen->settings.flag("Beams:setProductionScalesFromLHEF")); lhaUP->loadRunInfo(lheRunInfo()); @@ -672,7 +673,7 @@ bool Pythia8HepMC3Hadronizer::initializeForExternalPartons() { if (useEvtGen) { edm::LogInfo("Pythia8Hadronizer") << "Creating and initializing pythia8 EvtGen plugin"; if (!evtgenDecays.get()) { - evtgenDecays.reset(new EvtGenDecays(fMasterGen.get(), evtgenDecFile, evtgenPdlFile)); + evtgenDecays = std::make_shared(fMasterGen.get(), evtgenDecFile, evtgenPdlFile); for (unsigned int i = 0; i < evtgenUserFiles.size(); i++) evtgenDecays->readDecayFile(evtgenUserFiles.at(i)); } diff --git a/GeneratorInterface/Pythia8Interface/src/Py8GunBase.cc b/GeneratorInterface/Pythia8Interface/src/Py8GunBase.cc index 77af17e0b5114..b560d45205be8 100644 --- a/GeneratorInterface/Pythia8Interface/src/Py8GunBase.cc +++ b/GeneratorInterface/Pythia8Interface/src/Py8GunBase.cc @@ -1,3 +1,5 @@ +#include + #include "GeneratorInterface/Pythia8Interface/interface/Py8GunBase.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Concurrency/interface/SharedResourceNames.h" @@ -45,7 +47,7 @@ namespace gen { if (useEvtGen) { edm::LogInfo("Pythia8Interface") << "Creating and initializing pythia8 EvtGen plugin"; - evtgenDecays.reset(new EvtGenDecays(fMasterGen.get(), evtgenDecFile, evtgenPdlFile)); + evtgenDecays = std::make_shared(fMasterGen.get(), evtgenDecFile, evtgenPdlFile); for (unsigned int i = 0; i < evtgenUserFiles.size(); i++) evtgenDecays->readDecayFile(evtgenUserFiles.at(i)); } diff --git a/GeneratorInterface/RivetInterface/plugins/GenParticles2HepMCConverter.cc b/GeneratorInterface/RivetInterface/plugins/GenParticles2HepMCConverter.cc index d6973b72be907..90c87cb2d59f2 100644 --- a/GeneratorInterface/RivetInterface/plugins/GenParticles2HepMCConverter.cc +++ b/GeneratorInterface/RivetInterface/plugins/GenParticles2HepMCConverter.cc @@ -99,7 +99,7 @@ void GenParticles2HepMCConverter::produce(edm::Event& event, const edm::EventSet hepmc_event.weights() = genEventInfoHandle->weights(); // add dummy weight if necessary - if (hepmc_event.weights().size() == 0) { + if (hepmc_event.weights().empty()) { hepmc_event.weights().push_back(1.); } diff --git a/GeneratorInterface/RivetInterface/plugins/HTXSRivetProducer.cc b/GeneratorInterface/RivetInterface/plugins/HTXSRivetProducer.cc index 4ea9b9c594b23..75a327ad52171 100644 --- a/GeneratorInterface/RivetInterface/plugins/HTXSRivetProducer.cc +++ b/GeneratorInterface/RivetInterface/plugins/HTXSRivetProducer.cc @@ -84,7 +84,7 @@ void HTXSRivetProducer::produce(edm::Event& iEvent, const edm::EventSetup&) { ConstGenVertexPtr HSvtx = myGenEvent->vertices()[0]; if (HSvtx) { - for (auto ptcl : HepMCUtils::particles(HSvtx, Relatives::CHILDREN)) { + for (const auto& ptcl : HepMCUtils::particles(HSvtx, Relatives::CHILDREN)) { if (std::abs(ptcl->pdg_id()) == 24) ++nWs; if (ptcl->pdg_id() == 23) diff --git a/GeneratorInterface/RivetInterface/src/HiggsTemplateCrossSections.cc b/GeneratorInterface/RivetInterface/src/HiggsTemplateCrossSections.cc index 601cce14c70fa..6b3eb735271d2 100644 --- a/GeneratorInterface/RivetInterface/src/HiggsTemplateCrossSections.cc +++ b/GeneratorInterface/RivetInterface/src/HiggsTemplateCrossSections.cc @@ -73,7 +73,7 @@ namespace Rivet { /// @brief Checks whether the input particle has a parent with a given PDGID bool hasParent(const ConstGenParticlePtr &ptcl, int pdgID) { - for (auto parent : HepMCUtils::particles(ptcl->production_vertex(), Relatives::PARENTS)) + for (const auto &parent : HepMCUtils::particles(ptcl->production_vertex(), Relatives::PARENTS)) if (parent->pdg_id() == pdgID) return true; return false; @@ -191,7 +191,7 @@ namespace Rivet { FourVector uncatV_v4(0, 0, 0, 0); int nWs = 0, nZs = 0; if (isVH(prodMode)) { - for (auto ptcl : HepMCUtils::particles(HSvtx, Relatives::CHILDREN)) { + for (const auto &ptcl : HepMCUtils::particles(HSvtx, Relatives::CHILDREN)) { if (PID::isW(ptcl->pdg_id())) { ++nWs; cat.V = Particle(ptcl); @@ -204,7 +204,7 @@ namespace Rivet { if (nWs + nZs > 0) cat.V = getLastInstance(cat.V); else { - for (auto ptcl : HepMCUtils::particles(HSvtx, Relatives::CHILDREN)) { + for (const auto &ptcl : HepMCUtils::particles(HSvtx, Relatives::CHILDREN)) { if (!PID::isHiggs(ptcl->pdg_id())) { uncatV_decays += Particle(ptcl); uncatV_p4 += Particle(ptcl).momentum(); @@ -236,7 +236,7 @@ namespace Rivet { Particles Ws; if (prodMode == HTXS::TTH || prodMode == HTXS::TH) { // loop over particles produced in hard-scatter vertex - for (auto ptcl : HepMCUtils::particles(HSvtx, Relatives::CHILDREN)) { + for (const auto &ptcl : HepMCUtils::particles(HSvtx, Relatives::CHILDREN)) { if (!PID::isTop(ptcl->pdg_id())) continue; Particle top = getLastInstance(Particle(ptcl)); diff --git a/IOMC/ParticleGuns/src/BeamMomentumGunProducer.cc b/IOMC/ParticleGuns/src/BeamMomentumGunProducer.cc index 5c8e05ba146e6..4193fec6e73b6 100644 --- a/IOMC/ParticleGuns/src/BeamMomentumGunProducer.cc +++ b/IOMC/ParticleGuns/src/BeamMomentumGunProducer.cc @@ -47,7 +47,7 @@ namespace edm { << "Beam vertex offset (cm) " << xoff_ << ":" << yoff_ << " and z position " << zpos_; edm::FileInPath fp = pgun_params.getParameter("FileName"); - std::string infileName = fp.fullPath(); + const std::string& infileName = fp.fullPath(); fFile_ = new TFile(infileName.c_str()); fFile_->GetObject("EventTree", fTree_); diff --git a/IOMC/ParticleGuns/src/FileRandomKEThetaGunProducer.cc b/IOMC/ParticleGuns/src/FileRandomKEThetaGunProducer.cc index f262c37a5128f..d6c7ab9c0362d 100644 --- a/IOMC/ParticleGuns/src/FileRandomKEThetaGunProducer.cc +++ b/IOMC/ParticleGuns/src/FileRandomKEThetaGunProducer.cc @@ -23,7 +23,7 @@ FileRandomKEThetaGunProducer::FileRandomKEThetaGunProducer(const edm::ParameterS edm::ParameterSet pgun_params = pset.getParameter("PGunParameters"); edm::FileInPath fp = pgun_params.getParameter("File"); - std::string file = fp.fullPath(); + const std::string& file = fp.fullPath(); particleN = pgun_params.getParameter("Particles"); if (particleN <= 0) particleN = 1; diff --git a/IOMC/ParticleGuns/src/FileRandomMultiParticlePGunProducer.cc b/IOMC/ParticleGuns/src/FileRandomMultiParticlePGunProducer.cc index 0b254951ab2f5..6557424d10dbe 100644 --- a/IOMC/ParticleGuns/src/FileRandomMultiParticlePGunProducer.cc +++ b/IOMC/ParticleGuns/src/FileRandomMultiParticlePGunProducer.cc @@ -24,7 +24,7 @@ FileRandomMultiParticlePGunProducer::FileRandomMultiParticlePGunProducer(const P fMinP_ = pgunParams.getParameter("MinP"); fMaxP_ = pgunParams.getParameter("MaxP"); edm::FileInPath fp = pgunParams.getParameter("FileName"); - std::string file = fp.fullPath(); + const std::string& file = fp.fullPath(); produces("unsmeared"); produces(); From e242fdd1d3f2b55c3b66286b7fa5503f4c9de926 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:29:53 +0100 Subject: [PATCH 338/418] [GEOMETRY-UPGRADE] Apply code checks/format --- Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalPassive.cc | 1 + Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalPassive.cc b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalPassive.cc index df1bb8b20d8ce..c164d18b17ab2 100644 --- a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalPassive.cc +++ b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalPassive.cc @@ -32,6 +32,7 @@ struct HGCalPassive { double moduleThick = args.value("ModuleThick"); // Thickness of the overall module int sectors = args.value("Sectors"); // number of phi sectors (cassettes) std::vector tagsector; // Tag of the sector (to be added to name) + tagsector.reserve(sectors); for (int k = 0; k < sectors; ++k) tagsector.emplace_back("F" + std::to_string(k)); int position = args.value("Position"); // 0 if -z; 1 if +z diff --git a/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc b/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc index 475de8f8ab1e4..e21944679c301 100644 --- a/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc +++ b/Geometry/MTDNumberingBuilder/plugins/DDCmsMTDConstruction.cc @@ -29,7 +29,7 @@ class DDNameFilter : public DDFilter { void veto(const std::string& veto) { veto_.emplace_back(veto); } bool accept(const DDExpandedView& ev) const final { - if (allowedNS_.size() == 0 && allowed_.size() == 0 && veto_.size() == 0) { + if (allowedNS_.empty() && allowed_.empty() && veto_.empty()) { return true; } bool out(false); @@ -37,7 +37,7 @@ class DDNameFilter : public DDFilter { for (const auto& test : allowedNS_) { if (currentNSName.find(test) != std::string::npos) { out = true; - if (allowed_.size() > 0 || veto_.size() > 0) { + if (!allowed_.empty() || !veto_.empty()) { std::string_view currentName(ev.logicalPart().name().name()); for (const auto& test : veto_) { if (currentName.find(test) != std::string::npos) { From c6d4124d9c8b2bb002db61d3b65377ad6873d8d4 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:30:01 +0100 Subject: [PATCH 339/418] [HLT] Apply code checks/format --- HLTrigger/Tools/bin/hltDiff.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HLTrigger/Tools/bin/hltDiff.cc b/HLTrigger/Tools/bin/hltDiff.cc index 36a6dc8213190..cef92db1a4fd4 100644 --- a/HLTrigger/Tools/bin/hltDiff.cc +++ b/HLTrigger/Tools/bin/hltDiff.cc @@ -697,7 +697,7 @@ class JsonOutputProducer { // methods JsonOutputProducer(bool _writeJson, std::string _file_name) : writeJson(_writeJson), out_filename_base(std::move(_file_name)) { - useSingleOutFile = out_filename_base.length() > 0; + useSingleOutFile = !out_filename_base.empty(); } JsonEvent& pushEvent(int _run, int _lumi, int _event) { From 921c279200c126d5c357347b94ba652be910409a Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:30:09 +0100 Subject: [PATCH 340/418] [L1-UPGRADE] Apply code checks/format --- .../src/MPCoincidenceFilter.cc | 32 +++++++++---------- .../plugins/L1GTObjectBoardWriter.cc | 2 +- L1Trigger/Phase2L1GT/plugins/L1GTProducer.cc | 6 ++-- .../plugins/L1MetPfProducer.cc | 2 +- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/L1Trigger/DTTriggerPhase2/src/MPCoincidenceFilter.cc b/L1Trigger/DTTriggerPhase2/src/MPCoincidenceFilter.cc index 0a37fe9c717dd..e82a7abb84ab4 100644 --- a/L1Trigger/DTTriggerPhase2/src/MPCoincidenceFilter.cc +++ b/L1Trigger/DTTriggerPhase2/src/MPCoincidenceFilter.cc @@ -58,9 +58,9 @@ std::vector MPCoincidenceFilter::filter(std::vector MPCoincidenceFilter::filter(std::vector qcut) @@ -120,15 +120,15 @@ std::vector MPCoincidenceFilter::filter(std::vector MPCoincidenceFilter::filter(std::vector MPCoincidenceFilter::filter(std::vector 0.9) { - co_found = 1; + co_found = true; break; } else if (wheel == -2 && k < -0.9) { - co_found = 1; + co_found = true; break; } } @@ -180,7 +180,7 @@ std::vector MPCoincidenceFilter::filter(std::vector> packCollection(const std::vector& collection) packed.emplace_back(0); } } else if constexpr (std::is_same_v) { - if (packed.size() < 1) { + if (packed.empty()) { packed.emplace_back(0); } } diff --git a/L1Trigger/Phase2L1GT/plugins/L1GTProducer.cc b/L1Trigger/Phase2L1GT/plugins/L1GTProducer.cc index 6da0d5766cb81..b0671a5771180 100644 --- a/L1Trigger/Phase2L1GT/plugins/L1GTProducer.cc +++ b/L1Trigger/Phase2L1GT/plugins/L1GTProducer.cc @@ -229,7 +229,7 @@ namespace l1t { void L1GTProducer::produceGTTPromptHtSum(edm::Event &event) const { std::unique_ptr outputCollection = std::make_unique(); const std::vector &collection = event.get(gttPromptHtSumToken_); - if (collection.size() > 0) { + if (!collection.empty()) { const l1t::EtSum &obj = collection[0]; l1tmhtemu::EtMiss htMiss; htMiss.Et = obj.p4().energy(); @@ -251,7 +251,7 @@ namespace l1t { void L1GTProducer::produceGTTDisplacedHtSum(edm::Event &event) const { std::unique_ptr outputCollection = std::make_unique(); const std::vector &collection = event.get(gttDisplacedHtSumToken_); - if (collection.size() > 0) { + if (!collection.empty()) { const l1t::EtSum &obj = collection[0]; l1tmhtemu::EtMiss htMiss; htMiss.Et = obj.p4().energy(); @@ -273,7 +273,7 @@ namespace l1t { void L1GTProducer::produceGTTEtSum(edm::Event &event) const { std::unique_ptr outputCollection = std::make_unique(); const std::vector &collection = event.get(gttEtSumToken_); - if (collection.size() > 0) { + if (!collection.empty()) { const l1t::EtSum &obj = collection[0]; P2GTCandidate gtObj( 0, reco::ParticleState::PolarLorentzVector(scales_.to_pT(obj.hwPt()), 0, scales_.to_phi(obj.hwPhi()), 0)); diff --git a/L1Trigger/Phase2L1ParticleFlow/plugins/L1MetPfProducer.cc b/L1Trigger/Phase2L1ParticleFlow/plugins/L1MetPfProducer.cc index 20eb233ddf235..efcb7e78d02fc 100644 --- a/L1Trigger/Phase2L1ParticleFlow/plugins/L1MetPfProducer.cc +++ b/L1Trigger/Phase2L1ParticleFlow/plugins/L1MetPfProducer.cc @@ -85,7 +85,7 @@ L1MetPfProducer::L1MetPfProducer(const edm::ParameterSet& cfg) maxCands_(cfg.getParameter("maxCands")), modelVersion_(cfg.getParameter("modelVersion")) { produces>(); - useMlModel_ = (modelVersion_.length() > 0); + useMlModel_ = (!modelVersion_.empty()); if (useMlModel_) { hls4mlEmulator::ModelLoader loader(modelVersion_); model = loader.load_model(); From bd3c537dd0eeb2da7aecb1007b9a3b7c58a42078 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:30:17 +0100 Subject: [PATCH 341/418] [DAQ-L1] Apply code checks/format --- L1TriggerScouting/OnlineProcessing/plugins/FinalBxSelector.cc | 2 +- L1TriggerScouting/OnlineProcessing/plugins/JetBxSelector.cc | 2 +- L1TriggerScouting/OnlineProcessing/plugins/MaskOrbitBx.cc | 2 +- L1TriggerScouting/OnlineProcessing/plugins/MuBxSelector.cc | 2 +- .../OnlineProcessing/plugins/MuTagJetBxSelector.cc | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/L1TriggerScouting/OnlineProcessing/plugins/FinalBxSelector.cc b/L1TriggerScouting/OnlineProcessing/plugins/FinalBxSelector.cc index f17e950ba3e79..30267b29bcaf2 100644 --- a/L1TriggerScouting/OnlineProcessing/plugins/FinalBxSelector.cc +++ b/L1TriggerScouting/OnlineProcessing/plugins/FinalBxSelector.cc @@ -22,7 +22,7 @@ class FinalBxSelector : public edm::stream::EDFilter<> { public: explicit FinalBxSelector(const edm::ParameterSet&); - ~FinalBxSelector() {} + ~FinalBxSelector() override {} static void fillDescriptions(edm::ConfigurationDescriptions&); private: diff --git a/L1TriggerScouting/OnlineProcessing/plugins/JetBxSelector.cc b/L1TriggerScouting/OnlineProcessing/plugins/JetBxSelector.cc index a05f2acc21fe9..a6f3e9c6fb08d 100644 --- a/L1TriggerScouting/OnlineProcessing/plugins/JetBxSelector.cc +++ b/L1TriggerScouting/OnlineProcessing/plugins/JetBxSelector.cc @@ -26,7 +26,7 @@ using namespace l1ScoutingRun3; class JetBxSelector : public edm::stream::EDProducer<> { public: explicit JetBxSelector(const edm::ParameterSet&); - ~JetBxSelector() {} + ~JetBxSelector() override {} static void fillDescriptions(edm::ConfigurationDescriptions&); private: diff --git a/L1TriggerScouting/OnlineProcessing/plugins/MaskOrbitBx.cc b/L1TriggerScouting/OnlineProcessing/plugins/MaskOrbitBx.cc index 4c571358c9d4e..0a2176b6c2c6a 100644 --- a/L1TriggerScouting/OnlineProcessing/plugins/MaskOrbitBx.cc +++ b/L1TriggerScouting/OnlineProcessing/plugins/MaskOrbitBx.cc @@ -27,7 +27,7 @@ template class MaskOrbitBx : public edm::stream::EDProducer<> { public: explicit MaskOrbitBx(const edm::ParameterSet&); - ~MaskOrbitBx() {} + ~MaskOrbitBx() override {} static void fillDescriptions(edm::ConfigurationDescriptions&); private: diff --git a/L1TriggerScouting/OnlineProcessing/plugins/MuBxSelector.cc b/L1TriggerScouting/OnlineProcessing/plugins/MuBxSelector.cc index 4a78fb4029e1b..a8bc511c4b80b 100644 --- a/L1TriggerScouting/OnlineProcessing/plugins/MuBxSelector.cc +++ b/L1TriggerScouting/OnlineProcessing/plugins/MuBxSelector.cc @@ -26,7 +26,7 @@ using namespace l1ScoutingRun3; class MuBxSelector : public edm::stream::EDProducer<> { public: explicit MuBxSelector(const edm::ParameterSet&); - ~MuBxSelector() {} + ~MuBxSelector() override {} static void fillDescriptions(edm::ConfigurationDescriptions&); private: diff --git a/L1TriggerScouting/OnlineProcessing/plugins/MuTagJetBxSelector.cc b/L1TriggerScouting/OnlineProcessing/plugins/MuTagJetBxSelector.cc index 27f386ed77572..630aa335337c4 100644 --- a/L1TriggerScouting/OnlineProcessing/plugins/MuTagJetBxSelector.cc +++ b/L1TriggerScouting/OnlineProcessing/plugins/MuTagJetBxSelector.cc @@ -31,7 +31,7 @@ using namespace l1ScoutingRun3; class MuTagJetBxSelector : public edm::stream::EDProducer<> { public: explicit MuTagJetBxSelector(const edm::ParameterSet&); - ~MuTagJetBxSelector() {} + ~MuTagJetBxSelector() override {} static void fillDescriptions(edm::ConfigurationDescriptions&); private: From 30ec728d287d8176b7da21e322772aa95a19c1fa Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:30:25 +0100 Subject: [PATCH 342/418] [SIMULATION] Apply code checks/format --- Mixing/Base/src/BMixingModule.cc | 10 +++++----- Mixing/Base/src/PileUp.cc | 8 ++++---- SimG4CMS/Calo/plugins/HGCalTestGuardRing.cc | 2 +- SimG4CMS/Calo/plugins/HGCalTestPartialWaferHits.cc | 2 +- SimG4CMS/Calo/plugins/HGCalTestScintHits.cc | 2 +- SimG4CMS/Calo/src/CaloMeanResponse.cc | 2 +- SimG4CMS/Calo/src/HGCScintSD.cc | 2 +- SimG4CMS/Calo/src/HGCalNumberingScheme.cc | 2 +- SimG4Core/CustomPhysics/src/CMSAntiSQ.cc | 6 +++--- SimG4Core/CustomPhysics/src/CMSSQ.cc | 6 +++--- SimG4Core/CustomPhysics/src/CMSSQNeutronAnnih.cc | 10 +++++----- SimG4Core/CustomPhysics/src/CustomParticleFactory.cc | 6 +++--- SimG4Core/CustomPhysics/src/G4ProcessHelper.cc | 2 +- SimG4Core/Generators/src/Generator3.cc | 10 +++++----- SimMuon/Neutron/plugins/NeutronHitsCollector.cc | 6 +++--- TauAnalysis/MCEmbeddingTools/plugins/CaloCleaner.cc | 2 +- TauAnalysis/MCEmbeddingTools/plugins/MuonDetCleaner.cc | 2 +- TauAnalysis/MCEmbeddingTools/plugins/TrackerCleaner.cc | 2 +- 18 files changed, 41 insertions(+), 41 deletions(-) diff --git a/Mixing/Base/src/BMixingModule.cc b/Mixing/Base/src/BMixingModule.cc index 5a9dfce8c2bf0..c626c19b3eff4 100644 --- a/Mixing/Base/src/BMixingModule.cc +++ b/Mixing/Base/src/BMixingModule.cc @@ -43,7 +43,7 @@ namespace { //in case of DB access, do not try to load anything from the PSet, but wait for beginRun. edm::LogError("BMixingModule") << "Will read from DB: reset to a dummy PileUp object."; std::unique_ptr h; - pileupconfig.reset(new edm::PileUpConfig(sourceName, 0.0, h, playback)); + pileupconfig = std::make_shared(sourceName, 0.0, h, playback); return pileupconfig; } if (type_ != "none") { @@ -51,7 +51,7 @@ namespace { edm::ParameterSet psin_average = psin.getParameter("nbPileupEvents"); if (psin_average.exists("averageNumber")) { averageNumber = psin_average.getParameter("averageNumber"); - pileupconfig.reset(new edm::PileUpConfig(sourceName, averageNumber, h, playback)); + pileupconfig = std::make_shared(sourceName, averageNumber, h, playback); edm::LogInfo("MixingModule") << " Created source " << sourceName << " with averageNumber " << averageNumber; } else if (psin_average.exists("fileName") && psin_average.exists("histoName")) { std::string histoFileName = psin_average.getUntrackedParameter("fileName"); @@ -79,7 +79,7 @@ namespace { // Get the averageNumber from the histo averageNumber = h->GetMean(); - pileupconfig.reset(new edm::PileUpConfig(sourceName, averageNumber, h, playback)); + pileupconfig = std::make_shared(sourceName, averageNumber, h, playback); edm::LogInfo("MixingModule") << " Created source " << sourceName << " with averageNumber " << averageNumber; } else if (psin_average.exists("probFunctionVariable") && psin_average.exists("probValue") && @@ -155,14 +155,14 @@ namespace { outfile->Close(); outfile->Delete(); - pileupconfig.reset(new edm::PileUpConfig(sourceName, averageNumber, hprob, playback)); + pileupconfig = std::make_shared(sourceName, averageNumber, hprob, playback); edm::LogInfo("MixingModule") << " Created source " << sourceName << " with averageNumber " << averageNumber; } //special for pileup input else if (sourceName == "input" && psin_average.exists("Lumi") && psin_average.exists("sigmaInel")) { averageNumber = psin_average.getParameter("Lumi") * psin_average.getParameter("sigmaInel") * ps.getParameter("bunchspace") / 1000 * 3564. / 2808.; //FIXME - pileupconfig.reset(new edm::PileUpConfig(sourceName, averageNumber, h, playback)); + pileupconfig = std::make_shared(sourceName, averageNumber, h, playback); edm::LogInfo("MixingModule") << " Created source " << sourceName << " with minBunch,maxBunch " << minb << " " << maxb; edm::LogInfo("MixingModule") << " Luminosity configuration, average number used is " << averageNumber; diff --git a/Mixing/Base/src/PileUp.cc b/Mixing/Base/src/PileUp.cc index 9f9778b217ce2..1075b8ee1d7f1 100644 --- a/Mixing/Base/src/PileUp.cc +++ b/Mixing/Base/src/PileUp.cc @@ -210,7 +210,7 @@ namespace edm { void PileUp::beginStream(edm::StreamID) { auto iID = eventPrincipal_->streamID(); // each producer has its own workermanager, so use default streamid - streamContext_.reset(new StreamContext(iID, processContext_.get())); + streamContext_ = std::make_shared(iID, processContext_.get()); streamContext_->setTransition(StreamContext::Transition::kBeginStream); if (provider_.get() != nullptr) { edm::ServiceRegistry::Operate guard(*serviceToken_); @@ -245,7 +245,7 @@ namespace edm { void PileUp::beginRun(const edm::Run& run, const edm::EventSetup& setup) { if (provider_.get() != nullptr) { - runPrincipal_.reset(new RunPrincipal(productRegistry_, *processConfiguration_, nullptr, 0)); + runPrincipal_ = std::make_shared(productRegistry_, *processConfiguration_, nullptr, 0); runPrincipal_->setAux(run.runAuxiliary()); edm::ServiceRegistry::Operate guard(*serviceToken_); streamContext_->setTransition(StreamContext::Transition::kBeginRun); @@ -254,7 +254,7 @@ namespace edm { } void PileUp::beginLuminosityBlock(const edm::LuminosityBlock& lumi, const edm::EventSetup& setup) { if (provider_.get() != nullptr) { - lumiPrincipal_.reset(new LuminosityBlockPrincipal(productRegistry_, *processConfiguration_, nullptr, 0)); + lumiPrincipal_ = std::make_shared(productRegistry_, *processConfiguration_, nullptr, 0); lumiPrincipal_->setAux(lumi.luminosityBlockAuxiliary()); lumiPrincipal_->setRunPrincipal(runPrincipal_); setRandomEngine(lumi); @@ -348,7 +348,7 @@ namespace edm { edm::LogInfo("MixingModule") << "An histogram will be created with " << numBins << " bins in the range (" << xmin << "," << xmax << ")." << std::endl; - histo_.reset(new TH1F("h", "Histo from the user's probability function", numBins, xmin, xmax)); + histo_ = std::make_shared("h", "Histo from the user's probability function", numBins, xmin, xmax); LogDebug("MixingModule") << "Filling histogram with the following data:" << std::endl; diff --git a/SimG4CMS/Calo/plugins/HGCalTestGuardRing.cc b/SimG4CMS/Calo/plugins/HGCalTestGuardRing.cc index dec9d216164f9..fba5e93ad297f 100644 --- a/SimG4CMS/Calo/plugins/HGCalTestGuardRing.cc +++ b/SimG4CMS/Calo/plugins/HGCalTestGuardRing.cc @@ -77,7 +77,7 @@ HGCalTestGuardRing::HGCalTestGuardRing(const edm::ParameterSet& ps) HGCalTypes::WaferFive, HGCalTypes::WaferThree}; edm::FileInPath filetmp("SimG4CMS/Calo/data/" + waferFile_); - std::string fileName = filetmp.fullPath(); + const std::string& fileName = filetmp.fullPath(); std::ifstream fInput(fileName.c_str()); if (!fInput.good()) { edm::LogVerbatim("HGCalSim") << "Cannot open file " << fileName; diff --git a/SimG4CMS/Calo/plugins/HGCalTestPartialWaferHits.cc b/SimG4CMS/Calo/plugins/HGCalTestPartialWaferHits.cc index f64297ff37b74..375aaa9d64a12 100644 --- a/SimG4CMS/Calo/plugins/HGCalTestPartialWaferHits.cc +++ b/SimG4CMS/Calo/plugins/HGCalTestPartialWaferHits.cc @@ -60,7 +60,7 @@ HGCalTestPartialWaferHits::HGCalTestPartialWaferHits(const edm::ParameterSet& ps << " Hits: " << caloHitSource_ << " Missing Wafer file " << missingFile_; if (!missingFile_.empty()) { edm::FileInPath filetmp("SimG4CMS/Calo/data/" + missingFile_); - std::string fileName = filetmp.fullPath(); + const std::string& fileName = filetmp.fullPath(); std::ifstream fInput(fileName.c_str()); if (!fInput.good()) { edm::LogVerbatim("HGCalSim") << "Cannot open file " << fileName; diff --git a/SimG4CMS/Calo/plugins/HGCalTestScintHits.cc b/SimG4CMS/Calo/plugins/HGCalTestScintHits.cc index 6ec7018391f29..05eb4b287dde4 100644 --- a/SimG4CMS/Calo/plugins/HGCalTestScintHits.cc +++ b/SimG4CMS/Calo/plugins/HGCalTestScintHits.cc @@ -56,7 +56,7 @@ HGCalTestScintHits::HGCalTestScintHits(const edm::ParameterSet& ps) << " Hits: " << caloHitSource_ << " Tile file " << tileFileName_; if (!tileFileName_.empty()) { edm::FileInPath filetmp("SimG4CMS/Calo/data/" + tileFileName_); - std::string fileName = filetmp.fullPath(); + const std::string& fileName = filetmp.fullPath(); std::ifstream fInput(fileName.c_str()); if (!fInput.good()) { edm::LogVerbatim("HGCalSim") << "Cannot open file " << fileName; diff --git a/SimG4CMS/Calo/src/CaloMeanResponse.cc b/SimG4CMS/Calo/src/CaloMeanResponse.cc index 558c4912cf5d5..9e85078ab883c 100644 --- a/SimG4CMS/Calo/src/CaloMeanResponse.cc +++ b/SimG4CMS/Calo/src/CaloMeanResponse.cc @@ -13,7 +13,7 @@ using CLHEP::GeV; CaloMeanResponse::CaloMeanResponse(edm::ParameterSet const& p) { edm::ParameterSet m_p = p.getParameter("CaloResponse"); edm::FileInPath fp = m_p.getParameter("ResponseFile"); - std::string fName = fp.fullPath(); + const std::string& fName = fp.fullPath(); useTable = m_p.getParameter("UseResponseTable"); scale = m_p.getParameter("ResponseScale"); edm::LogVerbatim("CaloSim") << "CaloMeanResponse initialized with scale " << scale << " and use Table " << useTable diff --git a/SimG4CMS/Calo/src/HGCScintSD.cc b/SimG4CMS/Calo/src/HGCScintSD.cc index 87d00a465704f..612067eb083db 100644 --- a/SimG4CMS/Calo/src/HGCScintSD.cc +++ b/SimG4CMS/Calo/src/HGCScintSD.cc @@ -94,7 +94,7 @@ HGCScintSD::HGCScintSD(const std::string& name, if (!fileName_.empty()) { edm::FileInPath filetmp("SimG4CMS/Calo/data/" + fileName_); - std::string fileName = filetmp.fullPath(); + const std::string& fileName = filetmp.fullPath(); std::ifstream fInput(fileName.c_str()); if (!fInput.good()) { edm::LogVerbatim("HGCSim") << "Cannot open file " << fileName; diff --git a/SimG4CMS/Calo/src/HGCalNumberingScheme.cc b/SimG4CMS/Calo/src/HGCalNumberingScheme.cc index ab4cd67482bf9..f79d6fd88299b 100644 --- a/SimG4CMS/Calo/src/HGCalNumberingScheme.cc +++ b/SimG4CMS/Calo/src/HGCalNumberingScheme.cc @@ -34,7 +34,7 @@ HGCalNumberingScheme::HGCalNumberingScheme(const HGCalDDDConstants& hgc, firstLayer_ = hgcons_.getLayerOffset(); if (!fileName.empty()) { edm::FileInPath filetmp1("SimG4CMS/Calo/data/" + fileName); - std::string filetmp2 = filetmp1.fullPath(); + const std::string& filetmp2 = filetmp1.fullPath(); std::ifstream fInput(filetmp2.c_str()); if (!fInput.good()) { edm::LogVerbatim("HGCalSim") << "Cannot open file " << filetmp2; diff --git a/SimG4Core/CustomPhysics/src/CMSAntiSQ.cc b/SimG4Core/CustomPhysics/src/CMSAntiSQ.cc index a7a086ca850a6..f5560e3a95209 100644 --- a/SimG4Core/CustomPhysics/src/CMSAntiSQ.cc +++ b/SimG4Core/CustomPhysics/src/CMSAntiSQ.cc @@ -11,16 +11,16 @@ // ### ANTI-SEXAQUARK ### // ###################################################################### -CMSAntiSQ* CMSAntiSQ::theInstance = 0; +CMSAntiSQ* CMSAntiSQ::theInstance = nullptr; CMSAntiSQ* CMSAntiSQ::Definition(double mass) { - if (theInstance != 0) + if (theInstance != nullptr) return theInstance; const G4String name = "anti_sexaq"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); G4ParticleDefinition* anInstance = pTable->FindParticle(name); - if (anInstance == 0) { + if (anInstance == nullptr) { // create particle // // Arguments for constructor are as follows diff --git a/SimG4Core/CustomPhysics/src/CMSSQ.cc b/SimG4Core/CustomPhysics/src/CMSSQ.cc index 05790aed39acd..89c77548ad663 100644 --- a/SimG4Core/CustomPhysics/src/CMSSQ.cc +++ b/SimG4Core/CustomPhysics/src/CMSSQ.cc @@ -11,16 +11,16 @@ // ### SEXAQUARK ### // ###################################################################### -CMSSQ* CMSSQ::theInstance = 0; +CMSSQ* CMSSQ::theInstance = nullptr; CMSSQ* CMSSQ::Definition(double mass) { - if (theInstance != 0) + if (theInstance != nullptr) return theInstance; const G4String name = "sexaq"; // search in particle table] G4ParticleTable* pTable = G4ParticleTable::GetParticleTable(); G4ParticleDefinition* anInstance = pTable->FindParticle(name); - if (anInstance == 0) { + if (anInstance == nullptr) { // create particle // // Arguments for constructor are as follows diff --git a/SimG4Core/CustomPhysics/src/CMSSQNeutronAnnih.cc b/SimG4Core/CustomPhysics/src/CMSSQNeutronAnnih.cc index 4c05c21753ab0..f7042d5285c9e 100644 --- a/SimG4Core/CustomPhysics/src/CMSSQNeutronAnnih.cc +++ b/SimG4Core/CustomPhysics/src/CMSSQNeutronAnnih.cc @@ -1,12 +1,12 @@ +#include "G4NucleiProperties.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" #include "G4PhysicalConstants.hh" #include "G4SystemOfUnits.hh" -#include "G4ParticleTable.hh" -#include "G4ParticleDefinition.hh" #include "Randomize.hh" -#include "G4NucleiProperties.hh" -#include #include "TMath.h" +#include #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -125,7 +125,7 @@ G4HadFinalState* CMSSQNeutronAnnih::ApplyYourself(const G4HadProjectile& aTrack, // << " PDGcode= " << projPDG << " on nucleus Z= " << Z // << " A= " << A << " N= " << N; - G4LorentzVector lv1 = aParticle->Get4Momentum(); + const G4LorentzVector& lv1 = aParticle->Get4Momentum(); edm::LogVerbatim("CMSSWNeutronAnnih") << "The neutron Fermi momentum (mag, x, y, z) " << targetNucleus.GetFermiMomentum().mag() / MeV << " " << targetNucleus.GetFermiMomentum().x() / MeV << " " diff --git a/SimG4Core/CustomPhysics/src/CustomParticleFactory.cc b/SimG4Core/CustomPhysics/src/CustomParticleFactory.cc index b0f1b66620086..54606ccebc6cf 100644 --- a/SimG4Core/CustomPhysics/src/CustomParticleFactory.cc +++ b/SimG4Core/CustomPhysics/src/CustomParticleFactory.cc @@ -51,7 +51,7 @@ void CustomParticleFactory::loadCustomParticles(const std::string &filePath) { G4ParticleTable *theParticleTable = G4ParticleTable::GetParticleTable(); while (getline(configFile, line)) { line.erase(0, line.find_first_not_of(" \t")); // Remove leading whitespace. - if (line.length() == 0 || line.at(0) == '#') { + if (line.empty() || line.at(0) == '#') { continue; } // Skip blank lines and comments. // The mass table begins with a line containing "BLOCK MASS" @@ -255,7 +255,7 @@ void CustomParticleFactory::getMassTable(std::ifstream *configFile) { // This should be compatible IMO to SLHA while (getline(*configFile, line)) { line.erase(0, line.find_first_not_of(" \t")); // remove leading whitespace - if (line.length() == 0 || line.at(0) == '#') + if (line.empty() || line.at(0) == '#') continue; // skip blank lines and comments if (ToLower(line).find("block") < line.npos) { edm::LogInfo("SimG4CoreCustomPhysics") << "CustomParticleFactory: Finished the Mass Table "; @@ -348,7 +348,7 @@ G4DecayTable *CustomParticleFactory::getDecayTable(std::ifstream *configFile, in while (getline(*configFile, line)) { line.erase(0, line.find_first_not_of(" \t")); // remove leading whitespace - if (line.length() == 0) + if (line.empty()) continue; // skip blank lines if (line.at(0) == '#' && ToLower(line).find("br") < line.npos && ToLower(line).find("nda") < line.npos) continue; // skip a comment of the form: # BR NDA ID1 ID2 diff --git a/SimG4Core/CustomPhysics/src/G4ProcessHelper.cc b/SimG4Core/CustomPhysics/src/G4ProcessHelper.cc index 0ef112a709431..071f19145e929 100644 --- a/SimG4Core/CustomPhysics/src/G4ProcessHelper.cc +++ b/SimG4Core/CustomPhysics/src/G4ProcessHelper.cc @@ -27,7 +27,7 @@ G4ProcessHelper::G4ProcessHelper(const edm::ParameterSet& p, CustomParticleFacto G4String line; edm::FileInPath fp = p.getParameter("processesDef"); - std::string processDefFilePath = fp.fullPath(); + const std::string& processDefFilePath = fp.fullPath(); std::ifstream process_stream(processDefFilePath.c_str()); resonant = p.getParameter("resonant"); diff --git a/SimG4Core/Generators/src/Generator3.cc b/SimG4Core/Generators/src/Generator3.cc index 22a4a6461c18b..c9b188ec83d97 100644 --- a/SimG4Core/Generators/src/Generator3.cc +++ b/SimG4Core/Generators/src/Generator3.cc @@ -132,7 +132,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { delete vtx_; } - for (HepMC3::GenVertexPtr v : evt->vertices()) { + for (const HepMC3::GenVertexPtr &v : evt->vertices()) { vtx_ = new math::XYZTLorentzVector((v->position()).x(), (v->position()).y(), (v->position()).z(), (v->position()).t()); break; @@ -144,13 +144,13 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { unsigned int ng4vtx = 0; unsigned int ng4par = 0; - for (HepMC3::GenVertexPtr vitr : evt->vertices()) { + for (const HepMC3::GenVertexPtr &vitr : evt->vertices()) { // loop for vertex, is it a real vertex? // Set qvtx to true for any particles that should be propagated by GEANT, // i.e., status 1 particles or status 2 particles that decay outside the // beampipe. G4bool qvtx = false; - for (HepMC3::GenParticlePtr pitr : vitr->particles_out()) { + for (const HepMC3::GenParticlePtr &pitr : vitr->particles_out()) { // For purposes of this function, the status is defined as follows: // 1: particles are not decayed by generator // 2: particles are decayed by generator but need to be propagated by GEANT @@ -221,7 +221,7 @@ void Generator3::HepMC2G4(const HepMC3::GenEvent *evt_orig, G4Event *g4evt) { G4PrimaryVertex *g4vtx = new G4PrimaryVertex(x1, y1, z1, t1); - for (HepMC3::GenParticlePtr pitr : vitr->particles_out()) { + for (const HepMC3::GenParticlePtr &pitr : vitr->particles_out()) { int status = pitr->status(); int pdg = pitr->pid(); bool hasDecayVertex = (nullptr != pitr->end_vertex()); @@ -454,7 +454,7 @@ void Generator3::particleAssignDaughters(G4PrimaryParticle *g4p, HepMC3::GenPart double y1 = vp->end_vertex()->position().y(); double z1 = vp->end_vertex()->position().z(); - for (HepMC3::GenParticlePtr vpdec : vp->end_vertex()->particles_out()) { + for (const HepMC3::GenParticlePtr &vpdec : vp->end_vertex()->particles_out()) { // transform decay products such that in the rest frame of mother math::XYZTLorentzVector pdec( vpdec->momentum().px(), vpdec->momentum().py(), vpdec->momentum().pz(), vpdec->momentum().e()); diff --git a/SimMuon/Neutron/plugins/NeutronHitsCollector.cc b/SimMuon/Neutron/plugins/NeutronHitsCollector.cc index 38957b9c102c8..aca09a7a693f0 100644 --- a/SimMuon/Neutron/plugins/NeutronHitsCollector.cc +++ b/SimMuon/Neutron/plugins/NeutronHitsCollector.cc @@ -110,7 +110,7 @@ void NeutronHitsCollector::produce(edm::Event& iEvent, const edm::EventSetup& iS // ----- MuonCSCHits ----- // std::unique_ptr simCSC(new edm::PSimHitContainer); - if (neutron_label_csc.length() > 0) { + if (!neutron_label_csc.empty()) { const edm::Handle& MuonCSCHits = iEvent.getHandle(tokenCSC_); for (hit = MuonCSCHits->begin(); hit != MuonCSCHits->end(); ++hit) simCSC->push_back(*hit); @@ -120,7 +120,7 @@ void NeutronHitsCollector::produce(edm::Event& iEvent, const edm::EventSetup& iS // ----- MuonDTHits ----- // std::unique_ptr simDT(new edm::PSimHitContainer); - if (neutron_label_dt.length() > 0) { + if (!neutron_label_dt.empty()) { const edm::Handle& MuonDTHits = iEvent.getHandle(tokenDT_); for (hit = MuonDTHits->begin(); hit != MuonDTHits->end(); ++hit) simDT->push_back(*hit); @@ -130,7 +130,7 @@ void NeutronHitsCollector::produce(edm::Event& iEvent, const edm::EventSetup& iS // ----- MuonRPCHits ----- // std::unique_ptr simRPC(new edm::PSimHitContainer); - if (neutron_label_rpc.length() > 0) { + if (!neutron_label_rpc.empty()) { const edm::Handle& MuonRPCHits = iEvent.getHandle(tokenRPC_); for (hit = MuonRPCHits->begin(); hit != MuonRPCHits->end(); ++hit) simRPC->push_back(*hit); diff --git a/TauAnalysis/MCEmbeddingTools/plugins/CaloCleaner.cc b/TauAnalysis/MCEmbeddingTools/plugins/CaloCleaner.cc index af279da3cc966..e8bccbf89b88a 100644 --- a/TauAnalysis/MCEmbeddingTools/plugins/CaloCleaner.cc +++ b/TauAnalysis/MCEmbeddingTools/plugins/CaloCleaner.cc @@ -60,7 +60,7 @@ void CaloCleaner::produce(edm::Event &iEvent, const edm::EventSetup &iSetup) } // Copy the old collection and correct if necessary - for (auto input_ : inputs_) { + for (const auto &input_ : inputs_) { std::unique_ptr recHitCollection_output(new RecHitCollection()); edm::Handle recHitCollection; iEvent.getByToken(input_.second, recHitCollection); diff --git a/TauAnalysis/MCEmbeddingTools/plugins/MuonDetCleaner.cc b/TauAnalysis/MCEmbeddingTools/plugins/MuonDetCleaner.cc index c315286497d1b..53b89b88f22fd 100644 --- a/TauAnalysis/MCEmbeddingTools/plugins/MuonDetCleaner.cc +++ b/TauAnalysis/MCEmbeddingTools/plugins/MuonDetCleaner.cc @@ -186,7 +186,7 @@ void MuonDetCleaner::produce(edm::Event &iEvent, edm::EventSetup const & vetoHits.erase(unique(vetoHits.begin(), vetoHits.end()), vetoHits.end()); // Now this can also handle different instance - for (auto input_ : inputs_) { + for (const auto &input_ : inputs_) { // Second read in the RecHit Colltection which is to be replaced, without the vetoRecHits typedef edm::Handle RecHitCollectionHandle; RecHitCollectionHandle RecHitinput; diff --git a/TauAnalysis/MCEmbeddingTools/plugins/TrackerCleaner.cc b/TauAnalysis/MCEmbeddingTools/plugins/TrackerCleaner.cc index d9a219a560fdf..fb1f537e45ed7 100644 --- a/TauAnalysis/MCEmbeddingTools/plugins/TrackerCleaner.cc +++ b/TauAnalysis/MCEmbeddingTools/plugins/TrackerCleaner.cc @@ -36,7 +36,7 @@ void TrackerCleaner::produce(edm::Event &iEvent, const edm::EventSetup &iSetu iEvent.getByToken(mu_input_, muonHandle); edm::View muons = *muonHandle; - for (auto input_ : inputs_) { + for (const auto &input_ : inputs_) { edm::Handle inputClusters; iEvent.getByToken(input_.second, inputClusters); From 1038c8272250c707398c4e43b2124dea6d5dd8ca Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:30:33 +0100 Subject: [PATCH 343/418] [ANALYSIS] Apply code checks/format --- PhysicsTools/FWLite/src/CommandLineParser.cc | 24 ++++++++++---------- PhysicsTools/FWLite/src/TH1Store.cc | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/PhysicsTools/FWLite/src/CommandLineParser.cc b/PhysicsTools/FWLite/src/CommandLineParser.cc index 519abd8548cf5..99e0223d7c807 100644 --- a/PhysicsTools/FWLite/src/CommandLineParser.cc +++ b/PhysicsTools/FWLite/src/CommandLineParser.cc @@ -102,7 +102,7 @@ void CommandLineParser::parseArguments(int argc, char **argv, bool returnArgs) { } void CommandLineParser::help() { - if (m_usageString.length()) { + if (!m_usageString.empty()) { cout << m_argv0 << " - " << m_usageString << endl; } cout << "--help - This screen" << endl @@ -138,7 +138,7 @@ void CommandLineParser::split(SVec &retval, string line, string match, bool igno } string part = line.substr(pos, current - last - 1); // don't bother adding 0 length strings - if (part.length()) { + if (!part.empty()) { retval.push_back(part); } last = current; @@ -208,7 +208,7 @@ void CommandLineParser::printOptionValues() { for (SIMapConstIter iter = m_integerMap.begin(); m_integerMap.end() != iter; ++iter) { const string &description = m_variableDescriptionMap[iter->first]; cout << " " << setw(14) << iter->first << " = " << setw(14) << iter->second; - if (description.length()) { + if (!description.empty()) { cout << " - " << description; } cout << endl; @@ -221,7 +221,7 @@ void CommandLineParser::printOptionValues() { for (SDMapConstIter iter = m_doubleMap.begin(); m_doubleMap.end() != iter; ++iter) { const string &description = m_variableDescriptionMap[iter->first]; cout << " " << setw(14) << iter->first << " = " << setw(14) << iter->second; - if (description.length()) { + if (!description.empty()) { cout << " - " << description; } cout << endl; @@ -239,7 +239,7 @@ void CommandLineParser::printOptionValues() { } else { cout << "false"; } - if (description.length()) { + if (!description.empty()) { cout << " - " << description; } cout << endl; @@ -254,7 +254,7 @@ void CommandLineParser::printOptionValues() { cout << " " << setw(14) << iter->first << " = "; const string value = "'" + iter->second + "'"; cout << setw(14) << ""; - if (description.length()) { + if (!description.empty()) { cout << " - " << description; } cout << endl << " " << value << endl; @@ -269,7 +269,7 @@ void CommandLineParser::printOptionValues() { cout << " " << setw(14) << iter->first << " = "; dumpSTL(iter->second); cout << endl; - if (description.length()) { + if (!description.empty()) { cout << " - " << description; } cout << endl; @@ -284,7 +284,7 @@ void CommandLineParser::printOptionValues() { cout << " " << setw(14) << iter->first << " = "; dumpSTL(iter->second); cout << endl; - if (description.length()) { + if (!description.empty()) { cout << " - " << description; } cout << endl; @@ -299,7 +299,7 @@ void CommandLineParser::printOptionValues() { for (SSVecMapConstIter iter = m_stringVecMap.begin(); m_stringVecMap.end() != iter; ++iter) { const string &description = m_variableDescriptionMap[iter->first]; cout << " " << setw(14) << iter->first << " = "; - if (description.length()) { + if (!description.empty()) { cout << setw(14) << "" << " - " << description; } @@ -601,7 +601,7 @@ void CommandLineParser::_finishDefaultOptions(std::string tag) { // Store lfn to pfn // ////////////////////// const string &kStorePrepend = stringValue("storePrepend"); - if (kStorePrepend.length()) { + if (!kStorePrepend.empty()) { string match = "/store/"; int matchLen = match.length(); SVec tempVec; @@ -623,7 +623,7 @@ void CommandLineParser::_finishDefaultOptions(std::string tag) { // //////////////////////////// // ////////////////////////////////// string outputFile = stringValue("outputFile"); - bool modifyOutputFile = (outputFile.length()); + bool modifyOutputFile = (!outputFile.empty()); outputFile = removeEnding(outputFile, ".root"); outputFile += tag; if (integerValue("maxEvents")) { @@ -632,7 +632,7 @@ void CommandLineParser::_finishDefaultOptions(std::string tag) { if (integerValue("jobID") >= 0) { outputFile += Form("_jobID%03d", integerValue("jobID")); } - if (stringValue("tag").length()) { + if (!stringValue("tag").empty()) { outputFile += "_" + stringValue("tag"); } diff --git a/PhysicsTools/FWLite/src/TH1Store.cc b/PhysicsTools/FWLite/src/TH1Store.cc index befeb181e1886..91b3c70949770 100644 --- a/PhysicsTools/FWLite/src/TH1Store.cc +++ b/PhysicsTools/FWLite/src/TH1Store.cc @@ -40,7 +40,7 @@ void TH1Store::add(TH1 *histPtr, const std::string &directory) { } m_ptrMap[name] = histPtr; histPtr->SetDirectory(nullptr); - if (directory.length()) { + if (!directory.empty()) { m_nameDirMap[name] = directory; } } From b4fa167d1b70a387f0759a4923ab6f7b4ba43032 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:30:41 +0100 Subject: [PATCH 344/418] [XPOG] Apply code checks/format --- PhysicsTools/NanoAOD/plugins/TauSpinnerTableProducer.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PhysicsTools/NanoAOD/plugins/TauSpinnerTableProducer.cc b/PhysicsTools/NanoAOD/plugins/TauSpinnerTableProducer.cc index bdca5918478fc..d92c19e6a6d15 100644 --- a/PhysicsTools/NanoAOD/plugins/TauSpinnerTableProducer.cc +++ b/PhysicsTools/NanoAOD/plugins/TauSpinnerTableProducer.cc @@ -60,10 +60,10 @@ class TauSpinnerTableProducer : public edm::one::EDProducer Date: Wed, 18 Dec 2024 08:30:49 +0100 Subject: [PATCH 345/418] [ML] Apply code checks/format --- PhysicsTools/TensorFlowAOT/src/Batching.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PhysicsTools/TensorFlowAOT/src/Batching.cc b/PhysicsTools/TensorFlowAOT/src/Batching.cc index f7f00c58c8e51..3bfa06e5110b9 100644 --- a/PhysicsTools/TensorFlowAOT/src/Batching.cc +++ b/PhysicsTools/TensorFlowAOT/src/Batching.cc @@ -21,7 +21,7 @@ namespace tfaot { BatchRule::BatchRule(const std::string& ruleString) { // extract the target batch size from the front std::string rule = ruleString; - auto pos = rule.find(":"); + auto pos = rule.find(':'); if (pos == std::string::npos) { throw cms::Exception("InvalidBatchRule") << "invalid batch rule format: " << ruleString; } @@ -32,7 +32,7 @@ namespace tfaot { std::vector sizes; size_t sumSizes = 0; while (!rule.empty()) { - pos = rule.find(","); + pos = rule.find(','); sizes.push_back(std::stoi(rule.substr(0, pos))); sumSizes += sizes.back(); rule = pos == std::string::npos ? "" : rule.substr(pos + 1); @@ -53,7 +53,7 @@ namespace tfaot { void BatchRule::validate() const { // sizes must not be empty - if (sizes_.size() == 0) { + if (sizes_.empty()) { throw cms::Exception("EmptySizes") << "no batch sizes provided for stitching"; } From 42bf43e113b14ac068efd9db112f6cf1eb0ca305 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:30:57 +0100 Subject: [PATCH 346/418] [RECONSTRUCTION-UPGRADE] Apply code checks/format --- RecoHGCal/TICL/plugins/TICLDumper.cc | 4 ++-- RecoHGCal/TICL/plugins/TICLGraph.cc | 4 ++-- RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/RecoHGCal/TICL/plugins/TICLDumper.cc b/RecoHGCal/TICL/plugins/TICLDumper.cc index 208e3515ae4bc..a2ecefdd8f6cd 100644 --- a/RecoHGCal/TICL/plugins/TICLDumper.cc +++ b/RecoHGCal/TICL/plugins/TICLDumper.cc @@ -992,7 +992,7 @@ void TICLDumper::beginJob() { superclustering_tree_->Branch("recoSuperCluster_constituentTs", &recoSuperCluster_constituentTs); } - if (associations_parameterSets_.size() > 0) { + if (!associations_parameterSets_.empty()) { associations_tree_ = fs->make("associations", "Associations"); associations_tree_->Branch("event", &eventId_); } @@ -1291,7 +1291,7 @@ void TICLDumper::analyze(const edm::Event& event, const edm::EventSetup& setup) associations_dumperHelpers_[i].fillFromEvent(event.get(associations_recoToSim_token_[i]), event.get(associations_simToReco_token_[i])); } - if (associations_dumperHelpers_.size() > 0) + if (!associations_dumperHelpers_.empty()) associations_tree_->Fill(); //Tracks diff --git a/RecoHGCal/TICL/plugins/TICLGraph.cc b/RecoHGCal/TICL/plugins/TICLGraph.cc index 50fecf98cd16c..acb3cf56548b8 100644 --- a/RecoHGCal/TICL/plugins/TICLGraph.cc +++ b/RecoHGCal/TICL/plugins/TICLGraph.cc @@ -58,14 +58,14 @@ std::vector> TICLGraph::findSubComponents(std::vector< inline void TICLGraph::findRootNodes() { for (auto const& n : nodes_) { - if (n.getInnerNeighbours().size() == 0) { + if (n.getInnerNeighbours().empty()) { rootNodes_.push_back(n); } } } bool TICLGraph::isGraphOk() { - for (auto n : nodes_) { + for (const auto& n : nodes_) { if (n.getInnerNeighbours().size() > 1) { return false; } diff --git a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc index c9712c52e8868..b2225e79e27de 100644 --- a/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc +++ b/RecoHGCal/TICL/plugins/TracksterLinkingbySkeletons.cc @@ -145,7 +145,7 @@ std::array TracksterLinkingbySkeletons::findSkeletonNodes( // sort vertices by layerId std::array skeleton; if (trackster.vertices().size() < 3) { - auto v = layerClusters[trackster.vertices()[0]]; + const auto &v = layerClusters[trackster.vertices()[0]]; const Vector intersection(v.x(), v.y(), v.z()); skeleton = {{intersection, intersection, intersection}}; return skeleton; From da1bf58bd53652e998e975e9d786d4160f0c875b Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 08:31:05 +0100 Subject: [PATCH 347/418] [SIMULATION-UPGRADE] Apply code checks/format --- .../plugins/AllLayerClusterToTracksterAssociatorsProducer.cc | 2 +- .../plugins/LCToCPAssociatorByEnergyScoreProducer.cc | 4 +++- .../plugins/LCToSCAssociatorByEnergyScoreProducer.cc | 4 +++- .../plugins/LCToSimTSAssociatorByEnergyScoreProducer.cc | 4 +++- .../plugins/MultiClusterAssociatorByEnergyScoreProducer.cc | 4 +++- .../plugins/TSToSCAssociatorByEnergyScoreProducer.cc | 4 +++- .../plugins/TSToSimTSAssociatorByEnergyScoreProducer.cc | 4 +++- .../plugins/TSToSimTSHitLCAssociatorByEnergyScoreProducer.cc | 4 +++- 8 files changed, 22 insertions(+), 8 deletions(-) diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllLayerClusterToTracksterAssociatorsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllLayerClusterToTracksterAssociatorsProducer.cc index 4abf2bd1b46f4..5199566d02e15 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllLayerClusterToTracksterAssociatorsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllLayerClusterToTracksterAssociatorsProducer.cc @@ -32,7 +32,7 @@ AllLayerClusterToTracksterAssociatorsProducer::AllLayerClusterToTracksterAssocia const auto& tracksterCollections = pset.getParameter>("tracksterCollections"); for (const auto& tag : tracksterCollections) { std::string label = tag.label(); - if (tag.instance() != "") { + if (!tag.instance().empty()) { label += tag.instance(); } tracksterCollectionTokens_.emplace_back(label, consumes>(tag)); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToCPAssociatorByEnergyScoreProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToCPAssociatorByEnergyScoreProducer.cc index 9bf4387cc0f82..c7f0bf7902e17 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToCPAssociatorByEnergyScoreProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToCPAssociatorByEnergyScoreProducer.cc @@ -1,5 +1,7 @@ #include "LCToCPAssociatorByEnergyScoreProducer.h" +#include + template LCToCPAssociatorByEnergyScoreProducer::LCToCPAssociatorByEnergyScoreProducer(const edm::ParameterSet &ps) : hitMap_(consumes>(ps.getParameter("hitMapTag"))), @@ -13,7 +15,7 @@ LCToCPAssociatorByEnergyScoreProducer::LCToCPAssociatorByEnergyScoreProduce hits_token_.push_back(consumes>(label)); } - rhtools_.reset(new hgcal::RecHitTools()); + rhtools_ = std::make_shared(); // Register the product produces(); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToSCAssociatorByEnergyScoreProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToSCAssociatorByEnergyScoreProducer.cc index e83dbc43a6123..c506047d72527 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToSCAssociatorByEnergyScoreProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToSCAssociatorByEnergyScoreProducer.cc @@ -1,5 +1,7 @@ #include "LCToSCAssociatorByEnergyScoreProducer.h" +#include + template LCToSCAssociatorByEnergyScoreProducer::LCToSCAssociatorByEnergyScoreProducer(const edm::ParameterSet &ps) : hitMap_(consumes>(ps.getParameter("hitMapTag"))), @@ -13,7 +15,7 @@ LCToSCAssociatorByEnergyScoreProducer::LCToSCAssociatorByEnergyScoreProduce hits_token_.push_back(consumes>(label)); } - rhtools_.reset(new hgcal::RecHitTools()); + rhtools_ = std::make_shared(); // Register the product produces(); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToSimTSAssociatorByEnergyScoreProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToSimTSAssociatorByEnergyScoreProducer.cc index 5c93dd7cf2bf2..a1110c1707297 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToSimTSAssociatorByEnergyScoreProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/LCToSimTSAssociatorByEnergyScoreProducer.cc @@ -1,6 +1,8 @@ // Original author: Leonardo Cristella // user include files +#include + #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/global/EDProducer.h" @@ -29,7 +31,7 @@ class LCToSimTSAssociatorByEnergyScoreProducer : public edm::global::EDProducer< LCToSimTSAssociatorByEnergyScoreProducer::LCToSimTSAssociatorByEnergyScoreProducer(const edm::ParameterSet &ps) : caloGeometry_(esConsumes()) { - rhtools_.reset(new hgcal::RecHitTools()); + rhtools_ = std::make_shared(); // Register the product produces(); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/MultiClusterAssociatorByEnergyScoreProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/MultiClusterAssociatorByEnergyScoreProducer.cc index 75d76eb56c9c8..99de9507e9ea5 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/MultiClusterAssociatorByEnergyScoreProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/MultiClusterAssociatorByEnergyScoreProducer.cc @@ -1,6 +1,8 @@ // Original author: Leonardo Cristella // user include files +#include + #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/global/EDProducer.h" @@ -41,7 +43,7 @@ MultiClusterAssociatorByEnergyScoreProducer::MultiClusterAssociatorByEnergyScore for (auto &label : hits_label_) { hits_token_.push_back(consumes(label)); } - rhtools_.reset(new hgcal::RecHitTools()); + rhtools_ = std::make_shared(); // Register the product produces(); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSCAssociatorByEnergyScoreProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSCAssociatorByEnergyScoreProducer.cc index 4992162b0eea1..b87af943f64fb 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSCAssociatorByEnergyScoreProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSCAssociatorByEnergyScoreProducer.cc @@ -1,6 +1,8 @@ // Original author: Leonardo Cristella // user include files +#include + #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/global/EDProducer.h" @@ -38,7 +40,7 @@ TSToSCAssociatorByEnergyScoreProducer::TSToSCAssociatorByEnergyScoreProducer(con caloGeometry_(esConsumes()), hardScatterOnly_(ps.getParameter("hardScatterOnly")), hits_label_(ps.getParameter>("hits")) { - rhtools_.reset(new hgcal::RecHitTools()); + rhtools_ = std::make_shared(); for (auto &label : hits_label_) { hits_token_.push_back(consumes(label)); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSimTSAssociatorByEnergyScoreProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSimTSAssociatorByEnergyScoreProducer.cc index 102f7c8b4c90c..3ffdb25b12612 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSimTSAssociatorByEnergyScoreProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSimTSAssociatorByEnergyScoreProducer.cc @@ -1,6 +1,8 @@ // Original author: Leonardo Cristella // user include files +#include + #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/global/EDProducer.h" @@ -38,7 +40,7 @@ TSToSimTSAssociatorByEnergyScoreProducer::TSToSimTSAssociatorByEnergyScoreProduc caloGeometry_(esConsumes()), hardScatterOnly_(ps.getParameter("hardScatterOnly")), hits_label_(ps.getParameter>("hits")) { - rhtools_.reset(new hgcal::RecHitTools()); + rhtools_ = std::make_shared(); for (auto &label : hits_label_) { hits_token_.push_back(consumes(label)); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSimTSHitLCAssociatorByEnergyScoreProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSimTSHitLCAssociatorByEnergyScoreProducer.cc index 6c5f2124f73b6..becc775dc5603 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSimTSHitLCAssociatorByEnergyScoreProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/TSToSimTSHitLCAssociatorByEnergyScoreProducer.cc @@ -1,6 +1,8 @@ // Original author: Leonardo Cristella // user include files +#include + #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/global/EDProducer.h" @@ -38,7 +40,7 @@ TSToSimTSHitLCAssociatorByEnergyScoreProducer::TSToSimTSHitLCAssociatorByEnergyS caloGeometry_(esConsumes()), hardScatterOnly_(ps.getParameter("hardScatterOnly")), hits_label_(ps.getParameter>("hits")) { - rhtools_.reset(new hgcal::RecHitTools()); + rhtools_ = std::make_shared(); for (auto &label : hits_label_) { hits_token_.push_back(consumes(label)); From c2bd665d7b627a31b4c516662b3c888fb052fda8 Mon Sep 17 00:00:00 2001 From: Ivan Razumov Date: Tue, 17 Dec 2024 11:01:39 +0100 Subject: [PATCH 348/418] [ALCA-DB] Replace abs with std::abs to fix clang warnings --- .../src/PlotAlignmentValidation.cc | 16 ++++++++-------- Calibration/HcalCalibAlgos/src/hcalCalib.cc | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Alignment/OfflineValidation/src/PlotAlignmentValidation.cc b/Alignment/OfflineValidation/src/PlotAlignmentValidation.cc index 259f2fc950104..7b2618286220b 100644 --- a/Alignment/OfflineValidation/src/PlotAlignmentValidation.cc +++ b/Alignment/OfflineValidation/src/PlotAlignmentValidation.cc @@ -857,7 +857,7 @@ void PlotAlignmentValidation::plotDMR(const std::string& variable, } // Skip strip detectors if plotting any "Y" variable - if (i != 1 && i != 2 && variable.length() > 0 && variable[variable.length() - 1] == 'Y') { + if (i != 1 && i != 2 && !variable.empty() && variable[variable.length() - 1] == 'Y') { continue; } @@ -2261,7 +2261,7 @@ double PlotAlignmentValidation::resampleTestOfEqualRMS(TH1F* h1, TH1F* h2, int n std::vector diff; diff.clear(); //"true" (in bootstrap terms) difference of the samples' RMS - double rmsdiff = abs(h1->GetRMS() - h2->GetRMS()); + double rmsdiff = std::abs(h1->GetRMS() - h2->GetRMS()); //means of the samples to calculate RMS double m1 = h1->GetMean(); double m2 = h2->GetMean(); @@ -2281,8 +2281,8 @@ double PlotAlignmentValidation::resampleTestOfEqualRMS(TH1F* h1, TH1F* h2, int n } d1 /= h1->GetEntries(); d2 /= h2->GetEntries(); - diff.push_back(abs(d1 - d2 - rmsdiff)); - test_mean += abs(d1 - d2 - rmsdiff); + diff.push_back(std::abs(d1 - d2 - rmsdiff)); + test_mean += std::abs(d1 - d2 - rmsdiff); } test_mean /= numSamples; edm::LogPrint("") << "test mean:" << test_mean; @@ -2309,7 +2309,7 @@ double PlotAlignmentValidation::resampleTestOfEqualMeans(TH1F* h1, TH1F* h2, int std::vector diff; diff.clear(); //"true" (in bootstrap terms) difference of the samples' means - double meandiff = abs(h1->GetMean() - h2->GetMean()); + double meandiff = std::abs(h1->GetMean() - h2->GetMean()); //realization of random variable double d1 = 0; double d2 = 0; @@ -2326,8 +2326,8 @@ double PlotAlignmentValidation::resampleTestOfEqualMeans(TH1F* h1, TH1F* h2, int } d1 /= h1->GetEntries(); d2 /= h2->GetEntries(); - diff.push_back(abs(d1 - d2 - meandiff)); - test_mean += abs(d1 - d2 - meandiff); + diff.push_back(std::abs(d1 - d2 - meandiff)); + test_mean += std::abs(d1 - d2 - meandiff); } test_mean /= numSamples; edm::LogPrint("") << "test mean:" << test_mean; @@ -2344,7 +2344,7 @@ double PlotAlignmentValidation::resampleTestOfEqualMeans(TH1F* h1, TH1F* h2, int } float PlotAlignmentValidation::twotailedStudentTTestEqualMean(float t, float v) { - return 2 * (1 - ROOT::Math::tdistribution_cdf(abs(t), v)); + return 2 * (1 - ROOT::Math::tdistribution_cdf(std::abs(t), v)); } const TString PlotAlignmentValidation::summaryfilename = "OfflineValidationSummary"; diff --git a/Calibration/HcalCalibAlgos/src/hcalCalib.cc b/Calibration/HcalCalibAlgos/src/hcalCalib.cc index ae310f269a67a..ae7dc03747f83 100644 --- a/Calibration/HcalCalibAlgos/src/hcalCalib.cc +++ b/Calibration/HcalCalibAlgos/src/hcalCalib.cc @@ -536,7 +536,7 @@ void hcalCalib::GetCoefFromMtrxInvOfAve() { std::map::iterator n_it = aveHitE[iEtaList[i]].begin(); for (; n_it != aveHitE[iEtaList[i]].end(); ++n_it) { - if (fabs(n_it->first) > CALIB_ABS_IETA_MAX || fabs(n_it->first) < CALIB_ABS_IETA_MIN) + if (std::abs(n_it->first) > CALIB_ABS_IETA_MAX || std::abs(n_it->first) < CALIB_ABS_IETA_MIN) continue; Int_t j = Int_t(find(iEtaList.begin(), iEtaList.end(), n_it->first) - iEtaList.begin()); A(i, j) = n_it->second; From 626e3b82b5d281102b1d17f9c2e9d948c5377c44 Mon Sep 17 00:00:00 2001 From: Olga Kodolova Date: Wed, 18 Dec 2024 11:19:18 +0100 Subject: [PATCH 349/418] Additional changed for EGM VID --- .../plugins/JetPlusTrackCorrector.cc | 21 ++++++++++--------- .../python/JetPlusTrackCorrections_cff.py | 16 ++++++++++++++ .../python/JetPlusTrackCorrections_cfi.py | 2 +- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/RecoJets/JetPlusTracks/plugins/JetPlusTrackCorrector.cc b/RecoJets/JetPlusTracks/plugins/JetPlusTrackCorrector.cc index 87456f5444658..1a77f20f79041 100644 --- a/RecoJets/JetPlusTracks/plugins/JetPlusTrackCorrector.cc +++ b/RecoJets/JetPlusTracks/plugins/JetPlusTrackCorrector.cc @@ -1124,25 +1124,26 @@ bool JetPlusTrackCorrector::matchMuons(TrackRefs::const_iterator& itrk, // ----------------------------------------------------------------------------- // bool JetPlusTrackCorrector::matchElectrons(TrackRefs::const_iterator& itrk, - const edm::Handle& elecs, - const edm::Handle& elec_ids) const { - if (elecs->empty()) { + const edm::Handle& gsfEles, + const edm::Handle& idDecisionMap) const { + if (!gsfEles.isValid()) { return false; } double deltaRMIN = 999.; - uint32_t electron_index = 0; - for (auto const& ielec : *elecs) { - edm::Ref electron_ref(elecs, electron_index); - electron_index++; + for (auto ele = gsfEles->begin(); ele != gsfEles->end(); ++ele) { + const edm::Ptr elePtr(gsfEles, ele - gsfEles->begin()); + bool passID = false; + if (idDecisionMap.isValid()) + passID = (*idDecisionMap)[elePtr]; - if ((*elec_ids)[electron_ref] < 1.e-6) { + if (!passID) { continue; - } //@@ Check for null value + } //@@ Check for electronID // DR matching b/w electron and track - auto dR2 = deltaR2(ielec, **itrk); + auto dR2 = deltaR2(*ele, **itrk); if (dR2 < deltaRMIN) { deltaRMIN = dR2; } diff --git a/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py b/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py index 22b1d8429018c..20040dbb43ccb 100644 --- a/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py +++ b/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cff.py @@ -7,6 +7,22 @@ pvSrc = "offlinePrimaryVertices" ) +# ---------- Tight Electron ID + +from RecoEgamma.ElectronIdentification.egmGsfElectronIDs_cff import egmGsfElectronIDs +JPTegmGsfElectronIDs = egmGsfElectronIDs.clone( + physicsObjectsIDs = cms.VPSet(), + physicsObjectSrc = 'gedGsfElectrons' +) +from PhysicsTools.SelectorUtils.tools.vid_id_tools import setupVIDSelection +my_id_modules = ['RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Winter22_122X_V1_cff'] +for id_module_name in my_id_modules: + idmod= __import__(id_module_name, globals(), locals(), ['idName','cutFlow']) + for name in dir(idmod): + item = getattr(idmod,name) + if hasattr(item,'idName') and hasattr(item,'cutFlow'): + setupVIDSelection(JPTegmGsfElectronIDs,item) + # ---------- Seeds from TrackJets from RecoJets.JetPlusTracks.jetPlusTrackAddonSeedProducer_cfi import * diff --git a/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py b/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py index 9127110d975e5..9687d80f9b5c8 100644 --- a/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py +++ b/RecoJets/JetPlusTracks/python/JetPlusTrackCorrections_cfi.py @@ -38,7 +38,7 @@ # Electrons UseElectrons = cms.bool(True), - Electrons = cms.InputTag("gedGsfElectrons"), + Electrons = cms.InputTag("reducedGedGsfElectrons"), ElectronIds = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-RunIIIWinter22-V1-tight"), PatElectrons = cms.InputTag("slimmedElectrons"), electronDRmatch = cms.double(0.02), From afb59c05212d3be4b97c32d2bbe5155cbe822108 Mon Sep 17 00:00:00 2001 From: Martina Date: Wed, 18 Dec 2024 14:14:03 +0100 Subject: [PATCH 350/418] add eff plot for correct reco match --- .../plugins/MtdTracksHarvester.cc | 83 ++++++++++++++++++- .../plugins/MtdTracksValidation.cc | 22 ++++- 2 files changed, 103 insertions(+), 2 deletions(-) diff --git a/Validation/MtdValidation/plugins/MtdTracksHarvester.cc b/Validation/MtdValidation/plugins/MtdTracksHarvester.cc index d3d0a271b2cb6..aa561374805a1 100644 --- a/Validation/MtdValidation/plugins/MtdTracksHarvester.cc +++ b/Validation/MtdValidation/plugins/MtdTracksHarvester.cc @@ -44,11 +44,17 @@ class MtdTracksHarvester : public DQMEDHarvester { MonitorElement* meBTLTPPtMatchEff_; MonitorElement* meBTLTPEtaMatchEff_; MonitorElement* meETLTPPtSelEff_; + MonitorElement* meBTLTPPtCorrectMatchEff_; + MonitorElement* meBTLTPEtaCorrectMatchEff_; MonitorElement* meETLTPEtaSelEff_; MonitorElement* meETLTPPtMatchEff_; MonitorElement* meETLTPEtaMatchEff_; MonitorElement* meETLTPPtMatchEff2_; MonitorElement* meETLTPEtaMatchEff2_; + MonitorElement* meETLTPPtCorrectMatchEff_; + MonitorElement* meETLTPEtaCorrectMatchEff_; + MonitorElement* meETLTPPtCorrectMatchEff2_; + MonitorElement* meETLTPEtaCorrectMatchEff2_; // - BTL track-mtd matching efficiencies MonitorElement* meBTLTPmtdDirectEtaSelEff_; @@ -187,6 +193,8 @@ void MtdTracksHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& MonitorElement* meETLTrackMatchedTPEtaTot = igetter.get(folder_ + "ETLTrackMatchedTPEtaTot"); MonitorElement* meETLTrackMatchedTPEtaMtd = igetter.get(folder_ + "ETLTrackMatchedTPEtaMtd"); MonitorElement* meETLTrackMatchedTPEta2Mtd = igetter.get(folder_ + "ETLTrackMatchedTPEta2Mtd"); + MonitorElement* meETLTrackMatchedTPPtMtdCorrect = igetter.get(folder_ + "ETLTrackMatchedTPPtMtdCorrect"); + MonitorElement* meETLTrackMatchedTPEtaMtdCorrect = igetter.get(folder_ + "ETLTrackMatchedTPEtaMtdCorrect"); // MonitorElement* meBTLTrackMatchedTPmtdDirectEta = igetter.get(folder_ + "BTLTrackMatchedTPmtdDirectEta"); @@ -268,7 +276,7 @@ void MtdTracksHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& !meBTLTrackMatchedTPPtTot || !meBTLTrackMatchedTPPtMtd || !meBTLTrackMatchedTPEtaTot || !meBTLTrackMatchedTPEtaMtd || !meETLTrackMatchedTPPtTot || !meETLTrackMatchedTPPtMtd || !meETLTrackMatchedTPPt2Mtd || !meETLTrackMatchedTPEtaTot || !meETLTrackMatchedTPEtaMtd || - !meETLTrackMatchedTPEta2Mtd || + !meETLTrackMatchedTPEta2Mtd || !meETLTrackMatchedTPPtMtdCorrect || !meETLTrackMatchedTPEtaMtdCorrect || !meBTLTrackMatchedTPmtdDirectEta || !meBTLTrackMatchedTPmtdDirectPt || !meBTLTrackMatchedTPmtdOtherEta || !meBTLTrackMatchedTPmtdOtherPt || !meBTLTrackMatchedTPnomtdEta || !meBTLTrackMatchedTPnomtdPt || @@ -468,6 +476,42 @@ void MtdTracksHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& meBTLTPEtaMatchEff_->getTH1()->SetMinimum(0.); computeEfficiency1D(meBTLTrackMatchedTPEtaMtd, meBTLTrackMatchedTPEtaTot, meBTLTPEtaMatchEff_); + // -- BTL fraction of tracks with time and correct reco match + meBTLTPPtCorrectMatchEff_ = + ibook.book1D("BTLTPPtCorrectMatchEff", + "Track matched to TP efficiency for correct reco match VS Pt;Pt [GeV];Efficiency", + meBTLTrackMatchedTPPtMtd->getNbinsX(), + meBTLTrackMatchedTPPtMtd->getTH1()->GetXaxis()->GetXmin(), + meBTLTrackMatchedTPPtMtd->getTH1()->GetXaxis()->GetXmax()); + meBTLTPPtCorrectMatchEff_->getTH1()->SetMinimum(0.); + MonitorElement* meBTLTrackMatchedTPPtMtdCorrect = + ibook.book1D("BTLTrackMatchedTPPtMtdCorrect", + "Pt of tracks matched to TP with correct reco match; Pt [GeV];Efficiency", + meBTLTrackMatchedTPPtMtd->getNbinsX(), + meBTLTrackMatchedTPPtMtd->getTH1()->GetXaxis()->GetXmin(), + meBTLTrackMatchedTPPtMtd->getTH1()->GetXaxis()->GetXmax()); + meBTLTrackMatchedTPPtMtdCorrect->getTH1F()->Add(meBTLTrackMatchedTPmtdDirectCorrectAssocPt->getTH1F(), + meBTLTrackMatchedTPmtdOtherCorrectAssocPt->getTH1F()); + computeEfficiency1D(meBTLTrackMatchedTPPtMtdCorrect, meBTLTrackMatchedTPPtMtd, meBTLTPPtCorrectMatchEff_); + + meBTLTPEtaCorrectMatchEff_ = + ibook.book1D("BTLTPEtaCorrectMatchEff", + "Track matched to TP efficiency for correct reco match VS Eta;Eta;Efficiency", + meBTLTrackMatchedTPEtaMtd->getNbinsX(), + meBTLTrackMatchedTPEtaMtd->getTH1()->GetXaxis()->GetXmin(), + meBTLTrackMatchedTPEtaMtd->getTH1()->GetXaxis()->GetXmax()); + meBTLTPEtaCorrectMatchEff_->getTH1()->SetMinimum(0.); + MonitorElement* meBTLTrackMatchedTPEtaMtdCorrect = + ibook.book1D("BTLTrackMatchedTPEtaMtdCorrect", + "Eta of tracks matched to TP with correct reco match; Eta [GeV];Efficiency", + meBTLTrackMatchedTPEtaMtd->getNbinsX(), + meBTLTrackMatchedTPEtaMtd->getTH1()->GetXaxis()->GetXmin(), + meBTLTrackMatchedTPEtaMtd->getTH1()->GetXaxis()->GetXmax()); + meBTLTrackMatchedTPEtaMtdCorrect->getTH1F()->Add(meBTLTrackMatchedTPmtdDirectCorrectAssocEta->getTH1F(), + meBTLTrackMatchedTPmtdOtherCorrectAssocEta->getTH1F()); + computeEfficiency1D(meBTLTrackMatchedTPEtaMtdCorrect, meBTLTrackMatchedTPEtaMtd, meBTLTPEtaCorrectMatchEff_); + + // -- ETL meETLTPPtSelEff_ = ibook.book1D("ETLTPPtSelEff", "Track selected efficiency TP VS Pt;Pt [GeV];Efficiency", meETLTrackPtTot->getNbinsX(), @@ -516,6 +560,43 @@ void MtdTracksHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& meETLTPEtaMatchEff2_->getTH1()->SetMinimum(0.); computeEfficiency1D(meETLTrackMatchedTPEta2Mtd, meETLTrackMatchedTPEtaTot, meETLTPEtaMatchEff2_); + //-- ETL fraction of tracks with time and correct reco match + meETLTPPtCorrectMatchEff_ = + ibook.book1D("ETLTPPtCorrectMatchEff", + "Track matched to TP efficiency with correct reco match VS Pt;Pt [GeV];Efficiency", + meETLTrackMatchedTPPtMtd->getNbinsX(), + meETLTrackMatchedTPPtMtd->getTH1()->GetXaxis()->GetXmin(), + meETLTrackMatchedTPPtMtd->getTH1()->GetXaxis()->GetXmax()); + meETLTPPtCorrectMatchEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meETLTrackMatchedTPPtMtdCorrect, meETLTrackMatchedTPPtMtd, meETLTPPtCorrectMatchEff_); + + meETLTPEtaCorrectMatchEff_ = + ibook.book1D("ETLTPEtaCorrectMatchEff", + "Track matched to TP efficiency with correct reco match VS Eta;Eta;Efficiency", + meETLTrackMatchedTPEtaMtd->getNbinsX(), + meETLTrackMatchedTPEtaMtd->getTH1()->GetXaxis()->GetXmin(), + meETLTrackMatchedTPEtaMtd->getTH1()->GetXaxis()->GetXmax()); + meETLTPEtaCorrectMatchEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meETLTrackMatchedTPEtaMtdCorrect, meETLTrackMatchedTPEtaMtd, meETLTPEtaCorrectMatchEff_); + + meETLTPPtCorrectMatchEff2_ = + ibook.book1D("ETLTPPtCorrectMatchEff2", + "Track matched to TP efficiency with correct reco match (2 hits) VS Pt;Pt [GeV];Efficiency", + meETLTrackMatchedTPPt2Mtd->getNbinsX(), + meETLTrackMatchedTPPt2Mtd->getTH1()->GetXaxis()->GetXmin(), + meETLTrackMatchedTPPt2Mtd->getTH1()->GetXaxis()->GetXmax()); + meETLTPPtCorrectMatchEff2_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meETLTrackMatchedTPmtd2CorrectAssocPt, meETLTrackMatchedTPPt2Mtd, meETLTPPtCorrectMatchEff2_); + + meETLTPEtaCorrectMatchEff2_ = + ibook.book1D("ETLTPEtaCorrectMatchEff2", + "Track matched to TP efficiency with correct reco match (2 hits) VS Eta;Eta;Efficiency", + meETLTrackMatchedTPEta2Mtd->getNbinsX(), + meETLTrackMatchedTPEta2Mtd->getTH1()->GetXaxis()->GetXmin(), + meETLTrackMatchedTPEta2Mtd->getTH1()->GetXaxis()->GetXmax()); + meETLTPEtaCorrectMatchEff2_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meETLTrackMatchedTPmtd2CorrectAssocEta, meETLTrackMatchedTPEta2Mtd, meETLTPEtaCorrectMatchEff2_); + // == Track-cluster matching efficiencies based on mc truth // -- BTL meBTLTPmtdDirectEtaSelEff_ = ibook.book1D("BTLTPmtdDirectEtaSelEff", diff --git a/Validation/MtdValidation/plugins/MtdTracksValidation.cc b/Validation/MtdValidation/plugins/MtdTracksValidation.cc index 16958fb0ff821..7e4e999c776d4 100644 --- a/Validation/MtdValidation/plugins/MtdTracksValidation.cc +++ b/Validation/MtdValidation/plugins/MtdTracksValidation.cc @@ -213,6 +213,8 @@ class MtdTracksValidation : public DQMEDAnalyzer { MonitorElement* meETLTrackMatchedTPPtMtd_; MonitorElement* meETLTrackMatchedTPEta2Mtd_; MonitorElement* meETLTrackMatchedTPPt2Mtd_; + MonitorElement* meETLTrackMatchedTPEtaMtdCorrect_; + MonitorElement* meETLTrackMatchedTPPtMtdCorrect_; MonitorElement* meTracktmtd_; MonitorElement* meTrackt0Src_; @@ -749,7 +751,8 @@ void MtdTracksValidation::analyze(const edm::Event& iEvent, const edm::EventSetu }); // Find the first direct hit in time directSimClusIt = std::find_if(simClustersRefs.begin(), simClustersRefs.end(), [](const auto& simCluster) { - return simCluster->trackIdOffset() == 0; + MTDDetId mtddetid = simCluster->detIds_and_rows().front().first; + return (mtddetid.mtdSubDetector() == 1 && simCluster->trackIdOffset() == 0); }); // Check if TP has direct or other sim cluster for BTL for (const auto& simClusterRef : simClustersRefs) { @@ -882,6 +885,11 @@ void MtdTracksValidation::analyze(const edm::Event& iEvent, const edm::EventSetu } // == end BTL // == ETL else { + // -- Track matched to TP with reco hits (one or two) correctly matched + if ((ETLdisc1 && isTPmtdCorrectETLD1) || (ETLdisc2 && isTPmtdCorrectETLD2)) { + meETLTrackMatchedTPEtaMtdCorrect_->Fill(std::abs(trackGen.eta())); + meETLTrackMatchedTPPtMtdCorrect_->Fill(trackGen.pt()); + } // -- Track matched to TP with sim hit in one etl layer if (isTPmtdETLD1 || isTPmtdETLD2) { // at least one hit (D1 or D2 or both) meETLTrackMatchedTPmtd1Eta_->Fill(std::abs(trackGen.eta())); @@ -1436,12 +1444,24 @@ void MtdTracksValidation::bookHistograms(DQMStore::IBooker& ibook, edm::Run cons ibook.book1D("ETLTrackMatchedTPEtaTot", "Eta of tracks matched to TP; track eta ", 30, 1.5, 3.0); meETLTrackMatchedTPEtaMtd_ = ibook.book1D( "ETLTrackMatchedTPEtaMtd", "Eta of tracks matched to TP with time (>=1 ETL hit); track eta ", 30, 1.5, 3.0); + meETLTrackMatchedTPEtaMtdCorrect_ = + ibook.book1D("ETLTrackMatchedTPEtaMtdCorrect", + "Eta of tracks matched to TP with time (>=1 ETL hit), correct reco match; track eta ", + 30, + 1.5, + 3.0); meETLTrackMatchedTPEta2Mtd_ = ibook.book1D( "ETLTrackMatchedTPEta2Mtd", "Eta of tracks matched to TP with time (2 ETL hits); track eta ", 30, 1.5, 3.0); meETLTrackMatchedTPPtTot_ = ibook.book1D("ETLTrackMatchedTPPtTot", "Pt of tracks matched to TP; track pt [GeV] ", 50, 0., 10.); meETLTrackMatchedTPPtMtd_ = ibook.book1D( "ETLTrackMatchedTPPtMtd", "Pt of tracks matched to TP with time (>=1 ETL hit); track pt [GeV] ", 50, 0., 10.); + meETLTrackMatchedTPPtMtdCorrect_ = + ibook.book1D("ETLTrackMatchedTPPtMtdCorrect", + "Pt of tracks matched to TP with time (>=1 ETL hit), correct reco match; track pt [GeV] ", + 50, + 0., + 10.); meETLTrackMatchedTPPt2Mtd_ = ibook.book1D( "ETLTrackMatchedTPPt2Mtd", "Pt of tracks matched to TP with time (2 ETL hits); track pt [GeV] ", 50, 0., 10.); From 6118c116cc83ec82213a95a0fd846a71a3b7a425 Mon Sep 17 00:00:00 2001 From: Sihyun Jeon Date: Wed, 18 Dec 2024 15:23:44 -0500 Subject: [PATCH 351/418] Merge/cmssw 14 1 x qcore producer backup (#6) * code check * address floor comment --- DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc | 7 ++++--- DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc | 6 ++++-- .../Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc b/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc index e56f6fa947f8f..14fbcd79c84c2 100644 --- a/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc +++ b/DataFormats/Phase2TrackerDigi/src/Phase2ITChip.cc @@ -60,7 +60,7 @@ std::vector Phase2ITChip::rem_duplicates(std::vector Phase2ITChip::organize_QCores(std::vector qcores) { std::vector organized_list = {}; - while (qcores.size() > 0) { + while (!qcores.empty()) { int min = 0; for (size_t i = 1; i < qcores.size(); i++) { @@ -87,7 +87,7 @@ std::vector link_QCores(std::vector qcores) { } //.size() is unsigned. If size is zero size()-1 is a huge number hence this needs to be protected - if (qcores.size() > 0) { + if (!qcores.empty()) { for (size_t i = 0; i < qcores.size() - 1; i++) { if (qcores[i].get_col() != qcores[i + 1].get_col()) { qcores[i].setIsLast(true); @@ -103,6 +103,7 @@ std::vector link_QCores(std::vector qcores) { std::vector Phase2ITChip::get_organized_QCores() { std::vector qcores = {}; + qcores.reserve(hitList_.size()); for (const auto& hit : hitList_) { qcores.push_back(get_QCore_from_hit(hit)); } @@ -114,7 +115,7 @@ std::vector Phase2ITChip::get_organized_QCores() { std::vector Phase2ITChip::get_chip_code() { std::vector code = {}; - if (hitList_.size() > 0) { + if (!hitList_.empty()) { std::vector qcores = get_organized_QCores(); bool is_new_col = true; diff --git a/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc b/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc index f6e6d4dc11e73..2a6a9cdd21fa2 100644 --- a/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc +++ b/DataFormats/Phase2TrackerDigi/src/Phase2ITQCore.cc @@ -25,7 +25,7 @@ std::vector Phase2ITQCore::toRocCoordinates(std::vector& hitmap) { std::vector ROC_hitmap(16, false); for (size_t i = 0; i < hitmap.size(); i++) { - int row = std::floor(i / 4); + int row = i / 4; int col = i % 4; int new_row; int new_col; @@ -34,7 +34,7 @@ std::vector Phase2ITQCore::toRocCoordinates(std::vector& hitmap) { new_row = row / 2; new_col = 2 * col; } else { - new_row = std::floor(row / 2); + new_row = row / 2; new_col = 2 * col + 1; } @@ -49,6 +49,7 @@ std::vector Phase2ITQCore::toRocCoordinates(std::vector& hitmap) { std::vector Phase2ITQCore::getHitmap() { std::vector hitmap = {}; + hitmap.reserve(hits_.size()); for (auto hit : hits_) { hitmap.push_back(hit > 0); } @@ -59,6 +60,7 @@ std::vector Phase2ITQCore::getHitmap() { std::vector Phase2ITQCore::getADCs() { std::vector adcmap = {}; + adcmap.reserve(adcs_.size()); for (auto adc : adcs_) { adcmap.push_back(adc); } diff --git a/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc b/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc index 8cacc7a1c1e45..8692f5e56ea0c 100644 --- a/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc +++ b/EventFilter/Phase2PixelRawToDigi/plugins/Phase2ITQCoreProducer.cc @@ -38,7 +38,7 @@ class Phase2ITQCoreProducer : public edm::stream::EDProducer<> { ~Phase2ITQCoreProducer() override = default; private: - virtual void produce(edm::Event&, const edm::EventSetup&); + void produce(edm::Event&, const edm::EventSetup&) override; const edm::InputTag src_; const edm::EDGetTokenT> pixelDigi_token_; From 74f1466ed04c9c73e55251cdaba2216e97e883b5 Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Wed, 18 Dec 2024 15:37:03 -0600 Subject: [PATCH 352/418] Handle case where modules share memory in ModuleEventAllocMonitor Previous tested showed that some groups of modules use their own memory caching which led to deallocations at end of event being assigned to the wrong module (as they happen to have used that address during the event as well but was later deallocated by a different module). Looking for module matches in reverse order of module completion helps with proper assignment. --- .../plugins/ModuleEventAllocMonitor.cc | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/PerfTools/AllocMonitor/plugins/ModuleEventAllocMonitor.cc b/PerfTools/AllocMonitor/plugins/ModuleEventAllocMonitor.cc index 8d23f5f2082b1..227f1b1d22f7d 100644 --- a/PerfTools/AllocMonitor/plugins/ModuleEventAllocMonitor.cc +++ b/PerfTools/AllocMonitor/plugins/ModuleEventAllocMonitor.cc @@ -273,6 +273,8 @@ class ModuleEventAllocMonitor { iAR.watchPreBeginJob([this](auto const&, auto const&) { streamModuleAllocs_.resize(nStreams_ * nModules_); streamModuleInAcquire_ = std::vector>(nStreams_ * nModules_); + streamModuleFinishOrder_ = std::vector(nStreams_ * nModules_); + streamNFinishedModules_ = std::vector>(nStreams_); streamSync_ = std::vector>(nStreams_); }); @@ -300,6 +302,9 @@ class ModuleEventAllocMonitor { << " " << v << " " << info->allocMap_.allocationSizes().size() << "\n"; file->write(s.str()); auto index = moduleIndex(mod_id); + auto finishedOrder = streamNFinishedModules_[iStream.streamID().value()]++; + streamModuleFinishOrder_[finishedOrder + nModules_ * iStream.streamID().value()] = + nModules_ * iStream.streamID().value() + index; streamModuleAllocs_[nModules_ * iStream.streamID().value() + index] = info->allocMap_; ++streamSync_[iStream.streamID().value()]; } @@ -359,20 +364,23 @@ class ModuleEventAllocMonitor { auto info = filter_.stopOnThread(); if (info) { streamSync_[iStream.streamID().value()].load(); - auto itBegin = streamModuleAllocs_.begin() + nModules_ * iStream.streamID().value(); - auto const itEnd = itBegin + nModules_; - + //search for associated allocs to deallocs in reverse order that modules finished + auto nRan = streamNFinishedModules_[iStream.streamID().value()].load(); + auto itBegin = streamModuleFinishOrder_.cbegin() + nModules_ - nRan; + auto const itEnd = itBegin + nRan; + streamNFinishedModules_[iStream.streamID().value()].store(0); { std::vector moduleDeallocSize(nModules_); std::vector moduleDeallocCount(nModules_); for (auto& address : info->unmatched_) { - decltype(itBegin->findOffset(address)) offset; - auto found = std::find_if(itBegin, itEnd, [&address, &offset](auto const& elem) { + decltype(streamModuleAllocs_[0].findOffset(address)) offset; + auto found = std::find_if(itBegin, itEnd, [&address, &offset, this](auto const& index) { + auto const& elem = streamModuleAllocs_[index]; return elem.size() != 0 and (offset = elem.findOffset(address)) != elem.size(); }); if (found != itEnd) { - auto index = std::distance(itBegin, found); - moduleDeallocSize[index] += found->allocationSizes()[offset]; + auto index = *found - nModules_ * iStream.streamID().value(); + moduleDeallocSize[index] += streamModuleAllocs_[*found].allocationSizes()[offset]; moduleDeallocCount[index] += 1; } } @@ -387,8 +395,12 @@ class ModuleEventAllocMonitor { } } - for (auto it = itBegin; it != itEnd; ++it) { - it->clear(); + { + auto itBegin = streamModuleAllocs_.begin() + nModules_ * iStream.streamID().value(); + auto itEnd = itBegin + nModules_; + for (auto it = itBegin; it != itEnd; ++it) { + it->clear(); + } } } }); @@ -425,6 +437,9 @@ class ModuleEventAllocMonitor { //The size is (#streams)*(#modules) CMS_THREAD_GUARD(streamSync_) std::vector streamModuleAllocs_; CMS_THREAD_GUARD(streamSync_) std::vector> streamModuleInAcquire_; + //This holds the index into the streamModuleAllocs_ for the module which finished + CMS_THREAD_GUARD(streamSync_) std::vector streamModuleFinishOrder_; + std::vector> streamNFinishedModules_; std::vector> streamSync_; std::vector moduleNames_; std::vector moduleIDs_; From c0045dcaa534dcb89bade30d2573ae0b3372269b Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Wed, 18 Dec 2024 22:38:34 +0100 Subject: [PATCH 353/418] [CORE] Apply code checks/format --- DataFormats/Provenance/src/ProductProvenance.cc | 3 +-- FWCore/Framework/bin/cmsRun.cpp | 2 +- FWCore/Framework/src/EventPrincipal.cc | 5 ++--- FWCore/MessageService/src/ELoutput.cc | 15 ++++++++------- .../Modules/src/BranchIDListsModifierProducer.cc | 2 +- FWCore/Modules/src/EmptySourceFromEventIDs.cc | 2 +- FWCore/Services/plugins/SimpleMemoryCheck.cc | 10 +++++----- IOPool/Streamer/src/StreamerInputSource.cc | 7 +++---- .../AllocMonitorPreload/src/memory_proxies.cc | 2 +- Utilities/XrdAdaptor/src/XrdRequestManager.cc | 6 +++--- 10 files changed, 26 insertions(+), 28 deletions(-) diff --git a/DataFormats/Provenance/src/ProductProvenance.cc b/DataFormats/Provenance/src/ProductProvenance.cc index 15f80680c8220..4a5d9a3dd4ea0 100644 --- a/DataFormats/Provenance/src/ProductProvenance.cc +++ b/DataFormats/Provenance/src/ProductProvenance.cc @@ -16,8 +16,7 @@ namespace edm { ProductProvenance::ProductProvenance(BranchID bid) : branchID_(bid), parentageID_() {} - ProductProvenance::ProductProvenance(BranchID bid, ParentageID edid) - : branchID_(bid), parentageID_(std::move(edid)) {} + ProductProvenance::ProductProvenance(BranchID bid, ParentageID edid) : branchID_(bid), parentageID_(edid) {} ProductProvenance::ProductProvenance(BranchID bid, std::vector const& parents) : branchID_(bid), parentageID_() { diff --git a/FWCore/Framework/bin/cmsRun.cpp b/FWCore/Framework/bin/cmsRun.cpp index eb7daeb22c950..b527acbb67b44 100644 --- a/FWCore/Framework/bin/cmsRun.cpp +++ b/FWCore/Framework/bin/cmsRun.cpp @@ -177,7 +177,7 @@ int main(int argc, const char* argv[]) { //NOTE: JobReport must have a lifetime shorter than jobReportStreamPtr so that when the JobReport destructor // is called jobReportStreamPtr is still valid auto jobRepPtr = std::make_unique(jobReportStreamPtr.get()); - jobRep.reset(new edm::serviceregistry::ServiceWrapper(std::move(jobRepPtr))); + jobRep = std::make_shared>(std::move(jobRepPtr)); edm::ServiceToken jobReportToken = edm::ServiceRegistry::createContaining(jobRep); if (!fileName.empty()) { diff --git a/FWCore/Framework/src/EventPrincipal.cc b/FWCore/Framework/src/EventPrincipal.cc index 4919d9b821151..438ffb82ff05e 100644 --- a/FWCore/Framework/src/EventPrincipal.cc +++ b/FWCore/Framework/src/EventPrincipal.cc @@ -201,8 +201,7 @@ namespace edm { } auto phb = getProductResolverByIndex(index); - productProvenanceRetrieverPtr()->insertIntoSet( - ProductProvenance(phb->branchDescription().branchID(), std::move(parentage))); + productProvenanceRetrieverPtr()->insertIntoSet(ProductProvenance(phb->branchDescription().branchID(), parentage)); assert(phb); // ProductResolver assumes ownership @@ -214,7 +213,7 @@ namespace edm { std::optional productProvenance) const { assert(!bd.produced()); if (productProvenance) { - productProvenanceRetrieverPtr()->insertIntoSet(std::move(*productProvenance)); + productProvenanceRetrieverPtr()->insertIntoSet(*productProvenance); } auto phb = getExistingProduct(bd.branchID()); assert(phb); diff --git a/FWCore/MessageService/src/ELoutput.cc b/FWCore/MessageService/src/ELoutput.cc index 95cf483776c60..290c7ff963ddd 100644 --- a/FWCore/MessageService/src/ELoutput.cc +++ b/FWCore/MessageService/src/ELoutput.cc @@ -83,10 +83,11 @@ // #define ELoutputTRACE_LOG // #define ELoutput_EMIT_TRACE -#include -#include -#include #include +#include +#include +#include +#include namespace { // ---------------------------------------------------------------------- @@ -375,14 +376,14 @@ namespace edm { needAspace = false; } } - if (wantModule && (xid.module.length() > 0)) { + if (wantModule && (!xid.module.empty())) { if (needAspace) { emitToken(" "); needAspace = false; } emitToken(xid.module + " "); } - if (wantSubroutine && (xid.subroutine.length() > 0)) { + if (wantSubroutine && (!xid.subroutine.empty())) { if (needAspace) { emitToken(" "); needAspace = false; @@ -516,7 +517,7 @@ namespace edm { std::cerr << "[][][] in emit: lineLength is " << lineLength << '\n'; #endif - if (s.length() == 0) { + if (s.empty()) { if (nl) { (*os) << newline << std::flush; charsOnLine = 0; @@ -632,7 +633,7 @@ namespace edm { } void ELoutput::changeFile(const std::string& filename) { - os.reset(new std::ofstream(filename.c_str(), std::ios /*_base*/ ::app), close_and_delete()); + os.reset(new std::ofstream(filename.c_str(), std::ios /*_base*/ ::app), close_and_delete()); //NOLINT emitToken("\n=======================================================", true); emitToken("\nError Log changed to this file\n"); std::string const& ftime = formatTime(time(nullptr)); // Change log 7 diff --git a/FWCore/Modules/src/BranchIDListsModifierProducer.cc b/FWCore/Modules/src/BranchIDListsModifierProducer.cc index 5a9591b28e275..15944021e0dba 100644 --- a/FWCore/Modules/src/BranchIDListsModifierProducer.cc +++ b/FWCore/Modules/src/BranchIDListsModifierProducer.cc @@ -14,7 +14,7 @@ class BranchIDListsModifierProducer : public edm::global::EDProducer<> { public: BranchIDListsModifierProducer(edm::ParameterSet const& iPSet); - void produce(edm::StreamID, edm::Event&, edm::EventSetup const&) const; + void produce(edm::StreamID, edm::Event&, edm::EventSetup const&) const override; static void fillDescriptions(edm::ConfigurationDescriptions& iDesc); diff --git a/FWCore/Modules/src/EmptySourceFromEventIDs.cc b/FWCore/Modules/src/EmptySourceFromEventIDs.cc index 31dd2b02c7de3..bc2464051a27e 100644 --- a/FWCore/Modules/src/EmptySourceFromEventIDs.cc +++ b/FWCore/Modules/src/EmptySourceFromEventIDs.cc @@ -42,7 +42,7 @@ bool EmptySourceFromEventIDs::setRunAndEventInfo(edm::EventID& event, return false; } - event = std::move(events_.back()); + event = events_.back(); events_.pop_back(); return true; } diff --git a/FWCore/Services/plugins/SimpleMemoryCheck.cc b/FWCore/Services/plugins/SimpleMemoryCheck.cc index 1a912b968d312..98fb253ae5a62 100644 --- a/FWCore/Services/plugins/SimpleMemoryCheck.cc +++ b/FWCore/Services/plugins/SimpleMemoryCheck.cc @@ -411,19 +411,19 @@ namespace edm { // query values size_t allocated, active, resident, mapped, metadata; size_t len = sizeof(size_t); - if (je_mallctl("stats.allocated", &allocated, &len, 0, 0) != 0) { + if (je_mallctl("stats.allocated", &allocated, &len, nullptr, 0) != 0) { return info; } - if (je_mallctl("stats.active", &active, &len, 0, 0) != 0) { + if (je_mallctl("stats.active", &active, &len, nullptr, 0) != 0) { return info; } - if (je_mallctl("stats.resident", &resident, &len, 0, 0) != 0) { + if (je_mallctl("stats.resident", &resident, &len, nullptr, 0) != 0) { return info; } - if (je_mallctl("stats.mapped", &mapped, &len, 0, 0) != 0) { + if (je_mallctl("stats.mapped", &mapped, &len, nullptr, 0) != 0) { return info; } - if (je_mallctl("stats.metadata", &metadata, &len, 0, 0) != 0) { + if (je_mallctl("stats.metadata", &metadata, &len, nullptr, 0) != 0) { return info; } info.allocated = allocated / 1024.0 / 1024.0; diff --git a/IOPool/Streamer/src/StreamerInputSource.cc b/IOPool/Streamer/src/StreamerInputSource.cc index 160d3698ec993..d82f78ce11841 100644 --- a/IOPool/Streamer/src/StreamerInputSource.cc +++ b/IOPool/Streamer/src/StreamerInputSource.cc @@ -334,13 +334,12 @@ namespace edm::streamer { std::optional productProvenance{std::in_place, spitem.branchID(), *spitem.parents()}; if (spitem.prod() != nullptr) { FDEBUG(10) << "addproduct next " << spitem.branchID() << std::endl; - eventPrincipal.putOnRead(branchDesc, - std::unique_ptr(const_cast(spitem.prod())), - std::move(productProvenance)); + eventPrincipal.putOnRead( + branchDesc, std::unique_ptr(const_cast(spitem.prod())), productProvenance); FDEBUG(10) << "addproduct done" << std::endl; } else { FDEBUG(10) << "addproduct empty next " << spitem.branchID() << std::endl; - eventPrincipal.putOnRead(branchDesc, std::unique_ptr(), std::move(productProvenance)); + eventPrincipal.putOnRead(branchDesc, std::unique_ptr(), productProvenance); FDEBUG(10) << "addproduct empty done" << std::endl; } } else { diff --git a/PerfTools/AllocMonitorPreload/src/memory_proxies.cc b/PerfTools/AllocMonitorPreload/src/memory_proxies.cc index 9c6ac64350393..3516053a10a19 100644 --- a/PerfTools/AllocMonitorPreload/src/memory_proxies.cc +++ b/PerfTools/AllocMonitorPreload/src/memory_proxies.cc @@ -148,7 +148,7 @@ namespace { } }; - static ThreadTracker& getTracker() { + ThreadTracker& getTracker() { static ThreadTracker s_tracker; return s_tracker; } diff --git a/Utilities/XrdAdaptor/src/XrdRequestManager.cc b/Utilities/XrdAdaptor/src/XrdRequestManager.cc index 5d7bf6707d1e9..b623a79e235a5 100644 --- a/Utilities/XrdAdaptor/src/XrdRequestManager.cc +++ b/Utilities/XrdAdaptor/src/XrdRequestManager.cc @@ -771,12 +771,12 @@ std::future XrdAdaptor::RequestManager::handle(std::shared_ptr c_ptr1, c_ptr2; std::future future1, future2; if (!req1->empty()) { - c_ptr1.reset(new XrdAdaptor::ClientRequest(*this, req1)); + c_ptr1 = std::make_shared(*this, req1); activeSources[0]->handle(c_ptr1); future1 = c_ptr1->get_future(); } if (!req2->empty()) { - c_ptr2.reset(new XrdAdaptor::ClientRequest(*this, req2)); + c_ptr2 = std::make_shared(*this, req2); activeSources[1]->handle(c_ptr2); future2 = c_ptr2->get_future(); } @@ -1106,7 +1106,7 @@ void XrdAdaptor::RequestManager::OpenHandler::HandleResponseWithHosts(XrdCl::XRo std::string excludeString; Source::determineHostExcludeString(*m_file, hostList.get(), excludeString); - source.reset(new Source(now, std::move(m_file), excludeString)); + source = std::make_shared(now, std::move(m_file), excludeString); m_promise.set_value(source); } else { releaseFile = std::move(m_file); From c38227132a49f8ec871ef9bf3a0bb6b460c5c04a Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Thu, 19 Dec 2024 11:48:00 -0600 Subject: [PATCH 354/418] Decrease temporary memory held by PuppiProducer Avoid holding memory between Events which is then released at the beginning of the next Event. Also did code modernization/improvements. --- CommonTools/PileupAlgos/interface/PuppiAlgo.h | 4 +- .../PileupAlgos/interface/PuppiContainer.h | 69 ++++--- .../PileupAlgos/plugins/PuppiProducer.cc | 50 ++--- CommonTools/PileupAlgos/src/PuppiAlgo.cc | 2 +- CommonTools/PileupAlgos/src/PuppiContainer.cc | 183 +++++++++--------- 5 files changed, 147 insertions(+), 161 deletions(-) diff --git a/CommonTools/PileupAlgos/interface/PuppiAlgo.h b/CommonTools/PileupAlgos/interface/PuppiAlgo.h index b3c9ede5eb2c2..7aa3868e2b794 100644 --- a/CommonTools/PileupAlgos/interface/PuppiAlgo.h +++ b/CommonTools/PileupAlgos/interface/PuppiAlgo.h @@ -9,7 +9,7 @@ class PuppiAlgo { public: - PuppiAlgo(edm::ParameterSet &iConfig); + PuppiAlgo(const edm::ParameterSet &iConfig); ~PuppiAlgo(); static void fillDescriptionsPuppiAlgo(edm::ParameterSetDescription &desc); //Computing Mean and RMS @@ -19,7 +19,7 @@ class PuppiAlgo { void computeMedRMS(const unsigned int &iAlgo); //Get the Weight double compute(std::vector const &iVals, double iChi2) const; - const std::vector &alphas() { return fPups; } + const std::vector &alphas() const { return fPups; } //Helpers inline int etaBins() const { return fEtaMin.size(); } inline double etaMin(int i) const { return fEtaMin[i]; } diff --git a/CommonTools/PileupAlgos/interface/PuppiContainer.h b/CommonTools/PileupAlgos/interface/PuppiContainer.h index 479cf542a4585..4ad1dd951a6cd 100644 --- a/CommonTools/PileupAlgos/interface/PuppiContainer.h +++ b/CommonTools/PileupAlgos/interface/PuppiContainer.h @@ -8,51 +8,45 @@ class PuppiContainer { public: PuppiContainer(const edm::ParameterSet &iConfig); - ~PuppiContainer(); - void initialize(const std::vector &iRecoObjects); - void setPUProxy(double const iPUProxy) { fPUProxy = iPUProxy; } - std::vector const &pfParticles() const { return fPFParticles; } - std::vector const &puppiWeights(); - const std::vector &puppiRawAlphas() { return fRawAlphas; } - const std::vector &puppiAlphas() { return fVals; } - // const std::vector puppiAlpha () {return fAlpha;} - const std::vector &puppiAlphasMed() { return fAlphaMed; } - const std::vector &puppiAlphasRMS() { return fAlphaRMS; } + struct Weights { + std::vector weights; + std::vector puppiRawAlphas; + std::vector puppiAlphas; + std::vector puppiAlphasMed; + std::vector puppiAlphasRMS; + }; - int puppiNAlgos() { return fNAlgos; } + Weights calculatePuppiWeights(const std::vector &iRecoObjects, double iPUProxy); -protected: - double goodVar(PuppiCandidate const &iPart, std::vector const &iParts, int iOpt, const double iRCone); + int puppiNAlgos() const { return fPuppiAlgo.size(); } + +private: + void initialize(const std::vector &iRecoObjects, + std::vector &fPFParticles, + std::vector &fPFParticlesForVar, + std::vector &fPFParticlesForVarChargedPV) const; + + double goodVar(PuppiCandidate const &iPart, + std::vector const &iParts, + int iOpt, + const double iRCone) const; void getRMSAvg(int iOpt, std::vector const &iConstits, std::vector const &iParticles, - std::vector const &iChargeParticles); - void getRawAlphas(int iOpt, - std::vector const &iConstits, - std::vector const &iParticles, - std::vector const &iChargeParticles); - double getChi2FromdZ(double iDZ); + std::vector const &iChargeParticles, + std::vector &oVals); + std::vector getRawAlphas(int iOpt, + std::vector const &iConstits, + std::vector const &iParticles, + std::vector const &iChargeParticles) const; + double getChi2FromdZ(double iDZ) const; int getPuppiId(float iPt, float iEta); double var_within_R(int iId, const std::vector &particles, const PuppiCandidate ¢re, - const double R); - - bool fPuppiDiagnostics; - const std::vector *fRecoParticles; - std::vector fPFParticles; - std::vector fPFParticlesForVar; - std::vector fPFParticlesForVarChargedPV; - std::vector fWeights; - std::vector fVals; - std::vector fRawAlphas; - std::vector fAlphaMed; - std::vector fAlphaRMS; + const double R) const; - bool fApplyCHS; - bool fInvert; - bool fUseExp; double fNeutralMinPt; double fNeutralSlope; double fPuppiWeightCut; @@ -60,8 +54,11 @@ class PuppiContainer { double fEtaMaxPhotons; double fPtMaxNeutrals; double fPtMaxNeutralsStartSlope; - int fNAlgos; - double fPUProxy; std::vector fPuppiAlgo; + + bool fPuppiDiagnostics; + bool fApplyCHS; + bool fInvert; + bool fUseExp; }; #endif diff --git a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc index 2ec716126bf75..165ed313dfb8a 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc @@ -25,7 +25,6 @@ class PuppiProducer : public edm::stream::EDProducer<> { public: explicit PuppiProducer(const edm::ParameterSet&); - ~PuppiProducer() override; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); typedef math::XYZTLorentzVector LorentzVector; @@ -39,9 +38,7 @@ class PuppiProducer : public edm::stream::EDProducer<> { typedef edm::Association CandToVertex; private: - virtual void beginJob(); void produce(edm::Event&, const edm::EventSetup&) override; - virtual void endJob(); edm::EDGetTokenT tokenPFCandidates_; edm::EDGetTokenT tokenVertices_; @@ -87,12 +84,11 @@ class PuppiProducer : public edm::stream::EDProducer<> { int fVtxNdofCut; double fVtxZCut; bool fUsePUProxyValue; - std::unique_ptr fPuppiContainer; - std::vector fRecoObjCollection; + PuppiContainer fPuppiContainer; }; // ------------------------------------------------------------------------------------------ -PuppiProducer::PuppiProducer(const edm::ParameterSet& iConfig) { +PuppiProducer::PuppiProducer(const edm::ParameterSet& iConfig) : fPuppiContainer(iConfig) { fPuppiDiagnostics = iConfig.getParameter("puppiDiagnostics"); fPuppiNoLep = iConfig.getParameter("puppiNoLep"); fUseFromPVLooseTight = iConfig.getParameter("UseFromPVLooseTight"); @@ -113,7 +109,6 @@ PuppiProducer::PuppiProducer(const edm::ParameterSet& iConfig) { fClonePackedCands = iConfig.getParameter("clonePackedCands"); fVtxNdofCut = iConfig.getParameter("vtxNdofCut"); fVtxZCut = iConfig.getParameter("vtxZCut"); - fPuppiContainer = std::make_unique(iConfig); tokenPFCandidates_ = consumes(iConfig.getParameter("candName")); tokenVertices_ = consumes(iConfig.getParameter("vertexName")); @@ -150,8 +145,6 @@ PuppiProducer::PuppiProducer(const edm::ParameterSet& iConfig) { } } // ------------------------------------------------------------------------------------------ -PuppiProducer::~PuppiProducer() {} -// ------------------------------------------------------------------------------------------ void PuppiProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { // Get PFCandidate Collection edm::Handle hPFProduct; @@ -180,11 +173,13 @@ void PuppiProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { } } + std::vector recoObjCollection; + + PuppiContainer::Weights weightsInfo; std::vector lWeights; if (!fUseExistingWeights) { //Fill the reco objects - fRecoObjCollection.clear(); - fRecoObjCollection.reserve(pfCol->size()); + recoObjCollection.reserve(pfCol->size()); int iCand = 0; for (auto const& aPF : *pfCol) { RecoObj pReco; @@ -347,15 +342,13 @@ void PuppiProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { } } - fRecoObjCollection.push_back(pReco); + recoObjCollection.push_back(pReco); iCand++; } - fPuppiContainer->initialize(fRecoObjCollection); - fPuppiContainer->setPUProxy(puProxyValue); - //Compute the weights and get the particles - lWeights = fPuppiContainer->puppiWeights(); + weightsInfo = fPuppiContainer.calculatePuppiWeights(recoObjCollection, puProxyValue); + lWeights = std::move(weightsInfo.weights); } else { //Use the existing weights lWeights.reserve(pfCol->size()); @@ -457,8 +450,8 @@ void PuppiProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { p4PupFiller.insert(hPFProduct, puppiP4s.begin(), puppiP4s.end()); p4PupFiller.fill(); - iEvent.emplace(ptokenPupOut_, lPupOut); - iEvent.emplace(ptokenP4PupOut_, p4PupOut); + iEvent.emplace(ptokenPupOut_, std::move(lPupOut)); + iEvent.emplace(ptokenP4PupOut_, std::move(p4PupOut)); if (fUseExistingWeights || fClonePackedCands) { edm::OrphanHandle oh = iEvent.emplace(ptokenPackedPuppiCandidates_, fPackedPuppiCandidates); @@ -477,31 +470,22 @@ void PuppiProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { edm::ValueMap::Filler filler(pfMap_p); filler.insert(hPFProduct, values.begin(), values.end()); filler.fill(); - iEvent.emplace(ptokenValues_, pfMap_p); + iEvent.emplace(ptokenValues_, std::move(pfMap_p)); ////////////////////////////////////////////// if (fPuppiDiagnostics && !fUseExistingWeights) { // all the different alphas per particle // THE alpha per particle - std::vector theAlphas(fPuppiContainer->puppiAlphas()); - std::vector theAlphasMed(fPuppiContainer->puppiAlphasMed()); - std::vector theAlphasRms(fPuppiContainer->puppiAlphasRMS()); - std::vector alphas(fPuppiContainer->puppiRawAlphas()); - double nalgos(fPuppiContainer->puppiNAlgos()); + double nalgos(fPuppiContainer.puppiNAlgos()); - iEvent.emplace(ptokenRawAlphas_, alphas); + iEvent.emplace(ptokenRawAlphas_, std::move(weightsInfo.puppiRawAlphas)); iEvent.emplace(ptokenNalgos_, nalgos); - iEvent.emplace(ptokenAlphas_, theAlphas); - iEvent.emplace(ptokenAlphasMed_, theAlphasMed); - iEvent.emplace(ptokenAlphasRms_, theAlphasRms); + iEvent.emplace(ptokenAlphas_, std::move(weightsInfo.puppiAlphas)); + iEvent.emplace(ptokenAlphasMed_, std::move(weightsInfo.puppiAlphasMed)); + iEvent.emplace(ptokenAlphasRms_, std::move(weightsInfo.puppiAlphasRMS)); } } -// ------------------------------------------------------------------------------------------ -void PuppiProducer::beginJob() {} -// ------------------------------------------------------------------------------------------ -void PuppiProducer::endJob() {} -// ------------------------------------------------------------------------------------------ void PuppiProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; desc.add("puppiDiagnostics", false); diff --git a/CommonTools/PileupAlgos/src/PuppiAlgo.cc b/CommonTools/PileupAlgos/src/PuppiAlgo.cc index d5a9f47e8cd20..b0f79f1df64d8 100644 --- a/CommonTools/PileupAlgos/src/PuppiAlgo.cc +++ b/CommonTools/PileupAlgos/src/PuppiAlgo.cc @@ -5,7 +5,7 @@ #include "Math/ProbFunc.h" #include "TMath.h" -PuppiAlgo::PuppiAlgo(edm::ParameterSet &iConfig) { +PuppiAlgo::PuppiAlgo(edm::ParameterSet const &iConfig) { fEtaMin = iConfig.getParameter>("etaMin"); fEtaMax = iConfig.getParameter>("etaMax"); fPtMin = iConfig.getParameter>("ptMin"); diff --git a/CommonTools/PileupAlgos/src/PuppiContainer.cc b/CommonTools/PileupAlgos/src/PuppiContainer.cc index ceb08185e561a..da1b7a6f44e06 100644 --- a/CommonTools/PileupAlgos/src/PuppiContainer.cc +++ b/CommonTools/PileupAlgos/src/PuppiContainer.cc @@ -20,30 +20,20 @@ PuppiContainer::PuppiContainer(const edm::ParameterSet &iConfig) { fPtMaxNeutrals = iConfig.getParameter("PtMaxNeutrals"); fPtMaxNeutralsStartSlope = iConfig.getParameter("PtMaxNeutralsStartSlope"); std::vector lAlgos = iConfig.getParameter >("algos"); - fNAlgos = lAlgos.size(); - for (unsigned int i0 = 0; i0 < lAlgos.size(); i0++) { - PuppiAlgo pPuppiConfig(lAlgos[i0]); - fPuppiAlgo.push_back(pPuppiConfig); + fPuppiAlgo.reserve(lAlgos.size()); + for (auto const &algos : lAlgos) { + fPuppiAlgo.emplace_back(algos); } } -void PuppiContainer::initialize(const std::vector &iRecoObjects) { - //Clear everything - fPFParticles.resize(0); - fPFParticlesForVar.resize(0); - fPFParticlesForVarChargedPV.resize(0); - fWeights.resize(0); - fVals.resize(0); - fRawAlphas.resize(0); - fAlphaMed.resize(0); - fAlphaRMS.resize(0); - fPUProxy = 1.; - //Link to the RecoObjects - fRecoParticles = &iRecoObjects; - fPFParticles.reserve(iRecoObjects.size()); - fPFParticlesForVar.reserve(iRecoObjects.size()); - fPFParticlesForVarChargedPV.reserve(iRecoObjects.size()); - for (auto const &rParticle : *fRecoParticles) { +void PuppiContainer::initialize(const std::vector &iRecoObjects, + std::vector &pfParticles, + std::vector &pfParticlesForVar, + std::vector &pfParticlesForVarChargedPV) const { + pfParticles.reserve(iRecoObjects.size()); + pfParticlesForVar.reserve(iRecoObjects.size()); + pfParticlesForVarChargedPV.reserve(iRecoObjects.size()); + for (auto const &rParticle : iRecoObjects) { PuppiCandidate pCand; pCand.id = rParticle.id; if (edm::isFinite(rParticle.rapidity)) { @@ -60,33 +50,31 @@ void PuppiContainer::initialize(const std::vector &iRecoObjects) { pCand.m = 0.; } - fPFParticles.push_back(pCand); + pfParticles.push_back(pCand); // skip candidates to be ignored in the computation // of PUPPI's alphas (e.g. electrons and muons if puppiNoLep=True) if (std::abs(rParticle.id) == 3) continue; - fPFParticlesForVar.push_back(pCand); + pfParticlesForVar.push_back(pCand); // charged candidates assigned to LV if (std::abs(rParticle.id) == 1) - fPFParticlesForVarChargedPV.push_back(pCand); + pfParticlesForVarChargedPV.push_back(pCand); } } -PuppiContainer::~PuppiContainer() {} - double PuppiContainer::goodVar(PuppiCandidate const &iPart, std::vector const &iParts, int iOpt, - const double iRCone) { + const double iRCone) const { return var_within_R(iOpt, iParts, iPart, iRCone); } double PuppiContainer::var_within_R(int iId, const vector &particles, const PuppiCandidate ¢re, - const double R) { + const double R) const { if (iId == -1) return 1.; @@ -137,12 +125,13 @@ double PuppiContainer::var_within_R(int iId, void PuppiContainer::getRMSAvg(int iOpt, std::vector const &iConstits, std::vector const &iParticles, - std::vector const &iChargedParticles) { + std::vector const &iChargedParticles, + std::vector &oVals) { for (unsigned int i0 = 0; i0 < iConstits.size(); i0++) { //Calculate the Puppi Algo to use int pPupId = getPuppiId(iConstits[i0].pt, iConstits[i0].eta); if (pPupId == -1 || fPuppiAlgo[pPupId].numAlgos() <= iOpt) { - fVals.push_back(-1); + oVals.push_back(-1); continue; } //Get the Puppi Sub Algo (given iteration) @@ -158,7 +147,7 @@ void PuppiContainer::getRMSAvg(int iOpt, (std::abs(iConstits[i0].eta) < fPuppiAlgo[pPupId].etaMaxExtrap() and getsDefaultWgtIfApplyCHS)) { pVal = goodVar(iConstits[i0], pCharged ? iChargedParticles : iParticles, pAlgo, pCone); } - fVals.push_back(pVal); + oVals.push_back(pVal); if (!edm::isFinite(pVal)) { LogDebug("NotFound") << "====> Value is Nan " << pVal << " == " << iConstits[i0].pt << " -- " << iConstits[i0].eta @@ -167,60 +156,66 @@ void PuppiContainer::getRMSAvg(int iOpt, } // code added by Nhan: now instead for every algorithm give it all the particles - for (int i1 = 0; i1 < fNAlgos; i1++) { + int count = 0; + for (auto &algo : fPuppiAlgo) { + int index = count++; // skip cands outside of algo's etaMaxExtrap, as they would anyway be ignored inside PuppiAlgo::add (see end of the block) - if (not(std::abs(iConstits[i0].eta) < fPuppiAlgo[i1].etaMaxExtrap() and getsDefaultWgtIfApplyCHS)) + if (not(std::abs(iConstits[i0].eta) < algo.etaMaxExtrap() and getsDefaultWgtIfApplyCHS)) continue; auto curVal = pVal; // recompute goodVar if algo has changed - if (i1 != pPupId) { - pAlgo = fPuppiAlgo[i1].algoId(iOpt); - pCharged = fPuppiAlgo[i1].isCharged(iOpt); - pCone = fPuppiAlgo[i1].coneSize(iOpt); + if (index != pPupId) { + pAlgo = algo.algoId(iOpt); + pCharged = algo.isCharged(iOpt); + pCone = algo.coneSize(iOpt); curVal = goodVar(iConstits[i0], pCharged ? iChargedParticles : iParticles, pAlgo, pCone); } - fPuppiAlgo[i1].add(iConstits[i0], curVal, iOpt); + algo.add(iConstits[i0], curVal, iOpt); } } - for (int i0 = 0; i0 < fNAlgos; i0++) - fPuppiAlgo[i0].computeMedRMS(iOpt); + for (auto &algo : fPuppiAlgo) + algo.computeMedRMS(iOpt); } //In fact takes the median not the average -void PuppiContainer::getRawAlphas(int iOpt, - std::vector const &iConstits, - std::vector const &iParticles, - std::vector const &iChargedParticles) { - for (int j0 = 0; j0 < fNAlgos; j0++) { - for (unsigned int i0 = 0; i0 < iConstits.size(); i0++) { +std::vector PuppiContainer::getRawAlphas(int iOpt, + std::vector const &iConstits, + std::vector const &iParticles, + std::vector const &iChargedParticles) const { + std::vector oRawAlphas; + oRawAlphas.reserve(fPuppiAlgo.size() * iConstits.size()); + for (auto &algo : fPuppiAlgo) { + for (auto const &constit : iConstits) { //Get the Puppi Sub Algo (given iteration) - int pAlgo = fPuppiAlgo[j0].algoId(iOpt); - bool pCharged = fPuppiAlgo[j0].isCharged(iOpt); - double pCone = fPuppiAlgo[j0].coneSize(iOpt); + int pAlgo = algo.algoId(iOpt); + bool pCharged = algo.isCharged(iOpt); + double pCone = algo.coneSize(iOpt); //Compute the Puppi Metric - double const pVal = goodVar(iConstits[i0], pCharged ? iChargedParticles : iParticles, pAlgo, pCone); - fRawAlphas.push_back(pVal); + double const pVal = goodVar(constit, pCharged ? iChargedParticles : iParticles, pAlgo, pCone); + oRawAlphas.push_back(pVal); if (!edm::isFinite(pVal)) { - LogDebug("NotFound") << "====> Value is Nan " << pVal << " == " << iConstits[i0].pt << " -- " - << iConstits[i0].eta << endl; + LogDebug("NotFound") << "====> Value is Nan " << pVal << " == " << constit.pt << " -- " << constit.eta << endl; continue; } } } + return oRawAlphas; } int PuppiContainer::getPuppiId(float iPt, float iEta) { int lId = -1; - for (int i0 = 0; i0 < fNAlgos; i0++) { - int nEtaBinsPerAlgo = fPuppiAlgo[i0].etaBins(); + int count = 0; + for (auto &algo : fPuppiAlgo) { + int index = count++; + int nEtaBinsPerAlgo = algo.etaBins(); for (int i1 = 0; i1 < nEtaBinsPerAlgo; i1++) { - if ((std::abs(iEta) >= fPuppiAlgo[i0].etaMin(i1)) && (std::abs(iEta) < fPuppiAlgo[i0].etaMax(i1))) { - fPuppiAlgo[i0].fixAlgoEtaBin(i1); - if (iPt > fPuppiAlgo[i0].ptMin()) { - lId = i0; + if ((std::abs(iEta) >= algo.etaMin(i1)) && (std::abs(iEta) < algo.etaMax(i1))) { + algo.fixAlgoEtaBin(i1); + if (iPt > algo.ptMin()) { + lId = index; break; } } @@ -229,7 +224,7 @@ int PuppiContainer::getPuppiId(float iPt, float iEta) { //if(lId == -1) std::cerr << "Error : Full fiducial range is not defined " << std::endl; return lId; } -double PuppiContainer::getChi2FromdZ(double iDZ) { +double PuppiContainer::getChi2FromdZ(double iDZ) const { //We need to obtain prob of PU + (1-Prob of LV) // Prob(LV) = Gaus(dZ,sigma) where sigma = 1.5mm (its really more like 1mm) //double lProbLV = ROOT::Math::normal_cdf_c(std::abs(iDZ),0.2)*2.; //*2 is to do it double sided @@ -244,39 +239,49 @@ double PuppiContainer::getChi2FromdZ(double iDZ) { lChi2PU *= lChi2PU; return lChi2PU; } -std::vector const &PuppiContainer::puppiWeights() { - int lNParticles = fRecoParticles->size(); +PuppiContainer::Weights PuppiContainer::calculatePuppiWeights(const std::vector &iRecoObjects, + double iPUProxy) { + std::vector pfParticles; + std::vector pfParticlesForVar; + std::vector pfParticlesForVarChargedPV; + + initialize(iRecoObjects, pfParticles, pfParticlesForVar, pfParticlesForVarChargedPV); + + int lNParticles = iRecoObjects.size(); + + Weights returnValue; + returnValue.weights.reserve(lNParticles); + returnValue.puppiAlphas.reserve(lNParticles); - fWeights.clear(); - fWeights.reserve(lNParticles); - fVals.clear(); - fVals.reserve(lNParticles); - for (int i0 = 0; i0 < fNAlgos; i0++) - fPuppiAlgo[i0].reset(); + //guarantee all algos are rest before leaving this function + auto doReset = [this](void *) { + for (auto &algo : fPuppiAlgo) + algo.reset(); + }; + std::unique_ptr guard(&fPuppiAlgo, doReset); int lNMaxAlgo = 1; - for (int i0 = 0; i0 < fNAlgos; i0++) - lNMaxAlgo = std::max(fPuppiAlgo[i0].numAlgos(), lNMaxAlgo); + for (auto &algo : fPuppiAlgo) + lNMaxAlgo = std::max(algo.numAlgos(), lNMaxAlgo); //Run through all compute mean and RMS for (int i0 = 0; i0 < lNMaxAlgo; i0++) { - getRMSAvg(i0, fPFParticles, fPFParticlesForVar, fPFParticlesForVarChargedPV); + getRMSAvg(i0, pfParticles, pfParticlesForVar, pfParticlesForVarChargedPV, returnValue.puppiAlphas); } if (fPuppiDiagnostics) - getRawAlphas(0, fPFParticles, fPFParticlesForVar, fPFParticlesForVarChargedPV); + returnValue.puppiRawAlphas = getRawAlphas(0, pfParticles, pfParticlesForVar, pfParticlesForVarChargedPV); std::vector pVals; pVals.reserve(lNParticles); for (int i0 = 0; i0 < lNParticles; i0++) { //Refresh pVals.clear(); - double pWeight = 1; //Get the Puppi Id and if ill defined move on - const auto &rParticle = (*fRecoParticles)[i0]; + const auto &rParticle = iRecoObjects[i0]; int pPupId = getPuppiId(rParticle.pt, rParticle.eta); if (pPupId == -1) { - fWeights.push_back(0); - fAlphaMed.push_back(-10); - fAlphaRMS.push_back(-10); + returnValue.weights.push_back(0); + returnValue.puppiAlphasMed.push_back(-10); + returnValue.puppiAlphasRMS.push_back(-10); continue; } @@ -292,9 +297,9 @@ std::vector const &PuppiContainer::puppiWeights() { //Fill and compute the PuppiWeight int lNAlgos = fPuppiAlgo[pPupId].numAlgos(); for (int i1 = 0; i1 < lNAlgos; i1++) - pVals.push_back(fVals[lNParticles * i1 + i0]); + pVals.push_back(returnValue.puppiAlphas[lNParticles * i1 + i0]); - pWeight = fPuppiAlgo[pPupId].compute(pVals, pChi2); + double pWeight = fPuppiAlgo[pPupId].compute(pVals, pChi2); //Apply the CHS weights if (rParticle.id == 1 && fApplyCHS) pWeight = 1; @@ -307,34 +312,34 @@ std::vector const &PuppiContainer::puppiWeights() { if (!edm::isFinite(pWeight)) { pWeight = 0.0; LogDebug("PuppiWeightError") << "====> Weight is nan : " << pWeight << " : pt " << rParticle.pt - << " -- eta : " << rParticle.eta << " -- Value" << fVals[i0] + << " -- eta : " << rParticle.eta << " -- Value" << returnValue.puppiAlphas[i0] << " -- id : " << rParticle.id << " -- NAlgos: " << lNAlgos << std::endl; } //Basic Cuts - if (pWeight * fPFParticles[i0].pt < fPuppiAlgo[pPupId].neutralPt(fPUProxy) && rParticle.id == 0) + if (pWeight * pfParticles[i0].pt < fPuppiAlgo[pPupId].neutralPt(iPUProxy) && rParticle.id == 0) pWeight = 0; //threshold cut on the neutral Pt // Protect high pT photons (important for gamma to hadronic recoil balance) - if (fPtMaxPhotons > 0 && rParticle.pdgId == 22 && std::abs(fPFParticles[i0].eta) < fEtaMaxPhotons && - fPFParticles[i0].pt > fPtMaxPhotons) + if (fPtMaxPhotons > 0 && rParticle.pdgId == 22 && std::abs(pfParticles[i0].eta) < fEtaMaxPhotons && + pfParticles[i0].pt > fPtMaxPhotons) pWeight = 1.; // Protect high pT neutrals else if ((fPtMaxNeutrals > 0) && (rParticle.id == 0)) pWeight = std::clamp( - (fPFParticles[i0].pt - fPtMaxNeutralsStartSlope) / (fPtMaxNeutrals - fPtMaxNeutralsStartSlope), pWeight, 1.); + (pfParticles[i0].pt - fPtMaxNeutralsStartSlope) / (fPtMaxNeutrals - fPtMaxNeutralsStartSlope), pWeight, 1.); if (pWeight < fPuppiWeightCut) pWeight = 0; //==> Elminate the low Weight stuff if (fInvert) pWeight = 1. - pWeight; //std::cout << "rParticle.pt = " << rParticle.pt << ", rParticle.charge = " << rParticle.charge << ", rParticle.id = " << rParticle.id << ", weight = " << pWeight << std::endl; - fWeights.push_back(pWeight); - fAlphaMed.push_back(fPuppiAlgo[pPupId].median()); - fAlphaRMS.push_back(fPuppiAlgo[pPupId].rms()); - //Now get rid of the thrown out weights for the particle collection + returnValue.weights.push_back(pWeight); + returnValue.puppiAlphasMed.push_back(fPuppiAlgo[pPupId].median()); + returnValue.puppiAlphasRMS.push_back(fPuppiAlgo[pPupId].rms()); + //Now get rid of the thrown out returnValue.weights for the particle collection // leave these lines in, in case want to move eventually to having no 1-to-1 correspondence between puppi and pf cands // if( std::abs(pWeight) < std::numeric_limits::denorm_min() ) continue; // this line seems not to work like it's supposed to... // if(std::abs(pWeight) <= 0. ) continue; } - return fWeights; + return returnValue; } From d971df69238b7b1f59456aef25bd0bc3000867cf Mon Sep 17 00:00:00 2001 From: Felice Pantaleo Date: Fri, 20 Dec 2024 09:40:49 +0100 Subject: [PATCH 355/418] code checks --- .../AllTracksterToSimTracksterAssociatorsByHitsProducer.cc | 4 ++-- .../AllTracksterToSimTracksterAssociatorsByLCsProducer.cc | 4 ++-- Validation/HGCalValidation/plugins/HGCalValidator.cc | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc index a5e5157af225c..90d4cffb866f5 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByHitsProducer.cc @@ -54,7 +54,7 @@ AllTracksterToSimTracksterAssociatorsByHitsProducer::AllTracksterToSimTracksterA const auto& tracksterCollections = pset.getParameter>("tracksterCollections"); for (const auto& tag : tracksterCollections) { std::string label = tag.label(); - if (tag.instance() != "") { + if (!tag.instance().empty()) { label += tag.instance(); } tracksterCollectionTokens_.emplace_back(label, consumes>(tag)); @@ -69,7 +69,7 @@ AllTracksterToSimTracksterAssociatorsByHitsProducer::AllTracksterToSimTracksterA const auto& simTracksterCollections = pset.getParameter>("simTracksterCollections"); for (const auto& tag : simTracksterCollections) { std::string label = tag.label(); - if (tag.instance() != "") { + if (!tag.instance().empty()) { label += tag.instance(); } simTracksterCollectionTokens_.emplace_back(label, consumes>(tag)); diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc index 75574531c2a1d..358cb535fa601 100644 --- a/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/AllTracksterToSimTracksterAssociatorsByLCsProducer.cc @@ -43,7 +43,7 @@ AllTracksterToSimTracksterAssociatorsByLCsProducer::AllTracksterToSimTracksterAs const auto& tracksterCollections = pset.getParameter>("tracksterCollections"); for (const auto& tag : tracksterCollections) { std::string label = tag.label(); - if (tag.instance() != "") { + if (!tag.instance().empty()) { label += tag.instance(); } tracksterCollectionTokens_.emplace_back(label, consumes>(tag)); @@ -57,7 +57,7 @@ AllTracksterToSimTracksterAssociatorsByLCsProducer::AllTracksterToSimTracksterAs const auto& simTracksterCollections = pset.getParameter>("simTracksterCollections"); for (const auto& tag : simTracksterCollections) { std::string label = tag.label(); - if (tag.instance() != "") { + if (!tag.instance().empty()) { label += tag.instance(); } simTracksterCollectionTokens_.emplace_back(label, consumes>(tag)); diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index 84960b97004c3..4683112dd5818 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -1,3 +1,5 @@ +#include + #include "Validation/HGCalValidation/interface/HGCalValidator.h" #include "SimCalorimetry/HGCalAssociatorProducers/interface/AssociatorTools.h" @@ -181,7 +183,7 @@ HGCalValidator::HGCalValidator(const edm::ParameterSet& pset) pset.getParameter("notConvertedOnlyCP"), pset.getParameter>("pdgIdCP")); - tools_.reset(new hgcal::RecHitTools()); + tools_ = std::make_shared(); particles_to_monitor_ = pset.getParameter>("pdgIdCP"); totallayers_to_monitor_ = pset.getParameter("totallayers_to_monitor"); From e4d89cbe577d3bfc08b63bdf7d2a7494f64d55e3 Mon Sep 17 00:00:00 2001 From: Martina Date: Fri, 20 Dec 2024 10:00:21 +0100 Subject: [PATCH 356/418] update --- ...LayerClusterToTPAssociatorByTrackIdImpl.cc | 114 +++++++++--------- 1 file changed, 55 insertions(+), 59 deletions(-) diff --git a/SimFastTiming/MtdAssociatorProducers/plugins/MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc b/SimFastTiming/MtdAssociatorProducers/plugins/MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc index 3d640fb378044..82f28030ccfd8 100644 --- a/SimFastTiming/MtdAssociatorProducers/plugins/MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc +++ b/SimFastTiming/MtdAssociatorProducers/plugins/MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc @@ -29,11 +29,13 @@ reco::SimToTPCollectionMtd MtdSimLayerClusterToTPAssociatorByTrackIdImpl::associ std::map, TrackingParticleRef> tpIdMap; for (auto tpIt = trackingParticles.begin(); tpIt != trackingParticles.end(); tpIt++) { const auto& tp = *tpIt; - unsigned int tpTrackId = tp.g4Tracks()[0].trackId(); - EncodedEventId tpEventId = tp.eventId(); - TrackingParticleRef tpRef = - edm::Ref(trackingParticleH, tpIt - trackingParticles.begin()); - tpIdMap[std::make_pair(tpTrackId, tpEventId.rawId())] = tpRef; + for (unsigned int igt = 0; igt < tp.g4Tracks().size(); igt++) { + unsigned int tpTrackId = tp.g4Tracks()[igt].trackId(); + EncodedEventId tpEventId = tp.eventId(); + TrackingParticleRef tpRef = + edm::Ref(trackingParticleH, tpIt - trackingParticles.begin()); + tpIdMap[std::make_pair(tpTrackId, tpEventId.rawId())] = tpRef; + } } // -- loop over sim clusters and get the trackId, eventId @@ -45,31 +47,26 @@ reco::SimToTPCollectionMtd MtdSimLayerClusterToTPAssociatorByTrackIdImpl::associ const auto& simClus = *simClusIt; size_t simClusIndex = simClusIt - simClusters.begin(); MtdSimLayerClusterRef simClusterRef = edm::Ref(simClusH, simClusIndex); - unsigned int simClusTrackId = simClus.g4Tracks()[0].trackId(); - EncodedEventId simClusEventId = simClus.eventId(); - - // -- Check the trackId offset of the sim hits and keep only clusters with "direct" hits (offset == 0) - /* - if (simClus.trackIdOffset() != 0 ) continue; - */ - - std::pair uniqueId = std::make_pair(simClusTrackId, simClusEventId.rawId()); - auto it = tpIdMap.find(uniqueId); - - if (it != tpIdMap.end()) { - TrackingParticleRef tpRef = tpIdMap[uniqueId]; - outputCollection.insert(simClusterRef, tpRef); - - LogDebug("MtdSimLayerClusterToTPAssociator::associateSimToTP") - << "MtdSimLayerCluster: index = " << simClusIndex << " simClus TrackId = " << simClusTrackId - << " simClus EventId = " << simClusEventId.rawId() << " simClus Eta = " << simClus.eta() - << " simClus Phi = " << simClus.phi() << " simClus Time = " << simClus.simLCTime() - << " simClus Energy = " << simClus.simLCEnergy() << std::endl; - LogDebug("MtdSimLayerClusterToTPAssociator::associateSimToTP") - << " --> Found associated tracking particle: tp TrackId = " << (*tpRef).g4Tracks()[0].trackId() - << " tp EventId = " << (*tpRef).eventId().rawId() << std::endl; + for (unsigned int igt = 0; igt < simClus.g4Tracks().size(); igt++) { + unsigned int simClusTrackId = simClus.g4Tracks()[igt].trackId(); + EncodedEventId simClusEventId = simClus.eventId(); + std::pair uniqueId = std::make_pair(simClusTrackId, simClusEventId.rawId()); + auto it = tpIdMap.find(uniqueId); + + if (it != tpIdMap.end()) { + TrackingParticleRef tpRef = tpIdMap[uniqueId]; + outputCollection.insert(simClusterRef, tpRef); + + LogDebug("MtdSimLayerClusterToTPAssociator::associateSimToTP") + << "MtdSimLayerCluster: index = " << simClusIndex << " simClus TrackId = " << simClusTrackId + << " simClus EventId = " << simClusEventId.rawId() << " simClus Eta = " << simClus.eta() + << " simClus Phi = " << simClus.phi() << " simClus Time = " << simClus.simLCTime() + << " simClus Energy = " << simClus.simLCEnergy() << std::endl; + LogDebug("MtdSimLayerClusterToTPAssociator::associateSimToTP") + << " --> Found associated tracking particle: tp TrackId = " << (*tpRef).g4Tracks()[0].trackId() + << " tp EventId = " << (*tpRef).eventId().rawId() << std::endl; + } } - } // -- end loop over sim clus return outputCollection; @@ -88,11 +85,13 @@ reco::TPToSimCollectionMtd MtdSimLayerClusterToTPAssociatorByTrackIdImpl::associ std::map, std::vector> simClusIdMap; for (auto simClusIt = simClusters.begin(); simClusIt != simClusters.end(); simClusIt++) { const auto& simClus = *simClusIt; - unsigned int simClusTrackId = simClus.g4Tracks()[0].trackId(); - EncodedEventId simClusEventId = simClus.eventId(); - MtdSimLayerClusterRef simClusterRef = - edm::Ref(simClusH, simClusIt - simClusters.begin()); - simClusIdMap[std::make_pair(simClusTrackId, simClusEventId.rawId())].push_back(simClusterRef); + for (unsigned int igt = 0; igt < simClus.g4Tracks().size(); igt++) { + unsigned int simClusTrackId = simClus.g4Tracks()[igt].trackId(); + EncodedEventId simClusEventId = simClus.eventId(); + MtdSimLayerClusterRef simClusterRef = + edm::Ref(simClusH, simClusIt - simClusters.begin()); + simClusIdMap[std::make_pair(simClusTrackId, simClusEventId.rawId())].push_back(simClusterRef); + } } // -- Loop over the tracking particles @@ -100,31 +99,28 @@ reco::TPToSimCollectionMtd MtdSimLayerClusterToTPAssociatorByTrackIdImpl::associ const auto& tp = *tpIt; size_t tpIndex = tpIt - trackingParticles.begin(); TrackingParticleRef tpRef = edm::Ref(trackingParticleH, tpIndex); - unsigned int tpTrackId = tp.g4Tracks()[0].trackId(); - EncodedEventId tpEventId = tp.eventId(); - - std::pair uniqueId = std::make_pair(tpTrackId, tpEventId.rawId()); - auto it = simClusIdMap.find(uniqueId); - - if (it != simClusIdMap.end()) { - for (unsigned int i = 0; i < simClusIdMap[uniqueId].size(); i++) { - MtdSimLayerClusterRef simClusterRef = simClusIdMap[uniqueId][i]; - // -- Check the trackId offset of the sim hits and keep only clusters with "direct" hits (offset == 0) - /* - if (simClus.trackIdOffset() != 0 ) continue; - */ - - outputCollection.insert(tpRef, simClusterRef); - - LogDebug("MtdSimLayerClusterToTPAssociator") - << "Tracking particle: index = " << tpIndex << " tp TrackId = " << tpTrackId - << " tp EventId = " << tpEventId.rawId(); - LogDebug("MtdSimLayerClusterToTPAssociator") - << " --> Found associated MtdSimLayerCluster: simClus TrackId = " - << (*simClusterRef).g4Tracks()[0].trackId() << " simClus EventId = " << (*simClusterRef).eventId().rawId() - << " simClus Eta = " << (*simClusterRef).eta() << " simClus Phi = " << (*simClusterRef).phi() - << " simClus Time = " << (*simClusterRef).simLCTime() - << " simClus Energy = " << (*simClusterRef).simLCEnergy() << std::endl; + for (unsigned int igt = 0; igt < tp.g4Tracks().size(); igt++) { + unsigned int tpTrackId = tp.g4Tracks()[igt].trackId(); + EncodedEventId tpEventId = tp.eventId(); + std::pair uniqueId = std::make_pair(tpTrackId, tpEventId.rawId()); + auto it = simClusIdMap.find(uniqueId); + + if (it != simClusIdMap.end()) { + for (unsigned int i = 0; i < simClusIdMap[uniqueId].size(); i++) { + MtdSimLayerClusterRef simClusterRef = simClusIdMap[uniqueId][i]; + + outputCollection.insert(tpRef, simClusterRef); + + LogDebug("MtdSimLayerClusterToTPAssociator") + << "Tracking particle: index = " << tpIndex << " tp TrackId = " << tpTrackId + << " tp EventId = " << tpEventId.rawId(); + LogDebug("MtdSimLayerClusterToTPAssociator") + << " --> Found associated MtdSimLayerCluster: simClus TrackId = " + << (*simClusterRef).g4Tracks()[0].trackId() << " simClus EventId = " << (*simClusterRef).eventId().rawId() + << " simClus Eta = " << (*simClusterRef).eta() << " simClus Phi = " << (*simClusterRef).phi() + << " simClus Time = " << (*simClusterRef).simLCTime() + << " simClus Energy = " << (*simClusterRef).simLCEnergy() << std::endl; + } } } } From f0f1fd91900008538bd16c394ead014ac01207d5 Mon Sep 17 00:00:00 2001 From: Martina Date: Fri, 20 Dec 2024 10:27:16 +0100 Subject: [PATCH 357/418] move eventID outside loop --- .../MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SimFastTiming/MtdAssociatorProducers/plugins/MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc b/SimFastTiming/MtdAssociatorProducers/plugins/MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc index 82f28030ccfd8..826563e830797 100644 --- a/SimFastTiming/MtdAssociatorProducers/plugins/MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc +++ b/SimFastTiming/MtdAssociatorProducers/plugins/MtdSimLayerClusterToTPAssociatorByTrackIdImpl.cc @@ -29,9 +29,9 @@ reco::SimToTPCollectionMtd MtdSimLayerClusterToTPAssociatorByTrackIdImpl::associ std::map, TrackingParticleRef> tpIdMap; for (auto tpIt = trackingParticles.begin(); tpIt != trackingParticles.end(); tpIt++) { const auto& tp = *tpIt; + EncodedEventId tpEventId = tp.eventId(); for (unsigned int igt = 0; igt < tp.g4Tracks().size(); igt++) { unsigned int tpTrackId = tp.g4Tracks()[igt].trackId(); - EncodedEventId tpEventId = tp.eventId(); TrackingParticleRef tpRef = edm::Ref(trackingParticleH, tpIt - trackingParticles.begin()); tpIdMap[std::make_pair(tpTrackId, tpEventId.rawId())] = tpRef; @@ -47,9 +47,9 @@ reco::SimToTPCollectionMtd MtdSimLayerClusterToTPAssociatorByTrackIdImpl::associ const auto& simClus = *simClusIt; size_t simClusIndex = simClusIt - simClusters.begin(); MtdSimLayerClusterRef simClusterRef = edm::Ref(simClusH, simClusIndex); + EncodedEventId simClusEventId = simClus.eventId(); for (unsigned int igt = 0; igt < simClus.g4Tracks().size(); igt++) { unsigned int simClusTrackId = simClus.g4Tracks()[igt].trackId(); - EncodedEventId simClusEventId = simClus.eventId(); std::pair uniqueId = std::make_pair(simClusTrackId, simClusEventId.rawId()); auto it = tpIdMap.find(uniqueId); @@ -85,9 +85,9 @@ reco::TPToSimCollectionMtd MtdSimLayerClusterToTPAssociatorByTrackIdImpl::associ std::map, std::vector> simClusIdMap; for (auto simClusIt = simClusters.begin(); simClusIt != simClusters.end(); simClusIt++) { const auto& simClus = *simClusIt; + EncodedEventId simClusEventId = simClus.eventId(); for (unsigned int igt = 0; igt < simClus.g4Tracks().size(); igt++) { unsigned int simClusTrackId = simClus.g4Tracks()[igt].trackId(); - EncodedEventId simClusEventId = simClus.eventId(); MtdSimLayerClusterRef simClusterRef = edm::Ref(simClusH, simClusIt - simClusters.begin()); simClusIdMap[std::make_pair(simClusTrackId, simClusEventId.rawId())].push_back(simClusterRef); @@ -99,9 +99,9 @@ reco::TPToSimCollectionMtd MtdSimLayerClusterToTPAssociatorByTrackIdImpl::associ const auto& tp = *tpIt; size_t tpIndex = tpIt - trackingParticles.begin(); TrackingParticleRef tpRef = edm::Ref(trackingParticleH, tpIndex); + EncodedEventId tpEventId = tp.eventId(); for (unsigned int igt = 0; igt < tp.g4Tracks().size(); igt++) { unsigned int tpTrackId = tp.g4Tracks()[igt].trackId(); - EncodedEventId tpEventId = tp.eventId(); std::pair uniqueId = std::make_pair(tpTrackId, tpEventId.rawId()); auto it = simClusIdMap.find(uniqueId); From 0ae08d206f8437fff0bba9b4e7916cb1a4db9bb6 Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 17 Dec 2024 15:08:59 +0100 Subject: [PATCH 358/418] clean-up unused inclusions in HLT paths in Phase2 HLT menu --- .../paths/HLT_Diphoton30_23_IsoCaloId_L1Seeded_cfi.py | 1 - .../paths/HLT_Diphoton30_23_IsoCaloId_Unseeded_cfi.py | 1 - .../paths/HLT_DoubleEle23_12_Iso_L1Seeded_cfi.py | 1 - .../paths/HLT_DoubleEle25_CaloIdL_PMS2_L1Seeded_cfi.py | 1 - .../paths/HLT_DoubleEle25_CaloIdL_PMS2_Unseeded_cfi.py | 1 - .../HLT_75e33/paths/HLT_Ele115_NonIso_L1Seeded_cfi.py | 1 - .../HLT_75e33/paths/HLT_Ele26_WP70_L1Seeded_cfi.py | 1 - .../HLT_75e33/paths/HLT_Ele26_WP70_Unseeded_cfi.py | 1 - .../HLT_75e33/paths/HLT_Ele32_WPTight_L1Seeded_cfi.py | 1 - .../HLT_75e33/paths/HLT_Ele32_WPTight_Unseeded_cfi.py | 1 - ...Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py | 10 +--------- .../HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py | 1 - .../HLT_Photon108EB_TightID_TightIso_L1Seeded_cfi.py | 1 - .../HLT_Photon108EB_TightID_TightIso_Unseeded_cfi.py | 1 - .../HLT_75e33/paths/HLT_Photon187_L1Seeded_cfi.py | 1 - .../HLT_75e33/paths/HLT_Photon187_Unseeded_cfi.py | 1 - .../paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py | 7 +------ 17 files changed, 2 insertions(+), 30 deletions(-) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_L1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_L1Seeded_cfi.py index 404fc49f9db52..348f1b257bf13 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_L1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_L1Seeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreDiphoton3023IsoCaloIdL1Seeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTDiphoton3023IsoCaloIdL1SeededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_Unseeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_Unseeded_cfi.py index 2c0e74098f74b..be7a430f95498 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_Unseeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Diphoton30_23_IsoCaloId_Unseeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreDiphoton3023IsoCaloIdUnseeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTDiphoton3023IsoCaloIdUnseededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle23_12_Iso_L1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle23_12_Iso_L1Seeded_cfi.py index 47046f6d66c60..1c81dad9f355b 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle23_12_Iso_L1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle23_12_Iso_L1Seeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreDoubleEle2312IsoL1Seeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTDoubleEle2312IsoL1SeededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle25_CaloIdL_PMS2_L1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle25_CaloIdL_PMS2_L1Seeded_cfi.py index 3fb7a05ea48dc..24588d033958b 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle25_CaloIdL_PMS2_L1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle25_CaloIdL_PMS2_L1Seeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreDoubleEle25CaloIdLPMS2L1Seeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTDoubleEle25CaloIdLPMS2L1SeededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle25_CaloIdL_PMS2_Unseeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle25_CaloIdL_PMS2_Unseeded_cfi.py index 151c07eb0294e..ac07eb66da9d8 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle25_CaloIdL_PMS2_Unseeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_DoubleEle25_CaloIdL_PMS2_Unseeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreDoubleEle25CaloIdLPMS2Unseeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTDoubleEle25CaloIdLPMS2UnseededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele115_NonIso_L1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele115_NonIso_L1Seeded_cfi.py index 4e08a0cebc95c..75f1147eb2c54 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele115_NonIso_L1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele115_NonIso_L1Seeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreEle115NonIsoL1Seeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEle115NonIsoL1SeededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele26_WP70_L1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele26_WP70_L1Seeded_cfi.py index d62ae757cb975..f2009f0852442 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele26_WP70_L1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele26_WP70_L1Seeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreEle26WP70L1Seeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEle26WP70L1SeededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele26_WP70_Unseeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele26_WP70_Unseeded_cfi.py index 632ef89e33fa2..6c829e91b161f 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele26_WP70_Unseeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele26_WP70_Unseeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreEle26WP70Unseeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEle26WP70UnseededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele32_WPTight_L1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele32_WPTight_L1Seeded_cfi.py index 11ba87c693f32..ce1774c5b6ee8 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele32_WPTight_L1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele32_WPTight_L1Seeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreEle32WPTightL1Seeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEle32WPTightL1SeededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele32_WPTight_Unseeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele32_WPTight_Unseeded_cfi.py index 11abc9d782d5d..e58a9899bd14a 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele32_WPTight_Unseeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele32_WPTight_Unseeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPreEle32WPTightUnseeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEle32WPTightUnseededSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py index 828b3e5c17490..6140917f554e4 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_FromL1TkMuon_cfi.py @@ -5,22 +5,14 @@ from ..sequences.HLTRawToDigiSequence_cfi import * from ..sequences.HLTItLocalRecoSequence_cfi import * from ..sequences.HLTOtLocalRecoSequence_cfi import * -from ..sequences.HLTHgcalLocalRecoSequence_cfi import * -from ..sequences.HLTDoLocalHcalSequence_cfi import * -from ..sequences.HLTDoFullUnpackingEgammaEcalSequence_cfi import * -from ..sequences.HLTFastJetForEgammaSequence_cfi import * -from ..sequences.HLTPfClusteringHBHEHFSequence_cfi import * -from ..sequences.HLTMuonsSequence_cfi import * -from ..sequences.HLTPFClusteringForEgammaUnseededSequence_cfi import * from ..sequences.HLTPhase2L3MuonGeneralTracksSequence_cfi import * +from ..sequences.HLTMuonsSequence_cfi import * from ..modules.hltDoubleTkMuon157L1TkMuonFilter_cfi import * from ..modules.hltPhase2PixelFitterByHelixProjections_cfi import * from ..modules.hltPhase2PixelTrackFilterByKinematics_cfi import * from ..modules.hltDiMuon178RelTrkIsoFiltered0p4_cfi import * from ..modules.hltDiMuon178RelTrkIsoFiltered0p4DzFiltered0p2_cfi import * from ..modules.hltDoubleMuon7DZ1p0_cfi import * -from ..modules.hltL1TkDoubleMuFiltered7_cfi import * -from ..modules.hltL1TkSingleMuFiltered15_cfi import * from ..modules.hltL3fL1DoubleMu155fFiltered17_cfi import * from ..modules.hltL3fL1DoubleMu155fPreFiltered8_cfi import * from ..modules.hltPhase2L3MuonsTrkIsoRegionalNewdR0p3dRVeto0p005dz0p25dr0p20ChisqInfPtMin0p0Cut0p4_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py index 4cf72d0ec4daa..764b1d308e12e 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Mu50_FromL1TkMuon_cfi.py @@ -8,7 +8,6 @@ from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * from ..sequences.HLTMuonsSequence_cfi import * -from ..sequences.HLTTrackingV61Sequence_cfi import * from ..sequences.HLTItLocalRecoSequence_cfi import * from ..sequences.HLTMuonlocalrecoSequence_cfi import * from ..sequences.HLTOtLocalRecoSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon108EB_TightID_TightIso_L1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon108EB_TightID_TightIso_L1Seeded_cfi.py index a6e5a036debcc..857e665a06088 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon108EB_TightID_TightIso_L1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon108EB_TightID_TightIso_L1Seeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPrePhoton108EBTightIDTightIsoL1Seeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * from ..sequences.HLTPhoton108EBTightIDTightIsoL1SeededSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon108EB_TightID_TightIso_Unseeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon108EB_TightID_TightIso_Unseeded_cfi.py index 8bf14dcec5a3a..4b40155559316 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon108EB_TightID_TightIso_Unseeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon108EB_TightID_TightIso_Unseeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPrePhoton108EBTightIDTightIsoUnseeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * from ..sequences.HLTPhoton108EBTightIDTightIsoUnseededSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon187_L1Seeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon187_L1Seeded_cfi.py index 64d95a14a00b6..e8efa3c4d5eb9 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon187_L1Seeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon187_L1Seeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPrePhoton187L1Seeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * from ..sequences.HLTPhoton187L1SeededSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon187_Unseeded_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon187_Unseeded_cfi.py index 336d0f9930077..54a356fd165f6 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon187_Unseeded_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Photon187_Unseeded_cfi.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms -from ..modules.hltPrePhoton187Unseeded_cfi import * from ..sequences.HLTBeginSequence_cfi import * from ..sequences.HLTEndSequence_cfi import * from ..sequences.HLTPhoton187UnseededSequence_cfi import * diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py index 044cb6fbb507b..b9f14bc76dee4 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_TriMu_10_5_5_DZ_FromL1TkMuon_cfi.py @@ -5,12 +5,6 @@ from ..sequences.HLTRawToDigiSequence_cfi import * from ..sequences.HLTItLocalRecoSequence_cfi import * from ..sequences.HLTOtLocalRecoSequence_cfi import * -from ..sequences.HLTHgcalLocalRecoSequence_cfi import * -from ..sequences.HLTDoLocalHcalSequence_cfi import * -from ..sequences.HLTDoFullUnpackingEgammaEcalSequence_cfi import * -from ..sequences.HLTFastJetForEgammaSequence_cfi import * -from ..sequences.HLTPfClusteringHBHEHFSequence_cfi import * -from ..sequences.HLTPFClusteringForEgammaUnseededSequence_cfi import * from ..sequences.HLTMuonsSequence_cfi import * from ..modules.hltPhase2PixelFitterByHelixProjections_cfi import * from ..modules.hltPhase2PixelTrackFilterByKinematics_cfi import * @@ -35,3 +29,4 @@ + hltL3fL1TkTripleMu533L31055DZFiltered0p2 + HLTEndSequence ) + From 9973c6afaace6e56b69eb497d4eb8a210dd4e3f9 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Fri, 20 Dec 2024 18:15:13 +0100 Subject: [PATCH 359/418] clang19 fix: template argument list is expected after a name prefixed --- CommonTools/UtilAlgos/interface/ParameterAdapter.h | 2 +- DPGAnalysis/MuonTools/interface/MuLocalRecoBaseProducer.h | 2 +- RecoEgamma/EgammaTools/plugins/EGFull5x5ShowerShapeModifier.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CommonTools/UtilAlgos/interface/ParameterAdapter.h b/CommonTools/UtilAlgos/interface/ParameterAdapter.h index 30afcc494aae9..86e4add7af247 100644 --- a/CommonTools/UtilAlgos/interface/ParameterAdapter.h +++ b/CommonTools/UtilAlgos/interface/ParameterAdapter.h @@ -14,7 +14,7 @@ namespace reco { static S make(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC) { return S(cfg, iC); } static S make(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) { return S(cfg, iC); } - static void fillPSetDescription(edm::ParameterSetDescription& desc) { S::template fillPSetDescription(desc); } + static void fillPSetDescription(edm::ParameterSetDescription& desc) { S::fillPSetDescription(desc); } }; template diff --git a/DPGAnalysis/MuonTools/interface/MuLocalRecoBaseProducer.h b/DPGAnalysis/MuonTools/interface/MuLocalRecoBaseProducer.h index 178763252ad94..89f650d882e25 100644 --- a/DPGAnalysis/MuonTools/interface/MuLocalRecoBaseProducer.h +++ b/DPGAnalysis/MuonTools/interface/MuLocalRecoBaseProducer.h @@ -53,7 +53,7 @@ class MuRecObjBaseProducer public: MuRecObjBaseProducer(edm::ParameterSet const ¶ms) - : SimpleFlatTableProducerBase(params), m_token{this->template esConsumes()} { + : SimpleFlatTableProducerBase(params), m_token{this->esConsumes()} { auto varCfgs = params.getParameter("detIdVariables"); auto varNames = varCfgs.getParameterNamesForType(); diff --git a/RecoEgamma/EgammaTools/plugins/EGFull5x5ShowerShapeModifier.cc b/RecoEgamma/EgammaTools/plugins/EGFull5x5ShowerShapeModifier.cc index 3f1c0728eb68a..8c36a6df6ef85 100644 --- a/RecoEgamma/EgammaTools/plugins/EGFull5x5ShowerShapeModifier.cc +++ b/RecoEgamma/EgammaTools/plugins/EGFull5x5ShowerShapeModifier.cc @@ -12,7 +12,7 @@ namespace { template inline void make_consumes(const T& tag, edm::EDGetTokenT& tok, V& sume) { if (!(empty_tag == tag)) - tok = sume.template consumes(tag); + tok = sume.consumes(tag); } } // namespace From 7efa3b0b34da6955bb9b4591a196e5f07d7b52c6 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Sat, 21 Dec 2024 07:58:03 +0100 Subject: [PATCH 360/418] Updat the IsoTrack calibration codes to finalize 2024 and 2025 calibrations --- Calibration/HcalCalibAlgos/macros/CalibCorr.C | 8 +++-- .../HcalCalibAlgos/macros/CalibFitPlots.C | 34 +++++++++---------- .../HcalCalibAlgos/macros/CalibMonitor.C | 4 +-- .../macros/CalibPlotProperties.C | 4 +-- Calibration/HcalCalibAlgos/macros/CalibTree.C | 14 ++++---- .../plugins/HcalIsoTrkAnalyzer.cc | 7 +++- 6 files changed, 40 insertions(+), 31 deletions(-) diff --git a/Calibration/HcalCalibAlgos/macros/CalibCorr.C b/Calibration/HcalCalibAlgos/macros/CalibCorr.C index a578a830603f9..2d43bb67a7b52 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibCorr.C +++ b/Calibration/HcalCalibAlgos/macros/CalibCorr.C @@ -658,7 +658,7 @@ private: bool readCorrFactor(const char* fName); unsigned int runId(const int& run); - int flag_; + int flag_, nocc_; double debug_, ok_; std::vector entries_; std::map > weights_; @@ -1305,7 +1305,8 @@ bool CalibSelectRBX::isItRBX(const int ieta, const int iphi) { return ok; } -CalibDuplicate::CalibDuplicate(const char* fname, int flag, bool debug) : flag_(flag), debug_(debug), ok_(false) { +CalibDuplicate::CalibDuplicate(const char* fname, int flag, bool debug) : flag_(flag), nocc_(0), debug_(debug), ok_(false) { + std::cout << "CalibDuplicate called with Flag " << flag_ << " i/p file " << fname << std::endl; if (flag_ == 0) { if (strcmp(fname, "") != 0) { std::ifstream infile(fname); @@ -1449,6 +1450,7 @@ bool CalibDuplicate::select(int ieta, int iphi) { } double CalibDuplicate::getCorr(int run, int ieta, int depth) { + ++nocc_; std::map, std::vector >::const_iterator itr = corrs_.find(std::pair(ieta, depth)); double corr(1.0); @@ -1456,6 +1458,8 @@ double CalibDuplicate::getCorr(int run, int ieta, int depth) { unsigned int irun = runId(run); corr = (itr->second)[irun]; } + if (debug_ && (nocc_ < 1000)) + std::cout << "Run " << run << " ieta:depth " << ieta << ":" << depth << " found " << (itr == corrs_.end()) << " Corr " << corr << std::endl; return corr; } diff --git a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C index 281090a9e27f4..04829e1b086f4 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C +++ b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C @@ -2216,7 +2216,7 @@ void PlotHistCorrFactor(char* infile, gStyle->SetOptFit(0); } int colors[7] = {1, 6, 4, 7, 2, 9, 3}; - int mtype[7] = {20, 21, 22, 23, 24, 33, 25}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; int nbin = etamax - etamin + 1; std::vector hists; std::vector entries; @@ -2357,7 +2357,7 @@ void PlotHistCorrFactor(char* infile, gStyle->SetOptFit(0); } int colors[7] = {1, 6, 4, 7, 2, 9, 3}; - int mtype[7] = {20, 21, 22, 23, 24, 33, 25}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; int nbin = etamax - etamin + 1; std::vector hists; std::vector entries; @@ -2485,8 +2485,8 @@ void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = gStyle->SetOptTitle(0); gStyle->SetOptStat(0); gStyle->SetOptFit(10); - int colors[6] = {1, 6, 4, 7, 2, 9}; - int mtype[6] = {20, 21, 22, 23, 24, 33}; + int colors[7] = {1, 6, 4, 7, 2, 9, 3}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; int nbin = etamax + 1; std::vector hists; std::vector entries; @@ -2639,8 +2639,8 @@ void PlotHistCorrFactors(char* infile1, gStyle->SetOptStat(0); gStyle->SetOptFit(0); } - int colors[7] = {1, 6, 4, 2, 7, 9, 46}; - int mtype[7] = {20, 24, 22, 23, 21, 25, 33}; + int colors[7] = {1, 6, 4, 7, 2, 9, 3}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; int nbin = etamax - etamin + 1; std::vector hists; std::vector entries, htype, depths; @@ -2873,8 +2873,8 @@ void PlotHistCorr2Factors(char* infile1, gStyle->SetOptStat(0); gStyle->SetOptFit(0); } - int colors[7] = {1, 6, 4, 2, 7, 9, 46}; - int mtype[7] = {20, 24, 22, 23, 21, 25, 33}; + int colors[7] = {1, 6, 4, 7, 2, 9, 3}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; int nbin = etamax - etamin + 1; std::vector hists; std::vector entries, htype; @@ -3116,8 +3116,8 @@ void PlotHistCorrDFactors(char* infile1, gStyle->SetOptStat(0); gStyle->SetOptFit(0); } - int colors[7] = {1, 6, 4, 2, 7, 9, 46}; - int mtype[7] = {20, 24, 22, 23, 21, 25, 33}; + int colors[7] = {1, 6, 4, 7, 2, 9, 3}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; int nbin = etamax - etamin + 1; std::vector hists; std::vector entries, htype; @@ -3337,8 +3337,8 @@ void PlotHistCorrSys(std::string infilec, int conds, std::string text, int save gStyle->SetOptTitle(0); gStyle->SetOptStat(10); gStyle->SetOptFit(10); - int colors[6] = {1, 6, 4, 7, 2, 9}; - int mtype[6] = {20, 21, 22, 23, 24, 33}; + int colors[7] = {1, 6, 4, 7, 2, 9, 3}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; std::vector hists; char name[100]; int nbin = etamax - etamin + 1; @@ -3537,8 +3537,8 @@ void PlotHistCorrRel(char* infile1, gStyle->SetOptTitle(0); gStyle->SetOptStat(10); gStyle->SetOptFit(10); - int colors[6] = {1, 6, 4, 7, 2, 9}; - int mtype[6] = {20, 21, 22, 23, 24, 33}; + int colors[7] = {1, 6, 4, 7, 2, 9, 3}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; std::vector hists; char name[100]; int nbin = etamax - etamin + 1; @@ -4512,7 +4512,7 @@ void PlotDepthCorrFactor(char* infile, gStyle->SetOptFit(0); } int colors[7] = {1, 6, 4, 7, 2, 9, 3}; - int mtype[7] = {20, 21, 22, 23, 24, 33, 25}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; int nbin = etamax - etamin + 1; std::vector hists; std::vector entries; @@ -4818,8 +4818,8 @@ void PlotHistCorrRatio(char* infile1, gStyle->SetOptStat(0); gStyle->SetOptFit(0); } - int colors[7] = {1, 6, 4, 2, 7, 9, 46}; - int mtype[7] = {20, 24, 22, 23, 21, 25, 33}; + int colors[7] = {1, 6, 4, 7, 2, 9, 3}; + int mtype[7] = {20, 21, 22, 23, 24, 25, 26}; int styles[7] = {2, 3, 1, 4, 1, 3, 2}; int nbin = etamax - etamin + 1; std::vector hists; diff --git a/Calibration/HcalCalibAlgos/macros/CalibMonitor.C b/Calibration/HcalCalibAlgos/macros/CalibMonitor.C index 3b0c08c62a8c0..513d30e8fc6bb 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibMonitor.C +++ b/Calibration/HcalCalibAlgos/macros/CalibMonitor.C @@ -962,7 +962,7 @@ void CalibMonitor::Loop(Long64_t nmax, bool debug) { } else if (kp == 5) { ++kount5[0]; } - bool select = ((cDuplicate_ != nullptr) && (duplicate_ == 0)) ? (cDuplicate_->isDuplicate(jentry)) : true; + bool select = ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(0))) ? (cDuplicate_->isDuplicate(jentry)) : true; if (!select) { ++duplicate; if (debug) @@ -1037,7 +1037,7 @@ void CalibMonitor::Loop(Long64_t nmax, bool debug) { continue; } } - if (cDuplicate_ != nullptr) { + if ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(2))) { if (cDuplicate_->select(t_ieta, t_iphi)) continue; } diff --git a/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C b/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C index 2bf14a8d52e2e..14a84f27e4f4c 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C +++ b/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C @@ -839,7 +839,7 @@ void CalibPlotProperties::Loop(Long64_t nentries) { nbytes += nb; if (jentry % 1000000 == 0) std::cout << "Entry " << jentry << " Run " << t_Run << " Event " << t_Event << std::endl; - bool select = ((cDuplicate_ != nullptr) && (duplicate_ == 0)) ? (cDuplicate_->isDuplicate(jentry)) : true; + bool select = ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(0))) ? (cDuplicate_->isDuplicate(jentry)) : true; if (!select) { ++duplicate; if (debug) @@ -865,7 +865,7 @@ void CalibPlotProperties::Loop(Long64_t nentries) { continue; } } - if (cDuplicate_ != nullptr) { + if ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(2))) { if (cDuplicate_->select(t_ieta, t_iphi)) continue; } diff --git a/Calibration/HcalCalibAlgos/macros/CalibTree.C b/Calibration/HcalCalibAlgos/macros/CalibTree.C index 90423f7711fb9..7626b3bf57fe1 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibTree.C +++ b/Calibration/HcalCalibAlgos/macros/CalibTree.C @@ -788,7 +788,7 @@ Double_t CalibTree::Loop(int loop, else if ((oddEven > 0) && (jentry % 2 != 0)) continue; } - bool select = ((cDuplicate_ != nullptr) && (duplicate_ == 0)) ? (cDuplicate_->isDuplicate(jentry)) : true; + bool select = ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(0))) ? (cDuplicate_->isDuplicate(jentry)) : true; if (!select) continue; bool selRun = (includeRun_ ? ((t_Run >= runlo_) && (t_Run <= runhi_)) : ((t_Run < runlo_) || (t_Run > runhi_))); @@ -805,7 +805,7 @@ Double_t CalibTree::Loop(int loop, continue; } } - if (cDuplicate_ != nullptr) { + if ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(2))) { if (cDuplicate_->select(t_ieta, t_iphi)) continue; } @@ -1094,7 +1094,7 @@ void CalibTree::getDetId(double fraction, int ietaTrack, bool debug, Long64_t nm else if ((oddEven > 0) && (jentry % 2 != 0)) continue; } - bool select = ((cDuplicate_ != nullptr) && (duplicate_ == 0)) ? (cDuplicate_->isDuplicate(jentry)) : true; + bool select = ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(0))) ? (cDuplicate_->isDuplicate(jentry)) : true; if (!select) continue; // Find DetIds contributing to the track @@ -1109,7 +1109,7 @@ void CalibTree::getDetId(double fraction, int ietaTrack, bool debug, Long64_t nm else isItRBX = !(temp); } - if ((cDuplicate_ != nullptr) && (!isItRBX)) + if ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(2)) && (!isItRBX)) isItRBX = (cDuplicate_->select(t_ieta, t_iphi)); ++kprint; if (!(isItRBX)) { @@ -1348,10 +1348,10 @@ void CalibTree::makeplots( else if ((oddEven > 0) && (jentry % 2 != 0)) continue; } - bool select = ((cDuplicate_ != nullptr) && (duplicate_ == 0)) ? (cDuplicate_->isDuplicate(jentry)) : true; + bool select = ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(0))) ? (cDuplicate_->isDuplicate(jentry)) : true; if (!select) continue; - if (cDuplicate_ != nullptr) { + if ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(2))) { select = !(cDuplicate_->select(t_ieta, t_iphi)); if (!select) continue; @@ -1536,7 +1536,7 @@ CalibTree::energyCalor CalibTree::energyHcal(double pmom, const Long64_t &entry, hitEn = (*t_HitEnergies3)[idet]; if ((rcorForm_ != 3) && (rcorForm_ >= 0) && (cFactor_)) hitEn *= cFactor_->getCorr(t_Run, id); - if ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(3))) + if ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(1))) hitEn *= cDuplicate_->getWeight(id); if ((cDuplicate_ != nullptr) && (cDuplicate_->doCorr(3))) { int subdet, zside, ieta, iphi, depth; diff --git a/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc b/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc index 69e863f5709a5..59694a5e2749b 100644 --- a/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc +++ b/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc @@ -218,6 +218,7 @@ class HcalIsoTrkAnalyzer : public edm::one::EDAnalyzer*t_ietaAll, *t_ietaGood, *t_trackType; bool debug_; + unsigned int count_; }; HcalIsoTrkAnalyzer::HcalIsoTrkAnalyzer(const edm::ParameterSet& iConfig) @@ -312,7 +313,8 @@ HcalIsoTrkAnalyzer::HcalIsoTrkAnalyzer(const edm::ParameterSet& iConfig) nHigh_(0), theHBHETopology_(nullptr), respCorrs_(nullptr), - hdc_(nullptr) { + hdc_(nullptr), + count_(0) { usesResource(TFileService::kSharedResource); //now do whatever initialization is needed @@ -1311,6 +1313,7 @@ std::array HcalIsoTrkAnalyzer::fillTree(std::vectorFill(); edm::LogVerbatim("HcalIsoTrackX") << "Run " << t_RunNo << " Event " << t_EventNo << " Track " << nTracks << " p " << t_p; @@ -1439,6 +1442,8 @@ void HcalIsoTrkAnalyzer::storeEnergy(int indx, if (unCorrect_) { for (unsigned int k = 0; k < ids.size(); ++k) { double corr = (respCorrs_->getValues(ids[k]))->getValue(); + if (count_ <= 1) + edm::LogVerbatim("HcalIsoTrack") << "Correction Factor for " << HcalDetId(ids[k]) << " " << corr; if (corr != 0) edet[k] /= corr; ehcal += edet[k]; From 8df2f6a0f3ac19cf0cc2f44cfaa739fe2f9943cc Mon Sep 17 00:00:00 2001 From: Sunanda Date: Sat, 21 Dec 2024 08:04:10 +0100 Subject: [PATCH 361/418] Code check --- Calibration/HcalCalibAlgos/macros/CalibCorr.C | 6 ++++-- Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Calibration/HcalCalibAlgos/macros/CalibCorr.C b/Calibration/HcalCalibAlgos/macros/CalibCorr.C index 2d43bb67a7b52..65d7006880dd5 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibCorr.C +++ b/Calibration/HcalCalibAlgos/macros/CalibCorr.C @@ -1305,7 +1305,8 @@ bool CalibSelectRBX::isItRBX(const int ieta, const int iphi) { return ok; } -CalibDuplicate::CalibDuplicate(const char* fname, int flag, bool debug) : flag_(flag), nocc_(0), debug_(debug), ok_(false) { +CalibDuplicate::CalibDuplicate(const char* fname, int flag, bool debug) + : flag_(flag), nocc_(0), debug_(debug), ok_(false) { std::cout << "CalibDuplicate called with Flag " << flag_ << " i/p file " << fname << std::endl; if (flag_ == 0) { if (strcmp(fname, "") != 0) { @@ -1459,7 +1460,8 @@ double CalibDuplicate::getCorr(int run, int ieta, int depth) { corr = (itr->second)[irun]; } if (debug_ && (nocc_ < 1000)) - std::cout << "Run " << run << " ieta:depth " << ieta << ":" << depth << " found " << (itr == corrs_.end()) << " Corr " << corr << std::endl; + std::cout << "Run " << run << " ieta:depth " << ieta << ":" << depth << " found " << (itr == corrs_.end()) + << " Corr " << corr << std::endl; return corr; } diff --git a/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc b/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc index 59694a5e2749b..06811935c5d9a 100644 --- a/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc +++ b/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc @@ -1313,7 +1313,7 @@ std::array HcalIsoTrkAnalyzer::fillTree(std::vectorFill(); edm::LogVerbatim("HcalIsoTrackX") << "Run " << t_RunNo << " Event " << t_EventNo << " Track " << nTracks << " p " << t_p; @@ -1443,7 +1443,7 @@ void HcalIsoTrkAnalyzer::storeEnergy(int indx, for (unsigned int k = 0; k < ids.size(); ++k) { double corr = (respCorrs_->getValues(ids[k]))->getValue(); if (count_ <= 1) - edm::LogVerbatim("HcalIsoTrack") << "Correction Factor for " << HcalDetId(ids[k]) << " " << corr; + edm::LogVerbatim("HcalIsoTrack") << "Correction Factor for " << HcalDetId(ids[k]) << " " << corr; if (corr != 0) edet[k] /= corr; ehcal += edet[k]; From 2cdafccda6483c1763b384b5599939ea5a19ffcf Mon Sep 17 00:00:00 2001 From: rdewanje Date: Sun, 22 Dec 2024 11:27:02 +0100 Subject: [PATCH 362/418] Moved all cloned modules to their respctive cfi files in the HLTrigger/Configuration/python/HLT_75e33/modules directory as requested --- ...e30WPTightBestGsfChi2L1SeededFilter_cfi.py | 24 + ...PTightBestGsfNLayerITL1SeededFilter_cfi.py | 24 + ...30WPTightClusterShapeL1SeededFilter_cfi.py | 24 + ...htClusterShapeSigmavvL1SeededFilter_cfi.py | 24 + ...htClusterShapeSigmawwL1SeededFilter_cfi.py | 24 + ...ltEle30WPTightEcalIsoL1SeededFilter_cfi.py | 32 ++ ...ltEle30WPTightGsfDetaL1SeededFilter_cfi.py | 32 ++ ...ltEle30WPTightGsfDphiL1SeededFilter_cfi.py | 32 ++ ...ghtGsfOneOEMinusOneOPL1SeededFilter_cfi.py | 32 ++ ...fTrackIsoFromL1TracksL1SeededFilter_cfi.py | 32 ++ ...e30WPTightGsfTrackIsoL1SeededFilter_cfi.py | 32 ++ .../hltEle30WPTightHEL1SeededFilter_cfi.py | 32 ++ ...ltEle30WPTightHcalIsoL1SeededFilter_cfi.py | 32 ++ ...ltEle30WPTightHgcalHEL1SeededFilter_cfi.py | 32 ++ ...tEle30WPTightHgcalIsoL1SeededFilter_cfi.py | 32 ++ .../hltEle30WPTightPMS2L1SeededFilter_cfi.py | 24 + ...le30WPTightPixelMatchL1SeededFilter_cfi.py | 25 + ...oseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py | 510 +----------------- 18 files changed, 506 insertions(+), 493 deletions(-) create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightBestGsfChi2L1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightBestGsfNLayerITL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeSigmavvL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeSigmawwL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightEcalIsoL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfDetaL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfDphiL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfTrackIsoL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHEL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHcalIsoL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHgcalHEL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHgcalIsoL1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightPMS2L1SeededFilter_cfi.py create mode 100644 HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightPixelMatchL1SeededFilter_cfi.py diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightBestGsfChi2L1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightBestGsfChi2L1SeededFilter_cfi.py new file mode 100644 index 0000000000000..9c7fd8cd60b21 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightBestGsfChi2L1SeededFilter_cfi.py @@ -0,0 +1,24 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightBestGsfChi2L1SeededFilter = cms.EDFilter("HLTEgammaGenericFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightBestGsfNLayerITL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0), + thrOverEEE = cms.vdouble(0), + thrRegularEB = cms.vdouble(50.0), + thrRegularEE = cms.vdouble(50.0), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaBestGsfTrackVarsL1Seeded","Chi2") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightBestGsfNLayerITL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightBestGsfNLayerITL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..ab2ab5acb0acc --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightBestGsfNLayerITL1SeededFilter_cfi.py @@ -0,0 +1,24 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightBestGsfNLayerITL1SeededFilter = cms.EDFilter("HLTEgammaGenericFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightGsfDphiL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(False), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0), + thrOverEEE = cms.vdouble(0), + thrRegularEB = cms.vdouble(3), + thrRegularEE = cms.vdouble(3), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaBestGsfTrackVarsL1Seeded","NLayerIT") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..059a909f3a33f --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeL1SeededFilter_cfi.py @@ -0,0 +1,24 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightClusterShapeL1SeededFilter = cms.EDFilter("HLTEgammaGenericFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag('hltEG30EtL1SeededFilter'), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0), + thrOverEEE = cms.vdouble(0), + thrRegularEB = cms.vdouble(0.013), + thrRegularEE = cms.vdouble(0.013), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaClusterShapeL1Seeded","sigmaIEtaIEta5x5") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeSigmavvL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeSigmavvL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..24efa1dd9e24a --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeSigmavvL1SeededFilter_cfi.py @@ -0,0 +1,24 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightClusterShapeSigmavvL1SeededFilter = cms.EDFilter("HLTEgammaGenericFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightClusterShapeL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0.0008), + thrOverEEE = cms.vdouble(0.0008), + thrRegularEB = cms.vdouble(0.7225), + thrRegularEE = cms.vdouble(0.7225), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","sigma2vv") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeSigmawwL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeSigmawwL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..9699b9fa67f65 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightClusterShapeSigmawwL1SeededFilter_cfi.py @@ -0,0 +1,24 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightClusterShapeSigmawwL1SeededFilter = cms.EDFilter("HLTEgammaGenericFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightClusterShapeSigmavvL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0.04), + thrOverEEE = cms.vdouble(0.04), + thrRegularEB = cms.vdouble(72.25), + thrRegularEE = cms.vdouble(72.25), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","sigma2ww") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightEcalIsoL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightEcalIsoL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..388362d665acb --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightEcalIsoL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightEcalIsoL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightHEL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.2, 0.2, 0.25, 0.3), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.02), + thrOverEEB2 = cms.vdouble(0.02), + thrOverEEE1 = cms.vdouble(0.02), + thrOverEEE2 = cms.vdouble(0.02), + thrRegularEB1 = cms.vdouble(9.0), + thrRegularEB2 = cms.vdouble(9.0), + thrRegularEE1 = cms.vdouble(9.0), + thrRegularEE2 = cms.vdouble(9.0), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaEcalPFClusterIsoL1Seeded") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfDetaL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfDetaL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..66ed1c550f89a --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfDetaL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightGsfDetaL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(0.8), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(0.003), + thrRegularEB2 = cms.vdouble(0.009), + thrRegularEE1 = cms.vdouble(0.004), + thrRegularEE2 = cms.vdouble(0.004), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","DetaSeed") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfDphiL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfDphiL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..44dcd3951d053 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfDphiL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightGsfDphiL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightGsfDetaL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(0.8), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(0.02), + thrRegularEB2 = cms.vdouble(0.09), + thrRegularEE1 = cms.vdouble(0.04), + thrRegularEE2 = cms.vdouble(0.04), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","Dphi") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..421ee488c6801 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightPMS2L1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(0.8), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(0.04), + thrRegularEB2 = cms.vdouble(0.08), + thrRegularEE1 = cms.vdouble(0.04), + thrRegularEE2 = cms.vdouble(0.04), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","OneOESuperMinusOneOP") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..8ae9d7031ca0e --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.0), + candTag = cms.InputTag("hltEle30WPTightBestGsfChi2L1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(0.8), + etaBoundaryEE12 = cms.double(2.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(5.5), + thrRegularEB2 = cms.vdouble(8.0), + thrRegularEE1 = cms.vdouble(5.5), + thrRegularEE2 = cms.vdouble(5.5), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaEleL1TrkIsoL1Seeded") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfTrackIsoL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfTrackIsoL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..c62ab74f6bf51 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightGsfTrackIsoL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightGsfTrackIsoL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.029, 0.111, 0.114, 0.032), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(2.5), + thrRegularEB2 = cms.vdouble(2.5), + thrRegularEE1 = cms.vdouble(2.2), + thrRegularEE2 = cms.vdouble(2.2), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaEleGsfTrackIsoV6L1Seeded") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHEL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHEL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..db9ebf8c6c370 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHEL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightHEL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightHgcalHEL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.1, 0.1, 0.3, 0.5), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.175), + thrOverEEB2 = cms.vdouble(0.175), + thrOverEEE1 = cms.vdouble(0.0), + thrOverEEE2 = cms.vdouble(0.0), + thrRegularEB1 = cms.vdouble(0.0), + thrRegularEB2 = cms.vdouble(0.0), + thrRegularEE1 = cms.vdouble(9999.0), + thrRegularEE2 = cms.vdouble(9999.0), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaHoverEL1Seeded") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHcalIsoL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHcalIsoL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..f28a686ea6c08 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHcalIsoL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightHcalIsoL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.0), + candTag = cms.InputTag("hltEle30WPTightHgcalIsoL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.2, 0.2, 0.4, 0.5), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.02), + thrOverEEB2 = cms.vdouble(0.02), + thrOverEEE1 = cms.vdouble(0.02), + thrOverEEE2 = cms.vdouble(0.02), + thrRegularEB1 = cms.vdouble(19), + thrRegularEB2 = cms.vdouble(19), + thrRegularEE1 = cms.vdouble(19), + thrRegularEE2 = cms.vdouble(19), + useEt = cms.bool(True), + varTag = cms.InputTag("hltEgammaHcalPFClusterIsoL1Seeded") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHgcalHEL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHgcalHEL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..e41af6e02a7c3 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHgcalHEL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightHgcalHEL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), + candTag = cms.InputTag("hltEle30WPTightClusterShapeSigmawwL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.1), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.0), + thrOverEEB2 = cms.vdouble(0.0), + thrOverEEE1 = cms.vdouble(0.15), + thrOverEEE2 = cms.vdouble(0.15), + thrRegularEB1 = cms.vdouble(9999.0), + thrRegularEB2 = cms.vdouble(9999.0), + thrRegularEE1 = cms.vdouble(5.0), + thrRegularEE2 = cms.vdouble(5.0), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","hForHOverE") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHgcalIsoL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHgcalIsoL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..4068c9ca4805a --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightHgcalIsoL1SeededFilter_cfi.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightHgcalIsoL1SeededFilter = cms.EDFilter("HLTEgammaGenericQuadraticEtaFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.0), + candTag = cms.InputTag("hltEle30WPTightEcalIsoL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + etaBoundaryEB12 = cms.double(1.0), + etaBoundaryEE12 = cms.double(2.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB1 = cms.vdouble(0.0), + thrOverE2EB2 = cms.vdouble(0.0), + thrOverE2EE1 = cms.vdouble(0.0), + thrOverE2EE2 = cms.vdouble(0.0), + thrOverEEB1 = cms.vdouble(0.05), + thrOverEEB2 = cms.vdouble(0.05), + thrOverEEE1 = cms.vdouble(0.05), + thrOverEEE2 = cms.vdouble(0.05), + thrRegularEB1 = cms.vdouble(150), + thrRegularEB2 = cms.vdouble(150), + thrRegularEE1 = cms.vdouble(150), + thrRegularEE2 = cms.vdouble(350), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaHGCalLayerClusterIsoL1Seeded") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightPMS2L1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightPMS2L1SeededFilter_cfi.py new file mode 100644 index 0000000000000..241ce4038cb03 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightPMS2L1SeededFilter_cfi.py @@ -0,0 +1,24 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightPMS2L1SeededFilter = cms.EDFilter("HLTEgammaGenericFilter", + absEtaLowEdges = cms.vdouble(0.0, 1.479), + candTag = cms.InputTag("hltEle30WPTightPixelMatchL1SeededFilter"), + doRhoCorrection = cms.bool(False), + effectiveAreas = cms.vdouble(0.0, 0.0), + energyLowEdges = cms.vdouble(0.0), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + lessThan = cms.bool(True), + ncandcut = cms.int32(1), + rhoMax = cms.double(99999999.0), + rhoScale = cms.double(1.0), + rhoTag = cms.InputTag(""), + saveTags = cms.bool(True), + thrOverE2EB = cms.vdouble(0), + thrOverE2EE = cms.vdouble(0), + thrOverEEB = cms.vdouble(0), + thrOverEEE = cms.vdouble(0), + thrRegularEB = cms.vdouble(55.0), + thrRegularEE = cms.vdouble(75.0), + useEt = cms.bool(False), + varTag = cms.InputTag("hltEgammaPixelMatchVarsL1Seeded","s2") +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightPixelMatchL1SeededFilter_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightPixelMatchL1SeededFilter_cfi.py new file mode 100644 index 0000000000000..64bceb4306990 --- /dev/null +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltEle30WPTightPixelMatchL1SeededFilter_cfi.py @@ -0,0 +1,25 @@ +import FWCore.ParameterSet.Config as cms + +hltEle30WPTightPixelMatchL1SeededFilter = cms.EDFilter("HLTElectronPixelMatchFilter", + candTag = cms.InputTag("hltEle30WPTightHcalIsoL1SeededFilter"), + l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), + l1PixelSeedsTag = cms.InputTag("hltEgammaElectronPixelSeedsL1Seeded"), + ncandcut = cms.int32(1), + npixelmatchcut = cms.double(1.0), + pixelVeto = cms.bool(False), + s2_threshold = cms.double(0.4), + s_a_phi1B = cms.double(0.0069), + s_a_phi1F = cms.double(0.0076), + s_a_phi1I = cms.double(0.0088), + s_a_phi2B = cms.double(0.00037), + s_a_phi2F = cms.double(0.00906), + s_a_phi2I = cms.double(0.0007), + s_a_rF = cms.double(0.04), + s_a_rI = cms.double(0.027), + s_a_zB = cms.double(0.012), + saveTags = cms.bool(True), + tanhSO10BarrelThres = cms.double(0.35), + tanhSO10ForwardThres = cms.double(1.0), + tanhSO10InterThres = cms.double(1.0), + useS = cms.bool(False) +) diff --git a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py index 9aae4d9a74c8b..1ec84c3adefb8 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/paths/HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_cfi.py @@ -23,509 +23,33 @@ from ..modules.hltEgammaCandidatesWrapperL1Seeded_cfi import * from ..modules.hltEgammaClusterShapeL1Seeded_cfi import * from ..modules.hltEG30EtL1SeededFilter_cfi import * -from ..modules.hltEle32WPTightClusterShapeL1SeededFilter_cfi import hltEle32WPTightClusterShapeL1SeededFilter as _hltEle32WPTightClusterShapeL1SeededFilter from ..modules.hltEgammaHGCALIDVarsL1Seeded_cfi import * -from ..modules.hltEle32WPTightClusterShapeSigmavvL1SeededFilter_cfi import hltEle32WPTightClusterShapeSigmavvL1SeededFilter as _hltEle32WPTightClusterShapeSigmavvL1SeededFilter -from ..modules.hltEle32WPTightClusterShapeSigmawwL1SeededFilter_cfi import hltEle32WPTightClusterShapeSigmawwL1SeededFilter as _hltEle32WPTightClusterShapeSigmawwL1SeededFilter -from ..modules.hltEle32WPTightHgcalHEL1SeededFilter_cfi import hltEle32WPTightHgcalHEL1SeededFilter as _hltEle32WPTightHgcalHEL1SeededFilter from ..modules.hltEgammaHoverEL1Seeded_cfi import * -from ..modules.hltEle32WPTightHEL1SeededFilter_cfi import hltEle32WPTightHEL1SeededFilter as _hltEle32WPTightHEL1SeededFilter from ..modules.hltEgammaEcalPFClusterIsoL1Seeded_cfi import * -from ..modules.hltEle32WPTightEcalIsoL1SeededFilter_cfi import hltEle32WPTightEcalIsoL1SeededFilter as _hltEle32WPTightEcalIsoL1SeededFilter from ..modules.hltEgammaHGCalLayerClusterIsoL1Seeded_cfi import * -from ..modules.hltEle32WPTightHgcalIsoL1SeededFilter_cfi import hltEle32WPTightHgcalIsoL1SeededFilter as _hltEle32WPTightHgcalIsoL1SeededFilter from ..modules.hltEgammaHcalPFClusterIsoL1Seeded_cfi import * -from ..modules.hltEle32WPTightHcalIsoL1SeededFilter_cfi import hltEle32WPTightHcalIsoL1SeededFilter as _hltEle32WPTightHcalIsoL1SeededFilter -from ..modules.hltEle32WPTightPixelMatchL1SeededFilter_cfi import hltEle32WPTightPixelMatchL1SeededFilter as _hltEle32WPTightPixelMatchL1SeededFilter -from ..modules.hltEle32WPTightPMS2L1SeededFilter_cfi import hltEle32WPTightPMS2L1SeededFilter as _hltEle32WPTightPMS2L1SeededFilter -from ..modules.hltEle32WPTightGsfOneOEMinusOneOPL1SeededFilter_cfi import hltEle32WPTightGsfOneOEMinusOneOPL1SeededFilter as _hltEle32WPTightGsfOneOEMinusOneOPL1SeededFilter -from ..modules.hltEle32WPTightGsfDetaL1SeededFilter_cfi import hltEle32WPTightGsfDetaL1SeededFilter as _hltEle32WPTightGsfDetaL1SeededFilter -from ..modules.hltEle32WPTightGsfDphiL1SeededFilter_cfi import hltEle32WPTightGsfDphiL1SeededFilter as _hltEle32WPTightGsfDphiL1SeededFilter -from ..modules.hltEle32WPTightBestGsfNLayerITL1SeededFilter_cfi import hltEle32WPTightBestGsfNLayerITL1SeededFilter as _hltEle32WPTightBestGsfNLayerITL1SeededFilter -from ..modules.hltEle32WPTightBestGsfChi2L1SeededFilter_cfi import hltEle32WPTightBestGsfChi2L1SeededFilter as _hltEle32WPTightBestGsfChi2L1SeededFilter from ..modules.hltEgammaEleL1TrkIsoL1Seeded_cfi import * -from ..modules.hltEle32WPTightGsfTrackIsoFromL1TracksL1SeededFilter_cfi import hltEle32WPTightGsfTrackIsoFromL1TracksL1SeededFilter as _hltEle32WPTightGsfTrackIsoFromL1TracksL1SeededFilter from ..modules.hltEgammaEleGsfTrackIsoV6L1Seeded_cfi import * -from ..modules.hltEle32WPTightGsfTrackIsoL1SeededFilter_cfi import hltEle32WPTightGsfTrackIsoL1SeededFilter as _hltEle32WPTightGsfTrackIsoL1SeededFilter from ..modules.hltAK4PFJetsForTaus_cfi import * from ..modules.hltHpsSelectedPFTauLooseTauWPDeepTau_cfi import * from ..modules.hltHpsPFTau30LooseTauWPDeepTau_cfi import * - - -hltEle30WPTightClusterShapeL1SeededFilter = _hltEle32WPTightClusterShapeL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.479), - candTag = cms.InputTag('hltEG30EtL1SeededFilter'), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB = cms.vdouble(0), - thrOverE2EE = cms.vdouble(0), - thrOverEEB = cms.vdouble(0), - thrOverEEE = cms.vdouble(0), - thrRegularEB = cms.vdouble(0.013), - thrRegularEE = cms.vdouble(0.013), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaClusterShapeL1Seeded","sigmaIEtaIEta5x5") -) - -hltEle30WPTightClusterShapeSigmavvL1SeededFilter = _hltEle32WPTightClusterShapeSigmavvL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.479), - candTag = cms.InputTag("hltEle30WPTightClusterShapeL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB = cms.vdouble(0), - thrOverE2EE = cms.vdouble(0), - thrOverEEB = cms.vdouble(0.0008), - thrOverEEE = cms.vdouble(0.0008), - thrRegularEB = cms.vdouble(0.7225), - thrRegularEE = cms.vdouble(0.7225), - useEt = cms.bool(True), - varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","sigma2vv") -) - -hltEle30WPTightClusterShapeSigmawwL1SeededFilter = _hltEle32WPTightClusterShapeSigmawwL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.479), - candTag = cms.InputTag("hltEle30WPTightClusterShapeSigmavvL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB = cms.vdouble(0), - thrOverE2EE = cms.vdouble(0), - thrOverEEB = cms.vdouble(0.04), - thrOverEEE = cms.vdouble(0.04), - thrRegularEB = cms.vdouble(72.25), - thrRegularEE = cms.vdouble(72.25), - useEt = cms.bool(True), - varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","sigma2ww") -) - - -hltEle30WPTightHgcalHEL1SeededFilter = _hltEle32WPTightHgcalHEL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), - candTag = cms.InputTag("hltEle30WPTightClusterShapeSigmawwL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(1.0), - etaBoundaryEE12 = cms.double(2.1), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.0), - thrOverEEB2 = cms.vdouble(0.0), - thrOverEEE1 = cms.vdouble(0.15), - thrOverEEE2 = cms.vdouble(0.15), - thrRegularEB1 = cms.vdouble(9999.0), - thrRegularEB2 = cms.vdouble(9999.0), - thrRegularEE1 = cms.vdouble(5.0), - thrRegularEE2 = cms.vdouble(5.0), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaHGCALIDVarsL1Seeded","hForHOverE") -) - -hltEle30WPTightHEL1SeededFilter = _hltEle32WPTightHEL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), - candTag = cms.InputTag("hltEle30WPTightHgcalHEL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.1, 0.1, 0.3, 0.5), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(1.0), - etaBoundaryEE12 = cms.double(2.1), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.175), - thrOverEEB2 = cms.vdouble(0.175), - thrOverEEE1 = cms.vdouble(0.0), - thrOverEEE2 = cms.vdouble(0.0), - thrRegularEB1 = cms.vdouble(0.0), - thrRegularEB2 = cms.vdouble(0.0), - thrRegularEE1 = cms.vdouble(9999.0), - thrRegularEE2 = cms.vdouble(9999.0), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaHoverEL1Seeded") -) - -hltEle30WPTightEcalIsoL1SeededFilter = _hltEle32WPTightEcalIsoL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), - candTag = cms.InputTag("hltEle30WPTightHEL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.2, 0.2, 0.25, 0.3), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(1.0), - etaBoundaryEE12 = cms.double(2.1), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.02), - thrOverEEB2 = cms.vdouble(0.02), - thrOverEEE1 = cms.vdouble(0.02), - thrOverEEE2 = cms.vdouble(0.02), - thrRegularEB1 = cms.vdouble(9.0), - thrRegularEB2 = cms.vdouble(9.0), - thrRegularEE1 = cms.vdouble(9.0), - thrRegularEE2 = cms.vdouble(9.0), - useEt = cms.bool(True), - varTag = cms.InputTag("hltEgammaEcalPFClusterIsoL1Seeded") -) - -hltEle30WPTightHgcalIsoL1SeededFilter = _hltEle32WPTightHgcalIsoL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.0), - candTag = cms.InputTag("hltEle30WPTightEcalIsoL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(1.0), - etaBoundaryEE12 = cms.double(2.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.05), - thrOverEEB2 = cms.vdouble(0.05), - thrOverEEE1 = cms.vdouble(0.05), - thrOverEEE2 = cms.vdouble(0.05), - thrRegularEB1 = cms.vdouble(150), - thrRegularEB2 = cms.vdouble(150), - thrRegularEE1 = cms.vdouble(150), - thrRegularEE2 = cms.vdouble(350), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaHGCalLayerClusterIsoL1Seeded") -) - -hltEle30WPTightHcalIsoL1SeededFilter = _hltEle32WPTightHcalIsoL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.0), - candTag = cms.InputTag("hltEle30WPTightHgcalIsoL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.2, 0.2, 0.4, 0.5), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(1.0), - etaBoundaryEE12 = cms.double(2.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.02), - thrOverEEB2 = cms.vdouble(0.02), - thrOverEEE1 = cms.vdouble(0.02), - thrOverEEE2 = cms.vdouble(0.02), - thrRegularEB1 = cms.vdouble(19), - thrRegularEB2 = cms.vdouble(19), - thrRegularEE1 = cms.vdouble(19), - thrRegularEE2 = cms.vdouble(19), - useEt = cms.bool(True), - varTag = cms.InputTag("hltEgammaHcalPFClusterIsoL1Seeded") -) - - -hltEle30WPTightPixelMatchL1SeededFilter = _hltEle32WPTightPixelMatchL1SeededFilter.clone( - candTag = cms.InputTag("hltEle30WPTightHcalIsoL1SeededFilter"), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - l1PixelSeedsTag = cms.InputTag("hltEgammaElectronPixelSeedsL1Seeded"), - ncandcut = cms.int32(1), - npixelmatchcut = cms.double(1.0), - pixelVeto = cms.bool(False), - s2_threshold = cms.double(0.4), - s_a_phi1B = cms.double(0.0069), - s_a_phi1F = cms.double(0.0076), - s_a_phi1I = cms.double(0.0088), - s_a_phi2B = cms.double(0.00037), - s_a_phi2F = cms.double(0.00906), - s_a_phi2I = cms.double(0.0007), - s_a_rF = cms.double(0.04), - s_a_rI = cms.double(0.027), - s_a_zB = cms.double(0.012), - saveTags = cms.bool(True), - tanhSO10BarrelThres = cms.double(0.35), - tanhSO10ForwardThres = cms.double(1.0), - tanhSO10InterThres = cms.double(1.0), - useS = cms.bool(False) -) - -hltEle30WPTightPMS2L1SeededFilter = _hltEle32WPTightPMS2L1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.479), - candTag = cms.InputTag("hltEle30WPTightPixelMatchL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB = cms.vdouble(0), - thrOverE2EE = cms.vdouble(0), - thrOverEEB = cms.vdouble(0), - thrOverEEE = cms.vdouble(0), - thrRegularEB = cms.vdouble(55.0), - thrRegularEE = cms.vdouble(75.0), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaPixelMatchVarsL1Seeded","s2") -) - - -hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter = _hltEle32WPTightGsfOneOEMinusOneOPL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), - candTag = cms.InputTag("hltEle30WPTightPMS2L1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(0.8), - etaBoundaryEE12 = cms.double(2.1), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.0), - thrOverEEB2 = cms.vdouble(0.0), - thrOverEEE1 = cms.vdouble(0.0), - thrOverEEE2 = cms.vdouble(0.0), - thrRegularEB1 = cms.vdouble(0.04), - thrRegularEB2 = cms.vdouble(0.08), - thrRegularEE1 = cms.vdouble(0.04), - thrRegularEE2 = cms.vdouble(0.04), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","OneOESuperMinusOneOP") -) - -hltEle30WPTightGsfDetaL1SeededFilter = _hltEle32WPTightGsfDetaL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), - candTag = cms.InputTag("hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(0.8), - etaBoundaryEE12 = cms.double(2.1), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.0), - thrOverEEB2 = cms.vdouble(0.0), - thrOverEEE1 = cms.vdouble(0.0), - thrOverEEE2 = cms.vdouble(0.0), - thrRegularEB1 = cms.vdouble(0.003), - thrRegularEB2 = cms.vdouble(0.009), - thrRegularEE1 = cms.vdouble(0.004), - thrRegularEE2 = cms.vdouble(0.004), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","DetaSeed") -) - -hltEle30WPTightGsfDphiL1SeededFilter = _hltEle32WPTightGsfDphiL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.1), - candTag = cms.InputTag("hltEle30WPTightGsfDetaL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(0.8), - etaBoundaryEE12 = cms.double(2.1), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.0), - thrOverEEB2 = cms.vdouble(0.0), - thrOverEEE1 = cms.vdouble(0.0), - thrOverEEE2 = cms.vdouble(0.0), - thrRegularEB1 = cms.vdouble(0.02), - thrRegularEB2 = cms.vdouble(0.09), - thrRegularEE1 = cms.vdouble(0.04), - thrRegularEE2 = cms.vdouble(0.04), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaGsfTrackVarsL1Seeded","Dphi") -) - -hltEle30WPTightBestGsfNLayerITL1SeededFilter = _hltEle32WPTightBestGsfNLayerITL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.479), - candTag = cms.InputTag("hltEle30WPTightGsfDphiL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(False), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB = cms.vdouble(0), - thrOverE2EE = cms.vdouble(0), - thrOverEEB = cms.vdouble(0), - thrOverEEE = cms.vdouble(0), - thrRegularEB = cms.vdouble(3), - thrRegularEE = cms.vdouble(3), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaBestGsfTrackVarsL1Seeded","NLayerIT") -) - -hltEle30WPTightBestGsfChi2L1SeededFilter = _hltEle32WPTightBestGsfChi2L1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.479), - candTag = cms.InputTag("hltEle30WPTightBestGsfNLayerITL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag(""), - saveTags = cms.bool(True), - thrOverE2EB = cms.vdouble(0), - thrOverE2EE = cms.vdouble(0), - thrOverEEB = cms.vdouble(0), - thrOverEEE = cms.vdouble(0), - thrRegularEB = cms.vdouble(50.0), - thrRegularEE = cms.vdouble(50.0), - useEt = cms.bool(False), - varTag = cms.InputTag("hltEgammaBestGsfTrackVarsL1Seeded","Chi2") -) - -hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter = _hltEle32WPTightGsfTrackIsoFromL1TracksL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 0.8, 1.479, 2.0), - candTag = cms.InputTag("hltEle30WPTightBestGsfChi2L1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.0, 0.0, 0.0, 0.0), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(0.8), - etaBoundaryEE12 = cms.double(2.0), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.0), - thrOverEEB2 = cms.vdouble(0.0), - thrOverEEE1 = cms.vdouble(0.0), - thrOverEEE2 = cms.vdouble(0.0), - thrRegularEB1 = cms.vdouble(5.5), - thrRegularEB2 = cms.vdouble(8.0), - thrRegularEE1 = cms.vdouble(5.5), - thrRegularEE2 = cms.vdouble(5.5), - useEt = cms.bool(True), - varTag = cms.InputTag("hltEgammaEleL1TrkIsoL1Seeded") -) - -hltEle30WPTightGsfTrackIsoL1SeededFilter = _hltEle32WPTightGsfTrackIsoL1SeededFilter.clone( - absEtaLowEdges = cms.vdouble(0.0, 1.0, 1.479, 2.1), - candTag = cms.InputTag("hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter"), - doRhoCorrection = cms.bool(False), - effectiveAreas = cms.vdouble(0.029, 0.111, 0.114, 0.032), - energyLowEdges = cms.vdouble(0.0), - etaBoundaryEB12 = cms.double(1.0), - etaBoundaryEE12 = cms.double(2.1), - l1EGCand = cms.InputTag("hltEgammaCandidatesL1Seeded"), - lessThan = cms.bool(True), - ncandcut = cms.int32(1), - rhoMax = cms.double(99999999.0), - rhoScale = cms.double(1.0), - rhoTag = cms.InputTag("hltFixedGridRhoFastjetAllCaloForEGamma"), - saveTags = cms.bool(True), - thrOverE2EB1 = cms.vdouble(0.0), - thrOverE2EB2 = cms.vdouble(0.0), - thrOverE2EE1 = cms.vdouble(0.0), - thrOverE2EE2 = cms.vdouble(0.0), - thrOverEEB1 = cms.vdouble(0.0), - thrOverEEB2 = cms.vdouble(0.0), - thrOverEEE1 = cms.vdouble(0.0), - thrOverEEE2 = cms.vdouble(0.0), - thrRegularEB1 = cms.vdouble(2.5), - thrRegularEB2 = cms.vdouble(2.5), - thrRegularEE1 = cms.vdouble(2.2), - thrRegularEE2 = cms.vdouble(2.2), - useEt = cms.bool(True), - varTag = cms.InputTag("hltEgammaEleGsfTrackIsoV6L1Seeded") -) +from ..modules.hltEle30WPTightClusterShapeL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightClusterShapeSigmavvL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightClusterShapeSigmawwL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightHgcalHEL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightHEL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightEcalIsoL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightHgcalIsoL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightHcalIsoL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightPixelMatchL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightPMS2L1SeededFilter_cfi import * +from ..modules.hltEle30WPTightGsfOneOEMinusOneOPL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightGsfDetaL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightGsfDphiL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightBestGsfNLayerITL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightBestGsfChi2L1SeededFilter_cfi import * +from ..modules.hltEle30WPTightGsfTrackIsoFromL1TracksL1SeededFilter_cfi import * +from ..modules.hltEle30WPTightGsfTrackIsoL1SeededFilter_cfi import * HLT_Ele30_WPTight_L1Seeded_LooseDeepTauPFTauHPS30_eta2p1_CrossL1 = cms.Path( From faa32128584c39ad096215a0e47d4b9ebc96703b Mon Sep 17 00:00:00 2001 From: Marino Missiroli Date: Sun, 22 Dec 2024 17:38:21 +0100 Subject: [PATCH 363/418] speed up shared-hits cleaning in TrackerSeedCleaner --- .../interface/RedundantSeedCleaner.h | 38 -------- .../interface/TrackerSeedCleaner.h | 8 +- .../src/RedundantSeedCleaner.cc | 93 ------------------- .../src/TrackerSeedCleaner.cc | 70 ++++++++++++-- 4 files changed, 69 insertions(+), 140 deletions(-) delete mode 100644 RecoMuon/TrackerSeedGenerator/interface/RedundantSeedCleaner.h delete mode 100644 RecoMuon/TrackerSeedGenerator/src/RedundantSeedCleaner.cc diff --git a/RecoMuon/TrackerSeedGenerator/interface/RedundantSeedCleaner.h b/RecoMuon/TrackerSeedGenerator/interface/RedundantSeedCleaner.h deleted file mode 100644 index d798928a2bdea..0000000000000 --- a/RecoMuon/TrackerSeedGenerator/interface/RedundantSeedCleaner.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef RecoMuon_TrackerSeedGenerator_RedundantSeedCleaner_H -#define RecoMuon_TrackerSeedGenerator_RedundantSeedCleaner_H - -/** \class RedundantSeedCleaner - * Description: - * RedundantSeedCleaner (TrackerSeedGenerator) duplicate removal from triplets pairs pixel seeds . - * - * \author Alessandro Grelli, Jean-Roch Vlimant -*/ - -#include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" -#include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeed.h" -#include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeedCollection.h" - -// --------------------- -// -- Class Interface -- -// --------------------- - -class MuonSeedCombiner; - -class RedundantSeedCleaner { -public: - ///constructor - RedundantSeedCleaner() {} - ///destructor - ~RedundantSeedCleaner() {} - /// clean - void clean(const std::vector &, std::vector &); - /// collection definition - void define(std::vector &); - -private: - std::vector seedTriplets; - - std::string theCategory; -}; - -#endif diff --git a/RecoMuon/TrackerSeedGenerator/interface/TrackerSeedCleaner.h b/RecoMuon/TrackerSeedGenerator/interface/TrackerSeedCleaner.h index 55824812654f5..e9f3f497f5537 100644 --- a/RecoMuon/TrackerSeedGenerator/interface/TrackerSeedCleaner.h +++ b/RecoMuon/TrackerSeedGenerator/interface/TrackerSeedCleaner.h @@ -18,7 +18,6 @@ #include "RecoTracker/TransientTrackingRecHit/interface/TkTransientTrackingRecHitBuilder.h" #include "TrackingTools/Records/interface/TransientRecHitRecord.h" #include "RecoTracker/TkTrackingRegions/interface/RectangularEtaPhiTrackingRegion.h" -#include "RecoMuon/TrackerSeedGenerator/interface/RedundantSeedCleaner.h" #include "DataFormats/BeamSpot/interface/BeamSpot.h" #include "FWCore/Framework/interface/ConsumesCollector.h" @@ -61,14 +60,19 @@ class TrackerSeedCleaner { /// setEvent virtual void setEvent(const edm::Event&); + tkSeeds nonRedundantSeeds(tkSeeds const&) const; + private: + bool seedIsNotRedundant(std::vector const& seeds, + TrajectorySeed const& s1, + std::vector const& tripletsIdx) const; + const MuonServiceProxy* theProxyService; const edm::Event* theEvent; edm::InputTag theBeamSpotTag; //beam spot edm::Handle bsHandle_; edm::EDGetTokenT beamspotToken_; - RedundantSeedCleaner* theRedundantCleaner; std::string builderName_; edm::ESHandle theTTRHBuilder; diff --git a/RecoMuon/TrackerSeedGenerator/src/RedundantSeedCleaner.cc b/RecoMuon/TrackerSeedGenerator/src/RedundantSeedCleaner.cc deleted file mode 100644 index 8b3ecd89e2299..0000000000000 --- a/RecoMuon/TrackerSeedGenerator/src/RedundantSeedCleaner.cc +++ /dev/null @@ -1,93 +0,0 @@ -/** \class RedundantSeedCleaner - * Description: - * RedundantSeedCleaner (TrackerSeedGenerator) duplicate removal from triplets pairs pixel seeds . - * - * \author Alessandro Grelli, Jean-Roch Vlimant -*/ - -#include "RecoMuon/TrackerSeedGenerator/interface/RedundantSeedCleaner.h" - -//------------------------------- -// Collaborating Class Headers -- -//------------------------------- - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h" -#include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" -#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h" -#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" -#include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeed.h" -#include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeedCollection.h" - -using namespace edm; -using namespace reco; - -// -// definition of vectors -// - -void RedundantSeedCleaner::define(std::vector& coll) { - std::vector triplets; - - //search for triplest - for (TrajectorySeedCollection::iterator itr = coll.begin(); itr != coll.end(); ++itr) { - //fill vector of triplets - if (itr->nHits() == 3) - triplets.push_back(*itr); - } - - // clean from shared input - if (!triplets.empty()) - clean(triplets, coll); -} - -// -// the sharedHits cleaner -// - -void RedundantSeedCleaner::clean(const std::vector& seedTr, std::vector& seed) { - // loop over triplets - std::vector result; - - std::vector maskPairs = std::vector(seed.size(), true); - int iPair = 0; - - for (TrajectorySeedCollection::iterator s1 = seed.begin(); s1 != seed.end(); ++s1) { - //rechits from seed - - for (TrajectorySeedCollection::const_iterator s2 = seedTr.begin(); s2 != seedTr.end(); ++s2) { - //empty - if (s2->nHits() == 0) - continue; - - //number of shared hits; - int shared = 0; - - for (auto const& h2 : s2->recHits()) { - for (auto const& h1 : s1->recHits()) { - if (h2.sharesInput(&h1, TrackingRecHit::all)) - shared++; - if (s1->nHits() != 3) - LogDebug(theCategory) << shared << " shared hits counter if 2 erease the seed."; - } - } - - if (shared == 2 && s1->nHits() != 3) { - maskPairs[iPair] = false; - } - - } //end triplets loop - ++iPair; - } // end pairs loop - - iPair = 0; - //remove pairs in triplets - for (TrajectorySeedCollection::iterator s1 = seed.begin(); s1 != seed.end(); ++s1) { - if (maskPairs[iPair]) - result.push_back(*s1); - ++iPair; - } - - // cleaned collection - seed.swap(result); -} diff --git a/RecoMuon/TrackerSeedGenerator/src/TrackerSeedCleaner.cc b/RecoMuon/TrackerSeedGenerator/src/TrackerSeedCleaner.cc index bc747b9875e3e..633cddedf942e 100644 --- a/RecoMuon/TrackerSeedGenerator/src/TrackerSeedCleaner.cc +++ b/RecoMuon/TrackerSeedGenerator/src/TrackerSeedCleaner.cc @@ -37,11 +37,7 @@ using namespace edm; // // inizialization // -void TrackerSeedCleaner::init(const MuonServiceProxy* service) { - theProxyService = service; - - theRedundantCleaner = new RedundantSeedCleaner(); -} +void TrackerSeedCleaner::init(const MuonServiceProxy* service) { theProxyService = service; } // // @@ -55,8 +51,9 @@ void TrackerSeedCleaner::clean(const reco::TrackRef& muR, const RectangularEtaPhiTrackingRegion& region, tkSeeds& seeds) { // call the shared input cleaner - if (cleanBySharedHits) - theRedundantCleaner->define(seeds); + if (cleanBySharedHits) { + seeds = nonRedundantSeeds(seeds); + } theTTRHBuilder = theProxyService->eventSetup().getHandle(theTTRHBuilderToken); @@ -147,3 +144,62 @@ void TrackerSeedCleaner::clean(const reco::TrackRef& muR, return; } + +TrackerSeedCleaner::tkSeeds TrackerSeedCleaner::nonRedundantSeeds(tkSeeds const& seeds) const { + std::vector idxTriplets{}, idxNonTriplets{}; + idxTriplets.reserve(seeds.size()); + idxNonTriplets.reserve(seeds.size()); + + for (uint i1 = 0; i1 < seeds.size(); ++i1) { + auto const& s1 = seeds[i1]; + if (s1.nHits() == 3) + idxTriplets.emplace_back(i1); + else + idxNonTriplets.emplace_back(i1); + } + + if (idxTriplets.empty()) { + return seeds; + } + + std::vector keepSeedFlags(seeds.size(), true); + for (uint j1 = 0; j1 < idxNonTriplets.size(); ++j1) { + auto const i1 = idxNonTriplets[j1]; + auto const& seed = seeds[i1]; + keepSeedFlags[i1] = seedIsNotRedundant(seeds, seed, idxTriplets); + } + + tkSeeds result{}; + result.reserve(seeds.size()); + + for (uint i1 = 0; i1 < seeds.size(); ++i1) { + if (keepSeedFlags[i1]) { + result.emplace_back(seeds[i1]); + } + } + + return result; +} + +bool TrackerSeedCleaner::seedIsNotRedundant(tkSeeds const& seeds, + TrajectorySeed const& s1, + std::vector const& otherIdxs) const { + auto const& rh1s = s1.recHits(); + for (uint j2 = 0; j2 < otherIdxs.size(); ++j2) { + auto const& s2 = seeds[otherIdxs[j2]]; + // number of shared hits + uint shared = 0; + for (auto const& h2 : s2.recHits()) { + for (auto const& h1 : rh1s) { + if (h2.sharesInput(&h1, TrackingRecHit::all)) { + ++shared; + } + } + } + if (shared == 2) { + return false; + } + } + + return true; +} From c28f551b0898fb55f99a7fd7a0116761795b6f2a Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Mon, 23 Dec 2024 11:15:32 +0100 Subject: [PATCH 364/418] ParameterSet/Config.py: Use realpath of cmssw area to avoid symlink issues --- FWCore/ParameterSet/python/Config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FWCore/ParameterSet/python/Config.py b/FWCore/ParameterSet/python/Config.py index 81be35c176724..031cf11befd0e 100644 --- a/FWCore/ParameterSet/python/Config.py +++ b/FWCore/ParameterSet/python/Config.py @@ -52,7 +52,7 @@ def checkImportPermission(minLevel: int = 2, allowedPatterns = []): import os ignorePatterns = ['FWCore/ParameterSet/Config.py', 'FWCore/ParameterSet/python/Config.py','',' Date: Mon, 23 Dec 2024 09:05:32 -0600 Subject: [PATCH 365/418] Reduce memory held between Events in PFProducer - clear memory at end of event rather than at beginning of next event. --- .../PFProducer/interface/PFAlgo.h | 12 +- .../PFProducer/plugins/PFProducer.cc | 5 +- RecoParticleFlow/PFProducer/src/PFAlgo.cc | 280 +++++++++--------- RecoParticleFlow/PFProducer/src/PFMuonAlgo.cc | 12 +- 4 files changed, 157 insertions(+), 152 deletions(-) diff --git a/RecoParticleFlow/PFProducer/interface/PFAlgo.h b/RecoParticleFlow/PFProducer/interface/PFAlgo.h index 143d127d5082a..b87da635c90c4 100644 --- a/RecoParticleFlow/PFProducer/interface/PFAlgo.h +++ b/RecoParticleFlow/PFProducer/interface/PFAlgo.h @@ -112,10 +112,18 @@ class PFAlgo { reco::PFCandidateCollection& getCleanedCandidates() { return pfCleanedCandidates_; } /// \return the collection of candidates - reco::PFCandidateCollection makeConnectedCandidates() { return connector_.connect(*pfCandidates_); } + reco::PFCandidateCollection makeConnectedCandidates() { return connector_.connect(pfCandidates_); } friend std::ostream& operator<<(std::ostream& out, const PFAlgo& algo); + void clear() { + pfCandidates_.clear(); + pfCleanedCandidates_.clear(); + if (useVertices_) { + primaryVertex_ = decltype(primaryVertex_)(); + } + }; + private: void egammaFilters(const reco::PFBlockRef& blockref, std::vector& active, PFEGammaFilters const* pfegamma); void conversionAlgo(const edm::OwnVector& elements, std::vector& active); @@ -223,7 +231,7 @@ class PFAlgo { double nSigmaHFEM(double clusterEnergy) const; double nSigmaHFHAD(double clusterEnergy) const; - std::unique_ptr pfCandidates_; + reco::PFCandidateCollection pfCandidates_; // the post-HF-cleaned candidates reco::PFCandidateCollection pfCleanedCandidates_; diff --git a/RecoParticleFlow/PFProducer/plugins/PFProducer.cc b/RecoParticleFlow/PFProducer/plugins/PFProducer.cc index f955711853319..938bd6cdd6b42 100644 --- a/RecoParticleFlow/PFProducer/plugins/PFProducer.cc +++ b/RecoParticleFlow/PFProducer/plugins/PFProducer.cc @@ -291,8 +291,8 @@ void PFProducer::produce(Event& iEvent, const EventSetup& iSetup) { } // Write in the event - iEvent.emplace(pfCandidatesToken_, pOutputCandidateCollection); - iEvent.emplace(pfCleanedCandidatesToken_, pfAlgo_.getCleanedCandidates()); + iEvent.emplace(pfCandidatesToken_, std::move(pOutputCandidateCollection)); + iEvent.emplace(pfCleanedCandidatesToken_, std::move(pfAlgo_.getCleanedCandidates())); if (postMuonCleaning_) { auto& muAlgo = *pfAlgo_.getPFMuonAlgo(); @@ -309,6 +309,7 @@ void PFProducer::produce(Event& iEvent, const EventSetup& iSetup) { // Save added muon candidates iEvent.put(muAlgo.transferAddedMuonCandidates(), "AddedMuonsAndHadrons"); } + pfAlgo_.clear(); } void PFProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { diff --git a/RecoParticleFlow/PFProducer/src/PFAlgo.cc b/RecoParticleFlow/PFProducer/src/PFAlgo.cc index 8216bbbb91a93..dc6873c2ca59a 100644 --- a/RecoParticleFlow/PFProducer/src/PFAlgo.cc +++ b/RecoParticleFlow/PFProducer/src/PFAlgo.cc @@ -20,7 +20,7 @@ PFAlgo::PFAlgo(double nSigmaECAL, PFEnergyCalibration& calibration, PFEnergyCalibrationHF& thepfEnergyCalibrationHF, const edm::ParameterSet& pset) - : pfCandidates_(new PFCandidateCollection), + : pfCandidates_(), nSigmaECAL_(nSigmaECAL), nSigmaHCAL_(nSigmaHCAL), nSigmaHFEM_(nSigmaHFEM), @@ -131,7 +131,7 @@ void PFAlgo::reconstructParticles(const reco::PFBlockHandle& blockHandle, PFEGam auto const& blocks = *blockHandle; // reset output collection - pfCandidates_->clear(); + pfCandidates_.clear(); LogTrace("PFAlgo|reconstructParticles") << "start of function PFAlgo::reconstructParticles, blocks.size()=" << blocks.size(); @@ -207,14 +207,14 @@ void PFAlgo::reconstructParticles(const reco::PFBlockHandle& blockHandle, PFEGam } //Muon post cleaning - pfmu_->postClean(pfCandidates_.get()); + pfmu_->postClean(&pfCandidates_); //Add Missing muons if (muonHandle_.isValid()) - pfmu_->addMissingMuons(muonHandle_, pfCandidates_.get()); + pfmu_->addMissingMuons(muonHandle_, &pfCandidates_); LogTrace("PFAlgo|reconstructParticles") - << "end of function PFAlgo::reconstructParticles, pfCandidates_->size()=" << pfCandidates_->size(); + << "end of function PFAlgo::reconstructParticles, pfCandidates_.size()=" << pfCandidates_.size(); } void PFAlgo::egammaFilters(const reco::PFBlockRef& blockref, @@ -322,7 +322,7 @@ void PFAlgo::egammaFilters(const reco::PFBlockRef& blockref, LogTrace("PFAlgo|egammaFilters") << "Creating PF electron: pt=" << myPFElectron.pt() << " eta=" << myPFElectron.eta() << " phi=" << myPFElectron.phi(); - pfCandidates_->push_back(myPFElectron); + pfCandidates_.emplace_back(std::move(myPFElectron)); } else { LogTrace("PFAlgo|egammaFilters") << "PFAlgo: Electron DISCARDED, NOT SAFE FOR JETMET "; @@ -359,7 +359,7 @@ void PFAlgo::egammaFilters(const reco::PFBlockRef& blockref, } LogTrace("PFAlgo|egammaFilters") << "Creating PF photon: pt=" << myPFPhoton.pt() << " eta=" << myPFPhoton.eta() << " phi=" << myPFPhoton.phi(); - pfCandidates_->push_back(myPFPhoton); + pfCandidates_.emplace_back(std::move(myPFPhoton)); } // end isSafe } // end isGoodPhoton @@ -504,12 +504,12 @@ bool PFAlgo::recoTracksNotHCAL(const reco::PFBlock& block, // No ECAL cluster either ... continue... if (ecalElems.empty()) { - (*pfCandidates_)[tmpi[0]].setEcalEnergy(0., 0.); - (*pfCandidates_)[tmpi[0]].setHcalEnergy(0., 0.); - (*pfCandidates_)[tmpi[0]].setHoEnergy(0., 0.); - (*pfCandidates_)[tmpi[0]].setPs1Energy(0); - (*pfCandidates_)[tmpi[0]].setPs2Energy(0); - (*pfCandidates_)[tmpi[0]].addElementInBlock(blockref, kTrack[0]); + pfCandidates_[tmpi[0]].setEcalEnergy(0., 0.); + pfCandidates_[tmpi[0]].setHcalEnergy(0., 0.); + pfCandidates_[tmpi[0]].setHoEnergy(0., 0.); + pfCandidates_[tmpi[0]].setPs1Energy(0); + pfCandidates_[tmpi[0]].setPs2Energy(0); + pfCandidates_[tmpi[0]].addElementInBlock(blockref, kTrack[0]); return true; } @@ -520,12 +520,12 @@ bool PFAlgo::recoTracksNotHCAL(const reco::PFBlock& block, // Set ECAL energy for muons if (thisIsAMuon) { - (*pfCandidates_)[tmpi[0]].setEcalEnergy(clusterRef->energy(), std::min(clusterRef->energy(), muonECAL_[0])); - (*pfCandidates_)[tmpi[0]].setHcalEnergy(0., 0.); - (*pfCandidates_)[tmpi[0]].setHoEnergy(0., 0.); - (*pfCandidates_)[tmpi[0]].setPs1Energy(0); - (*pfCandidates_)[tmpi[0]].setPs2Energy(0); - (*pfCandidates_)[tmpi[0]].addElementInBlock(blockref, kTrack[0]); + pfCandidates_[tmpi[0]].setEcalEnergy(clusterRef->energy(), std::min(clusterRef->energy(), muonECAL_[0])); + pfCandidates_[tmpi[0]].setHcalEnergy(0., 0.); + pfCandidates_[tmpi[0]].setHoEnergy(0., 0.); + pfCandidates_[tmpi[0]].setPs1Energy(0); + pfCandidates_[tmpi[0]].setPs2Energy(0); + pfCandidates_[tmpi[0]].addElementInBlock(blockref, kTrack[0]); } double slopeEcal = 1.; @@ -550,12 +550,12 @@ bool PFAlgo::recoTracksNotHCAL(const reco::PFBlock& block, LogTrace("PFAlgo|recoTracksNotHCAL") << " the closest track to ECAL " << thisEcal << " is " << sortedTracks.begin()->second << " which is not the one being processed. Will skip ECAL linking for this track"; - (*pfCandidates_)[tmpi[0]].setEcalEnergy(0., 0.); - (*pfCandidates_)[tmpi[0]].setHcalEnergy(0., 0.); - (*pfCandidates_)[tmpi[0]].setHoEnergy(0., 0.); - (*pfCandidates_)[tmpi[0]].setPs1Energy(0); - (*pfCandidates_)[tmpi[0]].setPs2Energy(0); - (*pfCandidates_)[tmpi[0]].addElementInBlock(blockref, kTrack[0]); + pfCandidates_[tmpi[0]].setEcalEnergy(0., 0.); + pfCandidates_[tmpi[0]].setHcalEnergy(0., 0.); + pfCandidates_[tmpi[0]].setHoEnergy(0., 0.); + pfCandidates_[tmpi[0]].setPs1Energy(0); + pfCandidates_[tmpi[0]].setPs2Energy(0); + pfCandidates_[tmpi[0]].addElementInBlock(blockref, kTrack[0]); return true; } else { LogTrace("PFAlgo|recoTracksNotHCAL") @@ -639,12 +639,12 @@ bool PFAlgo::recoTracksNotHCAL(const reco::PFBlock& block, active[jTrack] = false; if (thatIsAMuon) { - (*pfCandidates_)[tmpi.back()].setEcalEnergy(clusterRef->energy(), std::min(clusterRef->energy(), muonECAL_[0])); - (*pfCandidates_)[tmpi.back()].setHcalEnergy(0., 0.); - (*pfCandidates_)[tmpi.back()].setHoEnergy(0., 0.); - (*pfCandidates_)[tmpi.back()].setPs1Energy(0); - (*pfCandidates_)[tmpi.back()].setPs2Energy(0); - (*pfCandidates_)[tmpi.back()].addElementInBlock(blockref, kTrack.back()); + pfCandidates_[tmpi.back()].setEcalEnergy(clusterRef->energy(), std::min(clusterRef->energy(), muonECAL_[0])); + pfCandidates_[tmpi.back()].setHcalEnergy(0., 0.); + pfCandidates_[tmpi.back()].setHoEnergy(0., 0.); + pfCandidates_[tmpi.back()].setPs1Energy(0); + pfCandidates_[tmpi.back()].setPs2Energy(0); + pfCandidates_[tmpi.back()].addElementInBlock(blockref, kTrack.back()); } } @@ -725,7 +725,7 @@ bool PFAlgo::recoTracksNotHCAL(const reco::PFBlock& block, std::multimap assTracks; block.associatedElements(index, linkData, assTracks, reco::PFBlockElement::TRACK, reco::PFBlock::LINKTEST_ALL); - auto& ecalCand = (*pfCandidates_)[reconstructCluster( + auto& ecalCand = pfCandidates_[reconstructCluster( *clusterRef, ecalEnergyCalibrated)]; // KH: use the PF ECAL cluster calibrated energy ecalCand.setEcalEnergy(clusterRef->energy(), ecalEnergyCalibrated); ecalCand.setHcalEnergy(0., 0.); @@ -751,7 +751,7 @@ bool PFAlgo::recoTracksNotHCAL(const reco::PFBlock& block, iEcal = index; active[index] = false; for (unsigned ic : tmpi) - (*pfCandidates_)[ic].addElementInBlock(blockref, iEcal); + pfCandidates_[ic].addElementInBlock(blockref, iEcal); } // Loop ecal elements @@ -802,47 +802,47 @@ bool PFAlgo::recoTracksNotHCAL(const reco::PFBlock& block, if (neutralEnergy > std::max(0.5, nSigmaECAL_ * resol)) { neutralEnergy /= slopeEcal; unsigned tmpj = reconstructCluster(*pivotalRef, neutralEnergy); - (*pfCandidates_)[tmpj].setEcalEnergy(pivotalRef->energy(), neutralEnergy); - (*pfCandidates_)[tmpj].setHcalEnergy(0., 0.); - (*pfCandidates_)[tmpj].setHoEnergy(0., 0.); - (*pfCandidates_)[tmpj].setPs1Energy(0.); - (*pfCandidates_)[tmpj].setPs2Energy(0.); - (*pfCandidates_)[tmpj].addElementInBlock(blockref, iEcal); + pfCandidates_[tmpj].setEcalEnergy(pivotalRef->energy(), neutralEnergy); + pfCandidates_[tmpj].setHcalEnergy(0., 0.); + pfCandidates_[tmpj].setHoEnergy(0., 0.); + pfCandidates_[tmpj].setPs1Energy(0.); + pfCandidates_[tmpj].setPs2Energy(0.); + pfCandidates_[tmpj].addElementInBlock(blockref, iEcal); bNeutralProduced = true; for (unsigned ic = 0; ic < kTrack.size(); ++ic) - (*pfCandidates_)[tmpj].addElementInBlock(blockref, kTrack[ic]); + pfCandidates_[tmpj].addElementInBlock(blockref, kTrack[ic]); } // End neutral energy // Set elements in blocks and ECAL energies to all tracks for (unsigned ic = 0; ic < tmpi.size(); ++ic) { // Skip muons - if ((*pfCandidates_)[tmpi[ic]].particleId() == reco::PFCandidate::mu) + if (pfCandidates_[tmpi[ic]].particleId() == reco::PFCandidate::mu) continue; - double fraction = trackMomentum > 0 ? (*pfCandidates_)[tmpi[ic]].trackRef()->p() / trackMomentum : 0; + double fraction = trackMomentum > 0 ? pfCandidates_[tmpi[ic]].trackRef()->p() / trackMomentum : 0; double ecalCal = bNeutralProduced ? (calibEcal - neutralEnergy * slopeEcal) * fraction : calibEcal * fraction; double ecalRaw = totalEcal * fraction; LogTrace("PFAlgo|recoTracksNotHCAL") << "The fraction after photon supression is " << fraction << " calibrated ecal = " << ecalCal; - (*pfCandidates_)[tmpi[ic]].setEcalEnergy(ecalRaw, ecalCal); - (*pfCandidates_)[tmpi[ic]].setHcalEnergy(0., 0.); - (*pfCandidates_)[tmpi[ic]].setHoEnergy(0., 0.); - (*pfCandidates_)[tmpi[ic]].setPs1Energy(0); - (*pfCandidates_)[tmpi[ic]].setPs2Energy(0); - (*pfCandidates_)[tmpi[ic]].addElementInBlock(blockref, kTrack[ic]); + pfCandidates_[tmpi[ic]].setEcalEnergy(ecalRaw, ecalCal); + pfCandidates_[tmpi[ic]].setHcalEnergy(0., 0.); + pfCandidates_[tmpi[ic]].setHoEnergy(0., 0.); + pfCandidates_[tmpi[ic]].setPs1Energy(0); + pfCandidates_[tmpi[ic]].setPs2Energy(0); + pfCandidates_[tmpi[ic]].addElementInBlock(blockref, kTrack[ic]); } } // End connected ECAL // Fill the element_in_block for tracks that are eventually linked to no ECAL clusters at all. for (unsigned ic = 0; ic < tmpi.size(); ++ic) { - const PFCandidate& pfc = (*pfCandidates_)[tmpi[ic]]; + const PFCandidate& pfc = pfCandidates_[tmpi[ic]]; const PFCandidate::ElementsInBlocks& eleInBlocks = pfc.elementsInBlocks(); if (eleInBlocks.empty()) { LogTrace("PFAlgo|recoTracksNotHCAL") << "Single track / Fill element in block! "; - (*pfCandidates_)[tmpi[ic]].addElementInBlock(blockref, kTrack[ic]); + pfCandidates_[tmpi[ic]].addElementInBlock(blockref, kTrack[ic]); } } LogTrace("PFAlgo|recoTracksNotHCAL") << "end of function PFAlgo::recoTracksNotHCAL"; @@ -864,7 +864,7 @@ bool PFAlgo::checkAndReconstructSecondaryInteraction(const reco::PFBlockRef& blo LogTrace("PFAlgo|elementLoop") << "Primary Track reconstructed alone"; unsigned tmpi = reconstructTrack(elements[iElement]); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iElement); + pfCandidates_[tmpi].addElementInBlock(blockref, iElement); ret = false; } } @@ -1468,12 +1468,12 @@ void PFAlgo::createCandidatesHF(const reco::PFBlock& block, // // Create HF candidates unsigned tmpi = reconstructCluster(*hclusterRef, energyHfEm + energyHfHad); - (*pfCandidates_)[tmpi].setHcalEnergy(uncalibratedenergyHfHad, energyHfHad); - (*pfCandidates_)[tmpi].setEcalEnergy(uncalibratedenergyHfEm, energyHfEm); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHfHad); + pfCandidates_[tmpi].setHcalEnergy(uncalibratedenergyHfHad, energyHfHad); + pfCandidates_[tmpi].setEcalEnergy(uncalibratedenergyHfEm, energyHfEm); + pfCandidates_[tmpi].addElementInBlock(blockref, iHfHad); for (auto const& hfem : sortedHfEmsActive) { unsigned iHfEm = hfem.second; - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHfEm); + pfCandidates_[tmpi].addElementInBlock(blockref, iHfEm); active[iHfEm] = false; } @@ -1487,9 +1487,9 @@ void PFAlgo::createCandidatesHF(const reco::PFBlock& block, double energyHfHadExcess = max(energyHfHad - totalChargedMomentum, 0.); double uncalibratedenergyHfHadExcess = energyHfHadExcess / calibFactorHfHad; unsigned tmpi = reconstructCluster(*hclusterRef, energyHfHadExcess); - (*pfCandidates_)[tmpi].setHcalEnergy(uncalibratedenergyHfHadExcess, energyHfHadExcess); - (*pfCandidates_)[tmpi].setEcalEnergy(0., 0.); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHfHad); + pfCandidates_[tmpi].setHcalEnergy(uncalibratedenergyHfHadExcess, energyHfHadExcess); + pfCandidates_[tmpi].setEcalEnergy(0., 0.); + pfCandidates_[tmpi].addElementInBlock(blockref, iHfHad); energyHfHad = max(energyHfHad - energyHfHadExcess, 0.); uncalibratedenergyHfHad = max(uncalibratedenergyHfHad - uncalibratedenergyHfHadExcess, 0.); } @@ -1529,9 +1529,9 @@ void PFAlgo::createCandidatesHF(const reco::PFBlock& block, double energyHfEmExcess = max(caloEnergyTmp - totalChargedMomentum, 0.); double uncalibratedenergyHfEmExcess = energyHfEmExcess / calibFactorHfEm; unsigned tmpi = reconstructCluster(*eclusterRef, energyHfEmExcess); - (*pfCandidates_)[tmpi].setEcalEnergy(uncalibratedenergyHfEmExcess, energyHfEmExcess); - (*pfCandidates_)[tmpi].setHcalEnergy(0, 0.); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHfEm); + pfCandidates_[tmpi].setEcalEnergy(uncalibratedenergyHfEmExcess, energyHfEmExcess); + pfCandidates_[tmpi].setHcalEnergy(0, 0.); + pfCandidates_[tmpi].addElementInBlock(blockref, iHfEm); energyHfEmTmp = max(energyHfEmTmp - energyHfEmExcess, 0.); uncalibratedenergyHfEmTmp = max(uncalibratedenergyHfEmTmp - uncalibratedenergyHfEmExcess, 0.); } @@ -1559,19 +1559,19 @@ void PFAlgo::createCandidatesHF(const reco::PFBlock& block, // unsigned tmpi = reconstructTrack(elements[iTrack]); active[iTrack] = false; - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHfHad); + pfCandidates_[tmpi].addElementInBlock(blockref, iHfHad); auto myHfEms = associatedHfEms.equal_range(iTrack); for (auto ii = myHfEms.first; ii != myHfEms.second; ++ii) { unsigned iHfEm = ii->second.second; if (active[iHfEm]) continue; - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHfEm); + pfCandidates_[tmpi].addElementInBlock(blockref, iHfEm); } double frac = 0.; if (totalChargedMomentum) frac = trackRef->p() / totalChargedMomentum; - (*pfCandidates_)[tmpi].setEcalEnergy(uncalibratedenergyHfEm * frac, energyHfEm * frac); - (*pfCandidates_)[tmpi].setHcalEnergy(uncalibratedenergyHfHad * frac, energyHfHad * frac); + pfCandidates_[tmpi].setEcalEnergy(uncalibratedenergyHfEm * frac, energyHfEm * frac); + pfCandidates_[tmpi].setHcalEnergy(uncalibratedenergyHfHad * frac, energyHfHad * frac); } // sortedTracks loop ends @@ -1595,9 +1595,9 @@ void PFAlgo::createCandidatesHF(const reco::PFBlock& block, uncalibratedenergyHF, eclusterRef->positionREP().Eta(), eclusterRef->positionREP().Phi()); } tmpi = reconstructCluster(*eclusterRef, energyHF); - (*pfCandidates_)[tmpi].setEcalEnergy(uncalibratedenergyHF, energyHF); - (*pfCandidates_)[tmpi].setHcalEnergy(0., 0.); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHfEm); + pfCandidates_[tmpi].setEcalEnergy(uncalibratedenergyHF, energyHF); + pfCandidates_[tmpi].setHcalEnergy(0., 0.); + pfCandidates_[tmpi].addElementInBlock(blockref, iHfEm); active[iHfEm] = false; LogTrace("PFAlgo|createCandidatesHF") << "HF EM alone from blocks with tracks! " << energyHF; } @@ -1625,12 +1625,12 @@ void PFAlgo::createCandidatesHF(const reco::PFBlock& block, uncalibratedenergyHF, clusterRef->positionREP().Eta(), clusterRef->positionREP().Phi()); } tmpi = reconstructCluster(*clusterRef, energyHF); - (*pfCandidates_)[tmpi].setEcalEnergy(uncalibratedenergyHF, energyHF); - (*pfCandidates_)[tmpi].setHcalEnergy(0., 0.); - (*pfCandidates_)[tmpi].setHoEnergy(0., 0.); - (*pfCandidates_)[tmpi].setPs1Energy(0.); - (*pfCandidates_)[tmpi].setPs2Energy(0.); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, inds.hfEmIs[0]); + pfCandidates_[tmpi].setEcalEnergy(uncalibratedenergyHF, energyHF); + pfCandidates_[tmpi].setHcalEnergy(0., 0.); + pfCandidates_[tmpi].setHoEnergy(0., 0.); + pfCandidates_[tmpi].setPs1Energy(0.); + pfCandidates_[tmpi].setPs2Energy(0.); + pfCandidates_[tmpi].addElementInBlock(blockref, inds.hfEmIs[0]); LogTrace("PFAlgo|createCandidatesHF") << "HF EM alone ! " << energyHF; break; case PFLayer::HF_HAD: @@ -1642,12 +1642,12 @@ void PFAlgo::createCandidatesHF(const reco::PFBlock& block, uncalibratedenergyHF, clusterRef->positionREP().Eta(), clusterRef->positionREP().Phi()); } tmpi = reconstructCluster(*clusterRef, energyHF); - (*pfCandidates_)[tmpi].setHcalEnergy(uncalibratedenergyHF, energyHF); - (*pfCandidates_)[tmpi].setEcalEnergy(0., 0.); - (*pfCandidates_)[tmpi].setHoEnergy(0., 0.); - (*pfCandidates_)[tmpi].setPs1Energy(0.); - (*pfCandidates_)[tmpi].setPs2Energy(0.); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, inds.hfHadIs[0]); + pfCandidates_[tmpi].setHcalEnergy(uncalibratedenergyHF, energyHF); + pfCandidates_[tmpi].setEcalEnergy(0., 0.); + pfCandidates_[tmpi].setHoEnergy(0., 0.); + pfCandidates_[tmpi].setPs1Energy(0.); + pfCandidates_[tmpi].setPs2Energy(0.); + pfCandidates_[tmpi].addElementInBlock(blockref, inds.hfHadIs[0]); LogTrace("PFAlgo|createCandidatesHF") << "HF Had alone ! " << energyHF; break; default: @@ -1679,7 +1679,7 @@ void PFAlgo::createCandidatesHF(const reco::PFBlock& block, energyHfHad = thepfEnergyCalibrationHF_.energyEmHad( 0.0, uncalibratedenergyHfHad, c1->positionREP().Eta(), c1->positionREP().Phi()); } - auto& cand = (*pfCandidates_)[reconstructCluster(*chad, energyHfEm + energyHfHad)]; + auto& cand = pfCandidates_[reconstructCluster(*chad, energyHfEm + energyHfHad)]; cand.setEcalEnergy(uncalibratedenergyHfEm, energyHfEm); cand.setHcalEnergy(uncalibratedenergyHfHad, energyHfHad); cand.setHoEnergy(0., 0.); @@ -1843,8 +1843,8 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, unsigned tmpi = reconstructTrack(elements[iTrack]); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iTrack); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHcal); + pfCandidates_[tmpi].addElementInBlock(blockref, iTrack); + pfCandidates_[tmpi].addElementInBlock(blockref, iHcal); double muonHcal = std::min(muonHCAL_[0] + muonHCAL_[1], totalHcal); // if muon is isolated and muon momentum exceeds the calo energy, absorb the calo energy @@ -1872,7 +1872,7 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, } } - if ((pfCandidates_->back()).p() > totalCaloEnergy) + if ((pfCandidates_.back()).p() > totalCaloEnergy) letMuonEatCaloEnergy = true; } @@ -1883,14 +1883,14 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, if (!sortedEcals.empty()) { iEcal = sortedEcals.begin()->second; PFClusterRef eclusterref = elements[iEcal].clusterRef(); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iEcal); + pfCandidates_[tmpi].addElementInBlock(blockref, iEcal); muonEcal = std::min(muonECAL_[0] + muonECAL_[1], eclusterref->energy()); if (letMuonEatCaloEnergy) muonEcal = eclusterref->energy(); // If the muon expected energy accounts for the whole ecal cluster energy, lock the ecal cluster if (eclusterref->energy() - muonEcal < 0.2) active[iEcal] = false; - (*pfCandidates_)[tmpi].setEcalEnergy(eclusterref->energy(), muonEcal); + pfCandidates_[tmpi].setEcalEnergy(eclusterref->energy(), muonEcal); } unsigned iHO = 0; double muonHO = 0.; @@ -1898,20 +1898,20 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, if (!sortedHOs.empty()) { iHO = sortedHOs.begin()->second; PFClusterRef hoclusterref = elements[iHO].clusterRef(); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHO); + pfCandidates_[tmpi].addElementInBlock(blockref, iHO); muonHO = std::min(muonHO_[0] + muonHO_[1], hoclusterref->energy()); if (letMuonEatCaloEnergy) muonHO = hoclusterref->energy(); // If the muon expected energy accounts for the whole HO cluster energy, lock the HO cluster if (hoclusterref->energy() - muonHO < 0.2) active[iHO] = false; - (*pfCandidates_)[tmpi].setHcalEnergy(totalHcal, muonHcal); - (*pfCandidates_)[tmpi].setHoEnergy(hoclusterref->energy(), muonHO); + pfCandidates_[tmpi].setHcalEnergy(totalHcal, muonHcal); + pfCandidates_[tmpi].setHoEnergy(hoclusterref->energy(), muonHO); } } else { - (*pfCandidates_)[tmpi].setHcalEnergy(totalHcal, muonHcal); + pfCandidates_[tmpi].setHcalEnergy(totalHcal, muonHcal); } - setHcalDepthInfo((*pfCandidates_)[tmpi], *hclusterref); + setHcalDepthInfo(pfCandidates_[tmpi], *hclusterref); if (letMuonEatCaloEnergy) { muonHCALEnergy += totalHcal; @@ -2213,7 +2213,7 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, block.associatedElements(iTrack, linkData, sortedHOs, reco::PFBlockElement::HO, reco::PFBlock::LINKTEST_ALL); //Here allow for loose muons! - auto& muon = (*pfCandidates_)[reconstructTrack(elements[iTrack], true)]; + auto& muon = pfCandidates_[reconstructTrack(elements[iTrack], true)]; muon.addElementInBlock(blockref, iTrack); muon.addElementInBlock(blockref, iHcal); @@ -2399,15 +2399,15 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, double dp = trackRef->qoverpError() * trackMomentum * trackMomentum; unsigned tmpi = reconstructTrack(elements[iTrack]); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iTrack); - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHcal); - setHcalDepthInfo((*pfCandidates_)[tmpi], *hclusterref); + pfCandidates_[tmpi].addElementInBlock(blockref, iTrack); + pfCandidates_[tmpi].addElementInBlock(blockref, iHcal); + setHcalDepthInfo(pfCandidates_[tmpi], *hclusterref); auto myEcals = associatedEcals.equal_range(iTrack); for (auto ii = myEcals.first; ii != myEcals.second; ++ii) { unsigned iEcal = ii->second.second; if (active[iEcal]) continue; - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iEcal); + pfCandidates_[tmpi].addElementInBlock(blockref, iEcal); } if (useHO_) { @@ -2416,14 +2416,14 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, unsigned iHO = ii->second.second; if (active[iHO]) continue; - (*pfCandidates_)[tmpi].addElementInBlock(blockref, iHO); + pfCandidates_[tmpi].addElementInBlock(blockref, iHO); } } if (iTrack == corrTrack) { if (corrFact < 0.) corrFact = 0.; // protect against negative scaling - auto& candRescale = (*pfCandidates_)[tmpi]; + auto& candRescale = pfCandidates_[tmpi]; LogTrace("PFAlgo|createCandidatesHCAL") << "\tBefore rescaling: momentum " << candRescale.p() << " pT " << candRescale.pt() << " energy " << candRescale.energy() << " mass " << candRescale.mass() << std::endl @@ -2514,7 +2514,7 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, double rescaleFactor = x(i) / hcalP[i]; if (rescaleFactor < 0.) rescaleFactor = 0.; // protect against negative scaling - auto& candRescale = (*pfCandidates_)[ich]; + auto& candRescale = pfCandidates_[ich]; LogTrace("PFAlgo|createCandidatesHCAL") << "\tBefore rescaling: momentum " << candRescale.p() << " pT " << candRescale.pt() << " energy " << candRescale.energy() << " mass " << candRescale.mass() << std::endl @@ -2693,12 +2693,12 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, << "ALARM = Negative energy for iPivot=" << iPivot << ", " << particleEnergy[iPivot]; const bool useDirection = true; - auto& neutral = (*pfCandidates_)[reconstructCluster(*pivotalClusterRef[iPivot], - particleEnergy[iPivot], - useDirection, - particleDirection[iPivot].X(), - particleDirection[iPivot].Y(), - particleDirection[iPivot].Z())]; + auto& neutral = pfCandidates_[reconstructCluster(*pivotalClusterRef[iPivot], + particleEnergy[iPivot], + useDirection, + particleDirection[iPivot].X(), + particleDirection[iPivot].Y(), + particleDirection[iPivot].Z())]; neutral.setEcalEnergy(rawecalEnergy[iPivot], ecalEnergy[iPivot]); if (!useHO_) { @@ -2756,12 +2756,12 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, // not exactly equal to sum p, this is sum E double chargedHadronsTotalEnergy = 0; for (unsigned index : chargedHadronsIndices) { - reco::PFCandidate& chargedHadron = (*pfCandidates_)[index]; + reco::PFCandidate& chargedHadron = pfCandidates_[index]; chargedHadronsTotalEnergy += chargedHadron.energy(); } for (unsigned index : chargedHadronsIndices) { - reco::PFCandidate& chargedHadron = (*pfCandidates_)[index]; + reco::PFCandidate& chargedHadron = pfCandidates_[index]; float fraction = chargedHadron.energy() / chargedHadronsTotalEnergy; if (!useHO_) { @@ -2801,7 +2801,7 @@ void PFAlgo::createCandidatesHCAL(const reco::PFBlock& block, sqrt(std::get<1>(ecalSatellite.second).Mag2()) * std::get<2>( ecalSatellite.second); // KH: calibrated under the egamma hypothesis (rawEcalClusterEnergy * calibration) - auto& cand = (*pfCandidates_)[reconstructCluster(*eclusterref, ecalClusterEnergyCalibrated)]; + auto& cand = pfCandidates_[reconstructCluster(*eclusterref, ecalClusterEnergyCalibrated)]; cand.setEcalEnergy(eclusterref->energy(), ecalClusterEnergyCalibrated); cand.setHcalEnergy(0., 0.); cand.setHoEnergy(0., 0.); @@ -3002,7 +3002,7 @@ void PFAlgo::createCandidatesHCALUnlinked(const reco::PFBlock& block, -1., calibEcal, calibHcal, hclusterRef->positionREP().Eta(), hclusterRef->positionREP().Phi()); } - auto& cand = (*pfCandidates_)[reconstructCluster(*hclusterRef, calibEcal + calibHcal)]; + auto& cand = pfCandidates_[reconstructCluster(*hclusterRef, calibEcal + calibHcal)]; cand.setEcalEnergy(totalEcal, calibEcal); if (!useHO_) { @@ -3059,7 +3059,7 @@ void PFAlgo::createCandidatesECAL(const reco::PFBlock& block, // float ecalEnergy = calibration_.energyEm( clusterref->energy() ); double particleEnergy = ecalEnergy; - auto& cand = (*pfCandidates_)[reconstructCluster(*clusterref, particleEnergy)]; + auto& cand = pfCandidates_[reconstructCluster(*clusterref, particleEnergy)]; cand.setEcalEnergy(clusterref->energy(), ecalEnergy); cand.setHcalEnergy(0., 0.); @@ -3178,20 +3178,20 @@ unsigned PFAlgo::reconstructTrack(const reco::PFBlockElement& elt, bool allowLoo LogTrace("PFAlgo|reconstructTrack") << "Creating PFCandidate charge=" << charge << ", type=" << particleType << ", pt=" << momentum.pt() << ", eta=" << momentum.eta() << ", phi=" << momentum.phi(); - pfCandidates_->push_back(PFCandidate(charge, momentum, particleType)); + pfCandidates_.push_back(PFCandidate(charge, momentum, particleType)); //Set vertex and stuff like this - pfCandidates_->back().setVertex(trackRef->vertex()); - pfCandidates_->back().setTrackRef(trackRef); - pfCandidates_->back().setPositionAtECALEntrance(eltTrack->positionAtECALEntrance()); + pfCandidates_.back().setVertex(trackRef->vertex()); + pfCandidates_.back().setTrackRef(trackRef); + pfCandidates_.back().setPositionAtECALEntrance(eltTrack->positionAtECALEntrance()); if (muonRef.isNonnull()) - pfCandidates_->back().setMuonRef(muonRef); + pfCandidates_.back().setMuonRef(muonRef); //Set time if (elt.isTimeValid()) - pfCandidates_->back().setTime(elt.time(), elt.timeError()); + pfCandidates_.back().setTime(elt.time(), elt.timeError()); //OK Now try to reconstruct the particle as a muon - bool isMuon = pfmu_->reconstructMuon(pfCandidates_->back(), muonRef, allowLoose); + bool isMuon = pfmu_->reconstructMuon(pfCandidates_.back(), muonRef, allowLoose); bool isFromDisp = isFromSecInt(elt, "secondary"); if ((!isMuon) && isFromDisp) { @@ -3213,22 +3213,22 @@ unsigned PFAlgo::reconstructTrack(const reco::PFBlockElement& elt, bool allowLoo LogTrace("PFAlgo|reconstructTrack") << "Refitted px = " << px << " py = " << py << " pz = " << pz << " energy = " << energy; } - pfCandidates_->back().setFlag(reco::PFCandidate::T_FROM_DISP, true); - pfCandidates_->back().setDisplacedVertexRef( + pfCandidates_.back().setFlag(reco::PFCandidate::T_FROM_DISP, true); + pfCandidates_.back().setDisplacedVertexRef( eltTrack->displacedVertexRef(reco::PFBlockElement::T_FROM_DISP)->displacedVertexRef(), reco::PFCandidate::T_FROM_DISP); } // do not label as primary a track which would be recognised as a muon. A muon cannot produce NI. It is with high probability a fake if (isFromSecInt(elt, "primary") && !isMuon) { - pfCandidates_->back().setFlag(reco::PFCandidate::T_TO_DISP, true); - pfCandidates_->back().setDisplacedVertexRef( + pfCandidates_.back().setFlag(reco::PFCandidate::T_TO_DISP, true); + pfCandidates_.back().setDisplacedVertexRef( eltTrack->displacedVertexRef(reco::PFBlockElement::T_TO_DISP)->displacedVertexRef(), reco::PFCandidate::T_TO_DISP); } // returns index to the newly created PFCandidate - return pfCandidates_->size() - 1; + return pfCandidates_.size() - 1; } unsigned PFAlgo::reconstructCluster(const reco::PFCluster& cluster, @@ -3321,25 +3321,25 @@ unsigned PFAlgo::reconstructCluster(const reco::PFCluster& cluster, // The pf candidate LogTrace("PFAlgo|reconstructCluster") << "Creating PFCandidate charge=" << charge << ", type=" << particleType << ", pt=" << tmp.pt() << ", eta=" << tmp.eta() << ", phi=" << tmp.phi(); - pfCandidates_->push_back(PFCandidate(charge, tmp, particleType)); + pfCandidates_.push_back(PFCandidate(charge, tmp, particleType)); // The position at ECAL entrance (well: watch out, it is not true // for HCAL clusters... to be fixed) - pfCandidates_->back().setPositionAtECALEntrance( + pfCandidates_.back().setPositionAtECALEntrance( ::math::XYZPointF(cluster.position().X(), cluster.position().Y(), cluster.position().Z())); //Set the cnadidate Vertex - pfCandidates_->back().setVertex(vertexPos); + pfCandidates_.back().setVertex(vertexPos); // depth info - setHcalDepthInfo(pfCandidates_->back(), cluster); + setHcalDepthInfo(pfCandidates_.back(), cluster); //*TODO* cluster time is not reliable at the moment, so only use track timing - LogTrace("PFAlgo|reconstructCluster") << "** candidate: " << pfCandidates_->back(); + LogTrace("PFAlgo|reconstructCluster") << "** candidate: " << pfCandidates_.back(); // returns index to the newly created PFCandidate - return pfCandidates_->size() - 1; + return pfCandidates_.size() - 1; } void PFAlgo::setHcalDepthInfo(reco::PFCandidate& cand, const reco::PFCluster& cluster) const { @@ -3426,11 +3426,7 @@ ostream& operator<<(ostream& out, const PFAlgo& algo) { out << endl; out << "reconstructed particles: " << endl; - if (!algo.pfCandidates_.get()) { - out << "candidates already transfered" << endl; - return out; - } - for (auto const& c : *algo.pfCandidates_) + for (auto const& c : algo.pfCandidates_) out << c << endl; return out; @@ -3514,7 +3510,7 @@ void PFAlgo::postCleaning() { double metY = 0.; double sumet = 0; std::vector pfCandidatesToBeRemoved; - for (auto const& pfc : *pfCandidates_) { + for (auto const& pfc : pfCandidates_) { metX += pfc.px(); metY += pfc.py(); sumet += pfc.pt(); @@ -3537,8 +3533,8 @@ void PFAlgo::postCleaning() { while (next) { double metReduc = -1.; // Loop on the candidates - for (unsigned i = 0; i < pfCandidates_->size(); ++i) { - const PFCandidate& pfc = (*pfCandidates_)[i]; + for (unsigned i = 0; i < pfCandidates_.size(); ++i) { + const PFCandidate& pfc = pfCandidates_[i]; // Check that the pfCandidate is in the HF if (pfc.particleId() != reco::PFCandidate::h_HF && pfc.particleId() != reco::PFCandidate::egamma_HF) @@ -3594,11 +3590,11 @@ void PFAlgo::postCleaning() { edm::LogInfo("PFAlgo|postCleaning") << "Significance reduction = " << significance << " -> " << significanceCor << " = " << significanceCor - significance; for (unsigned int toRemove : pfCandidatesToBeRemoved) { - edm::LogInfo("PFAlgo|postCleaning") << "Removed : " << (*pfCandidates_)[toRemove]; - pfCleanedCandidates_.push_back((*pfCandidates_)[toRemove]); - (*pfCandidates_)[toRemove].rescaleMomentum(1E-6); + edm::LogInfo("PFAlgo|postCleaning") << "Removed : " << pfCandidates_[toRemove]; + pfCleanedCandidates_.push_back(pfCandidates_[toRemove]); + pfCandidates_[toRemove].rescaleMomentum(1E-6); //reco::PFCandidate::ParticleType unknown = reco::PFCandidate::X; - //(*pfCandidates_)[toRemove].setParticleType(unknown); + //pfCandidates_[toRemove].setParticleType(unknown); } } } //significance @@ -3614,7 +3610,7 @@ void PFAlgo::checkCleaning(const reco::PFRecHitCollection& cleanedHits) { double metY = 0.; double sumet = 0; std::vector hitsToBeAdded; - for (auto const& pfc : *pfCandidates_) { + for (auto const& pfc : pfCandidates_) { metX += pfc.px(); metY += pfc.py(); sumet += pfc.pt(); @@ -3695,7 +3691,7 @@ void PFAlgo::checkCleaning(const reco::PFRecHitCollection& cleanedHits) { const PFRecHit& hit = cleanedHits[hitIdx]; PFCluster cluster(hit.layer(), hit.energy(), hit.position().x(), hit.position().y(), hit.position().z()); reconstructCluster(cluster, hit.energy()); - LogTrace("PFAlgo|checkCleaning") << pfCandidates_->back() << ". time = " << hit.time(); + LogTrace("PFAlgo|checkCleaning") << pfCandidates_.back() << ". time = " << hit.time(); } } } //PFAlgo::checkCleaning diff --git a/RecoParticleFlow/PFProducer/src/PFMuonAlgo.cc b/RecoParticleFlow/PFProducer/src/PFMuonAlgo.cc index 58a4a2e6e5b26..a205ce060e49d 100644 --- a/RecoParticleFlow/PFProducer/src/PFMuonAlgo.cc +++ b/RecoParticleFlow/PFProducer/src/PFMuonAlgo.cc @@ -16,12 +16,12 @@ using namespace boost; PFMuonAlgo::PFMuonAlgo(const edm::ParameterSet& iConfig, bool postMuonCleaning) - : pfCosmicsMuonCleanedCandidates_(std::make_unique()), - pfCleanedTrackerAndGlobalMuonCandidates_(std::make_unique()), - pfFakeMuonCleanedCandidates_(std::make_unique()), - pfPunchThroughMuonCleanedCandidates_(std::make_unique()), - pfPunchThroughHadronCleanedCandidates_(std::make_unique()), - pfAddedMuonCandidates_(std::make_unique()), + : pfCosmicsMuonCleanedCandidates_(), + pfCleanedTrackerAndGlobalMuonCandidates_(), + pfFakeMuonCleanedCandidates_(), + pfPunchThroughMuonCleanedCandidates_(), + pfPunchThroughHadronCleanedCandidates_(), + pfAddedMuonCandidates_(), maxDPtOPt_(iConfig.getParameter("maxDPtOPt")), trackQuality_(reco::TrackBase::qualityByName(iConfig.getParameter("trackQuality"))), From 33d312d7251e69b3d8ecccf4f82aaee5c61e850a Mon Sep 17 00:00:00 2001 From: Sunanda Date: Wed, 25 Dec 2024 09:22:36 +0100 Subject: [PATCH 366/418] Change in GE21 setup in view of last minute changes --- .../data/cmsextent/2018/v0/cmsextent.xml | 14 + .../data/gem21/2025/v2/gem21.xml | 2418 +++++++++++++++++ .../MuonCommonData/python/testGE21XML_cfi.py | 43 + .../MuonCommonData/test/python/dumpGE0_cfg.py | 6 +- 4 files changed, 2478 insertions(+), 3 deletions(-) create mode 100644 Geometry/CMSCommonData/data/cmsextent/2018/v0/cmsextent.xml create mode 100644 Geometry/MuonCommonData/data/gem21/2025/v2/gem21.xml create mode 100644 Geometry/MuonCommonData/python/testGE21XML_cfi.py diff --git a/Geometry/CMSCommonData/data/cmsextent/2018/v0/cmsextent.xml b/Geometry/CMSCommonData/data/cmsextent/2018/v0/cmsextent.xml new file mode 100644 index 0000000000000..198579ddf0f65 --- /dev/null +++ b/Geometry/CMSCommonData/data/cmsextent/2018/v0/cmsextent.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/gem21/2025/v2/gem21.xml b/Geometry/MuonCommonData/data/gem21/2025/v2/gem21.xml new file mode 100644 index 0000000000000..bc3b2424e16fa --- /dev/null +++ b/Geometry/MuonCommonData/data/gem21/2025/v2/gem21.xml @@ -0,0 +1,2418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/python/testGE21XML_cfi.py b/Geometry/MuonCommonData/python/testGE21XML_cfi.py new file mode 100644 index 0000000000000..3df2b393fa289 --- /dev/null +++ b/Geometry/MuonCommonData/python/testGE21XML_cfi.py @@ -0,0 +1,43 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v3/materials.xml', + 'Geometry/TrackerCommonData/data/trackermaterial/2021/v2/trackermaterial.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cmsextent/2018/v0/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms/2021/v3/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/muonBase/2018/v1/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v2/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2021/v1/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2021/v1/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2021/v1/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2021/v5/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2021/v3/mf.xml', + 'Geometry/MuonCommonData/data/rpcf/2025/v1/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/2025/v2/gem21.xml', + 'Geometry/MuonCommonData/data/csc/2021/v3/csc.xml', + 'Geometry/MuonCommonData/data/mfshield/2017/v2/mfshield.xml', + 'Geometry/MuonCommonData/data/muonNumbering/2024/v1/muonNumbering.xml', + 'Geometry/MuonSimData/data/muonSens/2021/v4/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2021/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter/2021/v2/GEMSpecsFilter.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2021/v3/muonProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/MuonCommonData/test/python/dumpGE0_cfg.py b/Geometry/MuonCommonData/test/python/dumpGE0_cfg.py index a10b8d367ae19..d4cd4cc8e0c2a 100644 --- a/Geometry/MuonCommonData/test/python/dumpGE0_cfg.py +++ b/Geometry/MuonCommonData/test/python/dumpGE0_cfg.py @@ -2,7 +2,7 @@ # Way to use this: # cmsRun dumpGE0_cfg.py geometry=GE0 # -# Options for geometry GE0, Mu24 +# Options for geometry GE0, Mu24, GE21 # ############################################################################### import FWCore.ParameterSet.Config as cms @@ -16,7 +16,7 @@ "GE0", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: GE0, Mu24") + "geometry of operations: GE0, Mu24, GE21") ### get and parse the command line arguments options.parseArguments() @@ -39,8 +39,8 @@ if 'MessageLogger' in process.__dict__: process.MessageLogger.G4cerr=dict() - process.MessageLogger.G4cout=dict() process.MessageLogger.MuonGeom=dict() +# process.MessageLogger.TGeoMgrFromDdd=dict() process.source = cms.Source("EmptySource") From 2639e878013c4713d750011d2ae732342eab130f Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 26 Dec 2024 17:43:10 +0100 Subject: [PATCH 367/418] Add central synchronize configuration parameter to Alpaka modules --- HeterogeneousCore/AlpakaCore/README.md | 28 +++++++++++-- .../alpaka/EDMetadataAcquireSentry.h | 5 ++- .../interface/alpaka/EDMetadataSentry.h | 6 ++- .../AlpakaCore/interface/alpaka/ESProducer.h | 4 +- .../interface/alpaka/ProducerBase.h | 16 +++++++- .../interface/alpaka/global/EDProducer.h | 7 +++- .../interface/alpaka/stream/EDProducer.h | 7 +++- .../alpaka/stream/SynchronizingEDProducer.h | 9 ++++- .../AlpakaCore/interface/modulePrevalidate.h | 10 +++++ .../interface/module_backend_config.h | 10 ----- .../python/ProcessAcceleratorAlpaka.py | 15 ++++++- .../src/alpaka/EDMetadataAcquireSentry.cc | 18 ++++++--- .../AlpakaCore/src/alpaka/EDMetadataSentry.cc | 15 +++++-- .../AlpakaCore/src/modulePrevalidate.cc | 40 +++++++++++++++++++ .../AlpakaCore/src/module_backend_config.cc | 35 ---------------- .../alpaka/TestAlpakaGlobalProducer.cc | 3 +- .../alpaka/TestAlpakaGlobalProducerE.cc | 3 +- .../TestAlpakaGlobalProducerNoOutput.cc | 2 +- .../alpaka/TestAlpakaGlobalProducerNullES.cc | 3 +- .../alpaka/TestAlpakaGlobalProducerOffset.cc | 3 +- .../alpaka/TestAlpakaGlobalProducerWithPtr.cc | 2 +- .../plugins/alpaka/TestAlpakaProducer.cc | 3 +- .../alpaka/TestAlpakaStreamProducer.cc | 3 +- .../TestAlpakaStreamSynchronizingProducer.cc | 3 +- ...pakaStreamSynchronizingProducerToDevice.cc | 3 +- .../AlpakaTest/test/testAlpakaModules.sh | 4 ++ .../AlpakaTest/test/testAlpakaModules_cfg.py | 35 +++++++++++----- 27 files changed, 200 insertions(+), 92 deletions(-) create mode 100644 HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h delete mode 100644 HeterogeneousCore/AlpakaCore/interface/module_backend_config.h create mode 100644 HeterogeneousCore/AlpakaCore/src/modulePrevalidate.cc delete mode 100644 HeterogeneousCore/AlpakaCore/src/module_backend_config.cc diff --git a/HeterogeneousCore/AlpakaCore/README.md b/HeterogeneousCore/AlpakaCore/README.md index 844b14a8be92b..4e0dad334c3e9 100644 --- a/HeterogeneousCore/AlpakaCore/README.md +++ b/HeterogeneousCore/AlpakaCore/README.md @@ -146,7 +146,9 @@ The `...` can in principle be any of the module abilities listed in the linked T New base classes (or other functionality) can be added based on new use cases that come up. -The Alpaka-based ESProducers should use the `ESProducer` base class (`#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h"`). Note that the Alpaka-based ESProducer constructor must pass the argument `edm::ParameterSet` object to the constructor of the `ESProducer` base class. +The Alpaka-based ESProducers should use the `ESProducer` base class (`#include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h"`). + +Note that both the Alpaka-based EDProducer and ESProducer constructors must pass the argument `edm::ParameterSet` object to the constructor of their base class. Note that currently Alpaka-based ESSources are not supported. If you need to produce EventSetup data products into a Record for which there is no ESSource yet, use [`EmptyESSource`](https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideEDMParametersForModules#EmptyESSource). @@ -237,8 +239,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class ExampleAlpakaProducer : public global::EDProducer<> { public: ExampleAlpakaProducer(edm::ParameterSet const& iConfig) - // produces() must not specify the product type, it is deduced from deviceToken_ - : deviceToken_{produces()}, size_{iConfig.getParameter("size")} {} + : EDProducer<>(iConfig), + // produces() must not specify the product type, it is deduced from deviceToken_ + deviceToken_{produces()}, + size_{iConfig.getParameter("size")} {} // device::Event and device::EventSetup are defined in ALPAKA_ACCELERATOR_NAMESPACE as well void produce(edm::StreamID sid, device::Event& iEvent, device::EventSetup const& iSetup) const override { @@ -479,6 +483,24 @@ process.ProcessAcceleratorAlpaka.setBackend("serial_sync") # or "cuda_async" or process.options.accelerators = ["cpu"] # or "gpu-nvidia" or "gpu-amd" ``` +### Blocking synchronization (for testing) + +While the general approach is to favor asynchronous operations with non-blocking synchronization, for testing purposes it can be useful to synchronize the EDModule's `acquire()` / `produce()` or ESProducer's production functions in a blocking way. Such a blocking synchronization can be specified for individual modules via the `alpaka` `PSet` along +```python +process.producer = cms.EDProducer("ExampleAlpakaProducer@alpaka", + ... + alpaka = cms.untracked.PSet( + synchronize = cms.untracked.bool(True) + ) +) +``` + +The blocking synchronization can be specified for all Alpaka modules via the `ProcessAcceleratorAlpaka` along +```python +process.ProcessAcceleratorAlpaka.setSynchronize(True) +``` +Note that the possible per-module parameter overrides this global setting. + ## Unit tests diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataAcquireSentry.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataAcquireSentry.h index 6495d2127ff5e..a8f285372bf77 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataAcquireSentry.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataAcquireSentry.h @@ -16,10 +16,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { public: // TODO: WaitingTaskWithArenaHolder not really needed for host synchronous case // Constructor overload to be called from acquire() - EDMetadataAcquireSentry(edm::StreamID stream, edm::WaitingTaskWithArenaHolder holder); + EDMetadataAcquireSentry(edm::StreamID stream, edm::WaitingTaskWithArenaHolder holder, bool synchronize); // Constructor overload to be called from registerTransformAsync() - EDMetadataAcquireSentry(Device const& device, edm::WaitingTaskWithArenaHolder holder); + EDMetadataAcquireSentry(Device const& device, edm::WaitingTaskWithArenaHolder holder, bool synchronize = false); EDMetadataAcquireSentry(EDMetadataAcquireSentry const&) = delete; EDMetadataAcquireSentry& operator=(EDMetadataAcquireSentry const&) = delete; @@ -40,6 +40,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { std::shared_ptr metadata_; edm::WaitingTaskWithArenaHolder waitingTaskHolder_; + bool const synchronize_; }; } // namespace detail } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataSentry.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataSentry.h index a56670af92210..11ec11c9ba3d0 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataSentry.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataSentry.h @@ -14,10 +14,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class EDMetadataSentry { public: // For normal module - EDMetadataSentry(edm::StreamID stream); + EDMetadataSentry(edm::StreamID stream, bool synchronize); // For ExternalWork-module's produce() - EDMetadataSentry(std::shared_ptr metadata) : metadata_(std::move(metadata)) {} + EDMetadataSentry(std::shared_ptr metadata, bool synchronize) + : metadata_(std::move(metadata)), synchronize_(synchronize) {} EDMetadataSentry(EDMetadataSentry const&) = delete; EDMetadataSentry& operator=(EDMetadataSentry const&) = delete; @@ -31,6 +32,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { private: std::shared_ptr metadata_; + bool const synchronize_; }; } // namespace detail } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h index d4e9f2bb3ba28..83cecf0f77b36 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h @@ -4,7 +4,7 @@ #include "FWCore/Framework/interface/ESProducer.h" #include "FWCore/Framework/interface/MakeDataException.h" #include "FWCore/Framework/interface/produce_helpers.h" -#include "HeterogeneousCore/AlpakaCore/interface/module_backend_config.h" +#include "HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESDeviceProduct.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESDeviceProductType.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/Record.h" @@ -30,7 +30,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { public: static void prevalidate(edm::ConfigurationDescriptions& descriptions) { Base::prevalidate(descriptions); - cms::alpakatools::module_backend_config(descriptions); + cms::alpakatools::modulePrevalidate(descriptions); } protected: diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h index a770397765b6f..b0be0e2ab476b 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h @@ -5,13 +5,14 @@ #include "FWCore/Framework/interface/FrameworkfwdMostUsed.h" #include "FWCore/Framework/interface/moduleAbilities.h" #include "FWCore/Framework/interface/Event.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/EDPutToken.h" #include "FWCore/Utilities/interface/Transition.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/DeviceProductType.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataAcquireSentry.h" #include "HeterogeneousCore/AlpakaCore/interface/EventCache.h" #include "HeterogeneousCore/AlpakaCore/interface/QueueCache.h" -#include "HeterogeneousCore/AlpakaCore/interface/module_backend_config.h" +#include "HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h" #include "HeterogeneousCore/AlpakaInterface/interface/Backend.h" #include "HeterogeneousCore/AlpakaInterface/interface/CopyToHost.h" @@ -46,7 +47,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { using Base = BaseT; public: + // TODO: default constructor to be removed after all derived classes have been migrated ProducerBase() : backendToken_(Base::produces("backend")) {} + ProducerBase(edm::ParameterSet const& iConfig) + : backendToken_(Base::produces("backend")), + // The 'synchronize' parameter can be unset in Alpaka + // modules specified with the namespace prefix instead if + // '@alpaka' suffix + synchronize_(iConfig.getUntrackedParameter("alpaka").getUntrackedParameter( + "synchronize", false)) {} template [[nodiscard]] auto produces() noexcept { @@ -60,7 +69,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { static void prevalidate(edm::ConfigurationDescriptions& descriptions) { Base::prevalidate(descriptions); - cms::alpakatools::module_backend_config(descriptions); + cms::alpakatools::modulePrevalidate(descriptions); } protected: @@ -68,8 +77,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { iEvent.emplace(this->backendToken_, static_cast(kBackend)); } + bool synchronize() const { return synchronize_; } + private: edm::EDPutTokenT const backendToken_; + bool const synchronize_ = false; template friend class ProducerBaseAdaptor; diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/global/EDProducer.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/global/EDProducer.h index 374ee0001f376..9a34a90699bbf 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/global/EDProducer.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/global/EDProducer.h @@ -15,10 +15,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { static_assert(not edm::CheckAbility::kHasIt, "ALPAKA_ACCELERATOR_NAMESPACE::global::EDProducer may not be used with ExternalWork ability. " "Please use ALPAKA_ACCELERATOR_NAMESPACE::stream::SynchronizingEDProducer instead."); + using Base = ProducerBase; + + protected: + EDProducer() = default; // to be removed in the near future + EDProducer(edm::ParameterSet const iConfig) : Base(iConfig) {} public: void produce(edm::StreamID sid, edm::Event& iEvent, edm::EventSetup const& iSetup) const final { - detail::EDMetadataSentry sentry(sid); + detail::EDMetadataSentry sentry(sid, this->synchronize()); device::Event ev(iEvent, sentry.metadata()); device::EventSetup const es(iSetup, ev.device()); produce(sid, ev, es); diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h index 08687b0b804b3..b8297a145aaf6 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h @@ -15,10 +15,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { static_assert(not edm::CheckAbility::kHasIt, "ALPAKA_ACCELERATOR_NAMESPACE::stream::EDProducer may not be used with ExternalWork ability. " "Please use ALPAKA_ACCELERATOR_NAMESPACE::stream::SynchronizingEDProducer instead."); + using Base = ProducerBase; + + protected: + EDProducer() = default; // to be removed in the near future + EDProducer(edm::ParameterSet const iConfig) : Base(iConfig) {} public: void produce(edm::Event& iEvent, edm::EventSetup const& iSetup) final { - detail::EDMetadataSentry sentry(iEvent.streamID()); + detail::EDMetadataSentry sentry(iEvent.streamID(), this->synchronize()); device::Event ev(iEvent, sentry.metadata()); device::EventSetup const es(iSetup, ev.device()); produce(ev, es); diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/stream/SynchronizingEDProducer.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/stream/SynchronizingEDProducer.h index 28abd77be20db..e0aa364ef4f51 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/stream/SynchronizingEDProducer.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/stream/SynchronizingEDProducer.h @@ -18,12 +18,17 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { not edm::CheckAbility::kHasIt, "ExternalWork ability is redundant with ALPAKA_ACCELERATOR_NAMESPACE::stream::SynchronizingEDProducer." "Please remove it."); + using Base = ProducerBase; + + protected: + SynchronizingEDProducer() = default; // to be removed in the near future + SynchronizingEDProducer(edm::ParameterSet const iConfig) : Base(iConfig) {} public: void acquire(edm::Event const& iEvent, edm::EventSetup const& iSetup, edm::WaitingTaskWithArenaHolder holder) final { - detail::EDMetadataAcquireSentry sentry(iEvent.streamID(), std::move(holder)); + detail::EDMetadataAcquireSentry sentry(iEvent.streamID(), std::move(holder), this->synchronize()); device::Event const ev(iEvent, sentry.metadata()); device::EventSetup const es(iSetup, ev.device()); acquire(ev, es); @@ -31,7 +36,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } void produce(edm::Event& iEvent, edm::EventSetup const& iSetup) final { - detail::EDMetadataSentry sentry(std::move(metadata_)); + detail::EDMetadataSentry sentry(std::move(metadata_), this->synchronize()); device::Event ev(iEvent, sentry.metadata()); device::EventSetup const es(iSetup, ev.device()); produce(ev, es); diff --git a/HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h b/HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h new file mode 100644 index 0000000000000..22f2d889421fe --- /dev/null +++ b/HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h @@ -0,0 +1,10 @@ +#ifndef HeterogeneousCore_AlpakaCore_interface_modulePrevalidate_h +#define HeterogeneousCore_AlpakaCore_interface_modulePrevalidate_h + +#include "FWCore/Framework/interface/FrameworkfwdMostUsed.h" + +namespace cms::alpakatools { + void modulePrevalidate(edm::ConfigurationDescriptions& iDesc); +} // namespace cms::alpakatools + +#endif diff --git a/HeterogeneousCore/AlpakaCore/interface/module_backend_config.h b/HeterogeneousCore/AlpakaCore/interface/module_backend_config.h deleted file mode 100644 index 5fc9afb8b60b1..0000000000000 --- a/HeterogeneousCore/AlpakaCore/interface/module_backend_config.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef HeterogeneousCore_AlpakaCore_interface_module_backend_config_h -#define HeterogeneousCore_AlpakaCore_interface_module_backend_config_h - -#include "FWCore/Framework/interface/FrameworkfwdMostUsed.h" - -namespace cms::alpakatools { - void module_backend_config(edm::ConfigurationDescriptions& iDesc); -} - -#endif diff --git a/HeterogeneousCore/AlpakaCore/python/ProcessAcceleratorAlpaka.py b/HeterogeneousCore/AlpakaCore/python/ProcessAcceleratorAlpaka.py index 673a479d8eb2b..5c1f724749da7 100644 --- a/HeterogeneousCore/AlpakaCore/python/ProcessAcceleratorAlpaka.py +++ b/HeterogeneousCore/AlpakaCore/python/ProcessAcceleratorAlpaka.py @@ -5,7 +5,7 @@ from HeterogeneousCore.Common.PlatformStatus import PlatformStatus class ModuleTypeResolverAlpaka: - def __init__(self, accelerators, backend): + def __init__(self, accelerators, backend, synchronize): # first element is used as the default if nothing is set self._valid_backends = [] if "gpu-nvidia" in accelerators: @@ -23,6 +23,7 @@ def __init__(self, accelerators, backend): if backend != self._valid_backends[0]: self._valid_backends.remove(backend) self._valid_backends.insert(0, backend) + self._synchronize = synchronize def plugin(self): return "ModuleTypeResolverAlpaka" @@ -42,6 +43,12 @@ def setModuleVariant(self, module): module.alpaka = cms.untracked.PSet( backend = cms.untracked.string(defaultBackend) ) + isDefaultValue = lambda v: \ + isinstance(v, type(cms.optional.untracked.bool)) \ + and not v.isTracked() \ + and v.isCompatibleCMSType(cms.bool) + if not hasattr(module.alpaka, "synchronize") or isDefaultValue(module.alpaka.synchronize): + module.alpaka.synchronize = cms.untracked.bool(self._synchronize) class ProcessAcceleratorAlpaka(cms.ProcessAccelerator): """ProcessAcceleratorAlpaka itself does not define or inspect @@ -53,14 +60,18 @@ class ProcessAcceleratorAlpaka(cms.ProcessAccelerator): def __init__(self): super(ProcessAcceleratorAlpaka, self).__init__() self._backend = None + self._synchronize = False # User-facing interface def setBackend(self, backend): self._backend = backend + def setSynchronize(self, synchronize): + self._synchronize = synchronize + # Framework-facing interface def moduleTypeResolver(self, accelerators): - return ModuleTypeResolverAlpaka(accelerators, self._backend) + return ModuleTypeResolverAlpaka(accelerators, self._backend, self._synchronize) def apply(self, process, accelerators): # Propagate the AlpakaService messages through the MessageLogger diff --git a/HeterogeneousCore/AlpakaCore/src/alpaka/EDMetadataAcquireSentry.cc b/HeterogeneousCore/AlpakaCore/src/alpaka/EDMetadataAcquireSentry.cc index 923c0d52d5cf6..ef1a6472e2a5f 100644 --- a/HeterogeneousCore/AlpakaCore/src/alpaka/EDMetadataAcquireSentry.cc +++ b/HeterogeneousCore/AlpakaCore/src/alpaka/EDMetadataAcquireSentry.cc @@ -5,11 +5,15 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { namespace detail { - EDMetadataAcquireSentry::EDMetadataAcquireSentry(edm::StreamID streamID, edm::WaitingTaskWithArenaHolder holder) - : EDMetadataAcquireSentry(detail::chooseDevice(streamID), std::move(holder)) {} + EDMetadataAcquireSentry::EDMetadataAcquireSentry(edm::StreamID streamID, + edm::WaitingTaskWithArenaHolder holder, + bool synchronize) + : EDMetadataAcquireSentry(detail::chooseDevice(streamID), std::move(holder), synchronize) {} - EDMetadataAcquireSentry::EDMetadataAcquireSentry(Device const& device, edm::WaitingTaskWithArenaHolder holder) - : waitingTaskHolder_(std::move(holder)) { + EDMetadataAcquireSentry::EDMetadataAcquireSentry(Device const& device, + edm::WaitingTaskWithArenaHolder holder, + bool synchronize) + : waitingTaskHolder_(std::move(holder)), synchronize_(synchronize) { #ifdef ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED // all synchronous backends metadata_ = std::make_shared(cms::alpakatools::getQueueCache().get(device)); @@ -23,7 +27,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { #ifndef ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED // all asynchronous backends std::shared_ptr EDMetadataAcquireSentry::finish() { - metadata_->enqueueCallback(std::move(waitingTaskHolder_)); + if (synchronize_) { + alpaka::wait(metadata_->queue()); + } else { + metadata_->enqueueCallback(std::move(waitingTaskHolder_)); + } return std::move(metadata_); } #endif diff --git a/HeterogeneousCore/AlpakaCore/src/alpaka/EDMetadataSentry.cc b/HeterogeneousCore/AlpakaCore/src/alpaka/EDMetadataSentry.cc index da5e9065e9c12..74dda0811684c 100644 --- a/HeterogeneousCore/AlpakaCore/src/alpaka/EDMetadataSentry.cc +++ b/HeterogeneousCore/AlpakaCore/src/alpaka/EDMetadataSentry.cc @@ -5,7 +5,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { namespace detail { - EDMetadataSentry::EDMetadataSentry(edm::StreamID streamID) { + EDMetadataSentry::EDMetadataSentry(edm::StreamID streamID, bool synchronize) : synchronize_(synchronize) { auto const& device = detail::chooseDevice(streamID); #ifdef ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED metadata_ = std::make_shared(cms::alpakatools::getQueueCache().get(device)); @@ -16,12 +16,19 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } void EDMetadataSentry::finish(bool launchedAsyncWork) { - if (launchedAsyncWork) { + if constexpr (not std::is_same_v>) { + if (launchedAsyncWork and synchronize_) { + alpaka::wait(metadata_->queue()); + } + } + + if (launchedAsyncWork and not synchronize_) { metadata_->recordEvent(); } else { // If we are certain no asynchronous work was launched (i.e. - // the Queue was not used in any way), there is no need to - // synchronize, and the Event can be discarded. + // the Queue was not used in any way), or a blocking + // synchronization was explicitly requested, there is no need + // to synchronize later, and the Event can be discarded. metadata_->discardEvent(); } } diff --git a/HeterogeneousCore/AlpakaCore/src/modulePrevalidate.cc b/HeterogeneousCore/AlpakaCore/src/modulePrevalidate.cc new file mode 100644 index 0000000000000..984dd0cc799e4 --- /dev/null +++ b/HeterogeneousCore/AlpakaCore/src/modulePrevalidate.cc @@ -0,0 +1,40 @@ +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h" + +namespace { + const std::string kPSetName("alpaka"); + const char* const kComment = "PSet allows to override some Alpaka module settings per module instance."; +} // namespace + +namespace cms::alpakatools { + void modulePrevalidate(edm::ConfigurationDescriptions& iDesc) { + edm::ParameterSetDescription descAlpaka; + descAlpaka.addUntracked("backend", "") + ->setComment( + "Set the Alpaka backend for this module instance. This parameter has an effect only when the module class " + "name has '@alpaka' suffix, i.e. it has no effect when the Alpaka backend namespace is used explicitly. " + "Can be empty string (for the global default), 'serial_sync', or - depending on the architecture and " + "available hardware - 'cuda_async', 'rocm_async'"); + // Optional in order to have unset state so that python-side + // ModuleTypeResolverAlpaka can set the global default only if the + // per-module parameter is not set + descAlpaka.addOptionalUntracked("synchronize") + ->setComment( + "On backends with an asynchronous Queue, synchronize the host and device in a blocking way at the end of " + "acquire() and produce() functions. Has no effect on backends with synchronous Queue."); + + if (iDesc.defaultDescription()) { + if (iDesc.defaultDescription()->isLabelUnused(kPSetName)) { + iDesc.defaultDescription() + ->addUntracked(kPSetName, descAlpaka) + ->setComment(kComment); + } + } + for (auto& v : iDesc) { + if (v.second.isLabelUnused(kPSetName)) { + v.second.addUntracked(kPSetName, descAlpaka)->setComment(kComment); + } + } + } +} // namespace cms::alpakatools diff --git a/HeterogeneousCore/AlpakaCore/src/module_backend_config.cc b/HeterogeneousCore/AlpakaCore/src/module_backend_config.cc deleted file mode 100644 index 55b3ee5e11b30..0000000000000 --- a/HeterogeneousCore/AlpakaCore/src/module_backend_config.cc +++ /dev/null @@ -1,35 +0,0 @@ -#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "HeterogeneousCore/AlpakaCore/interface/module_backend_config.h" - -namespace { - const std::string kPSetName("alpaka"); - const char* const kComment = - "PSet allows to override the Alpaka backend per module instance. Has an effect only when the module class name " - "has '@alpaka' suffix, i.e. has no effect when the Alpaka backend namespace is used explicitly."; -} // namespace - -namespace cms::alpakatools { - void module_backend_config(edm::ConfigurationDescriptions& iDesc) { - // the code below leads to 'alpaka = untracked.PSet(backend = untracked.string)' to be added to the generated cfi files - // TODO: I don't know if this is a desired behavior for HLT - edm::ParameterSetDescription descAlpaka; - descAlpaka.addUntracked("backend", "") - ->setComment( - "Alpaka backend for this module. Can be empty string (for the global default), 'serial_sync', or " - " - depending on the architecture and available hardware - 'cuda_async', 'rocm_async'"); - - if (iDesc.defaultDescription()) { - if (iDesc.defaultDescription()->isLabelUnused(kPSetName)) { - iDesc.defaultDescription() - ->addUntracked(kPSetName, descAlpaka) - ->setComment(kComment); - } - } - for (auto& v : iDesc) { - if (v.second.isLabelUnused(kPSetName)) { - v.second.addUntracked(kPSetName, descAlpaka)->setComment(kComment); - } - } - } -} // namespace cms::alpakatools diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducer.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducer.cc index 19340231732b8..58dac53421a4e 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducer.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducer.cc @@ -21,7 +21,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaGlobalProducer : public global::EDProducer<> { public: TestAlpakaGlobalProducer(edm::ParameterSet const& config) - : esToken_(esConsumes(config.getParameter("eventSetupSource"))), + : EDProducer<>(config), + esToken_(esConsumes(config.getParameter("eventSetupSource"))), esMultiToken_(esConsumes(config.getParameter("eventSetupSourceMulti"))), deviceToken_{produces()}, deviceTokenMulti2_{produces()}, diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerE.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerE.cc index 253b8dcad8988..8012dac2b20a2 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerE.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerE.cc @@ -22,7 +22,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaGlobalProducerE : public global::EDProducer<> { public: TestAlpakaGlobalProducerE(edm::ParameterSet const& config) - : esToken_(esConsumes(config.getParameter("eventSetupSource"))), + : EDProducer<>(config), + esToken_(esConsumes(config.getParameter("eventSetupSource"))), getToken_(consumes(config.getParameter("source"))), getTokenMulti2_(consumes(config.getParameter("source"))), getTokenMulti3_(consumes(config.getParameter("source"))), diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerNoOutput.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerNoOutput.cc index d7d361b6ab8d1..37f219413a081 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerNoOutput.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerNoOutput.cc @@ -16,7 +16,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaGlobalProducerNoOutput : public global::EDProducer<> { public: TestAlpakaGlobalProducerNoOutput(edm::ParameterSet const& config) - : getToken_(consumes(config.getParameter("source"))) {} + : EDProducer<>(config), getToken_(consumes(config.getParameter("source"))) {} void produce(edm::StreamID, device::Event& iEvent, device::EventSetup const& iSetup) const override { [[maybe_unused]] auto const& input = iEvent.get(getToken_); diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerNullES.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerNullES.cc index d8ae5ac5f366e..42a08d0e8e81b 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerNullES.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerNullES.cc @@ -15,7 +15,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaGlobalProducerNullES : public global::EDProducer<> { public: TestAlpakaGlobalProducerNullES(edm::ParameterSet const& config) - : esTokenA_(esConsumes(config.getParameter("eventSetupSource"))), + : EDProducer<>(config), + esTokenA_(esConsumes(config.getParameter("eventSetupSource"))), esTokenC_(esConsumes(config.getParameter("eventSetupSource"))), esTokenCNotExist_(esConsumes(edm::ESInputTag("", "doesNotExist"))) {} diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerOffset.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerOffset.cc index 2e2637d050fe0..689da8e77467d 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerOffset.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerOffset.cc @@ -22,7 +22,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaGlobalProducerOffset : public global::EDProducer<> { public: TestAlpakaGlobalProducerOffset(edm::ParameterSet const& config) - : esToken_(esConsumes()), + : EDProducer<>(config), + esToken_(esConsumes()), deviceToken_{produces()}, x_(config.getParameter("xvalue").getParameter( EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE))) {} diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerWithPtr.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerWithPtr.cc index e09bccb50a712..ad6fc518ea465 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerWithPtr.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaGlobalProducerWithPtr.cc @@ -19,7 +19,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaGlobalProducerWithPtr : public global::EDProducer<> { public: TestAlpakaGlobalProducerWithPtr(edm::ParameterSet const& config) - : token_{produces()}, size_{config.getParameter("size")} {} + : EDProducer<>(config), token_{produces()}, size_{config.getParameter("size")} {} static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaProducer.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaProducer.cc index 27013ffb72c7a..3f29ff8b88b9f 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaProducer.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaProducer.cc @@ -19,7 +19,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaProducer : public global::EDProducer<> { public: TestAlpakaProducer(edm::ParameterSet const& config) - : objectToken_{produces()}, + : EDProducer<>(config), + objectToken_{produces()}, collectionToken_{produces()}, deviceTokenMulti2_{produces()}, deviceTokenMulti3_{produces()}, diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamProducer.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamProducer.cc index 74cd08e39f56a..f5998ed980ba4 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamProducer.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamProducer.cc @@ -24,7 +24,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaStreamProducer : public stream::EDProducer<> { public: TestAlpakaStreamProducer(edm::ParameterSet const& config) - : size_{config.getParameter("size").getParameter( + : EDProducer<>(config), + size_{config.getParameter("size").getParameter( EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE))}, size2_{config.getParameter("size").getParameter( EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE))}, diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamSynchronizingProducer.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamSynchronizingProducer.cc index 613c31498746a..3badb1bb75b45 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamSynchronizingProducer.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamSynchronizingProducer.cc @@ -25,7 +25,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaStreamSynchronizingProducer : public stream::SynchronizingEDProducer<> { public: TestAlpakaStreamSynchronizingProducer(edm::ParameterSet const& iConfig) - : esTokenDevice_(esConsumes()), + : SynchronizingEDProducer<>(iConfig), + esTokenDevice_(esConsumes()), putToken_{produces()}, putTokenMulti2_{produces()}, putTokenMulti3_{produces()}, diff --git a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamSynchronizingProducerToDevice.cc b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamSynchronizingProducerToDevice.cc index 913636f686805..67a972a7b9163 100644 --- a/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamSynchronizingProducerToDevice.cc +++ b/HeterogeneousCore/AlpakaTest/plugins/alpaka/TestAlpakaStreamSynchronizingProducerToDevice.cc @@ -19,7 +19,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { class TestAlpakaStreamSynchronizingProducerToDevice : public stream::SynchronizingEDProducer<> { public: TestAlpakaStreamSynchronizingProducerToDevice(edm::ParameterSet const& iConfig) - : putToken_{produces()}, + : SynchronizingEDProducer<>(iConfig), + putToken_{produces()}, size_{iConfig.getParameter("size").getParameter( EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE))} {} diff --git a/HeterogeneousCore/AlpakaTest/test/testAlpakaModules.sh b/HeterogeneousCore/AlpakaTest/test/testAlpakaModules.sh index e0e6c8f1db96d..b3f8e62488930 100755 --- a/HeterogeneousCore/AlpakaTest/test/testAlpakaModules.sh +++ b/HeterogeneousCore/AlpakaTest/test/testAlpakaModules.sh @@ -59,6 +59,8 @@ function runForGPU { runSuccess "--processAcceleratorBackend=$BACKEND --moduleBackend=serial_sync --expectBackend=serial_sync" runSuccess "--processAcceleratorBackend=serial_sync --moduleBackend=$BACKEND --expectBackend=$BACKEND" + runSuccess "--moduleSynchronize --expectBackend=$BACKEND" + runSuccess "--processAcceleratorSynchronize --expectBackend=$BACKEND" runFailure "--accelerators=$ACCELERATOR --processAcceleratorBackend=serial_sync --expectBackend=serial_sync" runFailure "--accelerators=$ACCELERATOR --moduleBackend=serial_sync --expectBackend=serial_sync" @@ -78,6 +80,8 @@ runSuccess "--moduleBackend=serial_sync --expectBackend=serial_sync" if [ "${TARGET}" == "cpu" ]; then runSuccess "--expectBackend=serial_sync" + runSuccess "--moduleSynchronize --expectBackend=serial_sync" + runSuccess "--processAcceleratorSynchronize --expectBackend=serial_sync" runFailure "--accelerators=gpu-nvidia --expectBackend=cuda_async" runFailure "--processAcceleratorBackend=cuda_async --expectBackend=cuda_async" diff --git a/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py b/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py index ac39117119cce..42028d9f9ddc3 100644 --- a/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py +++ b/HeterogeneousCore/AlpakaTest/test/testAlpakaModules_cfg.py @@ -8,6 +8,8 @@ parser.add_argument("--moduleBackend", type=str, help="Set Alpaka backend via module instances", default="") parser.add_argument("--processAcceleratorBackend", type=str, help="Set Alpaka backend via ProcessAcceleratorAlpaka", default="") parser.add_argument("--expectBackend", type=str, help="Expect this backend to run") +parser.add_argument("--moduleSynchronize", action="store_true", help="Set synchronize parameter via module instances", default="") +parser.add_argument("--processAcceleratorSynchronize", action="store_true", help="Set synchronize parameter via ProcessAcceleratorAlpaka", default="") parser.add_argument("--run", type=int, help="Run number (default: 1)", default=1) args = parser.parse_args() @@ -168,20 +170,21 @@ eventSetupSource = cms.ESInputTag("", "null") ) +_postfixes = ["ESProducerA", "ESProducerB", "ESProducerC", "ESProducerD", "ESProducerE", "ESProducerAMulti", + "ESProducerNull", + "GlobalProducer", "GlobalProducerE", + "GlobalProducerCopyToDeviceCache", "GlobalProducerMoveToDeviceCache", + "StreamProducer", "StreamInstanceProducer", + "StreamSynchronizingProducer", "StreamSynchronizingProducerToDevice", + "GlobalDeviceConsumer", "StreamDeviceConsumer", + "StreamSynchronizingProducerToDeviceDeviceConsumer1", "StreamSynchronizingProducerToDeviceDeviceConsumer2", + "NullESConsumer"] +alpakaModules = ["alpaka"+x for x in _postfixes] if args.processAcceleratorBackend != "": process.ProcessAcceleratorAlpaka.setBackend(args.processAcceleratorBackend) if args.moduleBackend != "": - for name in ["ESProducerA", "ESProducerB", "ESProducerC", "ESProducerD", "ESProducerE", "ESProducerAMulti", - "ESProducerNull", - "GlobalProducer", "GlobalProducerE", - "GlobalProducerCopyToDeviceCache", "GlobalProducerMoveToDeviceCache", - "StreamProducer", "StreamInstanceProducer", - "StreamSynchronizingProducer", "StreamSynchronizingProducerToDevice", - "GlobalDeviceConsumer", "StreamDeviceConsumer", - "StreamSynchronizingProducerToDeviceDeviceConsumer1", "StreamSynchronizingProducerToDeviceDeviceConsumer2", - "NullESConsumer"]: - mod = getattr(process, "alpaka"+name) - mod.alpaka = cms.untracked.PSet(backend = cms.untracked.string(args.moduleBackend)) + for name in alpakaModules: + getattr(process, name).alpaka = cms.untracked.PSet(backend = cms.untracked.string(args.moduleBackend)) if args.expectBackend == "cuda_async": def setExpect(m, size): m.expectSize = size @@ -211,6 +214,16 @@ def setExpect(m, size): setExpect(process.alpakaStreamInstanceConsumer, size = 216) setExpect(process.alpakaStreamSynchronizingConsumer, size = 30) +if args.processAcceleratorSynchronize: + process.ProcessAcceleratorAlpaka.setSynchronize(True) +if args.moduleSynchronize: + for name in alpakaModules: + mod = getattr(process, name) + if hasattr(mod, "alpaka"): + mod.alpaka = dict(synchronize = cms.untracked.bool(True)) + else: + mod.alpaka = cms.untracked.PSet(synchronize = cms.untracked.bool(True)) + process.output = cms.OutputModule('PoolOutputModule', fileName = cms.untracked.string('testAlpaka.root'), outputCommands = cms.untracked.vstring( From 5469807b8457e539c648017430cbd5c2dcf88471 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 26 Dec 2024 18:32:05 +0100 Subject: [PATCH 368/418] Raise an exception with a clear error message if alpaka PSet is tracked --- .../AlpakaCore/python/ProcessAcceleratorAlpaka.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/HeterogeneousCore/AlpakaCore/python/ProcessAcceleratorAlpaka.py b/HeterogeneousCore/AlpakaCore/python/ProcessAcceleratorAlpaka.py index 5c1f724749da7..910f7ecd58ce8 100644 --- a/HeterogeneousCore/AlpakaCore/python/ProcessAcceleratorAlpaka.py +++ b/HeterogeneousCore/AlpakaCore/python/ProcessAcceleratorAlpaka.py @@ -32,6 +32,11 @@ def setModuleVariant(self, module): if module.type_().endswith("@alpaka"): defaultBackend = self._valid_backends[0] if hasattr(module, "alpaka"): + # Ensure the untrackedness already here, because the + # C++ ModuleTypeResolverAlpaka relies on the + # untrackedness (before the configuration validation) + if module.alpaka.isTracked(): + raise cms.EDMException(cms.edm.errors.Configuration, "The 'alpaka' PSet in module '{}' is tracked, but it should be untracked".format(module.label())) if hasattr(module.alpaka, "backend"): if module.alpaka.backend == "": module.alpaka.backend = defaultBackend From 74d6ff338167e68a1a966668e8e5966690a0e990 Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 30 May 2024 10:41:25 +0200 Subject: [PATCH 369/418] add fillDescriptions to a bunch of EVf plugins used at HLT --- .../DTRawToDigi/plugins/DTuROSRawToDigi.cc | 7 ++++- .../DTRawToDigi/plugins/DTuROSRawToDigi.h | 29 ++++++++++--------- .../DTRawToDigi/python/dturosunpacker_cfi.py | 6 ++-- .../python/rawDataCollectorByLabel_cfi.py | 8 ++--- .../src/RawDataCollectorByLabel.cc | 23 ++++++++++----- .../src/RawDataCollectorByLabel.h | 4 ++- 6 files changed, 44 insertions(+), 33 deletions(-) diff --git a/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.cc b/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.cc index 3fe42c886bba6..7bbaf0b3ca2a2 100644 --- a/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.cc +++ b/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.cc @@ -41,7 +41,12 @@ DTuROSRawToDigi::DTuROSRawToDigi(const edm::ParameterSet& pset) { mapping_token_ = esConsumes(); } -DTuROSRawToDigi::~DTuROSRawToDigi() {} +void DTuROSRawToDigi::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("inputLabel"); + desc.addUntracked("debug", false); + descriptions.addWithDefaultLabel(desc); +} void DTuROSRawToDigi::produce(edm::Event& e, const edm::EventSetup& c) { DTDigiCollection digis; diff --git a/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.h b/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.h index 54d42c906a7d7..9ed3feb6eae07 100644 --- a/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.h +++ b/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.h @@ -14,22 +14,23 @@ #ifndef DTRawToDigi_DTuROSRawToDigi_h #define DTRawToDigi_DTuROSRawToDigi_h -#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "CondFormats/DTObjects/interface/DTReadOutMapping.h" +#include "CondFormats/DataRecord/interface/DTReadOutMappingRcd.h" #include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/DTDigi/interface/DTDigiCollection.h" +#include "DataFormats/FEDRawData/interface/FEDNumbering.h" +#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" +#include "DataFormats/MuonDetId/interface/DTLayerId.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Utilities/interface/ESGetToken.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "DataFormats/DTDigi/interface/DTDigiCollection.h" -#include "DataFormats/MuonDetId/interface/DTLayerId.h" -#include "CondFormats/DTObjects/interface/DTReadOutMapping.h" -#include "CondFormats/DataRecord/interface/DTReadOutMappingRcd.h" - -#include -#include -#include -#include -#include +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/ESGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" #include @@ -42,7 +43,7 @@ class DTuROSRawToDigi : public edm::stream::EDProducer<> { DTuROSRawToDigi(const edm::ParameterSet& pset); /// Destructor - ~DTuROSRawToDigi() override; + ~DTuROSRawToDigi() override = default; /// Produce digis out of raw data void produce(edm::Event& e, const edm::EventSetup& c) override; @@ -50,6 +51,8 @@ class DTuROSRawToDigi : public edm::stream::EDProducer<> { /// Generate and fill FED raw data for a full event bool fillRawData(edm::Event& e, const edm::EventSetup& c, DTDigiCollection& digis, std::vector& words); + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: edm::InputTag DTuROSInputTag_; diff --git a/EventFilter/DTRawToDigi/python/dturosunpacker_cfi.py b/EventFilter/DTRawToDigi/python/dturosunpacker_cfi.py index c15e27cf86fdc..dc19ddbdc306d 100644 --- a/EventFilter/DTRawToDigi/python/dturosunpacker_cfi.py +++ b/EventFilter/DTRawToDigi/python/dturosunpacker_cfi.py @@ -1,6 +1,4 @@ import FWCore.ParameterSet.Config as cms -dturosunpacker = cms.EDProducer("DTuROSRawToDigi", - inputLabel = cms.InputTag("rawDataCollector"), - debug = cms.untracked.bool(False), - ) +from EventFilter.DTRawToDigi.dTuROSRawToDigi_cfi import dTuROSRawToDigi as _dTuROSRawToDigi +dturosunpacker = _dTuROSRawToDigi.clone() diff --git a/EventFilter/RawDataCollector/python/rawDataCollectorByLabel_cfi.py b/EventFilter/RawDataCollector/python/rawDataCollectorByLabel_cfi.py index 324fdc42a802c..33f51acd14d26 100644 --- a/EventFilter/RawDataCollector/python/rawDataCollectorByLabel_cfi.py +++ b/EventFilter/RawDataCollector/python/rawDataCollectorByLabel_cfi.py @@ -1,11 +1,7 @@ import FWCore.ParameterSet.Config as cms -rawDataCollector = cms.EDProducer("RawDataCollectorByLabel", - verbose = cms.untracked.int32(1), # 0 = quiet, 1 = collection list, 2 = FED list - RawCollectionList = cms.VInputTag( cms.InputTag('SiStripDigiToZSRaw'), - cms.InputTag('rawDataCollector')) -) - +from EventFilter.RawDataCollector.default_rawDataCollectorByLabel_cfi import default_rawDataCollectorByLabel as _rawDataCollectorByLabel +rawDataCollector = _rawDataCollectorByLabel.clone() # # Make changes if using the Stage 1 trigger # diff --git a/EventFilter/RawDataCollector/src/RawDataCollectorByLabel.cc b/EventFilter/RawDataCollector/src/RawDataCollectorByLabel.cc index 657e25ee7a7d6..b8ced3f48f225 100644 --- a/EventFilter/RawDataCollector/src/RawDataCollectorByLabel.cc +++ b/EventFilter/RawDataCollector/src/RawDataCollectorByLabel.cc @@ -3,18 +3,19 @@ * */ -#include "EventFilter/RawDataCollector/src/RawDataCollectorByLabel.h" -#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" -#include "DataFormats/FEDRawData/interface/FEDRawData.h" -#include "DataFormats/FEDRawData/interface/FEDNumbering.h" - #include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" +#include "DataFormats/FEDRawData/interface/FEDNumbering.h" +#include "DataFormats/FEDRawData/interface/FEDRawData.h" +#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" #include "DataFormats/Provenance/interface/ProcessHistory.h" +#include "EventFilter/RawDataCollector/src/RawDataCollectorByLabel.h" #include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include @@ -31,7 +32,13 @@ RawDataCollectorByLabel::RawDataCollectorByLabel(const edm::ParameterSet &pset) produces(); } -RawDataCollectorByLabel::~RawDataCollectorByLabel() {} +void RawDataCollectorByLabel::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + edm::ParameterSetDescription desc; + desc.add >("RawCollectionList", + {edm::InputTag("SiStripDigiToZSRaw"), edm::InputTag("rawDataCollector")}); + desc.addUntracked("verbose", 0)->setComment("0 = quiet, 1 = collection list, 2 = FED list"); + descriptions.add("default_rawDataCollectorByLabel", desc); +} void RawDataCollectorByLabel::produce(Event &e, const EventSetup &c) { /// Get Data from all FEDs diff --git a/EventFilter/RawDataCollector/src/RawDataCollectorByLabel.h b/EventFilter/RawDataCollector/src/RawDataCollectorByLabel.h index 87aa5f242be51..e748b2b884fe5 100644 --- a/EventFilter/RawDataCollector/src/RawDataCollectorByLabel.h +++ b/EventFilter/RawDataCollector/src/RawDataCollectorByLabel.h @@ -17,10 +17,12 @@ class RawDataCollectorByLabel : public edm::stream::EDProducer<> { RawDataCollectorByLabel(const edm::ParameterSet& pset); ///Destructor - ~RawDataCollectorByLabel() override; + ~RawDataCollectorByLabel() override = default; void produce(edm::Event& e, const edm::EventSetup& c) override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: typedef std::vector::const_iterator tag_iterator_t; typedef std::vector >::const_iterator tok_iterator_t; From bed4c1c39faca93e4e2b20cbe9bb9d8411b20226 Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 2 Jan 2025 14:01:09 +0100 Subject: [PATCH 370/418] add a fillDescriptions to VertexMerger --- .../plugins/VertexMerger.cc | 29 +++++++++++++------ .../python/vertexMerger_cfi.py | 9 ------ 2 files changed, 20 insertions(+), 18 deletions(-) delete mode 100644 RecoVertex/AdaptiveVertexFinder/python/vertexMerger_cfi.py diff --git a/RecoVertex/AdaptiveVertexFinder/plugins/VertexMerger.cc b/RecoVertex/AdaptiveVertexFinder/plugins/VertexMerger.cc index 75e9c5729ce65..761e7c8f4f40d 100644 --- a/RecoVertex/AdaptiveVertexFinder/plugins/VertexMerger.cc +++ b/RecoVertex/AdaptiveVertexFinder/plugins/VertexMerger.cc @@ -1,22 +1,23 @@ #include #include -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - +#include "DataFormats/Candidate/interface/VertexCompositePtrCandidate.h" #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" -#include "RecoVertex/VertexTools/interface/VertexDistance3D.h" -#include "RecoVertex/VertexTools/interface/SharedTracks.h" -#include "DataFormats/Candidate/interface/VertexCompositePtrCandidate.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" #include "RecoVertex/VertexPrimitives/interface/ConvertToFromReco.h" #include "RecoVertex/VertexPrimitives/interface/VertexState.h" +#include "RecoVertex/VertexTools/interface/SharedTracks.h" +#include "RecoVertex/VertexTools/interface/VertexDistance3D.h" template class TemplatedVertexMerger : public edm::stream::EDProducer<> { @@ -24,6 +25,7 @@ class TemplatedVertexMerger : public edm::stream::EDProducer<> { typedef std::vector Product; TemplatedVertexMerger(const edm::ParameterSet ¶ms); + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); void produce(edm::Event &event, const edm::EventSetup &es) override; private: @@ -77,6 +79,15 @@ void TemplatedVertexMerger::produce(edm::Event &event, const edm::EventSetu event.put(std::move(recoVertices)); } +template +void TemplatedVertexMerger::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + edm::ParameterSetDescription desc; + desc.add("maxFraction", 0.7); + desc.add("minSignificance", 2); + desc.add("secondaryVertices", edm::InputTag("inclusiveVertexFinder")); + descriptions.addWithDefaultLabel(desc); +} + typedef TemplatedVertexMerger VertexMerger; typedef TemplatedVertexMerger CandidateVertexMerger; diff --git a/RecoVertex/AdaptiveVertexFinder/python/vertexMerger_cfi.py b/RecoVertex/AdaptiveVertexFinder/python/vertexMerger_cfi.py deleted file mode 100644 index ffcab77d8863e..0000000000000 --- a/RecoVertex/AdaptiveVertexFinder/python/vertexMerger_cfi.py +++ /dev/null @@ -1,9 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -vertexMerger = cms.EDProducer("VertexMerger", - secondaryVertices = cms.InputTag("inclusiveVertexFinder"), - maxFraction = cms.double(0.7), - minSignificance = cms.double(2) -) - - From 587ebdecba046d4344c206abf22103d9851041fa Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 30 May 2024 10:41:02 +0200 Subject: [PATCH 371/418] add fillDescriptions to a bunch of RECO plugins used at HLT --- .../DTRawToDigi/plugins/DTuROSRawToDigi.cc | 2 +- ...TkMuonMaskedMeasurementTrackerEvent_cfi.py | 1 - .../modules/hltSiPixelRecHits_cfi.py | 1 - .../python/customizeHLTforCMSSW.py | 21 +++++ .../CSCSegment/python/cscSegments_cfi.py | 3 +- .../CSCSegment/src/CSCSegmentBuilder.cc | 35 ++++++++- .../CSCSegment/src/CSCSegmentBuilder.h | 10 ++- .../CSCSegment/src/CSCSegmentProducer.cc | 23 ++++-- .../CSCSegment/src/CSCSegmentProducer.h | 5 ++ .../plugins/SiPixelRecHitConverter.cc | 11 +++ .../python/SiPixelRecHits_cfi.py | 7 +- .../plugins/SiStripClusterizer.cc | 17 ++++ .../plugins/SiStripClusterizer.h | 3 + .../python/SiStripClusterizer_RealData_cfi.py | 10 +-- .../src/JetCoreClusterSplitter.cc | 15 ++-- .../interface/CSCHaloDataProducer.h | 6 +- .../interface/EcalHaloDataProducer.h | 6 +- .../interface/GlobalHaloDataProducer.h | 4 + .../interface/HcalHaloDataProducer.h | 6 +- .../METProducers/python/CSCHaloData_cfi.py | 78 +------------------ .../METProducers/python/EcalHaloData_cfi.py | 24 +----- .../METProducers/python/GlobalHaloData_cfi.py | 51 +----------- .../METProducers/python/HcalHaloData_cfi.py | 20 +---- .../METProducers/src/CSCHaloDataProducer.cc | 71 ++++++++++++++++- .../METProducers/src/EcalHaloDataProducer.cc | 24 +++++- .../src/GlobalHaloDataProducer.cc | 44 +++++++++++ .../METProducers/src/HcalHaloDataProducer.cc | 16 +++- .../plugins/CosmicMuonSeedGenerator.cc | 13 ++++ .../plugins/CosmicMuonSeedGenerator.h | 5 ++ .../python/CosmicMuonSeedProducer_cfi.py | 13 +--- .../interface/MuonSegmentMatcher.h | 3 + .../TrackingTools/src/MuonSegmentMatcher.cc | 9 +++ .../plugins/LightPFTrackProducer.cc | 2 + .../plugins/TrackListMerger.cc | 43 +++++++++- .../python/trackListMerger_cfi.py | 3 +- .../MaskedMeasurementTrackerEventProducer.cc | 32 +++++--- ...skedMeasurementTrackerEventProducer_cfi.py | 7 +- .../TkSeedGenerator/plugins/SeedCombiner.h | 6 +- .../plugins/PixelVertexProducer.cc | 47 +++++++++-- .../python/PixelVertices_cfi.py | 20 +---- 40 files changed, 443 insertions(+), 274 deletions(-) diff --git a/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.cc b/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.cc index 7bbaf0b3ca2a2..91b307a3f3b3d 100644 --- a/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.cc +++ b/EventFilter/DTRawToDigi/plugins/DTuROSRawToDigi.cc @@ -43,7 +43,7 @@ DTuROSRawToDigi::DTuROSRawToDigi(const edm::ParameterSet& pset) { void DTuROSRawToDigi::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - desc.add("inputLabel"); + desc.add("inputLabel", edm::InputTag("rawDataCollector")); desc.addUntracked("debug", false); descriptions.addWithDefaultLabel(desc); } diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltIter2Phase2L3FromL1TkMuonMaskedMeasurementTrackerEvent_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltIter2Phase2L3FromL1TkMuonMaskedMeasurementTrackerEvent_cfi.py index 4c21c9e410770..ec464e133b5c1 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltIter2Phase2L3FromL1TkMuonMaskedMeasurementTrackerEvent_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltIter2Phase2L3FromL1TkMuonMaskedMeasurementTrackerEvent_cfi.py @@ -1,7 +1,6 @@ import FWCore.ParameterSet.Config as cms hltIter2Phase2L3FromL1TkMuonMaskedMeasurementTrackerEvent = cms.EDProducer("MaskedMeasurementTrackerEventProducer", - OnDemand = cms.bool(False), phase2clustersToSkip = cms.InputTag("hltIter2Phase2L3FromL1TkMuonClustersRefRemoval"), src = cms.InputTag("hltMeasurementTrackerEvent") ) diff --git a/HLTrigger/Configuration/python/HLT_75e33/modules/hltSiPixelRecHits_cfi.py b/HLTrigger/Configuration/python/HLT_75e33/modules/hltSiPixelRecHits_cfi.py index 98e1ba1899408..f0248206f35a6 100644 --- a/HLTrigger/Configuration/python/HLT_75e33/modules/hltSiPixelRecHits_cfi.py +++ b/HLTrigger/Configuration/python/HLT_75e33/modules/hltSiPixelRecHits_cfi.py @@ -2,7 +2,6 @@ hltSiPixelRecHits = cms.EDProducer("SiPixelRecHitConverter", CPE = cms.string('PixelCPEGeneric'), - VerboseLevel = cms.untracked.int32(0), src = cms.InputTag("hltSiPixelClusters") ) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index 3d37a07194f46..044f25fb963ef 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -65,6 +65,25 @@ def customizeHLTfor46935(process): delattr(prod, 'recHitsLabelCPUEE') return process + +def customizeHLTfor47017(process): + """Remove unneeded parameters from the HLT menu""" + for prod in producers_by_type(process, 'MaskedMeasurementTrackerEventProducer'): + if hasattr(prod, 'OnDemand'): + delattr(prod, 'OnDemand') + + for prod in producers_by_type(process, 'HcalHaloDataProducer'): + if hasattr(prod, 'HcalMaxMatchingRadiusParam'): + delattr(prod, 'HcalMaxMatchingRadiusParam') + if hasattr(prod, 'HcalMinMatchingRadiusParam'): + delattr(prod, 'HcalMinMatchingRadiusParam') + + for prod in producers_by_type(process, 'SiPixelRecHitConverter'): + if hasattr(prod, 'VerboseLevel'): + delattr(prod, 'VerboseLevel') + + return process + # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): @@ -74,5 +93,7 @@ def customizeHLTforCMSSW(process, menuType="GRun"): # process = customiseFor12718(process) process = customizeHLTfor46935(process) + process = customizeHLTfor47017(process) return process + diff --git a/RecoLocalMuon/CSCSegment/python/cscSegments_cfi.py b/RecoLocalMuon/CSCSegment/python/cscSegments_cfi.py index b42fcc812201c..9a8f280739435 100644 --- a/RecoLocalMuon/CSCSegment/python/cscSegments_cfi.py +++ b/RecoLocalMuon/CSCSegment/python/cscSegments_cfi.py @@ -6,7 +6,8 @@ from RecoLocalMuon.CSCSegment.CSCSegmentAlgorithmST_cfi import * from RecoLocalMuon.CSCSegment.CSCSegmentAlgorithmRU_cfi import * -cscSegments = cms.EDProducer("CSCSegmentProducer", +from RecoLocalMuon.CSCSegment.cscSegmentProducer_cfi import cscSegmentProducer as _cscSegmentProducer +cscSegments = _cscSegmentProducer.clone( # Define input inputObjects = cms.InputTag("csc2DRecHits"), # Choice of the building algo: 1 SK, 2 TC, 3 DF, 4 ST, 5 RU, ... diff --git a/RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.cc b/RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.cc index 1aa82c2383975..7caf67e2cadc2 100644 --- a/RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.cc +++ b/RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.cc @@ -23,7 +23,7 @@ CSCSegmentBuilder::CSCSegmentBuilder(const edm::ParameterSet& ps) : geom_(nullpt int chosenAlgo = ps.getParameter("algo_type") - 1; // Find appropriate ParameterSets for each algo type - std::vector algoPSets = ps.getParameter >("algo_psets"); + std::vector algoPSets = ps.getParameter>("algo_psets"); // Now load the right parameter set // Algo name @@ -33,14 +33,14 @@ CSCSegmentBuilder::CSCSegmentBuilder(const edm::ParameterSet& ps) : geom_(nullpt // SegAlgo parameter set std::vector segAlgoPSet = - algoPSets[chosenAlgo].getParameter >("algo_psets"); + algoPSets[chosenAlgo].getParameter>("algo_psets"); // Chamber types to handle - std::vector chType = algoPSets[chosenAlgo].getParameter >("chamber_types"); + std::vector chType = algoPSets[chosenAlgo].getParameter>("chamber_types"); LogDebug("CSCSegment|CSC") << "No. of chamber types to handle: " << chType.size(); // Algo to chamber type - std::vector algoToType = algoPSets[chosenAlgo].getParameter >("parameters_per_chamber_type"); + std::vector algoToType = algoPSets[chosenAlgo].getParameter>("parameters_per_chamber_type"); // Trap if we don't have enough parameter sets or haven't assigned an algo to every type if (algoToType.size() != chType.size()) { @@ -101,3 +101,30 @@ void CSCSegmentBuilder::build(const CSCRecHit2DCollection* recHits, CSCSegmentCo } void CSCSegmentBuilder::setGeometry(const CSCGeometry* geom) { geom_ = geom; } + +void CSCSegmentBuilder::fillPSetDescription(edm::ParameterSetDescription& desc) { + /// Top-level parameters + desc.add("algo_type", 5)->setComment("Choice of the building algo: 1 SK, 2 TC, 3 DF, 4 ST, 5 RU, ..."); + + // Define the nested PSet for individual configurations + edm::ParameterSetDescription algoPSet; + algoPSet.add>("parameters_per_chamber_type", {1, 2, 3, 4, 5, 6, 5, 6, 5, 6}); + + // Define the VPSet inside algo_psets + edm::ParameterSetDescription innerPSet; + // Allow any parameter in the innerPSet + innerPSet.setAllowAnything(); + + // Fill the VPSet for algo_psets + edm::ParameterSetDescription innerAlgoPSet; + innerAlgoPSet.addVPSet("algo_psets", innerPSet); + + // Additional top-level keys + algoPSet.addVPSet("algo_psets", innerPSet); + algoPSet.add("algo_name", "CSCSegAlgoRU"); + algoPSet.add>( + "chamber_types", {"ME1/a", "ME1/b", "ME1/2", "ME1/3", "ME2/1", "ME2/2", "ME3/1", "ME3/2", "ME4/1", "ME4/2"}); + + // Add to the top-level VPSet + desc.addVPSet("algo_psets", algoPSet); +} diff --git a/RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.h b/RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.h index 938554ca37393..478b364524f14 100644 --- a/RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.h +++ b/RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.h @@ -14,10 +14,10 @@ * */ -#include -#include - -#include +#include "DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h" +#include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" class CSCGeometry; class CSCSegmentAlgorithm; @@ -32,6 +32,8 @@ class CSCSegmentBuilder { /// Destructor ~CSCSegmentBuilder(); + static void fillPSetDescription(edm::ParameterSetDescription& desc); + /** Find rechits in each CSCChamber, build CSCSegment's in each chamber, * and fill into output collection. */ diff --git a/RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.cc b/RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.cc index 310ced6db7122..b45b0b02ba2b8 100644 --- a/RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.cc +++ b/RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.cc @@ -2,16 +2,16 @@ * */ -#include -#include +#include "RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.h" +#include "RecoLocalMuon/CSCSegment/src/CSCSegmentBuilder.h" -#include -#include -#include -#include +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include -#include +#include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h" +#include "DataFormats/CSCRecHit/interface/CSCSegment.h" CSCSegmentProducer::CSCSegmentProducer(const edm::ParameterSet& pas) : iev(0) { m_token = consumes(pas.getParameter("inputObjects")); @@ -22,6 +22,13 @@ CSCSegmentProducer::CSCSegmentProducer(const edm::ParameterSet& pas) : iev(0) { produces(); } +void CSCSegmentProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("inputObjects", edm::InputTag("csc2DRecHits"))->setComment("define input"); + CSCSegmentBuilder::fillPSetDescription(desc); + descriptions.addWithDefaultLabel(desc); +} + CSCSegmentProducer::~CSCSegmentProducer() { LogDebug("CSCSegment|CSC") << "deleting CSCSegmentBuilder after " << iev << " events w/csc data."; delete segmentBuilder_; diff --git a/RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.h b/RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.h index e98c668f58546..b1ad175c46c8b 100644 --- a/RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.h +++ b/RecoLocalMuon/CSCSegment/src/CSCSegmentProducer.h @@ -16,6 +16,9 @@ #include "DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h" #include "Geometry/Records/interface/MuonGeometryRecord.h" #include "Geometry/CSCGeometry/interface/CSCGeometry.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" class CSCSegmentBuilder; @@ -28,6 +31,8 @@ class CSCSegmentProducer : public edm::stream::EDProducer<> { /// Produce the CSCSegment collection void produce(edm::Event&, const edm::EventSetup&) override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: int iev; // events through CSCSegmentBuilder* segmentBuilder_; diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitConverter.cc b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitConverter.cc index 2c9c773598b62..e63d44763b9e7 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitConverter.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitConverter.cc @@ -56,7 +56,9 @@ #include "FWCore/Framework/interface/MakerMacros.h" #include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" #include "FWCore/Utilities/interface/EDPutToken.h" #include "FWCore/Utilities/interface/ESGetToken.h" @@ -95,6 +97,8 @@ namespace cms { explicit SiPixelRecHitConverter(const edm::ParameterSet& conf); ~SiPixelRecHitConverter() override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + //--- Factory method to make CPE's depending on the ParameterSet //--- Not sure if we need to make more than one CPE to run concurrently //--- on different parts of the detector (e.g., one for the barrel and the @@ -258,4 +262,11 @@ namespace cms { using cms::SiPixelRecHitConverter; +void SiPixelRecHitConverter::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("src", edm::InputTag("siPixelClusters")); + desc.add("CPE", "PixelCPEGeneric"); + descriptions.addWithDefaultLabel(desc); +} + DEFINE_FWK_MODULE(SiPixelRecHitConverter); diff --git a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py index cb539a2b1c6e4..4234a821f4dd9 100644 --- a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py +++ b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py @@ -5,11 +5,8 @@ from Configuration.ProcessModifiers.alpaka_cff import alpaka # legacy pixel rechit producer -siPixelRecHits = cms.EDProducer("SiPixelRecHitConverter", - src = cms.InputTag("siPixelClusters"), - CPE = cms.string('PixelCPEGeneric'), - VerboseLevel = cms.untracked.int32(0) -) +from RecoLocalTracker.SiPixelRecHits.siPixelRecHitConverter_cfi import siPixelRecHitConverter as _siPixelRecHitConverter +siPixelRecHits = _siPixelRecHitConverter.clone() # SwitchProducer wrapping the legacy pixel rechit producer siPixelRecHitsPreSplitting = SwitchProducerCUDA( diff --git a/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.cc b/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.cc index 200085bbfafba..cd05ca4b43a62 100644 --- a/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.cc +++ b/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.cc @@ -36,6 +36,23 @@ void SiStripClusterizer::produce(edm::Event& event, const edm::EventSetup& es) { event.put(std::move(output)); } +void SiStripClusterizer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add>("DigiProducersList", + {edm::InputTag("siStripDigis", "ZeroSuppressed"), + edm::InputTag("siStripZeroSuppression", "VirginRaw"), + edm::InputTag("siStripZeroSuppression", "ProcessedRaw"), + edm::InputTag("siStripZeroSuppression", "ScopeMode")}); + + { + edm::ParameterSetDescription ClusterizerPSet; + StripClusterizerAlgorithmFactory::fillDescriptions(ClusterizerPSet); + desc.add("Clusterizer", ClusterizerPSet); + } + + descriptions.addWithDefaultLabel(desc); +} + template inline bool SiStripClusterizer::findInput(const edm::EDGetTokenT& tag, edm::Handle& handle, const edm::Event& e) { e.getByToken(tag, handle); diff --git a/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.h b/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.h index e1a52fb78c2b1..87c198209fe83 100644 --- a/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.h +++ b/RecoLocalTracker/SiStripClusterizer/plugins/SiStripClusterizer.h @@ -4,7 +4,9 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/stream/EDProducer.h" #include "RecoLocalTracker/SiStripClusterizer/interface/StripClusterizerAlgorithm.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" #include @@ -14,6 +16,7 @@ class SiStripClusterizer : public edm::stream::EDProducer<> { public: explicit SiStripClusterizer(const edm::ParameterSet& conf); void produce(edm::Event&, const edm::EventSetup&) override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: template diff --git a/RecoLocalTracker/SiStripClusterizer/python/SiStripClusterizer_RealData_cfi.py b/RecoLocalTracker/SiStripClusterizer/python/SiStripClusterizer_RealData_cfi.py index 82b8e07527547..3a63fd2e78585 100644 --- a/RecoLocalTracker/SiStripClusterizer/python/SiStripClusterizer_RealData_cfi.py +++ b/RecoLocalTracker/SiStripClusterizer/python/SiStripClusterizer_RealData_cfi.py @@ -2,14 +2,8 @@ from RecoLocalTracker.SiStripClusterizer.DefaultClusterizer_cff import * -siStripClusters = cms.EDProducer("SiStripClusterizer", - Clusterizer = DefaultClusterizer, - DigiProducersList = cms.VInputTag( - cms.InputTag('siStripDigis','ZeroSuppressed'), - cms.InputTag('siStripZeroSuppression','VirginRaw'), - cms.InputTag('siStripZeroSuppression','ProcessedRaw'), - cms.InputTag('siStripZeroSuppression','ScopeMode')), - ) +from RecoLocalTracker.SiStripClusterizer.siStripClusterizer_cfi import siStripClusterizer as _siStripClusterizer +siStripClusters = _siStripClusterizer.clone() from Configuration.ProcessModifiers.approxSiStripClusters_cff import approxSiStripClusters from RecoLocalTracker.SiStripClusterizer.SiStripApprox2Clusters_cfi import SiStripApprox2Clusters diff --git a/RecoLocalTracker/SubCollectionProducers/src/JetCoreClusterSplitter.cc b/RecoLocalTracker/SubCollectionProducers/src/JetCoreClusterSplitter.cc index 6730c8946c49e..03329eb0258b0 100644 --- a/RecoLocalTracker/SubCollectionProducers/src/JetCoreClusterSplitter.cc +++ b/RecoLocalTracker/SubCollectionProducers/src/JetCoreClusterSplitter.cc @@ -1,14 +1,14 @@ #include "FWCore/Framework/interface/stream/EDProducer.h" +#include "DataFormats/Common/interface/DetSetVectorNew.h" +#include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" -#include "DataFormats/Common/interface/DetSetVectorNew.h" #include "RecoLocalTracker/ClusterParameterEstimator/interface/PixelClusterParameterEstimator.h" #include "RecoLocalTracker/Records/interface/TkPixelCPERecord.h" @@ -30,11 +30,12 @@ class JetCoreClusterSplitter : public edm::stream::EDProducer<> { public: - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); JetCoreClusterSplitter(const edm::ParameterSet& iConfig); - ~JetCoreClusterSplitter() override; + ~JetCoreClusterSplitter() override = default; void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: bool split(const SiPixelCluster& aCluster, edmNew::DetSetVector::FastFiller& filler, @@ -129,8 +130,6 @@ JetCoreClusterSplitter::JetCoreClusterSplitter(const edm::ParameterSet& iConfig) produces>(); } -JetCoreClusterSplitter::~JetCoreClusterSplitter() {} - bool SortPixels(const SiPixelCluster::Pixel& i, const SiPixelCluster::Pixel& j) { return (i.adc > j.adc); } void JetCoreClusterSplitter::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { diff --git a/RecoMET/METProducers/interface/CSCHaloDataProducer.h b/RecoMET/METProducers/interface/CSCHaloDataProducer.h index 50385a4d2b1b5..e054e40b65468 100644 --- a/RecoMET/METProducers/interface/CSCHaloDataProducer.h +++ b/RecoMET/METProducers/interface/CSCHaloDataProducer.h @@ -96,6 +96,8 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/PluginManager/interface/ModuleDef.h" #include "Geometry/CommonDetUnit/interface/GeomDet.h" @@ -130,7 +132,9 @@ namespace reco { class CSCHaloDataProducer : public edm::stream::EDProducer<> { public: explicit CSCHaloDataProducer(const edm::ParameterSet &); - ~CSCHaloDataProducer() override; + ~CSCHaloDataProducer() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); private: void produce(edm::Event &, const edm::EventSetup &) override; diff --git a/RecoMET/METProducers/interface/EcalHaloDataProducer.h b/RecoMET/METProducers/interface/EcalHaloDataProducer.h index a81cea5230a98..c884163aff402 100644 --- a/RecoMET/METProducers/interface/EcalHaloDataProducer.h +++ b/RecoMET/METProducers/interface/EcalHaloDataProducer.h @@ -76,6 +76,8 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/PluginManager/interface/ModuleDef.h" #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" @@ -94,7 +96,9 @@ namespace reco { class EcalHaloDataProducer : public edm::stream::EDProducer<> { public: explicit EcalHaloDataProducer(const edm::ParameterSet&); - ~EcalHaloDataProducer() override; + ~EcalHaloDataProducer() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: void produce(edm::Event&, const edm::EventSetup&) override; diff --git a/RecoMET/METProducers/interface/GlobalHaloDataProducer.h b/RecoMET/METProducers/interface/GlobalHaloDataProducer.h index d2622f09b815f..9ad745c1485b5 100644 --- a/RecoMET/METProducers/interface/GlobalHaloDataProducer.h +++ b/RecoMET/METProducers/interface/GlobalHaloDataProducer.h @@ -129,7 +129,9 @@ #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/PluginManager/interface/ModuleDef.h" #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" @@ -182,6 +184,8 @@ namespace reco { explicit GlobalHaloDataProducer(const edm::ParameterSet&); ~GlobalHaloDataProducer() override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: void produce(edm::Event&, const edm::EventSetup&) override; diff --git a/RecoMET/METProducers/interface/HcalHaloDataProducer.h b/RecoMET/METProducers/interface/HcalHaloDataProducer.h index f719cd54a9425..ee3c2274fd020 100644 --- a/RecoMET/METProducers/interface/HcalHaloDataProducer.h +++ b/RecoMET/METProducers/interface/HcalHaloDataProducer.h @@ -68,6 +68,8 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/PluginManager/interface/ModuleDef.h" #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" @@ -86,7 +88,9 @@ namespace reco { class HcalHaloDataProducer : public edm::stream::EDProducer<> { public: explicit HcalHaloDataProducer(const edm::ParameterSet&); - ~HcalHaloDataProducer() override; + ~HcalHaloDataProducer() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: void produce(edm::Event&, const edm::EventSetup&) override; diff --git a/RecoMET/METProducers/python/CSCHaloData_cfi.py b/RecoMET/METProducers/python/CSCHaloData_cfi.py index e5a48b2528010..a6be49cb8a4f7 100644 --- a/RecoMET/METProducers/python/CSCHaloData_cfi.py +++ b/RecoMET/METProducers/python/CSCHaloData_cfi.py @@ -5,79 +5,5 @@ # Description: Module to build CSCHaloData and put into the event # Date: Oct. 15, 2009 -CSCHaloData = cms.EDProducer("CSCHaloDataProducer", - - # Digi Level - L1MuGMTReadoutLabel = cms.InputTag("gtDigis"), - - # HLT - HLTResultLabel = cms.InputTag("TriggerResults::HLT"), - HLTBitLabel = cms.VInputTag( cms.InputTag("HLT_CSCBeamHalo"), - cms.InputTag("HLT_CSCBeamHaloOverlapRing1"), - cms.InputTag("HLT_CSCBeamHaloOverlapRing2"), - cms.InputTag("HLT_CSCBeamHaloRing2or3") - ), - - # Chamber Level Trigger Primitive - ALCTDigiLabel = cms.InputTag("muonCSCDigis","MuonCSCALCTDigi"), - - # RecHit Level - CSCRecHitLabel = cms.InputTag("csc2DRecHits"), - - # Calo rec hits - HBHErhLabel = cms.InputTag("hbhereco"), - ECALBrhLabel = cms.InputTag("ecalRecHit","EcalRecHitsEB"), - ECALErhLabel = cms.InputTag("ecalRecHit","EcalRecHitsEE"), - - # Higher Level Reco - CSCSegmentLabel= cms.InputTag("cscSegments"), - CosmicMuonLabel= cms.InputTag("muonsFromCosmics"), - MuonLabel = cms.InputTag("muons"), - SALabel = cms.InputTag("standAloneMuons"), - - # Muon-Segment matching - MatchParameters = cms.PSet( - CSCsegments = cms.InputTag("cscSegments"), - DTradius = cms.double(0.01), - DTsegments = cms.InputTag("dt4DSegments"), - RPChits = cms.InputTag("rpcRecHits"), - TightMatchDT = cms.bool(False), - TightMatchCSC = cms.bool(True) - ), - - DetaParam = cms.double(0.1), - DphiParam = cms.double(1.00), - NormChi2Param = cms.double(8.), - InnerRMinParam = cms.double(0.), - OuterRMinParam = cms.double(0.), - InnerRMaxParam = cms.double(99999.), - OuterRMaxParam = cms.double(99999.), - - MinOuterMomentumTheta = cms.double(.10), - MaxOuterMomentumTheta = cms.double(3.0), - MatchingDPhiThreshold = cms.double(0.18), - MatchingDEtaThreshold = cms.double(0.4), - MatchingDWireThreshold = cms.int32(5), - # The expected time of a collision recHit will be t = time_0 + time-of-flight - # A recHit more than +/- time_window from collision timing will be declared "out-of-time" - # recHit times are in [ns] - RecHitTime0 = cms.double(0.), - RecHitTimeWindow = cms.double(25.), - - # If this is Data, the expected collision bx will be 3 instead of 6 - #ExpectedBX = cms.int32(3), # if Data - ExpectedBX = cms.int32(6), # if MC - - # If this is halo we expect free inverse beta to be less than MaxFreeInverseBeta - MaxFreeInverseBeta = cms.double(0.0), - - # If this is halo we expect ( T_outer_segment - T_inner_segment) to be less than MaxDtMuonSegment - MaxDtMuonSegment = cms.double(-10.0), - - # MLR - # Default values for identifying CSCSegments that are halo-like - MaxSegmentRDiff = cms.double(10.0), - MaxSegmentPhiDiff = cms.double(0.1), - MaxSegmentTheta = cms.double(0.7) - # End MLR - ) +from RecoMET.METProducers.cscHaloDataProducer_cfi import cscHaloDataProducer as _cscHaloDataProducer +CSCHaloData = _cscHaloDataProducer.clone() diff --git a/RecoMET/METProducers/python/EcalHaloData_cfi.py b/RecoMET/METProducers/python/EcalHaloData_cfi.py index aed45dee32e9e..6f709967104df 100644 --- a/RecoMET/METProducers/python/EcalHaloData_cfi.py +++ b/RecoMET/METProducers/python/EcalHaloData_cfi.py @@ -4,27 +4,7 @@ # Description: Module to build EcalHaloData Object and put into the event # Date: Oct. 15, 2009 -EcalHaloData= cms.EDProducer("EcalHaloDataProducer", - # RecHit Level - EBRecHitLabel = cms.InputTag("ecalRecHit","EcalRecHitsEB"), - EERecHitLabel = cms.InputTag("ecalRecHit", "EcalRecHitsEE"), - ESRecHitLabel = cms.InputTag("ecalPreshowerRecHit","EcalRecHitsES"), - HBHERecHitLabel = cms.InputTag("hbhereco"), - # Higher Level Reco - SuperClusterLabel = cms.InputTag("correctedHybridSuperClusters"), -# SuperClusterLabel = cms.InputTag("cosmicSuperClusters","CosmicBarrelSuperClusters"), - PhotonLabel = cms.InputTag(""), - - EBRecHitEnergyThresholdParam = cms.double(0.3), - EERecHitEnergyThresholdParam = cms.double(0.3), - ESRecHitEnergyThresholdParam = cms.double(0.3), - SumEcalEnergyThresholdParam = cms.double(10.), - NHitsEcalThresholdParam = cms.int32(4), - - # Shower Shape cut parameters (defaults need to be optimized) - RoundnessCutParam = cms.double(0.41), - AngleCutParam = cms.double(0.51), - - ) +from RecoMET.METProducers.ecalHaloDataProducer_cfi import ecalHaloDataProducer as _ecalHaloDataProducer +EcalHaloData = _ecalHaloDataProducer.clone() diff --git a/RecoMET/METProducers/python/GlobalHaloData_cfi.py b/RecoMET/METProducers/python/GlobalHaloData_cfi.py index 21444d0d2c3b1..64784580126f7 100644 --- a/RecoMET/METProducers/python/GlobalHaloData_cfi.py +++ b/RecoMET/METProducers/python/GlobalHaloData_cfi.py @@ -4,54 +4,7 @@ # Description: Module to build GlobalHaloData Object and put into the event # Date: Oct. 15, 2009 -GlobalHaloData = cms.EDProducer("GlobalHaloDataProducer", - # Higher Level Reco - metLabel = cms.InputTag("caloMet"), - calotowerLabel = cms.InputTag("towerMaker"), - CSCSegmentLabel = cms.InputTag("cscSegments"), - CSCRecHitLabel = cms.InputTag("csc2DRecHits"), - MuonLabel = cms.InputTag("muons"), - EcalMinMatchingRadiusParam = cms.double(110.), - EcalMaxMatchingRadiusParam = cms.double(330.), - - HcalMinMatchingRadiusParam = cms.double(110.), - HcalMaxMatchingRadiusParam = cms.double(490.), - - CSCHaloDataLabel = cms.InputTag("CSCHaloData"), - EcalHaloDataLabel = cms.InputTag("EcalHaloData"), - HcalHaloDataLabel = cms.InputTag("HcalHaloData"), - - CaloTowerEtThresholdParam = cms.double(0.3), - - #Parameters for CSC-calo matching - MaxSegmentTheta = cms.double(0.7), - - rh_et_threshforcscmatching_eb = cms.double(10.), - rcalominrsegm_lowthresh_eb = cms.double(-30.), - rcalominrsegm_highthresh_eb = cms.double(15.), - dtcalosegm_thresh_eb = cms.double(15.), - dphicalosegm_thresh_eb = cms.double(0.04), - - rh_et_threshforcscmatching_ee = cms.double(10.), - rcalominrsegm_lowthresh_ee = cms.double(-30.), - rcalominrsegm_highthresh_ee = cms.double(30.), - dtcalosegm_thresh_ee = cms.double(15.), - dphicalosegm_thresh_ee = cms.double(0.04), - - rh_et_threshforcscmatching_hb = cms.double(20.), - rcalominrsegm_lowthresh_hb = cms.double(-100.), - rcalominrsegm_highthresh_hb = cms.double(20.), - dtcalosegm_thresh_hb = cms.double(15.), - dphicalosegm_thresh_hb = cms.double(0.15), - - rh_et_threshforcscmatching_he = cms.double(20.), - rcalominrsegm_lowthresh_he = cms.double(-30.), - rcalominrsegm_highthresh_he = cms.double(30.), - dtcalosegm_thresh_he = cms.double(15.), - dphicalosegm_thresh_he = cms.double(0.1), - IsHLT = cms.bool(False) - - - ) +from RecoMET.METProducers.globalHaloDataProducer_cfi import globalHaloDataProducer as _globalHaloDataProducer +GlobalHaloData = _globalHaloDataProducer.clone() diff --git a/RecoMET/METProducers/python/HcalHaloData_cfi.py b/RecoMET/METProducers/python/HcalHaloData_cfi.py index 03873bc90330e..b286738636cc6 100644 --- a/RecoMET/METProducers/python/HcalHaloData_cfi.py +++ b/RecoMET/METProducers/python/HcalHaloData_cfi.py @@ -4,23 +4,7 @@ # Description: Module to build HcalHaloData Object and put into the event # Date: Oct. 15, 2009 -HcalHaloData = cms.EDProducer("HcalHaloDataProducer", - # RecHit Level - EBRecHitLabel = cms.InputTag("ecalRecHit","EcalRecHitsEB"), - EERecHitLabel = cms.InputTag("ecalRecHit", "EcalRecHitsEE"), - HBHERecHitLabel = cms.InputTag("hbhereco"), - HORecHitLabel = cms.InputTag("horeco"), - HFRecHitLabel = cms.InputTag("hfreco"), - - caloTowerCollName = cms.InputTag('towerMaker'), - - HcalMinMatchingRadiusParam = cms.double(110.), - HcalMaxMatchingRadiusParam = cms.double(490.), - HBRecHitEnergyThresholdParam = cms.double(0.5), - HERecHitEnergyThresholdParam = cms.double(0.5), - SumHcalEnergyThresholdParam = cms.double(18), - NHitsHcalThresholdParam = cms.int32(4), - - ) +from RecoMET.METProducers.hcalHaloDataProducer_cfi import hcalHaloDataProducer as _hcalHaloDataProducer +HcalHaloData = _hcalHaloDataProducer.clone() diff --git a/RecoMET/METProducers/src/CSCHaloDataProducer.cc b/RecoMET/METProducers/src/CSCHaloDataProducer.cc index d89ab6efcf155..7c734138bc54f 100644 --- a/RecoMET/METProducers/src/CSCHaloDataProducer.cc +++ b/RecoMET/METProducers/src/CSCHaloDataProducer.cc @@ -82,6 +82,75 @@ CSCHaloDataProducer::CSCHaloDataProducer(const edm::ParameterSet& iConfig) : CSC produces(); } +void CSCHaloDataProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + //Digi Level + desc.add("L1MuGMTReadoutLabel", edm::InputTag("gtDigis")); + + // HLT + desc.add("HLTResultLabel", edm::InputTag("TriggerResults::HLT")); + desc.add >("HLTBitLabel", + {edm::InputTag("HLT_CSCBeamHalo"), + edm::InputTag("HLT_CSCBeamHaloOverlapRing1"), + edm::InputTag("HLT_CSCBeamHaloOverlapRing2"), + edm::InputTag("HLT_CSCBeamHaloRing2or3")}); + + // RecHit Level + desc.add("CSCRecHitLabel", edm::InputTag("csc2DRecHits")); + desc.add("HBHErhLabel", edm::InputTag("hbhereco")); + desc.add("ECALBrhLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEB")); + desc.add("ECALErhLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEE")); + + //Higher Level Reco + desc.add("CSCSegmentLabel", edm::InputTag("cscSegments")); + desc.add("CosmicMuonLabel", edm::InputTag("muonsFromCosmics")); + desc.add("MuonLabel", edm::InputTag("muons")); + desc.add("SALabel", edm::InputTag("standAloneMuons")); + desc.add("ALCTDigiLabel", edm::InputTag("muonCSCDigis", "MuonCSCALCTDigi")) + ->setComment("Chamber Level Trigger Primitive"); + + { + // Muon-Segment matching + edm::ParameterSetDescription matchParametersPSet; + MuonSegmentMatcher::fillPSetDescription(matchParametersPSet); + desc.add("MatchParameters", matchParametersPSet); + } + + desc.add("DetaParam", 0.1); + desc.add("DphiParam", 1.00); + desc.add("InnerRMinParam", 0.); + desc.add("InnerRMaxParam", 99999.); + desc.add("OuterRMinParam", 0.); + desc.add("OuterRMaxParam", 99999.); + desc.add("NormChi2Param", 8.); + + // MLR + // Default values for identifying CSCSegments that are halo-like + desc.add("MaxSegmentRDiff", 10.0); + desc.add("MaxSegmentPhiDiff", 0.1); + desc.add("MaxSegmentTheta", 0.7); + // end MLR + + desc.add("MaxDtMuonSegment", -10.0) + ->setComment("if this is halo we expect ( T_outer_segment - T_inner_segment) to be less than MaxDtMuonSegment"); + desc.add("MaxFreeInverseBeta", 0.0) + ->setComment("if this is halo we expect free inverse beta to be less than MaxFreeInverseBeta"); + desc.add("ExpectedBX", 6)->setComment("if this is Data, the expected collision bx will be 3 instead of 6"); + + // The expected time of a collision recHit will be t = time_0 + time-of-flight + // A recHit more than +/- time_window from collision timing will be declared "out-of-time" + // recHit times are in [ns] + desc.add("RecHitTime0", 0.)->setComment("rechit time in ns"); + desc.add("RecHitTimeWindow", 25.)->setComment("rechit time in ns"); + desc.add("MinOuterMomentumTheta", .10); + desc.add("MaxOuterMomentumTheta", 3.0); + desc.add("MatchingDPhiThreshold", 0.18); + desc.add("MatchingDEtaThreshold", 0.4); + desc.add("MatchingDWireThreshold", 5); + descriptions.addWithDefaultLabel(desc); +} + void CSCHaloDataProducer::produce(Event& iEvent, const EventSetup& iSetup) { //Get CSC Geometry edm::ESHandle TheCSCGeometry = iSetup.getHandle(cscGeometry_token); @@ -158,5 +227,3 @@ void CSCHaloDataProducer::produce(Event& iEvent, const EventSetup& iSetup) { iSetup))); return; } - -CSCHaloDataProducer::~CSCHaloDataProducer() {} diff --git a/RecoMET/METProducers/src/EcalHaloDataProducer.cc b/RecoMET/METProducers/src/EcalHaloDataProducer.cc index 29e8f5d63371c..07c69242e374b 100644 --- a/RecoMET/METProducers/src/EcalHaloDataProducer.cc +++ b/RecoMET/METProducers/src/EcalHaloDataProducer.cc @@ -34,9 +34,6 @@ EcalHaloDataProducer::EcalHaloDataProducer(const edm::ParameterSet& iConfig) : E SumEcalEnergyThreshold = (float)iConfig.getParameter("SumEcalEnergyThresholdParam"); NHitsEcalThreshold = iConfig.getParameter("NHitsEcalThresholdParam"); - RoundnessCut = iConfig.getParameter("RoundnessCutParam"); - AngleCut = iConfig.getParameter("AngleCutParam"); - ebrechit_token_ = consumes(IT_EBRecHit); eerechit_token_ = consumes(IT_EERecHit); esrechit_token_ = consumes(IT_ESRecHit); @@ -93,4 +90,23 @@ void EcalHaloDataProducer::produce(Event& iEvent, const EventSetup& iSetup) { return; } -EcalHaloDataProducer::~EcalHaloDataProducer() {} +void EcalHaloDataProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + // RecHit level + desc.add("EBRecHitLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEB")); + desc.add("EERecHitLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEE")); + desc.add("ESRecHitLabel", edm::InputTag("ecalPreshowerRecHit", "EcalRecHitsES")); + // Higher level Reco + desc.add("HBHERecHitLabel", edm::InputTag("hbhereco")); + desc.add("SuperClusterLabel", edm::InputTag("correctedHybridSuperClusters")); + desc.add("PhotonLabel", edm::InputTag("")); + desc.add("EBRecHitEnergyThresholdParam", 0.3); + desc.add("EERecHitEnergyThresholdParam", 0.3); + desc.add("ESRecHitEnergyThresholdParam", 0.3); + desc.add("SumEcalEnergyThresholdParam", 10); + desc.add("NHitsEcalThresholdParam", 4); + // Shower Shape cut parameters (defaults need to be optimized) + desc.add("RoundnessCutParam", 0.41); + desc.add("AngleCutParam", 0.51); + descriptions.addWithDefaultLabel(desc); +} diff --git a/RecoMET/METProducers/src/GlobalHaloDataProducer.cc b/RecoMET/METProducers/src/GlobalHaloDataProducer.cc index 389ca0613834d..fbef27d3a14bd 100644 --- a/RecoMET/METProducers/src/GlobalHaloDataProducer.cc +++ b/RecoMET/METProducers/src/GlobalHaloDataProducer.cc @@ -12,6 +12,50 @@ using namespace edm; using namespace std; using namespace reco; +void GlobalHaloDataProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("IsHLT", false); + + // Higher Level Reco + desc.add("metLabel", edm::InputTag("caloMet")); + desc.add("calotowerLabel", edm::InputTag("towerMaker")); + desc.add("CSCSegmentLabel", edm::InputTag("cscSegments")); + desc.add("CSCRecHitLabel", edm::InputTag("csc2DRecHits")); + desc.add("MuonLabel", edm::InputTag("muons")); + desc.add("CSCHaloDataLabel", edm::InputTag("CSCHaloData")); + desc.add("EcalHaloDataLabel", edm::InputTag("EcalHaloData")); + desc.add("HcalHaloDataLabel", edm::InputTag("HcalHaloData")); + desc.add("EcalMinMatchingRadiusParam", 110.); + desc.add("EcalMaxMatchingRadiusParam", 330.); + desc.add("HcalMinMatchingRadiusParam", 110.); + desc.add("HcalMaxMatchingRadiusParam", 490.); + desc.add("CaloTowerEtThresholdParam", 0.3); + + // Parameters for CSC-calo matching + desc.add("MaxSegmentTheta", 0.7); + desc.add("rh_et_threshforcscmatching_eb", 10.); + desc.add("rcalominrsegm_lowthresh_eb", -30.); + desc.add("rcalominrsegm_highthresh_eb", 15.); + desc.add("dtcalosegm_thresh_eb", 15.); + desc.add("dphicalosegm_thresh_eb", 0.04); + desc.add("rh_et_threshforcscmatching_ee", 10.); + desc.add("rcalominrsegm_lowthresh_ee", -30.); + desc.add("rcalominrsegm_highthresh_ee", 30.); + desc.add("dtcalosegm_thresh_ee", 15.); + desc.add("dphicalosegm_thresh_ee", 0.04); + desc.add("rh_et_threshforcscmatching_hb", 20.); + desc.add("rcalominrsegm_lowthresh_hb", -100.); + desc.add("rcalominrsegm_highthresh_hb", 20.); + desc.add("dtcalosegm_thresh_hb", 15.); + desc.add("dphicalosegm_thresh_hb", 0.15); + desc.add("rh_et_threshforcscmatching_he", 20.); + desc.add("rcalominrsegm_lowthresh_he", -30.); + desc.add("rcalominrsegm_highthresh_he", 30.); + desc.add("dtcalosegm_thresh_he", 15.); + desc.add("dphicalosegm_thresh_he", 0.1); + descriptions.addWithDefaultLabel(desc); +} + GlobalHaloDataProducer::GlobalHaloDataProducer(const edm::ParameterSet& iConfig) { ishlt = iConfig.getParameter("IsHLT"); diff --git a/RecoMET/METProducers/src/HcalHaloDataProducer.cc b/RecoMET/METProducers/src/HcalHaloDataProducer.cc index 4b25f906038f6..09e3d2ff7d46e 100644 --- a/RecoMET/METProducers/src/HcalHaloDataProducer.cc +++ b/RecoMET/METProducers/src/HcalHaloDataProducer.cc @@ -71,4 +71,18 @@ void HcalHaloDataProducer::produce(Event& iEvent, const EventSetup& iSetup) { return; } -HcalHaloDataProducer::~HcalHaloDataProducer() {} +void HcalHaloDataProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + // RecHit Level + desc.add("EBRecHitLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEB")); + desc.add("EERecHitLabel", edm::InputTag("ecalRecHit", "EcalRecHitsEE")); + desc.add("HBHERecHitLabel", edm::InputTag("hbhereco")); + desc.add("HFRecHitLabel", edm::InputTag("horeco")); + desc.add("HORecHitLabel", edm::InputTag("hfreco")); + desc.add("caloTowerCollName", edm::InputTag("towerMaker")); + desc.add("HBRecHitEnergyThresholdParam", 0.5); + desc.add("HERecHitEnergyThresholdParam", 0.5); + desc.add("SumHcalEnergyThresholdParam", 18); + desc.add("NHitsHcalThresholdParam", 4); + descriptions.addWithDefaultLabel(desc); +} diff --git a/RecoMuon/MuonSeedGenerator/plugins/CosmicMuonSeedGenerator.cc b/RecoMuon/MuonSeedGenerator/plugins/CosmicMuonSeedGenerator.cc index 73b54d3ff0b49..101ad60791508 100644 --- a/RecoMuon/MuonSeedGenerator/plugins/CosmicMuonSeedGenerator.cc +++ b/RecoMuon/MuonSeedGenerator/plugins/CosmicMuonSeedGenerator.cc @@ -540,3 +540,16 @@ TrajectorySeed CosmicMuonSeedGenerator::tsosToSeed(const TrajectoryStateOnSurfac TrajectorySeed seed(seedTSOS, container, alongMomentum); return seed; } + +void CosmicMuonSeedGenerator::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("EnableDTMeasurement", true); + desc.add("EnableCSCMeasurement", true); + desc.add("DTRecSegmentLabel", edm::InputTag("dt4DSegments")); + desc.add("CSCRecSegmentLabel", edm::InputTag("cscSegments")); + desc.add("MaxSeeds", 1000); + desc.add("MaxDTChi2", 300.0); + desc.add("MaxCSCChi2", 300.0); + desc.add("ForcePointDown", true); + descriptions.addWithDefaultLabel(desc); +} diff --git a/RecoMuon/MuonSeedGenerator/plugins/CosmicMuonSeedGenerator.h b/RecoMuon/MuonSeedGenerator/plugins/CosmicMuonSeedGenerator.h index f7f4d307f9f9d..d08779c6a9fbc 100644 --- a/RecoMuon/MuonSeedGenerator/plugins/CosmicMuonSeedGenerator.h +++ b/RecoMuon/MuonSeedGenerator/plugins/CosmicMuonSeedGenerator.h @@ -11,6 +11,8 @@ #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Utilities/interface/InputTag.h" #include "FWCore/Utilities/interface/ESGetToken.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h" @@ -40,6 +42,9 @@ class CosmicMuonSeedGenerator : public edm::stream::EDProducer<> { /// Destructor ~CosmicMuonSeedGenerator() override; + /// fillDescriptions + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + // Operations /// reconstruct muon's seeds diff --git a/RecoMuon/MuonSeedGenerator/python/CosmicMuonSeedProducer_cfi.py b/RecoMuon/MuonSeedGenerator/python/CosmicMuonSeedProducer_cfi.py index bc442d5f0b719..dcfd189326ceb 100644 --- a/RecoMuon/MuonSeedGenerator/python/CosmicMuonSeedProducer_cfi.py +++ b/RecoMuon/MuonSeedGenerator/python/CosmicMuonSeedProducer_cfi.py @@ -1,15 +1,6 @@ import FWCore.ParameterSet.Config as cms -CosmicMuonSeed = cms.EDProducer("CosmicMuonSeedGenerator", - MaxSeeds = cms.int32(1000), - CSCRecSegmentLabel = cms.InputTag("cscSegments"), - EnableDTMeasurement = cms.bool(True), - MaxCSCChi2 = cms.double(300.0), - MaxDTChi2 = cms.double(300.0), - DTRecSegmentLabel = cms.InputTag("dt4DSegments"), - EnableCSCMeasurement = cms.bool(True), - ForcePointDown = cms.bool(True) -) - +from RecoMuon.MuonSeedGenerator.cosmicMuonSeedGenerator_cfi import cosmicMuonSeedGenerator as _cosmicMuonSeedGenerator +CosmicMuonSeed = _cosmicMuonSeedGenerator.clone() diff --git a/RecoMuon/TrackingTools/interface/MuonSegmentMatcher.h b/RecoMuon/TrackingTools/interface/MuonSegmentMatcher.h index 6c29e3db45d0d..a918ab2b9b25e 100644 --- a/RecoMuon/TrackingTools/interface/MuonSegmentMatcher.h +++ b/RecoMuon/TrackingTools/interface/MuonSegmentMatcher.h @@ -7,6 +7,7 @@ #include "FWCore/Utilities/interface/InputTag.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "DataFormats/DTRecHit/interface/DTRecSegment2D.h" #include "DataFormats/DTRecHit/interface/DTRecSegment4D.h" @@ -41,6 +42,8 @@ class MuonSegmentMatcher { std::vector matchRPC(const reco::Track& muon, const edm::Event& event); + static void fillPSetDescription(edm::ParameterSetDescription& desc); + protected: private: const MuonServiceProxy* theService; diff --git a/RecoMuon/TrackingTools/src/MuonSegmentMatcher.cc b/RecoMuon/TrackingTools/src/MuonSegmentMatcher.cc index 7b4a143642812..072af8d7f02ff 100644 --- a/RecoMuon/TrackingTools/src/MuonSegmentMatcher.cc +++ b/RecoMuon/TrackingTools/src/MuonSegmentMatcher.cc @@ -54,6 +54,15 @@ MuonSegmentMatcher::MuonSegmentMatcher(const edm::ParameterSet& matchParameters, rpcRecHitsToken = iC.consumes(RPCHitTags_); } +void MuonSegmentMatcher::fillPSetDescription(edm::ParameterSetDescription& desc) { + desc.add("DTsegments", edm::InputTag("dt4DSegments")); + desc.add("CSCsegments", edm::InputTag("cscSegments")); + desc.add("DTradius", 0.01); + desc.add("TightMatchDT", false); + desc.add("TightMatchCSC", false); + desc.add("RPChits", edm::InputTag("rpcRecHits")); +} + MuonSegmentMatcher::~MuonSegmentMatcher() {} // member functions diff --git a/RecoParticleFlow/PFTracking/plugins/LightPFTrackProducer.cc b/RecoParticleFlow/PFTracking/plugins/LightPFTrackProducer.cc index a3f7c905184c5..1e128b2a7a280 100644 --- a/RecoParticleFlow/PFTracking/plugins/LightPFTrackProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/LightPFTrackProducer.cc @@ -3,7 +3,9 @@ #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "MagneticField/Engine/interface/MagneticField.h" #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "RecoParticleFlow/PFTracking/interface/PFTrackTransformer.h" diff --git a/RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc b/RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc index b0cafe7ac08e8..8f567c3c5a404 100644 --- a/RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc +++ b/RecoTracker/FinalTrackSelectors/plugins/TrackListMerger.cc @@ -20,10 +20,12 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/ESGetToken.h" #include "FWCore/Utilities/interface/InputTag.h" #include "FWCore/Utilities/interface/thread_safety_macros.h" -#include "FWCore/Utilities/interface/ESGetToken.h" #include "RecoTracker/FinalTrackSelectors/interface/TrackAlgoPriorityOrder.h" #include "RecoTracker/Record/interface/CkfComponentsRecord.h" #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" @@ -37,6 +39,8 @@ class dso_hidden TrackListMerger : public edm::stream::EDProducer<> { void produce(edm::Event& e, const edm::EventSetup& c) override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: void returnEmptyCollections(edm::Event& e); @@ -224,7 +228,7 @@ TrackListMerger::TrackListMerger(edm::ParameterSet const& conf) { priorityToken = esConsumes(edm::ESInputTag("", priorityName_)); if (!qualityStr.empty()) { - qualityToSet_ = reco::TrackBase::qualityByName(conf.getParameter("newQuality")); + qualityToSet_ = reco::TrackBase::qualityByName(qualityStr); } else qualityToSet_ = reco::TrackBase::undefQuality; @@ -306,6 +310,41 @@ TrackListMerger::TrackListMerger(edm::ParameterSet const& conf) { } } +void TrackListMerger::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.addUntracked("copyExtras", true); + desc.add("copyMVA", true); + desc.add("trackAlgoPriorityOrder"); + desc.add>("TrackProducers", {edm::InputTag(""), edm::InputTag("")}); + desc.add("MaxNormalizedChisq", 1000.0)->setComment("maximum chisq/dof"); + desc.add("MinPT", 0.05)->setComment("in GeV/c"); + desc.add("MinFound", 3)->setComment("minimum number of RecHits used in fit"); + desc.add("Epsilon", -0.001) + ->setComment(" minimum difference in rechit position in cm. Negative Epsilon uses sharedInput for comparison"); + desc.add("ShareFrac", 0.19) + ->setComment("minimum shared fraction to be called duplicate for tracks between collections"); + desc.add("allowFirstHitShare", true) + ->setComment("set new quality for confirmed tracks for each merged pair and then for the final pair"); + desc.add("FoundHitBonus", 5.0)->setComment("best track chosen by chi2 modified by parameters below"); + desc.add("LostHitPenalty", 5.0); + desc.add>("indivShareFrac", {1.0, 1.0}) + ->setComment("minimum shared fraction to be called duplicate"); + desc.add("newQuality", "confirmed"); + + // Correctly define the structure of the VPSet + edm::ParameterSetDescription descSetToMerge; + descSetToMerge.add>("tLists", {}); + descSetToMerge.add("pQual", false); + desc.addVPSet("setsToMerge", descSetToMerge, {}); + + desc.add>("hasSelector", {0, 0}); + desc.add>("selectedTrackQuals", {edm::InputTag(""), edm::InputTag("")}); + desc.addOptional>("mvaValueTags"); + desc.add("writeOnlyTrkQuals", false); + desc.addUntracked("makeReKeyedSeeds", false); + descriptions.add("default_trackListMerger", desc); +} + // Functions that gets called by framework every event void TrackListMerger::produce(edm::Event& e, const edm::EventSetup& es) { // extract tracker geometry diff --git a/RecoTracker/FinalTrackSelectors/python/trackListMerger_cfi.py b/RecoTracker/FinalTrackSelectors/python/trackListMerger_cfi.py index e2e2fd8f394c1..9f4d11a92f543 100644 --- a/RecoTracker/FinalTrackSelectors/python/trackListMerger_cfi.py +++ b/RecoTracker/FinalTrackSelectors/python/trackListMerger_cfi.py @@ -16,7 +16,8 @@ # # cleans and merges ctf and rs Track lists and put new list back in Event -trackListMerger = cms.EDProducer("TrackListMerger", +from RecoTracker.FinalTrackSelectors.default_trackListMerger_cfi import default_trackListMerger as _trackListMerger +trackListMerger = _trackListMerger.clone( # minimum shared fraction to be called duplicate for tracks between collections ShareFrac = cms.double(0.19), # best track chosen by chi2 modified by parameters below: diff --git a/RecoTracker/MeasurementDet/plugins/MaskedMeasurementTrackerEventProducer.cc b/RecoTracker/MeasurementDet/plugins/MaskedMeasurementTrackerEventProducer.cc index f66eabd4424c0..2017b8508f877 100644 --- a/RecoTracker/MeasurementDet/plugins/MaskedMeasurementTrackerEventProducer.cc +++ b/RecoTracker/MeasurementDet/plugins/MaskedMeasurementTrackerEventProducer.cc @@ -2,12 +2,15 @@ #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "RecoTracker/MeasurementDet/interface/MeasurementTrackerEvent.h" class dso_hidden MaskedMeasurementTrackerEventProducer final : public edm::stream::EDProducer<> { public: explicit MaskedMeasurementTrackerEventProducer(const edm::ParameterSet &iConfig); - ~MaskedMeasurementTrackerEventProducer() override {} + ~MaskedMeasurementTrackerEventProducer() override = default; + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); private: void produce(edm::Event &, const edm::EventSetup &) override; @@ -16,33 +19,40 @@ class dso_hidden MaskedMeasurementTrackerEventProducer final : public edm::strea typedef edm::ContainerMask > PixelMask; typedef edm::ContainerMask > Phase2OTMask; - edm::EDGetTokenT src_; + const edm::EDGetTokenT src_; - bool skipClusters_; - bool phase2skipClusters_; + const bool skipClusters_; + const bool phase2skipClusters_; edm::EDGetTokenT maskStrips_; edm::EDGetTokenT maskPixels_; edm::EDGetTokenT maskPhase2OTs_; }; +void MaskedMeasurementTrackerEventProducer::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + edm::ParameterSetDescription desc; + desc.add("src", edm::InputTag("MeasurementTrackerEvent")); + desc.add("clustersToSkip", edm::InputTag(""))->setComment("keep empty string for Phase2"); + desc.add("phase2clustersToSkip", edm::InputTag(""))->setComment("keep empty string for Phase1"); + descriptions.addWithDefaultLabel(desc); +} + MaskedMeasurementTrackerEventProducer::MaskedMeasurementTrackerEventProducer(const edm::ParameterSet &iConfig) : src_(consumes(iConfig.getParameter("src"))), - skipClusters_(false), - phase2skipClusters_(false) { - //FIXME:temporary solution in order to use this class for both phase0/1 and phase2 - if (iConfig.existsAs("clustersToSkip")) { - skipClusters_ = true; + skipClusters_(!iConfig.getParameter("clustersToSkip").label().empty()), + phase2skipClusters_(!iConfig.getParameter("phase2clustersToSkip").label().empty()) { + if (skipClusters_) { edm::InputTag clustersToSkip = iConfig.getParameter("clustersToSkip"); maskPixels_ = consumes(clustersToSkip); maskStrips_ = consumes(clustersToSkip); } - if (iConfig.existsAs("phase2clustersToSkip")) { - phase2skipClusters_ = true; + + if (phase2skipClusters_) { edm::InputTag phase2clustersToSkip = iConfig.getParameter("phase2clustersToSkip"); maskPixels_ = consumes(phase2clustersToSkip); maskPhase2OTs_ = consumes(phase2clustersToSkip); } + produces(); } diff --git a/RecoTracker/MeasurementDet/python/MaskedMeasurementTrackerEventProducer_cfi.py b/RecoTracker/MeasurementDet/python/MaskedMeasurementTrackerEventProducer_cfi.py index c25a6ea0cc8eb..946ee16b9184c 100644 --- a/RecoTracker/MeasurementDet/python/MaskedMeasurementTrackerEventProducer_cfi.py +++ b/RecoTracker/MeasurementDet/python/MaskedMeasurementTrackerEventProducer_cfi.py @@ -1,7 +1,4 @@ import FWCore.ParameterSet.Config as cms -MaskedMeasurementTrackerEvent = cms.EDProducer("MaskedMeasurementTrackerEventProducer", - src = cms.InputTag("MeasurementTrackerEvent"), - OnDemand = cms.bool(False), - clustersToSkip = cms.InputTag(""), -) +from RecoTracker.MeasurementDet.maskedMeasurementTrackerEventProducer_cfi import maskedMeasurementTrackerEventProducer as _maskedMeasurementTrackerEventProducer +MaskedMeasurementTrackerEvent = _maskedMeasurementTrackerEvent.clone() diff --git a/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h b/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h index 7410b1128628b..f7f9c7890e935 100644 --- a/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h +++ b/RecoTracker/TkSeedGenerator/plugins/SeedCombiner.h @@ -9,6 +9,9 @@ #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" #include "FWCore/Utilities/interface/Visibility.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" namespace edm { class Event; @@ -21,9 +24,8 @@ class dso_hidden SeedCombiner : public edm::stream::EDProducer<> { SeedCombiner(const edm::ParameterSet& cfg); ~SeedCombiner() override = default; - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - void produce(edm::Event& ev, const edm::EventSetup& es) override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: std::vector> inputCollections_; diff --git a/RecoVertex/PixelVertexFinding/plugins/PixelVertexProducer.cc b/RecoVertex/PixelVertexFinding/plugins/PixelVertexProducer.cc index 6735519b118ea..608d13853c334 100644 --- a/RecoVertex/PixelVertexFinding/plugins/PixelVertexProducer.cc +++ b/RecoVertex/PixelVertexFinding/plugins/PixelVertexProducer.cc @@ -20,20 +20,24 @@ // Created: Thu May 25 10:17:32 CDT 2006 // -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h" +#include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/VertexReco/interface/Vertex.h" +#include "DataFormats/VertexReco/interface/VertexFwd.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" -#include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h" #include "RecoVertex/PixelVertexFinding/interface/DivisiveVertexFinder.h" + #include #include #include @@ -42,6 +46,7 @@ class PixelVertexProducer : public edm::stream::EDProducer<> { public: explicit PixelVertexProducer(const edm::ParameterSet&); ~PixelVertexProducer() override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); void produce(edm::Event&, const edm::EventSetup&) override; @@ -59,6 +64,32 @@ class PixelVertexProducer : public edm::stream::EDProducer<> { DivisiveVertexFinder* dvf_; }; +void PixelVertexProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("Verbosity", 0); + desc.add("PtMin", 1.0); + desc.add("Method2", true); + desc.add("TrackCollection", edm::InputTag("pixelTracks")); + desc.add("beamSpot", edm::InputTag("offlineBeamSpot")); + desc.add("Finder", "DivisiveVertexFinder"); + desc.add("UseError", true); + desc.add("WtAverage", true); + desc.add("ZOffset", 5.0); + desc.add("ZSeparation", 0.05); + desc.add("NTrkMin", 2); + + { + edm::ParameterSetDescription PVComparerPSet; + PVComparerPSet.add("track_pt_min", 1.0); + PVComparerPSet.add("track_pt_max", 10.0); + PVComparerPSet.add("track_chi2_max", 999999.); + PVComparerPSet.add("track_prob_min", -1.); + desc.addOptional("PVcomparer", PVComparerPSet); + } + + descriptions.addWithDefaultLabel(desc); +} + PixelVertexProducer::PixelVertexProducer(const edm::ParameterSet& conf) // 0 silent, 1 chatty, 2 loud : verbose_(conf.getParameter("Verbosity")), diff --git a/RecoVertex/PixelVertexFinding/python/PixelVertices_cfi.py b/RecoVertex/PixelVertexFinding/python/PixelVertices_cfi.py index 2c83cb92f3775..9c78be3632edc 100644 --- a/RecoVertex/PixelVertexFinding/python/PixelVertices_cfi.py +++ b/RecoVertex/PixelVertexFinding/python/PixelVertices_cfi.py @@ -1,20 +1,4 @@ import FWCore.ParameterSet.Config as cms -from RecoVertex.PixelVertexFinding.PVClusterComparer_cfi import * - -pixelVertices = cms.EDProducer("PixelVertexProducer", - WtAverage = cms.bool(True), - ZOffset = cms.double(5.0), - beamSpot = cms.InputTag("offlineBeamSpot"), - Verbosity = cms.int32(0), - UseError = cms.bool(True), - TrackCollection = cms.InputTag("pixelTracks"), - ZSeparation = cms.double(0.05), - NTrkMin = cms.int32(2), - Method2 = cms.bool(True), - Finder = cms.string('DivisiveVertexFinder'), - PtMin = cms.double(1.0), - PVcomparer = cms.PSet( - refToPSet_ = cms.string('pvClusterComparer') - ) -) +from RecoVertex.PixelVertexFinding.pixelVertexProducer_cfi import pixelVertexProducer as _pixelVertexProducer +pixelVertices = _pixelVertexProducer.clone() From 2d74a41d470c6361b474b6954d571364e8ba2c22 Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 2 Jan 2025 15:38:54 +0100 Subject: [PATCH 372/418] provide fillDescriptions to CandidateProducer --- .../RecoAlgos/interface/CandidateProducer.h | 24 +++++++++++++------ .../interface/MassiveCandidateConverter.h | 7 +++++- .../src/MassiveCandidateConverter.cc | 6 +++++ .../src/RecoChargedRefCandidateToTrackRef.h | 2 ++ 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/CommonTools/RecoAlgos/interface/CandidateProducer.h b/CommonTools/RecoAlgos/interface/CandidateProducer.h index 5e1bcb2f82d92..2a840c3fb4258 100644 --- a/CommonTools/RecoAlgos/interface/CandidateProducer.h +++ b/CommonTools/RecoAlgos/interface/CandidateProducer.h @@ -12,15 +12,17 @@ * $Id: CandidateProducer.h,v 1.4 2010/02/11 00:10:53 wmtan Exp $ * */ -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Candidate/interface/CandidateFwd.h" -#include "CommonTools/UtilAlgos/interface/MasterCollectionHelper.h" #include "CommonTools/UtilAlgos/interface/AnySelector.h" #include "CommonTools/UtilAlgos/interface/EventSetupInitTrait.h" +#include "CommonTools/UtilAlgos/interface/MasterCollectionHelper.h" +#include "DataFormats/Candidate/interface/CandidateFwd.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" +#include "FWCore/Utilities/interface/InputTag.h" namespace converter { namespace helper { @@ -81,6 +83,14 @@ class CandidateProducer : public edm::stream::EDProducer<> { /// destructor ~CandidateProducer() override {} + /// fillDescriptions + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("src", edm::InputTag("")); + Conv::fillPSetDescription(desc); + descriptions.addWithDefaultLabel(desc); + } + private: /// begin job (first run) void beginRun(const edm::Run&, const edm::EventSetup& es) override { diff --git a/CommonTools/RecoAlgos/interface/MassiveCandidateConverter.h b/CommonTools/RecoAlgos/interface/MassiveCandidateConverter.h index 2f63740240169..8fa1cae6f63b6 100644 --- a/CommonTools/RecoAlgos/interface/MassiveCandidateConverter.h +++ b/CommonTools/RecoAlgos/interface/MassiveCandidateConverter.h @@ -1,9 +1,11 @@ #ifndef RecoAlgos_MassiveCandidateConverter_h #define RecoAlgos_MassiveCandidateConverter_h +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/ParameterSet/interface/ParameterSetfwd.h" #include "FWCore/Utilities/interface/ESGetToken.h" -#include "SimGeneral/HepPDTRecord/interface/PdtEntry.h" #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h" +#include "SimGeneral/HepPDTRecord/interface/PdtEntry.h" #include namespace edm { @@ -16,6 +18,9 @@ namespace converter { MassiveCandidateConverter(const edm::ParameterSet&, edm::ConsumesCollector); void beginFirstRun(const edm::EventSetup&); + public: + static void fillPSetDescription(edm::ParameterSetDescription& desc); + protected: double massSqr_; PdtEntry particle_; diff --git a/CommonTools/RecoAlgos/src/MassiveCandidateConverter.cc b/CommonTools/RecoAlgos/src/MassiveCandidateConverter.cc index 9f2733b32d829..890b7c9210cf4 100644 --- a/CommonTools/RecoAlgos/src/MassiveCandidateConverter.cc +++ b/CommonTools/RecoAlgos/src/MassiveCandidateConverter.cc @@ -20,3 +20,9 @@ void MassiveCandidateConverter::beginFirstRun(const EventSetup& es) { massSqr_ = particle_.data().mass(); massSqr_ *= massSqr_; } + +void MassiveCandidateConverter::fillPSetDescription(edm::ParameterSetDescription& desc) { + desc.addNode(edm::ParameterDescription("particleType", true) xor + edm::ParameterDescription("particleType", true)) + ->setComment("the PdtEntry can be specified as either an 'int' or via its name using a 'string'"); +} diff --git a/CommonTools/RecoAlgos/src/RecoChargedRefCandidateToTrackRef.h b/CommonTools/RecoAlgos/src/RecoChargedRefCandidateToTrackRef.h index b274a2ada8f2f..281b0ff5106f1 100644 --- a/CommonTools/RecoAlgos/src/RecoChargedRefCandidateToTrackRef.h +++ b/CommonTools/RecoAlgos/src/RecoChargedRefCandidateToTrackRef.h @@ -2,6 +2,7 @@ #define CommonTools_RecoAlgos_TrackToRefCandidate_h #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" #include "DataFormats/RecoCandidate/interface/RecoChargedRefCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedRefCandidateFwd.h" @@ -19,6 +20,7 @@ namespace converter { RecoChargedRefCandidateToTrackRef(const edm::ParameterSet& cfg, const edm::ConsumesCollector&) {} void beginFirstRun(const edm::EventSetup&) {} void convert(const reco::RecoChargedRefCandidateRef& c, reco::TrackRef& trkRef) const { trkRef = c->track(); } + static void fillPSetDescription(edm::ParameterSetDescription& desc) {} }; } // namespace converter From 74070221375cbdf7b4b4e1f84244806fb1227388 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Tue, 13 Feb 2024 20:33:45 +0100 Subject: [PATCH 373/418] Simplify definition of ALPAKA_ACCELERATOR_NAMESPACE::detail::useESProductDirectly The value depends only on the ALPAKA_ACCELERATOR_NAMESPACE::Platform, and is independent of the data product type. --- .../interface/alpaka/ESDeviceProductType.h | 17 ++++++----------- .../AlpakaCore/interface/alpaka/ESGetToken.h | 2 +- .../AlpakaCore/interface/alpaka/ESProducer.h | 5 +++-- .../AlpakaCore/interface/alpaka/EventSetup.h | 4 ++-- .../AlpakaCore/interface/alpaka/Record.h | 6 +++--- 5 files changed, 15 insertions(+), 19 deletions(-) diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESDeviceProductType.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESDeviceProductType.h index 7c91b5dffaa5b..8f3f24750be7a 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESDeviceProductType.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESDeviceProductType.h @@ -7,21 +7,16 @@ #include namespace ALPAKA_ACCELERATOR_NAMESPACE::detail { + // host backends can use TProduct directly + // all device backends need to be wrapped + inline constexpr bool useESProductDirectly = std::is_same_v; + /** - * This "trait" class abstracts the actual product type put in an + * Type alias for the actual product type put in an * EventSetup record */ template - struct ESDeviceProductType { - using type = std::conditional_t, - // host backends can use TProduct directly - TProduct, - // all device backends need to be wrapped - ESDeviceProduct>; - }; - - template - inline constexpr bool useESProductDirectly = std::is_same_v::type, TProduct>; + using ESDeviceProductType = std::conditional_t>; } // namespace ALPAKA_ACCELERATOR_NAMESPACE::detail #endif diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESGetToken.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESGetToken.h index 01f9c42d6aa10..07a6f2dddad88 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESGetToken.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESGetToken.h @@ -32,7 +32,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { auto const& underlyingToken() const { return token_; } - using ProductType = typename detail::ESDeviceProductType::type; + using ProductType = detail::ESDeviceProductType; edm::ESGetToken token_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE::device diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h index 83cecf0f77b36..dfcbd66b527e0 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h @@ -12,6 +12,7 @@ #include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h" #include +#include namespace ALPAKA_ACCELERATOR_NAMESPACE { /** @@ -45,7 +46,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { auto setWhatProduced(T* iThis, TReturn (T ::*iMethod)(TRecord const&), edm::es::Label const& label = {}) { auto cc = Base::setWhatProduced(iThis, iMethod, label); using TProduct = typename edm::eventsetup::produce::smart_pointer_traits::type; - if constexpr (not detail::useESProductDirectly) { + if constexpr (not detail::useESProductDirectly) { // for device backends add the copy to device auto tokenPtr = std::make_shared>(); auto ccDev = setWhatProducedDevice( @@ -69,7 +70,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { TReturn (T ::*iMethod)(device::Record const&), edm::es::Label const& label = {}) { using TProduct = typename edm::eventsetup::produce::smart_pointer_traits::type; - if constexpr (detail::useESProductDirectly) { + if constexpr (detail::useESProductDirectly) { return Base::setWhatProduced( [iThis, iMethod](TRecord const& record) { auto const& devices = cms::alpakatools::devices(); diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h index a2bbea9413176..7203f43c8818e 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h @@ -36,7 +36,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { template T const& getData(device::ESGetToken const& iToken) const { auto const& product = setup_.getData(iToken.underlyingToken()); - if constexpr (detail::useESProductDirectly) { + if constexpr (detail::useESProductDirectly) { return product; } else { return product.get(device_); @@ -53,7 +53,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { template edm::ESHandle getHandle(device::ESGetToken const& iToken) const { auto handle = setup_.getHandle(iToken.underlyingToken()); - if constexpr (detail::useESProductDirectly) { + if constexpr (detail::useESProductDirectly) { return handle; } else { if (not handle) { diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/Record.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/Record.h index 81554f08b502a..b81beed691ca7 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/Record.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/Record.h @@ -47,7 +47,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { template edm::ESHandle getHandle(device::ESGetToken const& iToken) const { auto handle = record_.getHandle(iToken.underlyingToken()); - if constexpr (detail::useESProductDirectly) { + if constexpr (detail::useESProductDirectly) { return handle; } else { if (not handle) { @@ -67,7 +67,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { template edm::ESTransientHandle getTransientHandle(device::ESGetToken const& iToken) const { auto handle = record_.getTransientHandle(iToken.underlyingToken()); - if constexpr (detail::useESProductDirectly) { + if constexpr (detail::useESProductDirectly) { return handle; } else { if (not handle) { @@ -90,7 +90,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { template TProduct const& get(device::ESGetToken const& iToken) const { auto const& product = record_.get(iToken.underlyingToken()); - if constexpr (detail::useESProductDirectly) { + if constexpr (detail::useESProductDirectly) { return product; } else { return product.get(alpaka::getDev(*queue_)); From c73e2f4e95f8f3b1d208422d7585df7b3a01e527 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Tue, 13 Feb 2024 20:52:13 +0100 Subject: [PATCH 374/418] Simplify definition of ALPAKA_ACCELERATOR_NAMESPACE::detail::useProductDirectly The value depends only on the types of ALPAKA_ACCELERATOR_NAMESPACE::{Platform,Queue}, and is independent of the data product type. --- .../interface/alpaka/DeviceProductType.h | 21 ++++++++----------- .../AlpakaCore/interface/alpaka/EDGetToken.h | 2 +- .../AlpakaCore/interface/alpaka/EDPutToken.h | 2 +- .../AlpakaCore/interface/alpaka/Event.h | 8 +++---- .../interface/alpaka/ProducerBase.h | 2 +- 5 files changed, 16 insertions(+), 19 deletions(-) diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/DeviceProductType.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/DeviceProductType.h index 3df9abcf89459..23004ebf66ee4 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/DeviceProductType.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/DeviceProductType.h @@ -4,24 +4,21 @@ #include "DataFormats/Common/interface/DeviceProduct.h" #include "HeterogeneousCore/AlpakaInterface/interface/config.h" +#include + namespace ALPAKA_ACCELERATOR_NAMESPACE::detail { + // host synchronous backends can use TProduct directly + // all device and asynchronous backends need to be wrapped + inline constexpr bool useProductDirectly = + std::is_same_v and std::is_same_v; + /** - * This "trait" class abstracts the actual product type put in the + * Type alias for the actual product type put in the * edm::Event. */ template - struct DeviceProductType { -#ifdef ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED - // host synchronous backends can use TProduct directly - using type = TProduct; -#else - // all device and asynchronous backends need to be wrapped - using type = edm::DeviceProduct; -#endif - }; + using DeviceProductType = std::conditional_t>; - template - inline constexpr bool useProductDirectly = std::is_same_v::type, TProduct>; } // namespace ALPAKA_ACCELERATOR_NAMESPACE::detail #endif diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/EDGetToken.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/EDGetToken.h index 8699cc2b8fdf7..ad1a254f136ec 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/EDGetToken.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/EDGetToken.h @@ -23,7 +23,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { */ template class EDGetToken { - using ProductType = typename detail::DeviceProductType::type; + using ProductType = detail::DeviceProductType; public: constexpr EDGetToken() = default; diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/EDPutToken.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/EDPutToken.h index 7c390e6e08d72..ddbf12e797a49 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/EDPutToken.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/EDPutToken.h @@ -17,7 +17,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { */ template class EDPutToken { - using ProductType = typename detail::DeviceProductType::type; + using ProductType = detail::DeviceProductType; public: constexpr EDPutToken() noexcept = default; diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h index 247d4f7a8844b..2d2a4e564485c 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h @@ -70,7 +70,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { template T const& get(device::EDGetToken const& token) const { auto const& deviceProduct = constEvent_.get(token.underlyingToken()); - if constexpr (detail::useProductDirectly) { + if constexpr (detail::useProductDirectly) { return deviceProduct; } else { // try to re-use queue from deviceProduct if our queue has not yet been used @@ -90,7 +90,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { template edm::Handle getHandle(device::EDGetToken const& token) const { auto deviceProductHandle = constEvent_.getHandle(token.underlyingToken()); - if constexpr (detail::useProductDirectly) { + if constexpr (detail::useProductDirectly) { return deviceProductHandle; } else { if (not deviceProductHandle) { @@ -114,7 +114,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { // The idea for Ref-like things in this domain differs from earlier Refs anyway template void emplace(device::EDPutToken const& token, Args&&... args) { - if constexpr (detail::useProductDirectly) { + if constexpr (detail::useProductDirectly) { event_->emplace(token.underlyingToken(), std::forward(args)...); } else { event_->emplace(token.underlyingToken(), metadata_, std::forward(args)...); @@ -130,7 +130,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::device { template void put(device::EDPutToken const& token, std::unique_ptr product) { - if constexpr (detail::useProductDirectly) { + if constexpr (detail::useProductDirectly) { event_->emplace(token.underlyingToken(), std::move(*product)); } else { event_->emplace(token.underlyingToken(), metadata_, std::move(*product)); diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h index b0be0e2ab476b..d8d2f2de6fea3 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h @@ -101,7 +101,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // can think of it later if really needed template edm::EDPutTokenT deviceProduces(std::string instanceName) { - if constexpr (detail::useProductDirectly) { + if constexpr (detail::useProductDirectly) { return Base::template produces(std::move(instanceName)); } else { edm::EDPutTokenT token = Base::template produces(instanceName); From 97e6a81ea0b10b328d863ac1176f774791647c24 Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 2 Jan 2025 16:10:43 +0100 Subject: [PATCH 375/418] add a fillDescriptions to CollectionCombiner --- .../plugins/CollectionCombiner.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/RecoMuon/TrackerSeedGenerator/plugins/CollectionCombiner.h b/RecoMuon/TrackerSeedGenerator/plugins/CollectionCombiner.h index 14095633eb35e..a6d802e0b636f 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/CollectionCombiner.h +++ b/RecoMuon/TrackerSeedGenerator/plugins/CollectionCombiner.h @@ -22,12 +22,16 @@ #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" template class CollectionCombiner : public edm::global::EDProducer<> { public: explicit CollectionCombiner(const edm::ParameterSet&); - ~CollectionCombiner() override; + ~CollectionCombiner() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; @@ -44,8 +48,6 @@ CollectionCombiner::CollectionCombiner(const edm::ParameterSet& iCon for (unsigned int i = 0; i < labels.size(); ++i) collectionTokens.push_back(consumes(labels.at(i))); } -template -CollectionCombiner::~CollectionCombiner() {} template void CollectionCombiner::produce(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& es) const { @@ -59,4 +61,11 @@ void CollectionCombiner::produce(edm::StreamID, edm::Event& iEvent, iEvent.put(std::move(merged)); } +template +void CollectionCombiner::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add >("labels", {}); + descriptions.addWithDefaultLabel(desc); +} + #endif From 40ce3f89e244c1b5b27207664f33145efd71b688 Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 2 Jan 2025 16:50:52 +0100 Subject: [PATCH 376/418] add an auto-generated fillDescriptions to ChainedJetCorrectorProducer --- .../Modules/plugins/ChainedJetCorrectorProducer.cc | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/JetMETCorrections/Modules/plugins/ChainedJetCorrectorProducer.cc b/JetMETCorrections/Modules/plugins/ChainedJetCorrectorProducer.cc index 3b32ab7deb7fc..3936f3a427210 100644 --- a/JetMETCorrections/Modules/plugins/ChainedJetCorrectorProducer.cc +++ b/JetMETCorrections/Modules/plugins/ChainedJetCorrectorProducer.cc @@ -122,14 +122,6 @@ class ChainedJetCorrectorProducer : public edm::stream::EDProducer<> { std::vector> correctorTokens_; }; -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - // // constructors and destructor // @@ -169,11 +161,9 @@ void ChainedJetCorrectorProducer::produce(edm::Event& iEvent, const edm::EventSe // ------------ method fills 'descriptions' with the allowed parameters for the module ------------ void ChainedJetCorrectorProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - //The following says we do not know what parameters are allowed so do no validation - // Please change this to state exactly what you do use, even if it is no parameters edm::ParameterSetDescription desc; - desc.add>("correctors"); - descriptions.addDefault(desc); + desc.add>("correctors", {}); + descriptions.addWithDefaultLabel(desc); } //define this as a plug-in From 7d29a31616c282d7a0334bb976ccbb44fb216c24 Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 2 Jan 2025 16:51:15 +0100 Subject: [PATCH 377/418] add a fillDescriptions to DeepNNTagInfoProducer --- .../Combined/plugins/DeepNNTagInfoProducer.cc | 48 ++++------- .../interface/CombinedSVComputer.h | 33 ++++---- .../SecondaryVertex/src/CombinedSVComputer.cc | 83 +++++++++++++++++++ 3 files changed, 116 insertions(+), 48 deletions(-) diff --git a/RecoBTag/Combined/plugins/DeepNNTagInfoProducer.cc b/RecoBTag/Combined/plugins/DeepNNTagInfoProducer.cc index 4a34a95fde6aa..76a53e4692e44 100644 --- a/RecoBTag/Combined/plugins/DeepNNTagInfoProducer.cc +++ b/RecoBTag/Combined/plugins/DeepNNTagInfoProducer.cc @@ -20,23 +20,19 @@ #include // user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/StreamID.h" - #include "DataFormats/BTauReco/interface/CandIPTagInfo.h" #include "DataFormats/BTauReco/interface/CandSecondaryVertexTagInfo.h" +#include "DataFormats/BTauReco/interface/SecondaryVertexTagInfo.h" #include "DataFormats/BTauReco/interface/ShallowTagInfo.h" #include "DataFormats/BTauReco/interface/TaggingVariable.h" -#include "RecoBTag/SecondaryVertex/interface/CombinedSVComputer.h" - #include "DataFormats/BTauReco/interface/TrackIPTagInfo.h" -#include "DataFormats/BTauReco/interface/SecondaryVertexTagInfo.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/StreamID.h" +#include "RecoBTag/SecondaryVertex/interface/CombinedSVComputer.h" #include @@ -50,7 +46,7 @@ template class TemplatedDeepNNTagInfoProducer : public edm::stream::EDProducer<> { public: explicit TemplatedDeepNNTagInfoProducer(const edm::ParameterSet&); - ~TemplatedDeepNNTagInfoProducer() override; + ~TemplatedDeepNNTagInfoProducer() override = default; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); @@ -64,14 +60,6 @@ class TemplatedDeepNNTagInfoProducer : public edm::stream::EDProducer<> { CombinedSVComputer computer_; }; -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - // // constructors and destructor // @@ -82,12 +70,6 @@ TemplatedDeepNNTagInfoProducer::TemplatedDeepNNTagInfoProducer(con produces >(); } -template -TemplatedDeepNNTagInfoProducer::~TemplatedDeepNNTagInfoProducer() { - // do anything here that needs to be done at destruction time - // (e.g. close files, deallocate resources etc.) -} - // // member functions // @@ -131,11 +113,15 @@ void TemplatedDeepNNTagInfoProducer::produce(edm::Event& iEvent, c // ------------ method fills 'descriptions' with the allowed parameters for the module ------------ template void TemplatedDeepNNTagInfoProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - //The following says we do not know what parameters are allowed so do no validation - // Please change this to state exactly what you do use, even if it is no parameters edm::ParameterSetDescription desc; - desc.setUnknown(); - descriptions.addDefault(desc); + desc.add("svTagInfos", edm::InputTag("")); + + // Define the computer parameter using CombinedSVComputer + edm::ParameterSetDescription computerDesc; + CombinedSVComputer::fillPSetDescription(computerDesc); + desc.add("computer", computerDesc); + + descriptions.addWithDefaultLabel(desc); } //define this as a plug-in diff --git a/RecoBTag/SecondaryVertex/interface/CombinedSVComputer.h b/RecoBTag/SecondaryVertex/interface/CombinedSVComputer.h index ec29afa6d9621..17add425d7d0e 100644 --- a/RecoBTag/SecondaryVertex/interface/CombinedSVComputer.h +++ b/RecoBTag/SecondaryVertex/interface/CombinedSVComputer.h @@ -8,31 +8,28 @@ #include #include - -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/Exception.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Math/interface/Vector3D.h" -#include "DataFormats/Math/interface/LorentzVector.h" +#include "DataFormats/BTauReco/interface/CandSecondaryVertexTagInfo.h" +#include "DataFormats/BTauReco/interface/ParticleMasses.h" +#include "DataFormats/BTauReco/interface/SecondaryVertexTagInfo.h" +#include "DataFormats/BTauReco/interface/TaggingVariable.h" +#include "DataFormats/BTauReco/interface/VertexTypes.h" #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h" #include "DataFormats/GeometryVector/interface/GlobalPoint.h" #include "DataFormats/GeometryVector/interface/GlobalVector.h" #include "DataFormats/GeometryVector/interface/VectorUtil.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/BTauReco/interface/SecondaryVertexTagInfo.h" -#include "DataFormats/BTauReco/interface/CandSecondaryVertexTagInfo.h" -#include "DataFormats/BTauReco/interface/TaggingVariable.h" -#include "DataFormats/BTauReco/interface/VertexTypes.h" -#include "DataFormats/BTauReco/interface/ParticleMasses.h" #include "DataFormats/JetReco/interface/PFJet.h" +#include "DataFormats/Math/interface/LorentzVector.h" +#include "DataFormats/Math/interface/Vector3D.h" #include "DataFormats/PatCandidates/interface/Jet.h" - +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "RecoBTag/SecondaryVertex/interface/TrackKinematics.h" #include "RecoBTag/SecondaryVertex/interface/TrackSelector.h" -#include "RecoBTag/SecondaryVertex/interface/V0Filter.h" #include "RecoBTag/SecondaryVertex/interface/TrackSorting.h" -#include "RecoBTag/SecondaryVertex/interface/TrackKinematics.h" +#include "RecoBTag/SecondaryVertex/interface/V0Filter.h" #define range_for(i, x) for (int i = (x).begin; i != (x).end; i += (x).increment) @@ -69,6 +66,8 @@ class CombinedSVComputer { double &vtx_track_ptSum, double &vtx_track_ESum) const; + static void fillPSetDescription(edm::ParameterSetDescription &desc); + private: bool trackFlip; bool vertexFlip; diff --git a/RecoBTag/SecondaryVertex/src/CombinedSVComputer.cc b/RecoBTag/SecondaryVertex/src/CombinedSVComputer.cc index d83cb48899435..eeca3888aaa5e 100644 --- a/RecoBTag/SecondaryVertex/src/CombinedSVComputer.cc +++ b/RecoBTag/SecondaryVertex/src/CombinedSVComputer.cc @@ -239,3 +239,86 @@ TaggingVariableList CombinedSVComputer::operator()(const CandIPTagInfo &ipInfo, vars.finalize(); return vars; } + +void CombinedSVComputer::fillPSetDescription(edm::ParameterSetDescription &desc) { + { + edm::ParameterSetDescription trackPseudoSelection; + trackPseudoSelection.add("max_pT_dRcut", 0.1); + trackPseudoSelection.add("b_dR", 0.6263); + trackPseudoSelection.add("min_pT", 120.0); + trackPseudoSelection.add("b_pT", 0.3684); + trackPseudoSelection.add("ptMin", 0.0); + trackPseudoSelection.add("max_pT_trackPTcut", 3.0); + trackPseudoSelection.add("max_pT", 500.0); + trackPseudoSelection.add("useVariableJTA", false); + trackPseudoSelection.add("maxDecayLen", 5.0); + trackPseudoSelection.add("qualityClass", "any"); + trackPseudoSelection.add("normChi2Max", 99999.9); + trackPseudoSelection.add("sip2dValMin", -99999.9); + trackPseudoSelection.add("sip3dValMin", -99999.9); + trackPseudoSelection.add("a_dR", -0.001053); + trackPseudoSelection.add("maxDistToAxis", 0.07); + trackPseudoSelection.add("totalHitsMin", 3); + trackPseudoSelection.add("a_pT", 0.005263); + trackPseudoSelection.add("sip2dSigMax", 99999.9); + trackPseudoSelection.add("sip2dValMax", 99999.9); + trackPseudoSelection.add("sip3dSigMax", 99999.9); + trackPseudoSelection.add("sip3dValMax", 99999.9); + trackPseudoSelection.add("min_pT_dRcut", 0.5); + trackPseudoSelection.add("jetDeltaRMax", 0.3); + trackPseudoSelection.add("pixelHitsMin", 0); + trackPseudoSelection.add("sip3dSigMin", -99999.9); + trackPseudoSelection.add("sip2dSigMin", 2.0); + desc.add("trackPseudoSelection", trackPseudoSelection); + } + + { + edm::ParameterSetDescription trackSelection; + trackSelection.add("max_pT_dRcut", 0.1); + trackSelection.add("b_dR", 0.6263); + trackSelection.add("min_pT", 120.0); + trackSelection.add("b_pT", 0.3684); + trackSelection.add("ptMin", 0.0); + trackSelection.add("max_pT_trackPTcut", 3.0); + trackSelection.add("max_pT", 500.0); + trackSelection.add("useVariableJTA", false); + trackSelection.add("maxDecayLen", 5.0); + trackSelection.add("qualityClass", "any"); + trackSelection.add("normChi2Max", 99999.9); + trackSelection.add("sip2dValMin", -99999.9); + trackSelection.add("sip3dValMin", -99999.9); + trackSelection.add("a_dR", -0.001053); + trackSelection.add("maxDistToAxis", 0.07); + trackSelection.add("totalHitsMin", 3); + trackSelection.add("a_pT", 0.005263); + trackSelection.add("sip2dSigMax", 99999.9); + trackSelection.add("sip2dValMax", 99999.9); + trackSelection.add("sip3dSigMax", 99999.9); + trackSelection.add("sip3dValMax", 99999.9); + trackSelection.add("min_pT_dRcut", 0.5); + trackSelection.add("jetDeltaRMax", 0.3); + trackSelection.add("pixelHitsMin", 2); + trackSelection.add("sip3dSigMin", -99999.9); + trackSelection.add("sip2dSigMin", -99999.9); + desc.add("trackSelection", trackSelection); + } + + edm::ParameterSetDescription trackPairV0Filter; + trackPairV0Filter.add("k0sMassWindow", 0.03); + desc.add("trackPairV0Filter", trackPairV0Filter); + + edm::ParameterSetDescription pseudoVertexV0Filter; + pseudoVertexV0Filter.add("k0sMassWindow", 0.05); + desc.add("pseudoVertexV0Filter", pseudoVertexV0Filter); + + desc.add("trackFlip", false); + desc.add("useTrackWeights", true); + desc.add("SoftLeptonFlip", false); + desc.add("pseudoMultiplicityMin", 2); + desc.add("correctVertexMass", true); + desc.add("minimumTrackWeight", 0.5); + desc.add("charmCut", 1.5); + desc.add("trackSort", "sip2dSig"); + desc.add("trackMultiplicityMin", 2); + desc.add("vertexFlip", false); +} From a72babcf0a0a1d52669bbc4a77e10163a21a4744 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 2 Jan 2025 18:25:15 +0100 Subject: [PATCH 378/418] Make implicit copy of TrackingRecHitsSoACollection to host asynchronous --- .../interface/alpaka/TrackingRecHitsSoACollection.h | 13 +++++++++---- .../TrackingRecHitSoA/test/alpaka/Hits_test.cc | 12 ++++++++---- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/DataFormats/TrackingRecHitSoA/interface/alpaka/TrackingRecHitsSoACollection.h b/DataFormats/TrackingRecHitSoA/interface/alpaka/TrackingRecHitsSoACollection.h index 3374863ea1327..7c3fef745c669 100644 --- a/DataFormats/TrackingRecHitSoA/interface/alpaka/TrackingRecHitsSoACollection.h +++ b/DataFormats/TrackingRecHitSoA/interface/alpaka/TrackingRecHitsSoACollection.h @@ -51,8 +51,15 @@ namespace cms::alpakatools { assert(deviceData.nHits() == hostData.nHits()); assert(deviceData.offsetBPIX2() == hostData.offsetBPIX2()); #endif - // Update the contents address of the phiBinner histo container after the copy from device happened - alpaka::wait(queue); + return hostData; + } + + // Update the contents address of the phiBinner histo container after the copy from device happened + static void postCopy(TrackingRecHitHost& hostData) { + // Don't bother if zero hits + if (hostData.view().metadata().size() == 0) { + return; + } typename TrackingRecHitSoA::PhiBinnerView pbv; pbv.assoc = &(hostData.view().phiBinner()); pbv.offSize = -1; @@ -60,8 +67,6 @@ namespace cms::alpakatools { pbv.contentSize = hostData.nHits(); pbv.contentStorage = hostData.view().phiBinnerStorage(); hostData.view().phiBinner().initStorage(pbv); - - return hostData; } }; } // namespace cms::alpakatools diff --git a/DataFormats/TrackingRecHitSoA/test/alpaka/Hits_test.cc b/DataFormats/TrackingRecHitSoA/test/alpaka/Hits_test.cc index 14530349297c8..8f317cc2725f0 100644 --- a/DataFormats/TrackingRecHitSoA/test/alpaka/Hits_test.cc +++ b/DataFormats/TrackingRecHitSoA/test/alpaka/Hits_test.cc @@ -51,12 +51,16 @@ int main() { // requires c++23 to make cms::alpakatools::CopyToHost compile using if constexpr // see https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2593r0.html TrackingRecHitHost const& host_collection = tkhit; + // wait for the kernel to complete + alpaka::wait(queue); #else - TrackingRecHitHost host_collection = - cms::alpakatools::CopyToHost >::copyAsync(queue, tkhit); -#endif - // wait for the kernel and the potential copy to complete + using CopyT = cms::alpakatools::CopyToHost >; + TrackingRecHitHost host_collection = CopyT::copyAsync(queue, tkhit); + // wait for the kernel and the copy to complete alpaka::wait(queue); + CopyT::postCopy(host_collection); +#endif + assert(tkhit.nHits() == nHits); assert(tkhit.offsetBPIX2() == 22); // set in the kernel assert(tkhit.nHits() == host_collection.nHits()); From 51798d10a32f81c0ade21591c31596910ccbb99a Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 3 Jan 2025 10:40:30 +0100 Subject: [PATCH 379/418] add fillDescriptions to DeepFlavourJetTagsProducer --- .../plugins/DeepFlavourJetTagsProducer.cc | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/RecoBTag/Combined/plugins/DeepFlavourJetTagsProducer.cc b/RecoBTag/Combined/plugins/DeepFlavourJetTagsProducer.cc index 7a02c3d9d06cb..b7a2c31d84c61 100644 --- a/RecoBTag/Combined/plugins/DeepFlavourJetTagsProducer.cc +++ b/RecoBTag/Combined/plugins/DeepFlavourJetTagsProducer.cc @@ -288,11 +288,26 @@ namespace { // ------------ method fills 'descriptions' with the allowed parameters for the module ------------ void DeepFlavourJetTagsProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - //The following says we do not know what parameters are allowed so do no validation - // Please change this to state exactly what you do use, even if it is no parameters edm::ParameterSetDescription desc; - desc.setUnknown(); - descriptions.addDefault(desc); + + // Define the parameters + desc.add("src", edm::InputTag("pfDeepCSVTagInfos")) + ->setComment("InputTag for the source tag info collection."); + desc.add("checkSVForDefaults", false)->setComment("Flag to check secondary vertex defaults."); + desc.add("meanPadding", false)->setComment("Enable or disable mean padding for input features."); + desc.add("NNConfig", edm::FileInPath("RecoBTag/Combined/data/DeepFlavourNoSL.json")) + ->setComment("Path to the JSON file containing the neural network configuration."); + + // Define the 'toAdd' parameter as a ParameterSet with arbitrary string keys + edm::ParameterSetDescription toAddDesc; + toAddDesc.setAllowAnything(); // Allow any string-to-string mappings + desc.add("toAdd", toAddDesc) + ->setComment( + "ParameterSet for merging different NN outputs together. " + "Each key is an output to merge, and its value is the target output."); + + // Add this producer's description to the descriptions registry + descriptions.addWithDefaultLabel(desc); } } // end unnamed namespace From 593d94f1e438950674e5548ad3d4dcbefe87ba8c Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 3 Jan 2025 11:39:07 +0100 Subject: [PATCH 380/418] add fillDescriptions to MuonLinksProducer{ForHLT} --- .../plugins/MuonLinksProducer.cc | 28 ++++++------- .../plugins/MuonLinksProducer.h | 17 ++++---- .../plugins/MuonLinksProducerForHLT.cc | 40 ++++++++++--------- .../plugins/MuonLinksProducerForHLT.h | 32 ++++++++------- .../MuonIdentification/python/links_cfi.py | 4 +- 5 files changed, 65 insertions(+), 56 deletions(-) diff --git a/RecoMuon/MuonIdentification/plugins/MuonLinksProducer.cc b/RecoMuon/MuonIdentification/plugins/MuonLinksProducer.cc index 9b14683206e5a..f36a7ec7c6d15 100644 --- a/RecoMuon/MuonIdentification/plugins/MuonLinksProducer.cc +++ b/RecoMuon/MuonIdentification/plugins/MuonLinksProducer.cc @@ -9,31 +9,25 @@ // // system include files +#include #include // user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" - +#include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/MuonReco/interface/MuonTrackLinks.h" +#include "DataFormats/TrackReco/interface/Track.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" - +#include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/MuonReco/interface/MuonTrackLinks.h" #include "RecoMuon/MuonIdentification/plugins/MuonLinksProducer.h" -#include - -MuonLinksProducer::MuonLinksProducer(const edm::ParameterSet& iConfig) { +MuonLinksProducer::MuonLinksProducer(const edm::ParameterSet& iConfig) + : m_inputCollection{iConfig.getParameter("inputCollection")}, + muonToken_{consumes(m_inputCollection)} { produces(); - m_inputCollection = iConfig.getParameter("inputCollection"); - muonToken_ = consumes(m_inputCollection); } -MuonLinksProducer::~MuonLinksProducer() {} - void MuonLinksProducer::produce(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { auto output = std::make_unique(); edm::Handle muons; @@ -46,3 +40,9 @@ void MuonLinksProducer::produce(edm::StreamID, edm::Event& iEvent, const edm::Ev } iEvent.put(std::move(output)); } + +void MuonLinksProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("inputCollection", edm::InputTag("muons", "", "@skipCurrentProcess")); + descriptions.addWithDefaultLabel(desc); +} diff --git a/RecoMuon/MuonIdentification/plugins/MuonLinksProducer.h b/RecoMuon/MuonIdentification/plugins/MuonLinksProducer.h index e5bd1f9200966..a9c962f49db04 100644 --- a/RecoMuon/MuonIdentification/plugins/MuonLinksProducer.h +++ b/RecoMuon/MuonIdentification/plugins/MuonLinksProducer.h @@ -17,23 +17,26 @@ // // user include files +#include "DataFormats/MuonReco/interface/Muon.h" +#include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/global/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/MuonReco/interface/Muon.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" class MuonLinksProducer : public edm::global::EDProducer<> { public: explicit MuonLinksProducer(const edm::ParameterSet&); - - ~MuonLinksProducer() override; + ~MuonLinksProducer() override = default; void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: - edm::InputTag m_inputCollection; - edm::EDGetTokenT muonToken_; + const edm::InputTag m_inputCollection; + const edm::EDGetTokenT muonToken_; }; #endif diff --git a/RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.cc b/RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.cc index 3f2909502ad4b..f22105b688f91 100644 --- a/RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.cc +++ b/RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.cc @@ -8,31 +8,23 @@ // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" - #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" - #include "FWCore/ParameterSet/interface/ParameterSet.h" - #include "DataFormats/Common/interface/Handle.h" #include "RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.h" -//#include - -MuonLinksProducerForHLT::MuonLinksProducerForHLT(const edm::ParameterSet& iConfig) { +MuonLinksProducerForHLT::MuonLinksProducerForHLT(const edm::ParameterSet& iConfig) + : theLinkCollectionInInput_{iConfig.getParameter("LinkCollection")}, + theInclusiveTrackCollectionInInput_{iConfig.getParameter("InclusiveTrackerTrackCollection")}, + linkToken_{consumes(theLinkCollectionInInput_)}, + trackToken_{consumes(theInclusiveTrackCollectionInInput_)}, + ptMin_{iConfig.getParameter("ptMin")}, + pMin_{iConfig.getParameter("pMin")}, + shareHitFraction_{iConfig.getParameter("shareHitFraction")} { produces(); - theLinkCollectionInInput = iConfig.getParameter("LinkCollection"); - theInclusiveTrackCollectionInInput = iConfig.getParameter("InclusiveTrackerTrackCollection"); - ptMin = iConfig.getParameter("ptMin"); - pMin = iConfig.getParameter("pMin"); - shareHitFraction = iConfig.getParameter("shareHitFraction"); - - linkToken_ = consumes(theLinkCollectionInInput); - trackToken_ = consumes(theInclusiveTrackCollectionInInput); } -MuonLinksProducerForHLT::~MuonLinksProducerForHLT() {} - void MuonLinksProducerForHLT::produce(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { auto output = std::make_unique(); @@ -48,9 +40,9 @@ void MuonLinksProducerForHLT::produce(edm::StreamID, edm::Event& iEvent, const e unsigned int muonTrackHits = link->trackerTrack()->extra()->recHitsSize(); for (reco::TrackCollection::const_iterator track = incTracks->begin(); track != incTracks->end(); ++track, ++trackIndex) { - if (track->pt() < ptMin) + if (track->pt() < ptMin_) continue; - if (track->p() < pMin) + if (track->p() < pMin_) continue; //std::cout << "pt (muon/track) " << link->trackerTrack()->pt() << " " << track->pt() << std::endl; unsigned trackHits = track->extra()->recHitsSize(); @@ -70,7 +62,7 @@ void MuonLinksProducerForHLT::produce(edm::StreamID, edm::Event& iEvent, const e } double fraction = (double)numberOfCommonDetIds / smallestNumberOfHits; // std::cout << "Overlap/Smallest/fraction = " << numberOfCommonDetIds << " " << smallestNumberOfHits << " " << fraction << std::endl; - if (fraction > shareHitFraction) { + if (fraction > shareHitFraction_) { output->push_back( reco::MuonTrackLinks(reco::TrackRef(incTracks, trackIndex), link->standAloneTrack(), link->globalTrack())); found = true; @@ -82,3 +74,13 @@ void MuonLinksProducerForHLT::produce(edm::StreamID, edm::Event& iEvent, const e } iEvent.put(std::move(output)); } + +void MuonLinksProducerForHLT::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("LinkCollection", edm::InputTag("hltPFMuonMerging")); + desc.add("InclusiveTrackerTrackCollection", edm::InputTag("hltL3MuonsLinksCombination")); + desc.add("ptMin", 2.5); + desc.add("pMin", 2.5); + desc.add("shareHitFraction", 0.80); + descriptions.addWithDefaultLabel(desc); +} diff --git a/RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.h b/RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.h index ceea901b78390..3e0f8b25d769f 100644 --- a/RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.h +++ b/RecoMuon/MuonIdentification/plugins/MuonLinksProducerForHLT.h @@ -11,31 +11,33 @@ */ // user include files +#include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "DataFormats/MuonReco/interface/MuonTrackLinks.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/global/EDProducer.h" -#include "FWCore/Framework/interface/Event.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -//#include "DataFormats/MuonReco/interface/Muon.h" -#include "DataFormats/MuonReco/interface/MuonTrackLinks.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" class MuonLinksProducerForHLT : public edm::global::EDProducer<> { public: explicit MuonLinksProducerForHLT(const edm::ParameterSet&); - - ~MuonLinksProducerForHLT() override; + ~MuonLinksProducerForHLT() override = default; void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: - edm::InputTag theLinkCollectionInInput; - edm::InputTag theInclusiveTrackCollectionInInput; - edm::EDGetTokenT linkToken_; - edm::EDGetTokenT trackToken_; - double ptMin; - double pMin; - double shareHitFraction; + const edm::InputTag theLinkCollectionInInput_; + const edm::InputTag theInclusiveTrackCollectionInInput_; + const edm::EDGetTokenT linkToken_; + const edm::EDGetTokenT trackToken_; + const double ptMin_; + const double pMin_; + const double shareHitFraction_; }; #endif diff --git a/RecoMuon/MuonIdentification/python/links_cfi.py b/RecoMuon/MuonIdentification/python/links_cfi.py index bca452e03a8a3..3f790cbb3f74c 100644 --- a/RecoMuon/MuonIdentification/python/links_cfi.py +++ b/RecoMuon/MuonIdentification/python/links_cfi.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms -globalMuonLinks = cms.EDProducer("MuonLinksProducer", + +from RecoMuon.MuonIdentificationp.muonLinksProducer_cfi import muonLinksProducer +globalMuonLinks = muonLinksProducer.clone( inputCollection = cms.InputTag("muons","","@skipCurrentProcess") ) From 9fb7223a91addddc5c006d8edc93802b817afcc4 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 2 Jan 2025 20:51:19 +0100 Subject: [PATCH 381/418] Add Transformer compilation test for stream producers --- .../test/stream_producer_t.cppunit.cc | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/FWCore/Framework/test/stream_producer_t.cppunit.cc b/FWCore/Framework/test/stream_producer_t.cppunit.cc index e39a35eb291fd..8a2df1770abc4 100644 --- a/FWCore/Framework/test/stream_producer_t.cppunit.cc +++ b/FWCore/Framework/test/stream_producer_t.cppunit.cc @@ -376,6 +376,44 @@ class testStreamProducer : public CppUnit::TestFixture { m_globalEndLuminosityBlockSummaryCalled = false; } }; + + class TransformProd : public edm::stream::EDProducer { + public: + TransformProd(edm::ParameterSet const&) { + token_ = produces(); + registerTransform(token_, [](float iV) { return int(iV); }); + } + + void produce(edm::Event& iEvent, edm::EventSetup const&) final { + //iEvent.emplace(token_, 3.625); + } + + private: + edm::EDPutTokenT token_; + }; + + class TransformAsyncProd : public edm::stream::EDProducer { + public: + struct IntHolder { + IntHolder() : value_(0) {} + IntHolder(int iV) : value_(iV) {} + int value_; + }; + TransformAsyncProd(edm::ParameterSet const&) { + token_ = produces(); + registerTransformAsync( + token_, + [](float iV, edm::WaitingTaskWithArenaHolder iHolder) { return IntHolder(iV); }, + [](IntHolder iWaitValue) { return iWaitValue.value_; }); + } + + void produce(edm::Event& iEvent, edm::EventSetup const&) final { + //iEvent.emplace(token_, 3.625); + } + + private: + edm::EDPutTokenT token_; + }; }; unsigned int testStreamProducer::BasicProd::m_count = 0; unsigned int testStreamProducer::GlobalProd::m_count = 0; From 0e28aebba890c4109ef68037b7028ed7a5114bd4 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Tue, 31 Dec 2024 00:51:13 +0100 Subject: [PATCH 382/418] Add StreamID parameter to Transformer callback functions The StreamID will be needed to implement implicit host-to-device copies for Alpaka EDProducers --- FWCore/Framework/interface/TransformerBase.h | 6 ++-- .../Framework/interface/global/implementors.h | 20 ++++++----- .../interface/limited/implementors.h | 19 +++++----- FWCore/Framework/interface/one/implementors.h | 35 ++++++++++--------- .../Framework/interface/stream/implementors.h | 20 ++++++----- FWCore/Framework/src/TransformerBase.cc | 17 +++++---- .../Framework/test/global_filter_t.cppunit.cc | 6 ++-- .../test/global_producer_t.cppunit.cc | 6 ++-- .../test/limited_filter_t.cppunit.cc | 2 +- .../test/limited_producer_t.cppunit.cc | 2 +- .../test/stream_producer_t.cppunit.cc | 6 ++-- .../Framework/test/stubs/ToyIntProducers.cc | 5 +-- .../plugins/TransformAsyncIntProducer.cc | 4 +-- .../TransformAsyncIntStreamProducer.cc | 4 +-- .../plugins/TransformIntProducer.cc | 2 +- .../plugins/TransformIntStreamProducer.cc | 2 +- .../interface/alpaka/ProducerBase.h | 4 +-- 17 files changed, 88 insertions(+), 72 deletions(-) diff --git a/FWCore/Framework/interface/TransformerBase.h b/FWCore/Framework/interface/TransformerBase.h index 3753efcfd55af..d417ea46b9807 100644 --- a/FWCore/Framework/interface/TransformerBase.h +++ b/FWCore/Framework/interface/TransformerBase.h @@ -10,6 +10,7 @@ #include "FWCore/Utilities/interface/EDPutToken.h" #include "FWCore/Utilities/interface/SoATuple.h" +#include "FWCore/Utilities/interface/StreamID.h" #include "FWCore/Utilities/interface/TypeID.h" #include "FWCore/Utilities/interface/ProductResolverIndex.h" @@ -38,8 +39,9 @@ namespace edm { protected: //The function takes the WrapperBase corresponding to the data product from the EDPutToken // and returns the WrapperBase associated to the id and instanceName - using TransformFunction = std::function(std::any)>; - using PreTransformFunction = std::function; + using TransformFunction = std::function(edm::StreamID, std::any)>; + using PreTransformFunction = + std::function; void registerTransformImp(ProducerBase&, EDPutToken, const TypeID& id, std::string instanceName, TransformFunction); void registerTransformAsyncImp( diff --git a/FWCore/Framework/interface/global/implementors.h b/FWCore/Framework/interface/global/implementors.h index 6f85763a2a7fd..2eda1fab048f6 100644 --- a/FWCore/Framework/interface/global/implementors.h +++ b/FWCore/Framework/interface/global/implementors.h @@ -474,17 +474,17 @@ namespace edm { template void registerTransform(edm::EDPutTokenT iToken, F iF, std::string productInstance = std::string()) { - using ReturnTypeT = decltype(iF(std::declval())); + using ReturnTypeT = decltype(iF(std::declval(), std::declval())); TypeID returnType(typeid(ReturnTypeT)); TransformerBase::registerTransformImp( *this, EDPutToken(iToken), returnType, std::move(productInstance), - [f = std::move(iF)](std::any const& iGotProduct) { + [f = std::move(iF)](edm::StreamID id, std::any const& iGotProduct) { auto pGotProduct = std::any_cast(iGotProduct); return std::make_unique>( - WrapperBase::Emplace{}, f(*static_cast const*>(pGotProduct)->product())); + WrapperBase::Emplace{}, f(id, *static_cast const*>(pGotProduct)->product())); }); } @@ -493,20 +493,22 @@ namespace edm { P iPre, F iF, std::string productInstance = std::string()) { - using CacheTypeT = decltype(iPre(std::declval(), WaitingTaskWithArenaHolder())); - using ReturnTypeT = decltype(iF(std::declval())); + using CacheTypeT = + decltype(iPre(std::declval(), std::declval(), WaitingTaskWithArenaHolder())); + using ReturnTypeT = decltype(iF(std::declval(), std::declval())); TypeID returnType(typeid(ReturnTypeT)); TransformerBase::registerTransformAsyncImp( *this, EDPutToken(iToken), returnType, std::move(productInstance), - [p = std::move(iPre)](edm::WrapperBase const& iGotProduct, WaitingTaskWithArenaHolder iHolder) { - return std::any(p(*static_cast const&>(iGotProduct).product(), std::move(iHolder))); + [p = std::move(iPre)]( + edm::StreamID id, edm::WrapperBase const& iGotProduct, WaitingTaskWithArenaHolder iHolder) { + return std::any(p(id, *static_cast const&>(iGotProduct).product(), std::move(iHolder))); }, - [f = std::move(iF)](std::any const& iCache) { + [f = std::move(iF)](edm::StreamID id, std::any const& iCache) { return std::make_unique>(WrapperBase::Emplace{}, - f(std::any_cast(iCache))); + f(id, std::any_cast(iCache))); }); } diff --git a/FWCore/Framework/interface/limited/implementors.h b/FWCore/Framework/interface/limited/implementors.h index fd8464f08091d..20d15066f46cc 100644 --- a/FWCore/Framework/interface/limited/implementors.h +++ b/FWCore/Framework/interface/limited/implementors.h @@ -462,17 +462,17 @@ namespace edm { template void registerTransform(edm::EDPutTokenT iToken, F iF, std::string productInstance = std::string()) { - using ReturnTypeT = decltype(iF(std::declval())); + using ReturnTypeT = decltype(iF(std::declval(), std::declval())); TypeID returnType(typeid(ReturnTypeT)); TransformerBase::registerTransformImp( *this, EDPutToken(iToken), returnType, std::move(productInstance), - [f = std::move(iF)](std::any const& iGotProduct) { + [f = std::move(iF)](edm::StreamID id, std::any const& iGotProduct) { auto pGotProduct = std::any_cast(iGotProduct); return std::make_unique>( - WrapperBase::Emplace{}, f(*static_cast const*>(pGotProduct)->product())); + WrapperBase::Emplace{}, f(id, *static_cast const*>(pGotProduct)->product())); }); } @@ -481,20 +481,21 @@ namespace edm { P iPre, F iF, std::string productInstance = std::string()) { - using CacheTypeT = decltype(iPre(std::declval(), WaitingTaskWithArenaHolder())); - using ReturnTypeT = decltype(iF(std::declval())); + using CacheTypeT = decltype(iPre(std::declval(), std::declval(), WaitingTaskWithArenaHolder())); + using ReturnTypeT = decltype(iF(std::declval(), std::declval())); TypeID returnType(typeid(ReturnTypeT)); TransformerBase::registerTransformAsyncImp( *this, EDPutToken(iToken), returnType, std::move(productInstance), - [p = std::move(iPre)](edm::WrapperBase const& iGotProduct, WaitingTaskWithArenaHolder iHolder) { - return std::any(p(*static_cast const&>(iGotProduct).product(), std::move(iHolder))); + [p = std::move(iPre)]( + edm::StreamID id, edm::WrapperBase const& iGotProduct, WaitingTaskWithArenaHolder iHolder) { + return std::any(p(id, *static_cast const&>(iGotProduct).product(), std::move(iHolder))); }, - [f = std::move(iF)](std::any const& iCache) { + [f = std::move(iF)](edm::StreamID id, std::any const& iCache) { auto cache = std::any_cast(iCache); - return std::make_unique>(WrapperBase::Emplace{}, f(cache)); + return std::make_unique>(WrapperBase::Emplace{}, f(id, cache)); }); } diff --git a/FWCore/Framework/interface/one/implementors.h b/FWCore/Framework/interface/one/implementors.h index 503f0682e20b4..c907636c8ef03 100644 --- a/FWCore/Framework/interface/one/implementors.h +++ b/FWCore/Framework/interface/one/implementors.h @@ -354,17 +354,18 @@ namespace edm { template void registerTransform(edm::EDPutTokenT iToken, F iF, std::string productInstance = std::string()) { - using ReturnTypeT = decltype(iF(std::declval())); + using ReturnTypeT = decltype(iF(std::declval(), std::declval())); TypeID returnType(typeid(ReturnTypeT)); - TransformerBase::registerTransformImp(*this, - EDPutToken(iToken), - returnType, - std::move(productInstance), - [f = std::move(iF)](edm::WrapperBase const& iGotProduct) { - return std::make_unique>( - WrapperBase::Emplace{}, - f(*static_cast const&>(iGotProduct).product())); - }); + TransformerBase::registerTransformImp( + *this, + EDPutToken(iToken), + returnType, + std::move(productInstance), + [f = std::move(iF)](edm::StreamID id, std::any const& iGotProduct) { + auto pGotProduct = std::any_cast(iGotProduct); + return std::make_unique>( + WrapperBase::Emplace{}, f(id, *static_cast const*>(pGotProduct)->product())); + }); } template @@ -372,20 +373,22 @@ namespace edm { P iPre, F iF, std::string productInstance = std::string()) { - using CacheTypeT = decltype(iPre(std::declval(), WaitingTaskWithArenaHolder())); - using ReturnTypeT = decltype(iF(std::declval())); + using CacheTypeT = + decltype(iPre(std::declval(), std::declval(), WaitingTaskWithArenaHolder())); + using ReturnTypeT = decltype(iF(std::declval(), std::declval())); TypeID returnType(typeid(ReturnTypeT)); TransformerBase::registerTransformAsyncImp( *this, EDPutToken(iToken), returnType, std::move(productInstance), - [p = std::move(iPre)](edm::WrapperBase const& iGotProduct, WaitingTaskWithArenaHolder iHolder) { - return std::any(p(*static_cast const&>(iGotProduct).product(), std::move(iHolder))); + [p = std::move(iPre)]( + edm::StreamID id, edm::WrapperBase const& iGotProduct, WaitingTaskWithArenaHolder iHolder) { + return std::any(p(id, *static_cast const&>(iGotProduct).product(), std::move(iHolder))); }, - [f = std::move(iF)](std::any const& iCache) { + [f = std::move(iF)](edm::StreamID id, std::any const& iCache) { auto cache = std::any_cast(iCache); - return std::make_unique>(WrapperBase::Emplace{}, f(cache)); + return std::make_unique>(WrapperBase::Emplace{}, f(id, cache)); }); } diff --git a/FWCore/Framework/interface/stream/implementors.h b/FWCore/Framework/interface/stream/implementors.h index b6b557e0ff56e..0adff76076c8c 100644 --- a/FWCore/Framework/interface/stream/implementors.h +++ b/FWCore/Framework/interface/stream/implementors.h @@ -328,17 +328,17 @@ namespace edm { template void registerTransform(edm::EDPutTokenT iToken, F iF, std::string productInstance = std::string()) { - using ReturnTypeT = decltype(iF(std::declval())); + using ReturnTypeT = decltype(iF(std::declval(), std::declval())); TypeID returnType(typeid(ReturnTypeT)); TransformerBase::registerTransformImp( *this, EDPutToken(iToken), returnType, std::move(productInstance), - [f = std::move(iF)](std::any const& iGotProduct) { + [f = std::move(iF)](edm::StreamID id, std::any const& iGotProduct) { auto pGotProduct = std::any_cast(iGotProduct); return std::make_unique>( - WrapperBase::Emplace{}, f(*static_cast const*>(pGotProduct)->product())); + WrapperBase::Emplace{}, f(id, *static_cast const*>(pGotProduct)->product())); }); } @@ -347,20 +347,22 @@ namespace edm { P iPre, F iF, std::string productInstance = std::string()) { - using CacheTypeT = decltype(iPre(std::declval(), WaitingTaskWithArenaHolder())); - using ReturnTypeT = decltype(iF(std::declval())); + using CacheTypeT = + decltype(iPre(std::declval(), std::declval(), WaitingTaskWithArenaHolder())); + using ReturnTypeT = decltype(iF(std::declval(), std::declval())); TypeID returnType(typeid(ReturnTypeT)); TransformerBase::registerTransformAsyncImp( *this, EDPutToken(iToken), returnType, std::move(productInstance), - [p = std::move(iPre)](edm::WrapperBase const& iGotProduct, WaitingTaskWithArenaHolder iHolder) { - return std::any(p(*static_cast const&>(iGotProduct).product(), std::move(iHolder))); + [p = std::move(iPre)]( + edm::StreamID id, edm::WrapperBase const& iGotProduct, WaitingTaskWithArenaHolder iHolder) { + return std::any(p(id, *static_cast const&>(iGotProduct).product(), std::move(iHolder))); }, - [f = std::move(iF)](std::any const& iCache) { + [f = std::move(iF)](edm::StreamID id, std::any const& iCache) { auto cache = std::any_cast(iCache); - return std::make_unique>(WrapperBase::Emplace{}, f(cache)); + return std::make_unique>(WrapperBase::Emplace{}, f(id, cache)); }); } diff --git a/FWCore/Framework/src/TransformerBase.cc b/FWCore/Framework/src/TransformerBase.cc index b091b968f3ac0..c5cfe9244bbe8 100644 --- a/FWCore/Framework/src/TransformerBase.cc +++ b/FWCore/Framework/src/TransformerBase.cc @@ -9,6 +9,8 @@ #include "FWCore/ServiceRegistry/interface/ActivityRegistry.h" #include "FWCore/ServiceRegistry/interface/ModuleCallingContext.h" +#include "FWCore/ServiceRegistry/interface/StreamContext.h" + #include namespace { @@ -116,7 +118,8 @@ namespace edm { std::optional(iIndex), transformInfo_.get(iIndex)))> handle; //transform acquiring signal - TransformAcquiringSignalSentry sentry(iAct, *mcc.getStreamContext(), mcc); + auto const& streamContext = *mcc.getStreamContext(); + TransformAcquiringSignalSentry sentry(iAct, streamContext, mcc); CMS_SA_ALLOW try { handle = iEvent.get(transformInfo_.get(iIndex), transformInfo_.get(iIndex)); } catch (...) { @@ -133,15 +136,16 @@ namespace edm { } else { //transform signal auto mcc = iEvent.moduleCallingContext(); - TransformSignalSentry sentry(iAct, *mcc.getStreamContext(), mcc); + auto const& streamContext = *mcc.getStreamContext(); + TransformSignalSentry sentry(iAct, streamContext, mcc); iEvent.put(iBase.putTokenIndexToProductResolverIndex()[transformInfo_.get(iIndex).index()], - transformInfo_.get(iIndex)(std::move(*cache)), + transformInfo_.get(iIndex)(streamContext.streamID(), std::move(*cache)), handle); } }); WaitingTaskWithArenaHolder wta(*iHolder.group(), nextTask); CMS_SA_ALLOW try { - *cache = transformInfo_.get(iIndex)(*(handle->wrapper()), wta); + *cache = transformInfo_.get(iIndex)(streamContext.streamID(), *(handle->wrapper()), wta); } catch (...) { wta.doneWaiting(std::current_exception()); } @@ -153,9 +157,10 @@ namespace edm { if (handle.wrapper()) { std::any v = handle.wrapper(); //transform signal - TransformSignalSentry sentry(iAct, *mcc.getStreamContext(), mcc); + auto const& streamContext = *mcc.getStreamContext(); + TransformSignalSentry sentry(iAct, streamContext, mcc); iEvent.put(iBase.putTokenIndexToProductResolverIndex()[transformInfo_.get(iIndex).index()], - transformInfo_.get(iIndex)(std::move(v)), + transformInfo_.get(iIndex)(streamContext.streamID(), std::move(v)), handle); } } catch (...) { diff --git a/FWCore/Framework/test/global_filter_t.cppunit.cc b/FWCore/Framework/test/global_filter_t.cppunit.cc index 9e92a7f9f8cb3..af85e7fc9fc5e 100644 --- a/FWCore/Framework/test/global_filter_t.cppunit.cc +++ b/FWCore/Framework/test/global_filter_t.cppunit.cc @@ -357,7 +357,7 @@ class testGlobalFilter : public CppUnit::TestFixture { public: TransformProd(edm::ParameterSet const&) { token_ = produces(); - registerTransform(token_, [](float iV) { return int(iV); }); + registerTransform(token_, [](edm::StreamID, float iV) { return int(iV); }); } bool filter(edm::StreamID, edm::Event& iEvent, edm::EventSetup const&) const { @@ -380,8 +380,8 @@ class testGlobalFilter : public CppUnit::TestFixture { token_ = produces(); registerTransformAsync( token_, - [](float iV, edm::WaitingTaskWithArenaHolder iHolder) { return IntHolder(iV); }, - [](IntHolder iWaitValue) { return iWaitValue.value_; }); + [](edm::StreamID, float iV, edm::WaitingTaskWithArenaHolder iHolder) { return IntHolder(iV); }, + [](edm::StreamID, IntHolder iWaitValue) { return iWaitValue.value_; }); } bool filter(edm::StreamID, edm::Event& iEvent, edm::EventSetup const&) const { diff --git a/FWCore/Framework/test/global_producer_t.cppunit.cc b/FWCore/Framework/test/global_producer_t.cppunit.cc index efb8158bc4315..3dbcfa6b3384f 100644 --- a/FWCore/Framework/test/global_producer_t.cppunit.cc +++ b/FWCore/Framework/test/global_producer_t.cppunit.cc @@ -325,7 +325,7 @@ class testGlobalProducer : public CppUnit::TestFixture { public: TransformProd(edm::ParameterSet const&) { token_ = produces(); - registerTransform(token_, [](float iV) { return int(iV); }); + registerTransform(token_, [](edm::StreamID, float iV) { return int(iV); }); } void produce(edm::StreamID, edm::Event& iEvent, edm::EventSetup const&) const { @@ -347,8 +347,8 @@ class testGlobalProducer : public CppUnit::TestFixture { token_ = produces(); registerTransformAsync( token_, - [](float iV, edm::WaitingTaskWithArenaHolder iHolder) { return IntHolder(iV); }, - [](IntHolder iWaitValue) { return iWaitValue.value_; }); + [](edm::StreamID, float iV, edm::WaitingTaskWithArenaHolder iHolder) { return IntHolder(iV); }, + [](edm::StreamID, IntHolder iWaitValue) { return iWaitValue.value_; }); } void produce(edm::StreamID, edm::Event& iEvent, edm::EventSetup const&) const { diff --git a/FWCore/Framework/test/limited_filter_t.cppunit.cc b/FWCore/Framework/test/limited_filter_t.cppunit.cc index 6df1b73e45204..e811b54cab5d9 100644 --- a/FWCore/Framework/test/limited_filter_t.cppunit.cc +++ b/FWCore/Framework/test/limited_filter_t.cppunit.cc @@ -391,7 +391,7 @@ class testLimitedFilter : public CppUnit::TestFixture { TransformProd(edm::ParameterSet const&) : edm::limited::EDFilterBase(s_pset), edm::limited::EDFilter(s_pset) { token_ = produces(); - registerTransform(token_, [](float iV) { return int(iV); }); + registerTransform(token_, [](edm::StreamID, float iV) { return int(iV); }); } bool filter(edm::StreamID, edm::Event& iEvent, edm::EventSetup const&) const { diff --git a/FWCore/Framework/test/limited_producer_t.cppunit.cc b/FWCore/Framework/test/limited_producer_t.cppunit.cc index c882d73340d87..86472f4effda9 100644 --- a/FWCore/Framework/test/limited_producer_t.cppunit.cc +++ b/FWCore/Framework/test/limited_producer_t.cppunit.cc @@ -357,7 +357,7 @@ class testLimitedProducer : public CppUnit::TestFixture { TransformProd(edm::ParameterSet const&) : edm::limited::EDProducerBase(s_pset), edm::limited::EDProducer(s_pset) { token_ = produces(); - registerTransform(token_, [](float iV) { return int(iV); }); + registerTransform(token_, [](edm::StreamID, float iV) { return int(iV); }); } void produce(edm::StreamID, edm::Event& iEvent, edm::EventSetup const&) const { diff --git a/FWCore/Framework/test/stream_producer_t.cppunit.cc b/FWCore/Framework/test/stream_producer_t.cppunit.cc index 8a2df1770abc4..a34ed3279f558 100644 --- a/FWCore/Framework/test/stream_producer_t.cppunit.cc +++ b/FWCore/Framework/test/stream_producer_t.cppunit.cc @@ -381,7 +381,7 @@ class testStreamProducer : public CppUnit::TestFixture { public: TransformProd(edm::ParameterSet const&) { token_ = produces(); - registerTransform(token_, [](float iV) { return int(iV); }); + registerTransform(token_, [](edm::StreamID, float iV) { return int(iV); }); } void produce(edm::Event& iEvent, edm::EventSetup const&) final { @@ -403,8 +403,8 @@ class testStreamProducer : public CppUnit::TestFixture { token_ = produces(); registerTransformAsync( token_, - [](float iV, edm::WaitingTaskWithArenaHolder iHolder) { return IntHolder(iV); }, - [](IntHolder iWaitValue) { return iWaitValue.value_; }); + [](edm::StreamID, float iV, edm::WaitingTaskWithArenaHolder iHolder) { return IntHolder(iV); }, + [](edm::StreamID, IntHolder iWaitValue) { return iWaitValue.value_; }); } void produce(edm::Event& iEvent, edm::EventSetup const&) final { diff --git a/FWCore/Framework/test/stubs/ToyIntProducers.cc b/FWCore/Framework/test/stubs/ToyIntProducers.cc index 53fb709171be2..4fdaba7c0ec98 100644 --- a/FWCore/Framework/test/stubs/ToyIntProducers.cc +++ b/FWCore/Framework/test/stubs/ToyIntProducers.cc @@ -1001,8 +1001,9 @@ namespace edm::test { public: explicit IntTransformer(edm::ParameterSet const& p) : token_{produces()}, value_(p.getParameter("valueOther")) { - registerTransform(token_, - [](edmtest::ATransientIntProduct const& iV) { return edmtest::IntProduct(iV.value); }); + registerTransform(token_, [](edm::StreamID, edmtest::ATransientIntProduct const& iV) { + return edmtest::IntProduct(iV.value); + }); } void produce(edm::StreamID, edm::Event& e, edm::EventSetup const& c) const final { e.emplace(token_, value_); } diff --git a/FWCore/Integration/plugins/TransformAsyncIntProducer.cc b/FWCore/Integration/plugins/TransformAsyncIntProducer.cc index f239775c49e6d..2137519c4b45b 100644 --- a/FWCore/Integration/plugins/TransformAsyncIntProducer.cc +++ b/FWCore/Integration/plugins/TransformAsyncIntProducer.cc @@ -23,7 +23,7 @@ namespace edmtest { bool check = iPSet.getUntrackedParameter("checkTransformNotCalled"); registerTransformAsync( putToken_, - [offset = transformOffset_, check](auto const& iFrom, auto iTask) { + [offset = transformOffset_, check](edm::StreamID, auto const& iFrom, auto iTask) { if (check) { throw cms::Exception("TransformShouldNotBeCalled"); } @@ -33,7 +33,7 @@ namespace edmtest { ret.value_ = IntProduct(iFrom.value + offset); return ret; }, - [](auto const& iFrom) { + [](edm::StreamID, auto const& iFrom) { iFrom.thread_->join(); return iFrom.value_; }, diff --git a/FWCore/Integration/plugins/TransformAsyncIntStreamProducer.cc b/FWCore/Integration/plugins/TransformAsyncIntStreamProducer.cc index 196c7526a764b..3c0ce428207e9 100644 --- a/FWCore/Integration/plugins/TransformAsyncIntStreamProducer.cc +++ b/FWCore/Integration/plugins/TransformAsyncIntStreamProducer.cc @@ -22,7 +22,7 @@ namespace edmtest { bool check = iPSet.getUntrackedParameter("checkTransformNotCalled"); registerTransformAsync( putToken_, - [offset = transformOffset_, check](auto const& iFrom, auto iTask) { + [offset = transformOffset_, check](edm::StreamID, auto const& iFrom, auto iTask) { if (check) { throw cms::Exception("TransformShouldNotBeCalled"); } @@ -32,7 +32,7 @@ namespace edmtest { ret.value_ = IntProduct(iFrom.value + offset); return ret; }, - [](auto const& iFrom) { + [](edm::StreamID, auto const& iFrom) { iFrom.thread_->join(); return iFrom.value_; }, diff --git a/FWCore/Integration/plugins/TransformIntProducer.cc b/FWCore/Integration/plugins/TransformIntProducer.cc index 29afc7e81d9e5..3aac6f5717389 100644 --- a/FWCore/Integration/plugins/TransformIntProducer.cc +++ b/FWCore/Integration/plugins/TransformIntProducer.cc @@ -16,7 +16,7 @@ namespace edmtest { bool check = iPSet.getUntrackedParameter("checkTransformNotCalled"); registerTransform( putToken_, - [offset = transformOffset_, check](auto const& iFrom) { + [offset = transformOffset_, check](edm::StreamID, auto const& iFrom) { if (check) { throw cms::Exception("TransformShouldNotBeCalled"); } diff --git a/FWCore/Integration/plugins/TransformIntStreamProducer.cc b/FWCore/Integration/plugins/TransformIntStreamProducer.cc index 212287a35bebe..8262525739d42 100644 --- a/FWCore/Integration/plugins/TransformIntStreamProducer.cc +++ b/FWCore/Integration/plugins/TransformIntStreamProducer.cc @@ -15,7 +15,7 @@ namespace edmtest { bool check = iPSet.getUntrackedParameter("checkTransformNotCalled"); registerTransform( putToken_, - [offset = transformOffset_, check](auto const& iFrom) { + [offset = transformOffset_, check](edm::StreamID, auto const& iFrom) { if (check) { throw cms::Exception("TransformShouldNotBeCalled"); } diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h index a770397765b6f..4bf5cf065096a 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h @@ -96,7 +96,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { using CopyT = cms::alpakatools::CopyToHost; this->registerTransformAsync( token, - [](TToken const& deviceProduct, edm::WaitingTaskWithArenaHolder holder) { + [](edm::StreamID, TToken const& deviceProduct, edm::WaitingTaskWithArenaHolder holder) { auto const& device = alpaka::getDev(deviceProduct.template metadata().queue()); detail::EDMetadataAcquireSentry sentry(device, std::move(holder)); auto metadataPtr = sentry.metadata(); @@ -112,7 +112,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // Wrap possibly move-only type into a copyable type return std::make_shared(std::move(productOnHost), sentry.finish()); }, - [](auto tplPtr) { + [](edm::StreamID, auto tplPtr) { auto& productOnHost = std::get<0>(*tplPtr); if constexpr (requires { CopyT::postCopy(productOnHost); }) { CopyT::postCopy(productOnHost); From 562c81d3b185868fb5f8f5dec76efa928391df0f Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Fri, 3 Jan 2025 23:01:47 +0100 Subject: [PATCH 383/418] Remove commented-out putenv() calls from SiPixelFedCablingMapWriter --- .../SiPixelConnectivity/test/SiPixelFedCablingMapWriter.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/CalibTracker/SiPixelConnectivity/test/SiPixelFedCablingMapWriter.cc b/CalibTracker/SiPixelConnectivity/test/SiPixelFedCablingMapWriter.cc index 4a6a24069da4a..5d15997c0c7a6 100644 --- a/CalibTracker/SiPixelConnectivity/test/SiPixelFedCablingMapWriter.cc +++ b/CalibTracker/SiPixelConnectivity/test/SiPixelFedCablingMapWriter.cc @@ -45,9 +45,6 @@ SiPixelFedCablingMapWriter::SiPixelFedCablingMapWriter(const edm::ParameterSet& out << " input file name " << fileName_ << endl; //out << " phase " << phase1_ << endl; LogInfo("initialisation: ") << out.str(); - - //::putenv(const_cast(std::string("CORAL_AUTH_USER=me").c_str())); - //::putenv(const_cast(std::string("CORAL_AUTH_PASSWORD=none").c_str())); } SiPixelFedCablingMapWriter::~SiPixelFedCablingMapWriter() = default; From b24a430cc8a8ef0b9c64e33f68e5b88714bc854b Mon Sep 17 00:00:00 2001 From: Sunanda Date: Sat, 4 Jan 2025 11:09:08 +0100 Subject: [PATCH 384/418] Update to the macros to study forwar-backward asymmetry in the correctin factors --- .../HcalCalibAlgos/macros/CalibFitPlots.C | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C index 04829e1b086f4..8f84d94a3e42a 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C +++ b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C @@ -77,8 +77,8 @@ // // For plotting (fractional) asymmetry in the correction factors // -// PlotHistCorrAsymmetry(infile, text, prefixF, iformat, save); -// Defaults: prefixF="", iformat=0, save=0 +// PlotHistCorrAsymmetry(infile, text, prefixF, depth, iformat, save); +// Defaults: prefixF="", depth = -1, iformat=0, save=0 // // For plotting correction factors from upto 5 different runs // on the same canvas @@ -2472,7 +2472,7 @@ void PlotHistCorrFactor(char* infile, } } -void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = "", int iformat = 0, int save = 0) { +void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = "", int depth = -1, int iformat = 0, int save = 0) { std::map cfacs; int etamin(100), etamax(-100), maxdepth(0); double scale(1.0); @@ -2492,21 +2492,23 @@ void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = std::vector entries; char name[100]; double dy(0); - for (int j = 0; j < maxdepth; ++j) { - sprintf(name, "hd%d", j + 1); + int maxd = (depth < 0) ? maxdepth : 1; + for (int j = 0; j < maxd; ++j) { + int dep = (depth < 0) ? (j + 1) : depth; + sprintf(name, "hd%d", dep); TObject* ob = gROOT->FindObject(name); if (ob) ob->Delete(); TH1D* h = new TH1D(name, name, nbin, 0, etamax); int nent(0); for (std::map::const_iterator itr = cfacs.begin(); itr != cfacs.end(); ++itr) { - if ((itr->second).depth == j + 1) { + if ((itr->second).depth == dep) { int ieta = (itr->second).ieta; float vl1 = (itr->second).corrf; float dv1 = (itr->second).dcorr; if (ieta > 0) { for (std::map::const_iterator ktr = cfacs.begin(); ktr != cfacs.end(); ++ktr) { - if (((ktr->second).depth == j + 1) && ((ktr->second).ieta == -ieta)) { + if (((ktr->second).depth == dep) && ((ktr->second).ieta == -ieta)) { float vl2 = (ktr->second).corrf; float dv2 = (ktr->second).dcorr; float val = 2.0 * (vl1 - vl2) / (vl1 + vl2); @@ -2520,9 +2522,9 @@ void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = } } } - h->SetLineColor(colors[j]); - h->SetMarkerColor(colors[j]); - h->SetMarkerStyle(mtype[j]); + h->SetLineColor(colors[dep - 1]); + h->SetMarkerColor(colors[dep - 1]); + h->SetMarkerStyle(mtype[dep - 1]); h->GetXaxis()->SetTitle("i#eta"); h->GetYaxis()->SetTitle("Asymmetry in Correction Factor"); h->GetYaxis()->SetLabelOffset(0.005); @@ -2532,7 +2534,10 @@ void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = entries.push_back(nent); dy += 0.025; } - sprintf(name, "c_%sCorrAsymmetry", prefixF.c_str()); + if (depth < 0) + sprintf(name, "c_%sCorrAsymmetry", prefixF.c_str()); + else + sprintf(name, "c_%sCorrAsymmetryD%d", prefixF.c_str(), depth); TCanvas* pad = new TCanvas(name, name, 700, 500); pad->SetRightMargin(0.10); pad->SetTopMargin(0.10); @@ -2541,12 +2546,13 @@ void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = TLegend* legend = new TLegend(0.60, yl, 0.90, yl + 0.035 * hists.size()); legend->SetFillColor(kWhite); for (unsigned int k = 0; k < hists.size(); ++k) { + int dep = (depth < 0) ? (k + 1) : depth; if (k == 0) hists[k]->Draw(""); else hists[k]->Draw("sames"); pad->Update(); - sprintf(name, "Depth %d (%s)", k + 1, text.c_str()); + sprintf(name, "Depth %d (%s)", dep, text.c_str()); legend->AddEntry(hists[k], name, "lp"); } legend->Draw("same"); From 0b91d5b1a559236f645a8d03b1f42ea4ef39bc7e Mon Sep 17 00:00:00 2001 From: Sunanda Date: Sat, 4 Jan 2025 11:36:09 +0100 Subject: [PATCH 385/418] Code check --- Calibration/HcalCalibAlgos/macros/CalibFitPlots.C | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C index 8f84d94a3e42a..6c5e6f278ce4a 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C +++ b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C @@ -2472,7 +2472,8 @@ void PlotHistCorrFactor(char* infile, } } -void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = "", int depth = -1, int iformat = 0, int save = 0) { +void PlotHistCorrAsymmetry( + char* infile, std::string text, std::string prefixF = "", int depth = -1, int iformat = 0, int save = 0) { std::map cfacs; int etamin(100), etamax(-100), maxdepth(0); double scale(1.0); @@ -2494,7 +2495,7 @@ void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = double dy(0); int maxd = (depth < 0) ? maxdepth : 1; for (int j = 0; j < maxd; ++j) { - int dep = (depth < 0) ? (j + 1) : depth; + int dep = (depth < 0) ? (j + 1) : depth; sprintf(name, "hd%d", dep); TObject* ob = gROOT->FindObject(name); if (ob) @@ -2546,7 +2547,7 @@ void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = TLegend* legend = new TLegend(0.60, yl, 0.90, yl + 0.035 * hists.size()); legend->SetFillColor(kWhite); for (unsigned int k = 0; k < hists.size(); ++k) { - int dep = (depth < 0) ? (k + 1) : depth; + int dep = (depth < 0) ? (k + 1) : depth; if (k == 0) hists[k]->Draw(""); else From 73a3e58eebda44fb20fb6d644ca2173028773d61 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Mon, 6 Jan 2025 02:46:51 +0100 Subject: [PATCH 386/418] Fix as suggested by Andrea --- Calibration/HcalCalibAlgos/macros/CalibFitPlots.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C index 6c5e6f278ce4a..f1062d44c974e 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C +++ b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C @@ -2495,7 +2495,7 @@ void PlotHistCorrAsymmetry( double dy(0); int maxd = (depth < 0) ? maxdepth : 1; for (int j = 0; j < maxd; ++j) { - int dep = (depth < 0) ? (j + 1) : depth; + int dep = (depth <= 0) ? (j + 1) : depth; sprintf(name, "hd%d", dep); TObject* ob = gROOT->FindObject(name); if (ob) From 793e61553d003963861c3253192062b64d40d364 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 6 Jan 2025 12:23:16 +0100 Subject: [PATCH 387/418] Fix compilation issue with gcc13. --- CondFormats/EcalObjects/interface/EcalRecHitParameters.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CondFormats/EcalObjects/interface/EcalRecHitParameters.h b/CondFormats/EcalObjects/interface/EcalRecHitParameters.h index 1939f10643153..84f233c1b5a32 100644 --- a/CondFormats/EcalObjects/interface/EcalRecHitParameters.h +++ b/CondFormats/EcalObjects/interface/EcalRecHitParameters.h @@ -1,12 +1,13 @@ #ifndef CondFormats_EcalObjects_EcalRecHitParameters_h #define CondFormats_EcalObjects_EcalRecHitParameters_h -#include #include +#include +#include constexpr size_t kNEcalChannelStatusCodes = 16; // The HW supports 16 channel status codes using RecoFlagBitsArray = - std::array; // associate recoFlagBits to all channel status codes + std::array; // associate recoFlagBits to all channel status codes struct EcalRecHitParameters { RecoFlagBitsArray recoFlagBits; From a27feb25bee0bd952176deb72c274895b44a8ddd Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 3 Jan 2025 15:31:55 +0100 Subject: [PATCH 388/418] add fillDescriptions to TrackWithVertexSelector --- .../interface/RecoTrackSelectorBase.h | 38 +++++++++++++++---- .../interface/TrackFullCloneSelectorBase.h | 30 +++++++++------ .../interface/TrackWithVertexSelector.h | 38 ++++++++++--------- .../RecoAlgos/src/TrackWithVertexSelector.cc | 24 ++++++++++++ 4 files changed, 95 insertions(+), 35 deletions(-) diff --git a/CommonTools/RecoAlgos/interface/RecoTrackSelectorBase.h b/CommonTools/RecoAlgos/interface/RecoTrackSelectorBase.h index 62293872835b0..4bfad1f2cea64 100644 --- a/CommonTools/RecoAlgos/interface/RecoTrackSelectorBase.h +++ b/CommonTools/RecoAlgos/interface/RecoTrackSelectorBase.h @@ -1,17 +1,18 @@ #ifndef CommonTools_RecoAlgos_RecoTrackSelectorBase_h #define CommonTools_RecoAlgos_RecoTrackSelectorBase_h -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" - +#include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/Math/interface/deltaPhi.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" -#include "DataFormats/Math/interface/deltaPhi.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" class RecoTrackSelectorBase { public: @@ -79,6 +80,29 @@ class RecoTrackSelectorBase { vertex_ = (*hVtx)[0].position(); } + static void fillPSetDescription(edm::ParameterSetDescription& desc) { + desc.add("invertRapidityCut", false); + desc.add("usePV", false); + desc.add("lip", 300.0); + desc.add("maxChi2", 10000.0); + desc.add("maxPhi", -3.2); + desc.add("maxRapidity", 5.0); + desc.add("minPhi", 3.2); + desc.add("minRapidity", -5.0); + desc.add("ptMin", 0.1); + desc.add("tip", 120.0); + desc.add("beamSpot", edm::InputTag("offlineBeamSpot")); + desc.add("vertexTag", edm::InputTag("offlinePrimaryVertices")); + desc.add("min3DLayer", 0); + desc.add("minHit", 0); + desc.add("minLayer", 3); + desc.add("minPixelHit", 0); + desc.add >("algorithm", {}); + desc.add >("algorithmMaskContains", {}); + desc.add >("originalAlgorithm", {}); + desc.add >("quality", {}); + } + bool operator()(const reco::TrackRef& tref) const { return (*this)(*tref); } bool operator()(const reco::Track& t) const { return (*this)(t, vertex_); } diff --git a/CommonTools/RecoAlgos/interface/TrackFullCloneSelectorBase.h b/CommonTools/RecoAlgos/interface/TrackFullCloneSelectorBase.h index df57569202403..f1ffb3bd6b61a 100644 --- a/CommonTools/RecoAlgos/interface/TrackFullCloneSelectorBase.h +++ b/CommonTools/RecoAlgos/interface/TrackFullCloneSelectorBase.h @@ -12,24 +12,24 @@ * */ -#include - -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" #include #include #include #include #include -#include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackExtra.h" -#include "TrackingTools/PatternTools/interface/Trajectory.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" +#include "TrackingTools/PatternTools/interface/Trajectory.h" namespace reco { namespace modules { @@ -57,7 +57,16 @@ namespace reco { } } /// destructor - ~TrackFullCloneSelectorBase() override {} + ~TrackFullCloneSelectorBase() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("src", edm::InputTag("generalTracks")); + desc.addUntracked("copyExtras", false); + desc.addUntracked("copyTrajectories", false); + Selector::fillPSetDescription(desc); + descriptions.addWithDefaultLabel(desc); + } private: /// process one event @@ -173,7 +182,6 @@ namespace reco { std::unique_ptr > selTrajs_; std::unique_ptr selTTAss_; }; - } // namespace modules } // namespace reco #endif diff --git a/CommonTools/RecoAlgos/interface/TrackWithVertexSelector.h b/CommonTools/RecoAlgos/interface/TrackWithVertexSelector.h index 91ad0ae60c783..0677d24119f20 100644 --- a/CommonTools/RecoAlgos/interface/TrackWithVertexSelector.h +++ b/CommonTools/RecoAlgos/interface/TrackWithVertexSelector.h @@ -5,14 +5,16 @@ // Created: Fri May 25 10:06:02 CEST 2007 // $Id: TrackWithVertexSelector.h,v 1.4 2010/04/07 08:56:18 gpetrucc Exp $ -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" #include "DataFormats/Common/interface/ValueMap.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" class TrackWithVertexSelector { public: @@ -21,6 +23,8 @@ class TrackWithVertexSelector { explicit TrackWithVertexSelector(const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC); ~TrackWithVertexSelector(); + static void fillPSetDescription(edm::ParameterSetDescription &desc); + void init(const edm::Event &event, const edm::EventSetup &) { init(event); } void init(const edm::Event &event); @@ -42,20 +46,20 @@ class TrackWithVertexSelector { bool testVertices(const reco::TrackRef &t, const reco::VertexCollection &vtxs) const; private: - uint32_t numberOfValidHits_; - uint32_t numberOfValidPixelHits_; - uint32_t numberOfLostHits_; - double normalizedChi2_; - double ptMin_, ptMax_, etaMin_, etaMax_; - double dzMax_, d0Max_; - double ptErrorCut_; - std::string quality_; + const uint32_t numberOfValidHits_; + const uint32_t numberOfValidPixelHits_; + const uint32_t numberOfLostHits_; + const double normalizedChi2_; + const double ptMin_, ptMax_, etaMin_, etaMax_; + const double dzMax_, d0Max_; + const double ptErrorCut_; + const std::string quality_; - uint32_t nVertices_; - edm::EDGetTokenT vertexToken_; - edm::EDGetTokenT > timesToken_, timeResosToken_; - bool vtxFallback_; - double zetaVtx_, rhoVtx_, nSigmaDtVertex_; + const uint32_t nVertices_; + const edm::EDGetTokenT vertexToken_; + const edm::EDGetTokenT > timesToken_, timeResosToken_; + const bool vtxFallback_; + const double zetaVtx_, rhoVtx_, nSigmaDtVertex_; reco::VertexCollection const *vcoll_ = nullptr; edm::ValueMap const *timescoll_ = nullptr; diff --git a/CommonTools/RecoAlgos/src/TrackWithVertexSelector.cc b/CommonTools/RecoAlgos/src/TrackWithVertexSelector.cc index 52befeeed3bd8..120fcd95a4bda 100644 --- a/CommonTools/RecoAlgos/src/TrackWithVertexSelector.cc +++ b/CommonTools/RecoAlgos/src/TrackWithVertexSelector.cc @@ -128,3 +128,27 @@ bool TrackWithVertexSelector::operator()(const reco::TrackRef &tref) const { return true; return testVertices(tref, *vcoll_); } + +void TrackWithVertexSelector::fillPSetDescription(edm::ParameterSetDescription &desc) { + desc.add("numberOfValidHits", 0); + desc.add("numberOfValidPixelHits", 0); + desc.add("numberOfLostHits", 999)->setComment("at most 999 lost hits"); + desc.add("normalizedChi2", 999999.); + desc.add("ptMin", 0.3)->setComment("in GeV"); + desc.add("ptMax", 500.0)->setComment("in GeV"); + desc.add("etaMin", 0.0); + desc.add("etaMax", 50.0); + desc.add("dzMax", 999.)->setComment("in cm"); + desc.add("d0Max", 999.)->setComment("in cm"); + desc.add("ptErrorCut", 0.2)->setComment("[pTError/pT]*max(1,normChi2) <= ptErrorCut"); + desc.add("quality", "highPurity")->setComment(" quality cut as defined in reco::TrackBase"); + desc.add("useVtx", true)->setComment("compatibility with a vertex"); + desc.add("nVertices", 0)->setComment(" how many vertices to look at before dropping the track"); + desc.add("vertexTag", edm::InputTag("offlinePrimaryVertices")); + desc.add("timesTag", edm::InputTag("")); + desc.add("timeResosTag", edm::InputTag("")); + desc.add("vtxFallback", true)->setComment("falback to beam spot if there are no vertices"); + desc.add("zetaVtx", 1.0); + desc.add("rhoVtx", 0.2)->setComment("tags used by b-tagging folks"); + desc.add("nSigmaDtVertex", 0); +} From 05be0e12135111b89252c7dc34bdd9a125ca32f9 Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 3 Jan 2025 16:40:08 +0100 Subject: [PATCH 389/418] add fillDescriptions to JetTracksAssociatorAtVertex --- .../src/JetTracksAssociatorAtVertex.cc | 22 ++++++++++++------- .../src/JetTracksAssociatorAtVertex.h | 21 +++++++++--------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/RecoJets/JetAssociationProducers/src/JetTracksAssociatorAtVertex.cc b/RecoJets/JetAssociationProducers/src/JetTracksAssociatorAtVertex.cc index 96792a2059b32..b9d428a31bcee 100644 --- a/RecoJets/JetAssociationProducers/src/JetTracksAssociatorAtVertex.cc +++ b/RecoJets/JetAssociationProducers/src/JetTracksAssociatorAtVertex.cc @@ -16,21 +16,27 @@ #include "JetTracksAssociatorAtVertex.h" JetTracksAssociatorAtVertex::JetTracksAssociatorAtVertex(const edm::ParameterSet& fConfig) - : mAssociator(fConfig.getParameter("coneSize")), + : mJets{consumes >(fConfig.getParameter("jets"))}, + mTracks{consumes(fConfig.getParameter("tracks"))}, + mAssociator(fConfig.getParameter("coneSize")), mAssociatorAssigned(fConfig.getParameter("coneSize")), - useAssigned(false), + useAssigned(fConfig.getParameter("useAssigned")), pvSrc() { - mJets = consumes >(fConfig.getParameter("jets")); - mTracks = consumes(fConfig.getParameter("tracks")); - if (fConfig.exists("useAssigned")) { - useAssigned = fConfig.getParameter("useAssigned"); + if (useAssigned) { pvSrc = consumes(fConfig.getParameter("pvSrc")); } - produces(); } -JetTracksAssociatorAtVertex::~JetTracksAssociatorAtVertex() {} +void JetTracksAssociatorAtVertex::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("jets", edm::InputTag("")); + desc.add("tracks", edm::InputTag("generalTracks")); + desc.add("coneSize", 0.4); + desc.add("useAssigned", false); + desc.add("pvSrc", edm::InputTag("offlinePrimaryVertices")); + descriptions.addWithDefaultLabel(desc); +} void JetTracksAssociatorAtVertex::produce(edm::Event& fEvent, const edm::EventSetup& fSetup) { edm::Handle > jets_h; diff --git a/RecoJets/JetAssociationProducers/src/JetTracksAssociatorAtVertex.h b/RecoJets/JetAssociationProducers/src/JetTracksAssociatorAtVertex.h index f88dc2da108db..fcc984270ec87 100644 --- a/RecoJets/JetAssociationProducers/src/JetTracksAssociatorAtVertex.h +++ b/RecoJets/JetAssociationProducers/src/JetTracksAssociatorAtVertex.h @@ -8,29 +8,30 @@ #ifndef JetTracksAssociatorAtVertex_h #define JetTracksAssociatorAtVertex_h -#include "FWCore/Framework/interface/stream/EDProducer.h" #include "DataFormats/Common/interface/EDProductfwd.h" -#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" - +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" #include "RecoJets/JetAssociationAlgorithms/interface/JetTracksAssociationDRVertex.h" #include "RecoJets/JetAssociationAlgorithms/interface/JetTracksAssociationDRVertexAssigned.h" class JetTracksAssociatorAtVertex : public edm::stream::EDProducer<> { public: JetTracksAssociatorAtVertex(const edm::ParameterSet&); - ~JetTracksAssociatorAtVertex() override; + ~JetTracksAssociatorAtVertex() override = default; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); void produce(edm::Event&, const edm::EventSetup&) override; private: - edm::EDGetTokenT> mJets; - edm::EDGetTokenT mTracks; + const edm::EDGetTokenT> mJets; + const edm::EDGetTokenT mTracks; - int mTrackQuality; - JetTracksAssociationDRVertex mAssociator; - JetTracksAssociationDRVertexAssigned mAssociatorAssigned; - bool useAssigned; /// if true, use the track/jet association with vertex assignment to tracks + const JetTracksAssociationDRVertex mAssociator; + const JetTracksAssociationDRVertexAssigned mAssociatorAssigned; + const bool useAssigned; /// if true, use the track/jet association with vertex assignment to tracks edm::EDGetTokenT pvSrc; /// if useAssigned, will read this PV collection. }; From 304ee94df89d565492750c24fa4b997c78be2a13 Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 3 Jan 2025 16:40:42 +0100 Subject: [PATCH 390/418] add fillDescriptions to FixedGridRhoProducerFastjet --- .../plugins/FixedGridRhoProducerFastjet.cc | 43 +++++++++++++++---- .../plugins/FixedGridRhoProducerFastjet.h | 25 ----------- .../python/fixedGridRhoProducerFastjet_cfi.py | 19 +++----- 3 files changed, 39 insertions(+), 48 deletions(-) delete mode 100644 RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.h diff --git a/RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.cc b/RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.cc index 2a18ccd409991..d8f3707231bb7 100644 --- a/RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.cc +++ b/RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.cc @@ -1,21 +1,38 @@ -#include "RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.h" -#include "FWCore/Framework/interface/Event.h" #include "DataFormats/Common/interface/View.h" -#include "FWCore/Framework/interface/MakerMacros.h" #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h" +#include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "fastjet/tools/GridMedianBackgroundEstimator.hh" + +class FixedGridRhoProducerFastjet : public edm::stream::EDProducer<> { +public: + explicit FixedGridRhoProducerFastjet(const edm::ParameterSet& iConfig); + ~FixedGridRhoProducerFastjet() override = default; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void produce(edm::Event&, const edm::EventSetup&) override; + + fastjet::GridMedianBackgroundEstimator bge_; + const edm::InputTag pfCandidatesTag_; + const edm::EDGetTokenT > input_pfcoll_token_; +}; using namespace std; FixedGridRhoProducerFastjet::FixedGridRhoProducerFastjet(const edm::ParameterSet& iConfig) - : bge_(iConfig.getParameter("maxRapidity"), iConfig.getParameter("gridSpacing")) { - pfCandidatesTag_ = iConfig.getParameter("pfCandidatesTag"); + : bge_(iConfig.getParameter("maxRapidity"), iConfig.getParameter("gridSpacing")), + pfCandidatesTag_{iConfig.getParameter("pfCandidatesTag")}, + input_pfcoll_token_{consumes >(pfCandidatesTag_)} { produces(); - - input_pfcoll_token_ = consumes >(pfCandidatesTag_); } -FixedGridRhoProducerFastjet::~FixedGridRhoProducerFastjet() {} - void FixedGridRhoProducerFastjet::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { edm::Handle > pfColl; iEvent.getByToken(input_pfcoll_token_, pfColl); @@ -28,4 +45,12 @@ void FixedGridRhoProducerFastjet::produce(edm::Event& iEvent, const edm::EventSe iEvent.put(std::make_unique(bge_.rho())); } +void FixedGridRhoProducerFastjet::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("maxRapidity", 5.0); + desc.add("gridSpacing", 0.55); + desc.add("pfCandidatesTag", edm::InputTag("")); + descriptions.add("default_FixedGridRhoProducerFastjet", desc); +} + DEFINE_FWK_MODULE(FixedGridRhoProducerFastjet); diff --git a/RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.h b/RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.h deleted file mode 100644 index a28ef9fd2b999..0000000000000 --- a/RecoJets/JetProducers/plugins/FixedGridRhoProducerFastjet.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef RecoJets_JetProducers_plugins_FixedGridRhoProducerFastjet_h -#define RecoJets_JetProducers_plugins_FixedGridRhoProducerFastjet_h - -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h" -#include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h" -#include "fastjet/tools/GridMedianBackgroundEstimator.hh" - -class FixedGridRhoProducerFastjet : public edm::stream::EDProducer<> { -public: - explicit FixedGridRhoProducerFastjet(const edm::ParameterSet& iConfig); - ~FixedGridRhoProducerFastjet() override; - -private: - void produce(edm::Event&, const edm::EventSetup&) override; - - edm::InputTag pfCandidatesTag_; - fastjet::GridMedianBackgroundEstimator bge_; - - edm::EDGetTokenT > input_pfcoll_token_; -}; - -#endif diff --git a/RecoJets/JetProducers/python/fixedGridRhoProducerFastjet_cfi.py b/RecoJets/JetProducers/python/fixedGridRhoProducerFastjet_cfi.py index 984b7d9714c1c..dce3a663e1d57 100644 --- a/RecoJets/JetProducers/python/fixedGridRhoProducerFastjet_cfi.py +++ b/RecoJets/JetProducers/python/fixedGridRhoProducerFastjet_cfi.py @@ -1,19 +1,10 @@ import FWCore.ParameterSet.Config as cms - -fixedGridRhoFastjetAll = cms.EDProducer("FixedGridRhoProducerFastjet", - pfCandidatesTag = cms.InputTag("particleFlow"), - maxRapidity = cms.double(5.0), - gridSpacing = cms.double(0.55) +from RecoJets.JetProducers.default_FixedGridRhoProducerFastjet_cfi import default_FixedGridRhoProducerFastjet +fixedGridRhoFastjetAll = default_FixedGridRhoProducerFastjet.clone( + pfCandidatesTag = "particleFlow" ) - -fixedGridRhoFastjetAllCalo = cms.EDProducer("FixedGridRhoProducerFastjet", - pfCandidatesTag = cms.InputTag("towerMaker"), - maxRapidity = cms.double(5.0), - gridSpacing = cms.double(0.55) +fixedGridRhoFastjetAllCalo = default_FixedGridRhoProducerFastjet.clone( + pfCandidatesTag = "towerMaker" ) - - - - From f259d60c6b6c27f399d571968953e1e87de2ab06 Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 6 Jan 2025 09:39:02 +0100 Subject: [PATCH 391/418] add fillDescriptions to L2MuonCandidateProducer --- .../plugins/L2MuonCandidateProducer.cc | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/RecoMuon/L2MuonProducer/plugins/L2MuonCandidateProducer.cc b/RecoMuon/L2MuonProducer/plugins/L2MuonCandidateProducer.cc index 6e8de309b18be..eca91367b808e 100644 --- a/RecoMuon/L2MuonProducer/plugins/L2MuonCandidateProducer.cc +++ b/RecoMuon/L2MuonProducer/plugins/L2MuonCandidateProducer.cc @@ -26,7 +26,9 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/global/EDProducer.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" class L2MuonCandidateProducer : public edm::global::EDProducer<> { @@ -40,22 +42,31 @@ class L2MuonCandidateProducer : public edm::global::EDProducer<> { /// produce candidates void produce(edm::StreamID sid, edm::Event& event, const edm::EventSetup&) const override; + /// fillDescriptions + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: // StandAlone Collection Label - edm::InputTag theSACollectionLabel; - edm::EDGetTokenT tracksToken; + const edm::InputTag theSACollectionLabel; + const edm::EDGetTokenT tracksToken; }; /// constructor with config -L2MuonCandidateProducer::L2MuonCandidateProducer(const edm::ParameterSet& parameterSet) { +L2MuonCandidateProducer::L2MuonCandidateProducer(const edm::ParameterSet& parameterSet) + : // StandAlone Collection Label + theSACollectionLabel{parameterSet.getParameter("InputObjects")}, + tracksToken{consumes(theSACollectionLabel)} { LogTrace("Muon|RecoMuon|L2MuonCandidateProducer") << " constructor called"; - - // StandAlone Collection Label - theSACollectionLabel = parameterSet.getParameter("InputObjects"); - tracksToken = consumes(theSACollectionLabel); produces(); } +void L2MuonCandidateProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("InputObjects", edm::InputTag("L2Muons", "UpdatedAtVtx")) + ->setComment("Standalone Collection Label"); + descriptions.addWithDefaultLabel(desc); +} + /// destructor L2MuonCandidateProducer::~L2MuonCandidateProducer() { LogTrace("Muon|RecoMuon|L2MuonCandidateProducer") << " L2MuonCandidateProducer destructor called"; From c6b33215960f79250d118478dfb772d7a3043138 Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 6 Jan 2025 10:29:22 +0100 Subject: [PATCH 392/418] add fillDescriptions to L3MuonCandidateProducer --- .../src/L3MuonCandidateProducer.cc | 34 +++++++++++-------- .../src/L3MuonCandidateProducer.h | 12 ++++--- 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/RecoMuon/L3MuonProducer/src/L3MuonCandidateProducer.cc b/RecoMuon/L3MuonProducer/src/L3MuonCandidateProducer.cc index 4fd42ab3e6f67..7d881156e08b8 100644 --- a/RecoMuon/L3MuonProducer/src/L3MuonCandidateProducer.cc +++ b/RecoMuon/L3MuonProducer/src/L3MuonCandidateProducer.cc @@ -41,39 +41,45 @@ static const char category[] = "Muon|RecoMuon|L3MuonCandidateProducer"; /// constructor with config L3MuonCandidateProducer::L3MuonCandidateProducer(const ParameterSet& parameterSet) { - LogTrace(category) << " constructor called"; + LogTrace(category) << "Constructor called"; // StandAlone Collection Label theL3CollectionLabel = parameterSet.getParameter("InputObjects"); trackToken_ = consumes(theL3CollectionLabel); - // use links - theUseLinks = parameterSet.existsAs("InputLinksObjects"); + // Use links + theL3LinksLabel = parameterSet.getParameter("InputLinksObjects"); + theUseLinks = !theL3LinksLabel.label().empty() && theL3LinksLabel.label() != "unused"; if (theUseLinks) { - theL3LinksLabel = parameterSet.getParameter("InputLinksObjects"); linkToken_ = consumes(theL3LinksLabel); - if (theL3LinksLabel.label().empty() or theL3LinksLabel.label() == "unused") - theUseLinks = false; } - // use global, standalone or tracker pT/4-vector assignment - const std::string& muon_track_for_momentum = parameterSet.existsAs("MuonPtOption") - ? parameterSet.getParameter("MuonPtOption") - : "Global"; - if (muon_track_for_momentum == std::string("Tracker")) + // Use global, standalone or tracker pT/4-vector assignment + const std::string& muon_track_for_momentum = parameterSet.getParameter("MuonPtOption"); + if (muon_track_for_momentum == "Tracker") theType = InnerTrack; - else if (muon_track_for_momentum == std::string("Standalone")) + else if (muon_track_for_momentum == "Standalone") theType = OuterTrack; - else if (muon_track_for_momentum == std::string("Global")) + else if (muon_track_for_momentum == "Global") theType = CombinedTrack; else { - LogError(category) << "invalid value for MuonPtOption, please choose among 'Tracker', 'Standalone', 'Global'"; + LogError(category) << "Invalid value for MuonPtOption, please choose among 'Tracker', 'Standalone', 'Global'"; theType = CombinedTrack; } produces(); } +/// fillDescriptions +void L3MuonCandidateProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("InputObjects", edm::InputTag("L3Muons"))->setComment("Input tag for L3 muon tracks"); + desc.add("InputLinksObjects", edm::InputTag("unused"))->setComment("Input tag for track links"); + desc.add("MuonPtOption", "Global") + ->setComment("Option to determine muon momentum: 'Tracker', 'Standalone', or 'Global'"); + descriptions.addWithDefaultLabel(desc); +} + /// destructor L3MuonCandidateProducer::~L3MuonCandidateProducer() { LogTrace(category) << " L3MuonCandidateProducer destructor called"; diff --git a/RecoMuon/L3MuonProducer/src/L3MuonCandidateProducer.h b/RecoMuon/L3MuonProducer/src/L3MuonCandidateProducer.h index c7c1e7801ad84..8732fc9ed1de2 100644 --- a/RecoMuon/L3MuonProducer/src/L3MuonCandidateProducer.h +++ b/RecoMuon/L3MuonProducer/src/L3MuonCandidateProducer.h @@ -18,12 +18,14 @@ * \author J.Alcaraz */ -#include "FWCore/Framework/interface/global/EDProducer.h" -#include "FWCore/Utilities/interface/InputTag.h" +#include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "DataFormats/MuonReco/interface/MuonTrackLinks.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/MuonReco/interface/MuonTrackLinks.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" namespace edm { class ParameterSet; @@ -44,6 +46,8 @@ class L3MuonCandidateProducer : public edm::global::EDProducer<> { /// produce candidates void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: // L3/GLB Collection Label edm::InputTag theL3CollectionLabel; From f046bd8f3970e5d3fd4baaa40db2aa780b05f85c Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 6 Jan 2025 13:06:43 +0100 Subject: [PATCH 393/418] add fillDescriptions to AnalyticalTrackSelector --- .../plugins/AnalyticalTrackSelector.cc | 132 +++++++++++++----- 1 file changed, 96 insertions(+), 36 deletions(-) diff --git a/RecoTracker/FinalTrackSelectors/plugins/AnalyticalTrackSelector.cc b/RecoTracker/FinalTrackSelectors/plugins/AnalyticalTrackSelector.cc index 23ec80416ac60..aedf76cf9066b 100644 --- a/RecoTracker/FinalTrackSelectors/plugins/AnalyticalTrackSelector.cc +++ b/RecoTracker/FinalTrackSelectors/plugins/AnalyticalTrackSelector.cc @@ -13,20 +13,22 @@ #include #include #include -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "CommonTools/Utils/interface/StringCutObjectSelector.h" +#include "DataFormats/BeamSpot/interface/BeamSpot.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackExtra.h" -#include "DataFormats/VertexReco/interface/VertexFwd.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit1D.h" #include "DataFormats/VertexReco/interface/Vertex.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "TrackingTools/PatternTools/interface/Trajectory.h" +#include "DataFormats/VertexReco/interface/VertexFwd.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit1D.h" -#include "CommonTools/Utils/interface/StringCutObjectSelector.h" +#include "TrackingTools/PatternTools/interface/Trajectory.h" #include "MultiTrackSelector.h" @@ -38,7 +40,9 @@ class dso_hidden AnalyticalTrackSelector final : public MultiTrackSelector { /// constructor explicit AnalyticalTrackSelector(const edm::ParameterSet& cfg); /// destructor - ~AnalyticalTrackSelector() override; + ~AnalyticalTrackSelector() override = default; + /// fillDescriptions + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: typedef math::XYZPoint Point; @@ -101,10 +105,8 @@ AnalyticalTrackSelector::AnalyticalTrackSelector(const edm::ParameterSet& cfg) : produces>("MVAVals"); //foward compatibility produces("MVAValues"); - useAnyMVA_ = false; forest_[0] = nullptr; - if (cfg.exists("useAnyMVA")) - useAnyMVA_ = cfg.getParameter("useAnyMVA"); + useAnyMVA_ = cfg.getParameter("useAnyMVA"); src_ = consumes(cfg.getParameter("src")); hSrc_ = consumes(cfg.getParameter("src")); @@ -146,16 +148,14 @@ AnalyticalTrackSelector::AnalyticalTrackSelector(const edm::ParameterSet& cfg) : min_hits_bypass_.push_back(cfg.getParameter("minHitsToBypassChecks")); max_relpterr_.push_back(cfg.getParameter("max_relpterr")); min_nhits_.push_back(cfg.getParameter("min_nhits")); - max_minMissHitOutOrIn_.push_back( - cfg.existsAs("max_minMissHitOutOrIn") ? cfg.getParameter("max_minMissHitOutOrIn") : 99); - max_lostHitFraction_.push_back( - cfg.existsAs("max_lostHitFraction") ? cfg.getParameter("max_lostHitFraction") : 1.0); + max_minMissHitOutOrIn_.push_back(cfg.getParameter("max_minMissHitOutOrIn")); + max_lostHitFraction_.push_back(cfg.getParameter("max_lostHitFraction")); min_eta_.push_back(cfg.getParameter("min_eta")); max_eta_.push_back(cfg.getParameter("max_eta")); // Flag to apply absolute cuts if no PV passes the selection applyAbsCutsIfNoPV_.push_back(cfg.getParameter("applyAbsCutsIfNoPV")); - keepAllTracks_.push_back(cfg.exists("keepAllTracks") ? cfg.getParameter("keepAllTracks") : false); + keepAllTracks_.push_back(cfg.getParameter("keepAllTracks")); setQualityBit_.push_back(false); std::string qualityStr = cfg.getParameter("qualityBit"); @@ -165,12 +165,9 @@ AnalyticalTrackSelector::AnalyticalTrackSelector(const edm::ParameterSet& cfg) : throw; } - if (cfg.exists("qualityBit")) { - std::string qualityStr = cfg.getParameter("qualityBit"); - if (!qualityStr.empty()) { - setQualityBit_[0] = true; - qualityToSet_[0] = TrackBase::qualityByName(cfg.getParameter("qualityBit")); - } + if (!qualityStr.empty()) { + setQualityBit_[0] = true; + qualityToSet_[0] = TrackBase::qualityByName(cfg.getParameter("qualityBit")); } if (keepAllTracks_[0] && !setQualityBit_[0]) @@ -189,19 +186,14 @@ AnalyticalTrackSelector::AnalyticalTrackSelector(const edm::ParameterSet& cfg) : } if (useAnyMVA_) { - bool thisMVA = false; - if (cfg.exists("useMVA")) - thisMVA = cfg.getParameter("useMVA"); + bool thisMVA = cfg.getParameter("useMVA"); useMVA_.push_back(thisMVA); if (thisMVA) { - double minVal = -1; - if (cfg.exists("minMVA")) - minVal = cfg.getParameter("minMVA"); + double minVal = cfg.getParameter("minMVA"); min_MVA_.push_back(minVal); - mvaType_.push_back(cfg.exists("mvaType") ? cfg.getParameter("mvaType") : "Detached"); - forestLabel_.push_back(cfg.exists("GBRForestLabel") ? cfg.getParameter("GBRForestLabel") - : "MVASelectorIter0"); - useMVAonly_.push_back(cfg.exists("useMVAonly") ? cfg.getParameter("useMVAonly") : false); + mvaType_.push_back(cfg.getParameter("mvaType")); + forestLabel_.push_back(cfg.getParameter("GBRForestLabel")); + useMVAonly_.push_back(cfg.getParameter("useMVAonly")); } else { min_MVA_.push_back(-9999.0); useMVAonly_.push_back(false); @@ -231,8 +223,6 @@ AnalyticalTrackSelector::AnalyticalTrackSelector(const edm::ParameterSet& cfg) : produces().setBranchAlias(alias + "Tracks"); } -AnalyticalTrackSelector::~AnalyticalTrackSelector() {} - void AnalyticalTrackSelector::run(edm::Event& evt, const edm::EventSetup& es) const { // storage.... std::unique_ptr selTracks_; @@ -397,6 +387,76 @@ void AnalyticalTrackSelector::run(edm::Event& evt, const edm::EventSetup& es) co } } +void AnalyticalTrackSelector::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + desc.add("src", edm::InputTag("generalTracks")); + desc.add("keepAllTracks", false) + ->setComment("if set to true tracks failing this filter are kept in the output"); + desc.add("beamspot", edm::InputTag("offlineBeamSpot")); + + // vertex selection + desc.add("useVertices", true); + desc.add("useVtxError", false); + desc.add("vertices", edm::InputTag("firstStepPrimaryVertices")); + desc.add("vtxNumber", -1); + desc.add("vertexCut", "ndof>=2&!isFake"); + + desc.addUntracked("copyExtras", false); + desc.addUntracked("copyTrajectories", false); + desc.add("qualityBit", std::string(""))->setComment("set to ''if you don't want to set the bit"); + + // parameters for adapted optimal cuts on chi2 and primary vertex compatibility + desc.add("chi2n_no1Dmod_par", 9999.) + ->setComment("parameter for adapted optimal cuts on chi2 and primary vertex compatibility"); + desc.add("chi2n_par", 1.6) + ->setComment("parameter for adapted optimal cuts on chi2 and primary vertex compatibility"); + desc.add>("res_par", {0.003, 0.01})->setComment("default: Loose"); + desc.add>("d0_par1", {0.55, 4.0})->setComment("default: Loose"); + desc.add>("d0_par2", {0.65, 4.0})->setComment("default: Loose"); + desc.add>("dz_par1", {0.55, 4.0})->setComment("default: Loose"); + desc.add>("dz_par2", {0.45, 4.0})->setComment("default: Loose"); + desc.add("applyAdaptedPVCuts", true) + ->setComment("Boolean indicating if adapted primary vertex compatibility cuts are to be applied."); + + // Impact parameter absolute cuts. + desc.add("max_d0", 100.)->setComment("transverse impact parameter absolute cut"); + desc.add("max_z0", 100.)->setComment("longitudinal impact parameter absolute cut"); + desc.add("nSigmaZ", 4.); + + // Cuts on numbers of layers with hits/3D hits/lost hits. + desc.add("minNumberLayers", 0); + desc.add("minNumber3DLayers", 0); + desc.add("minHitsToBypassChecks", 20); + desc.add("maxNumberLostLayers", 999); + + // Absolute cuts in case of no PV. If yes, please define also max_d0NoPV and max_z0NoPV + desc.add("applyAbsCutsIfNoPV", false); + desc.add("max_d0NoPV", 100.); + desc.add("max_z0NoPV", 100.); + + // parameters for cutting on pterror/pt and number of valid hits + desc.add("max_relpterr", 9999)->setComment("parameter for cutting on pterror/pt"); + desc.add("min_nhits", 0)->setComment("parameter for cutting on number of valid hits"); + + desc.add("max_lostHitFraction", 1.0); + desc.add("max_minMissHitOutOrIn", 99); + + // parameters for cutting on eta + desc.add("max_eta", 9999.); + desc.add("min_eta", -9999.); + + // optional parameters for MVA selection + desc.add("useMVA", false); + desc.add("useAnyMVA", false); + desc.add("useMVAonly", false); + desc.add("minMVA", -1.); + desc.add("GBRForestLabel", "MVASelectorIter0"); + desc.add("mvaType", "Detached"); + + descriptions.addWithDefaultLabel(desc); +} + #include "FWCore/PluginManager/interface/ModuleDef.h" #include "FWCore/Framework/interface/MakerMacros.h" From 0d45a3ebd71969ad695da2fc29b6b8f77cccecf5 Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 13 Dec 2024 11:06:37 +0100 Subject: [PATCH 394/418] add BeamSpotCompatibilityChecker in all the all-in-one validation tools where it is relevant and to several test configurations --- .../python/TkAlAllInOneTool/DiMuonV_cfg.py | 14 ++++++++++- .../python/TkAlAllInOneTool/JetHT_cfg.py | 17 +++++++++++-- .../python/TkAlAllInOneTool/PV_cfg.py | 24 ++++++++++++++----- .../python/TkAlAllInOneTool/SplitV_cfg.py | 15 +++++++++++- .../python/TkAlAllInOneTool/Zmumu_cfg.py | 16 ++++++++++++- .../TkAlAllInOneTool/defaultInputFiles_cff.py | 4 ++++ .../test/PVValidation_TEMPL_cfg.py | 17 ++++++++++--- .../test/PVValidation_T_cfg.py | 15 ++++++++++-- .../test/PrimaryVertexResolution_cfg.py | 20 ++++++++++++++-- .../test/PrimaryVertexResolution_templ_cfg.py | 22 ++++++++++++++--- ...testPrimaryVertexRelatedValidations_cfg.py | 22 +++++++++++++---- .../test/test_all_Phase2_cfg.py | 15 ++++++++++-- .../OfflineValidation/test/test_all_cfg.py | 15 ++++++++++-- .../OfflineValidation/test/unit_test.json | 16 ++++++++++--- .../OfflineValidation/test/unit_test.yaml | 14 ++++++++++- 15 files changed, 212 insertions(+), 34 deletions(-) diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py index 3526501021f31..118679f4ebc4e 100644 --- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/DiMuonV_cfg.py @@ -134,7 +134,7 @@ process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag # default to remain in sycn with the default input sample -process.GlobalTag = GlobalTag(process.GlobalTag, config["alignment"].get("globaltag", "auto:phase1_2022_realistic")) +process.GlobalTag = GlobalTag(process.GlobalTag, config["alignment"].get("globaltag", "125X_mcRun3_2022_realistic_v3")) #################################################################### # Load conditions if wished @@ -183,10 +183,22 @@ process.offlinePrimaryVerticesFromRefittedTrks = offlinePrimaryVertices.clone() process.offlinePrimaryVerticesFromRefittedTrks.TrackLabel = cms.InputTag("refittedVtxTracks") +#################################################################### +# BeamSpot check +#################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = config["validation"].get("bsIncompatibleWarnThresh", 3), # significance threshold to emit a warning message + errorThr = config["validation"].get("bsIncompatibleErrThresh", 5), # significance threshold to abort the job +) + #################################################################### # Sequence #################################################################### process.seqRefitting = cms.Sequence(process.offlineBeamSpot + + process.BeamSpotChecker + process.refittedMuons + process.refittedVtxTracks + process.offlinePrimaryVerticesFromRefittedTrks) diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/JetHT_cfg.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/JetHT_cfg.py index 266d61d6289c7..03dd35359d5a8 100644 --- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/JetHT_cfg.py +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/JetHT_cfg.py @@ -289,14 +289,27 @@ ) +################################################################### +# Beamspot compatibility check +################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = configuration["validation"].get("bsIncompatibleWarnThresh", 3), # significance threshold to emit a warning message + errorThr = configuration["validation"].get("bsIncompatibleErrThresh", 5), # significance threshold to abort the job +) + if (triggerFilter == "nothing" or triggerFilter == ""): - process.p = cms.Path(process.offlineBeamSpot + + process.p = cms.Path(process.offlineBeamSpot + + process.BeamSpotChecker + process.TrackRefitter + process.offlinePrimaryVerticesFromRefittedTrks + process.jetHTAnalyzer) else: process.p = cms.Path(process.HLTFilter + - process.offlineBeamSpot + + process.offlineBeamSpot + + process.BeamSpotChecker + process.TrackRefitter + process.offlinePrimaryVerticesFromRefittedTrks + process.jetHTAnalyzer) diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/PV_cfg.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/PV_cfg.py index 33ca243a73a24..0d27146e16454 100644 --- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/PV_cfg.py +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/PV_cfg.py @@ -1,6 +1,7 @@ + import FWCore.ParameterSet.Config as cms import FWCore.PythonUtilities.LumiList as LumiList -from Alignment.OfflineValidation.TkAlAllInOneTool.defaultInputFiles_cff import filesDefaultData_MinBias2018B +from Alignment.OfflineValidation.TkAlAllInOneTool.defaultInputFiles_cff import filesDefaultData_HLTPhys2024I from FWCore.ParameterSet.VarParsing import VarParsing @@ -43,9 +44,9 @@ skipEvents = cms.untracked.uint32(0) ) else: - print(">>>>>>>>>> PV_cfg.py: msg%-i: config not specified! Loading default dataset -> filesDefaultData_MinBias2018B!") + print(">>>>>>>>>> PV_cfg.py: msg%-i: config not specified! Loading default dataset -> filesDefaultData_HLTPhys2024I!") process.source = cms.Source("PoolSource", - fileNames = filesDefaultData_MinBias2018B, + fileNames = filesDefaultData_HLTPhys2024I, skipEvents = cms.untracked.uint32(0) ) @@ -123,7 +124,7 @@ #Global tag process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, config["alignment"].get("globaltag", "auto:phase1_2017_realistic")) +process.GlobalTag = GlobalTag(process.GlobalTag, config["alignment"].get("globaltag", "140X_dataRun3_Prompt_v4")) ##Load conditions if wished if "conditions" in config["alignment"]: @@ -160,6 +161,17 @@ thresh = cms.untracked.double(0.25) ) +################################################################### +# Beamspot compatibility check +################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = config["validation"].get("bsIncompatibleWarnThresh", 3), # significance threshold to emit a warning message + errorThr = config["validation"].get("bsIncompatibleErrThresh", 5), # significance threshold to abort the job +) + process.load("Alignment.CommonAlignment.filterOutLowPt_cfi") process.filterOutLowPt.src = cms.untracked.InputTag(config["validation"].get("trackcollection", "ALCARECOTkAlMinBias")) process.filterOutLowPt.ptmin = cms.untracked.double(config["validation"].get("ptCut", 3.)) @@ -170,9 +182,9 @@ process.filterOutLowPt.runControlNumber = [runboundary] if isMC: - process.goodvertexSkim = cms.Sequence(process.noscraping + process.filterOutLowPt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.noscraping + process.filterOutLowPt) else: - process.goodvertexSkim = cms.Sequence(process.primaryVertexFilter + process.noscraping + process.filterOutLowPt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.primaryVertexFilter + process.noscraping + process.filterOutLowPt) #################################################################### diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/SplitV_cfg.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/SplitV_cfg.py index 6ff3e9878f363..ba753d7d3a61f 100644 --- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/SplitV_cfg.py +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/SplitV_cfg.py @@ -117,7 +117,7 @@ #################################################################### process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, config["alignment"].get("globaltag", "auto:phase1_2017_realistic")) +process.GlobalTag = GlobalTag(process.GlobalTag, config["alignment"].get("globaltag", "105X_upgrade2018_realistic_v4")) #################################################################### # Load conditions if wished @@ -196,7 +196,20 @@ ) print("Saving the output at %s" % process.TFileService.fileName.value()) + +################################################################### +# Beamspot compatibility check +################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = config["validation"].get("bsIncompatibleWarnThresh", 3), # significance threshold to emit a warning message + errorThr = config["validation"].get("bsIncompatibleErrThresh", 5), # significance threshold to abort the job +) + process.theValidSequence = cms.Sequence(process.offlineBeamSpot + + process.BeamSpotChecker + process.TrackRefitter + process.offlinePrimaryVerticesFromRefittedTrks + process.PrimaryVertexResolution) diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/Zmumu_cfg.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/Zmumu_cfg.py index a92509c0b0e7d..41fe21d4ad7be 100644 --- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/Zmumu_cfg.py +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/Zmumu_cfg.py @@ -194,4 +194,18 @@ closeFileFast = cms.untracked.bool(True), ) -process.p = cms.Path(process.offlineBeamSpot*process.TrackRefitter*process.DiMuonMassValidation) +################################################################### +# Beamspot compatibility check +################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = config["validation"].get("bsIncompatibleWarnThresh", 3), # significance threshold to emit a warning message + errorThr = config["validation"].get("bsIncompatibleErrThresh", 5), # significance threshold to abort the job +) + +process.p = cms.Path(process.offlineBeamSpot* + #process.BeamSpotChecker* # commented for now + process.TrackRefitter* + process.DiMuonMassValidation) diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/defaultInputFiles_cff.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/defaultInputFiles_cff.py index 7ec31ae8b2e6a..0ea59d3044d53 100644 --- a/Alignment/OfflineValidation/python/TkAlAllInOneTool/defaultInputFiles_cff.py +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/defaultInputFiles_cff.py @@ -61,4 +61,8 @@ '/store/express/Run2018B/StreamExpress/ALCARECO/TkAlMinBias-Express-v1/000/317/212/00000/00F0EFA7-8D64-E811-A594-FA163EFC96CC.root' ) +filesDefaultData_HLTPhys2024I = cms.untracked.vstring( + '/store/data/Run2024I/HLTPhysics/ALCARECO/TkAlMinBias-PromptReco-v2/000/386/803/00000/a95259f9-a333-44f9-b30f-803642e97590.root' +) + filesDefaultData_Cosmics_string = "/store/data/Run2022G/Cosmics/ALCARECO/TkAlCosmics0T-PromptReco-v1/000/362/440/00000/47f31eaa-1c00-4f39-902b-a09fa19c27f2.root" diff --git a/Alignment/OfflineValidation/test/PVValidation_TEMPL_cfg.py b/Alignment/OfflineValidation/test/PVValidation_TEMPL_cfg.py index 968ad2c66aac6..5e5efe66e8631 100644 --- a/Alignment/OfflineValidation/test/PVValidation_TEMPL_cfg.py +++ b/Alignment/OfflineValidation/test/PVValidation_TEMPL_cfg.py @@ -165,11 +165,22 @@ def customiseKinksAndBows(process): process.filterOutLowPt.ptmin = PTCUTTEMPLATE process.filterOutLowPt.runControl = RUNCONTROLTEMPLATE process.filterOutLowPt.runControlNumber = [runboundary] - + +################################################################### +# Beamspot compatibility check +################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = 3, # significance threshold to emit a warning message + errorThr = 5, # significance threshold to abort the job +) + if isMC: - process.goodvertexSkim = cms.Sequence(process.noscraping + process.filterOutLowPt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.noscraping + process.filterOutLowPt) else: - process.goodvertexSkim = cms.Sequence(process.primaryVertexFilter + process.noscraping + process.filterOutLowPt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.primaryVertexFilter + process.noscraping + process.filterOutLowPt) #################################################################### # Load and Configure Measurement Tracker Event diff --git a/Alignment/OfflineValidation/test/PVValidation_T_cfg.py b/Alignment/OfflineValidation/test/PVValidation_T_cfg.py index 3349d4acc1879..d2ef4f4fd0567 100644 --- a/Alignment/OfflineValidation/test/PVValidation_T_cfg.py +++ b/Alignment/OfflineValidation/test/PVValidation_T_cfg.py @@ -162,10 +162,21 @@ def customiseKinksAndBows(process): process.filterOutLowPt.runControl = RUNCONTROLTEMPLATE process.filterOutLowPt.runControlNumber = [runboundary] +#################################################################### +# BeamSpot check +#################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = 3, # significance threshold to emit a warning message + errorThr = 5, # significance threshold to abort the job +) + if isMC: - process.goodvertexSkim = cms.Sequence(process.noscraping+process.filterOutLowPt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.noscraping+process.filterOutLowPt) else: - process.goodvertexSkim = cms.Sequence(process.primaryVertexFilter + process.noscraping + process.filterOutLowPt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.primaryVertexFilter + process.noscraping + process.filterOutLowPt) #################################################################### # Load and Configure Measurement Tracker Event diff --git a/Alignment/OfflineValidation/test/PrimaryVertexResolution_cfg.py b/Alignment/OfflineValidation/test/PrimaryVertexResolution_cfg.py index 5b675b83a9591..87e527d40938e 100644 --- a/Alignment/OfflineValidation/test/PrimaryVertexResolution_cfg.py +++ b/Alignment/OfflineValidation/test/PrimaryVertexResolution_cfg.py @@ -188,17 +188,33 @@ def best_match(rcd): nVtxBins = cms.untracked.double(40.) ) +################################################################### +# TFileService +################################################################### process.TFileService = cms.Service("TFileService", fileName = cms.string(options.outputRootFile), closeFileFast = cms.untracked.bool(False) ) +################################################################### +# Beamspot compatibility check +################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = 3, # significance threshold to emit a warning message + errorThr = 5 # significance threshold to abort the job +) + +################################################################### +# Path +################################################################### process.p = cms.Path(process.HLTFilter + #process.offlineBeamSpot + #process.TrackRefitter + + process.BeamSpotChecker + process.seqTrackselRefit + process.offlinePrimaryVerticesFromRefittedTrks + process.PrimaryVertexResolution + process.myanalysis) - - diff --git a/Alignment/OfflineValidation/test/PrimaryVertexResolution_templ_cfg.py b/Alignment/OfflineValidation/test/PrimaryVertexResolution_templ_cfg.py index e59ebbaa61f65..d714bbb86bdf5 100644 --- a/Alignment/OfflineValidation/test/PrimaryVertexResolution_templ_cfg.py +++ b/Alignment/OfflineValidation/test/PrimaryVertexResolution_templ_cfg.py @@ -176,15 +176,31 @@ def best_match(rcd): nVtxBins = cms.untracked.double(40.) ) +################################################################### +# TFileService +################################################################### process.TFileService = cms.Service("TFileService", fileName = cms.string(options.outputRootFile), closeFileFast = cms.untracked.bool(False) ) -process.p = cms.Path(process.seqTrackselRefit + +################################################################### +# Beamspot compatibility check +################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = 3, # significance threshold to emit a warning message + errorThr = 5 # significance threshold to abort the job +) + +################################################################### +# Path +################################################################### +process.p = cms.Path(process.BeamSpotChecker + + process.seqTrackselRefit + #process.offlineBeamSpot + #process.TrackRefitter + process.offlinePrimaryVerticesFromRefittedTrks + process.PrimaryVertexResolution) - - diff --git a/Alignment/OfflineValidation/test/testPrimaryVertexRelatedValidations_cfg.py b/Alignment/OfflineValidation/test/testPrimaryVertexRelatedValidations_cfg.py index d130460182536..502f94e435790 100644 --- a/Alignment/OfflineValidation/test/testPrimaryVertexRelatedValidations_cfg.py +++ b/Alignment/OfflineValidation/test/testPrimaryVertexRelatedValidations_cfg.py @@ -36,8 +36,9 @@ class RefitType(Enum): ################################################################### # Set default phase-2 settings ################################################################### -import Configuration.Geometry.defaultPhase2ConditionsEra_cff as _settings -_PH2_GLOBAL_TAG, _PH2_ERA = _settings.get_era_and_conditions(_settings.DEFAULT_VERSION) +if(options.isPhase2): + import Configuration.Geometry.defaultPhase2ConditionsEra_cff as _settings + _PH2_GLOBAL_TAG, _PH2_ERA = _settings.get_era_and_conditions(_settings.DEFAULT_VERSION) ################################################################### # Set the era @@ -123,7 +124,7 @@ class RefitType(Enum): #################################################################### process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, (_PH2_GLOBAL_TAG if options.isPhase2 else 'auto:phase1_2022_realistic'), '') +process.GlobalTag = GlobalTag(process.GlobalTag, (_PH2_GLOBAL_TAG if options.isPhase2 else '125X_mcRun3_2022_realistic_v3'), '') if _allFromGT: print("############ testPVValidation_cfg.py: msg%-i: All is taken from GT") @@ -214,10 +215,21 @@ class RefitType(Enum): runControlNumber = cms.untracked.vuint32(int(runboundary)) ) +#################################################################### +# BeamSpot check +#################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = 5, # significance threshold to emit a warning message + errorThr = 10, # significance threshold to abort the job +) + if _isMC: - process.goodvertexSkim = cms.Sequence(process.noscraping) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.noscraping) else: - process.goodvertexSkim = cms.Sequence(process.primaryVertexFilter + process.noscraping + process.noslowpt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.primaryVertexFilter + process.noscraping + process.noslowpt) if(_theRefitter == RefitType.COMMON): diff --git a/Alignment/OfflineValidation/test/test_all_Phase2_cfg.py b/Alignment/OfflineValidation/test/test_all_Phase2_cfg.py index 7fc97f87d8b35..430fe764c429e 100644 --- a/Alignment/OfflineValidation/test/test_all_Phase2_cfg.py +++ b/Alignment/OfflineValidation/test/test_all_Phase2_cfg.py @@ -180,10 +180,21 @@ class RefitType(Enum): runControlNumber = cms.untracked.vuint32(int(runboundary)) ) +#################################################################### +# BeamSpot check +#################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = 3, # significance threshold to emit a warning message + errorThr = 5, # significance threshold to abort the job +) + if isMC: - process.goodvertexSkim = cms.Sequence(process.noscraping) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.noscraping) else: - process.goodvertexSkim = cms.Sequence(process.primaryVertexFilter + process.noscraping + process.noslowpt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.primaryVertexFilter + process.noscraping + process.noslowpt) if(theRefitter == RefitType.COMMON): diff --git a/Alignment/OfflineValidation/test/test_all_cfg.py b/Alignment/OfflineValidation/test/test_all_cfg.py index c6bc6945fdbe5..a7e3721f41371 100644 --- a/Alignment/OfflineValidation/test/test_all_cfg.py +++ b/Alignment/OfflineValidation/test/test_all_cfg.py @@ -178,10 +178,21 @@ class RefitType(Enum): runControlNumber = cms.untracked.vuint32(int(runboundary)) ) +#################################################################### +# BeamSpot check +#################################################################### +from RecoVertex.BeamSpotProducer.beamSpotCompatibilityChecker_cfi import beamSpotCompatibilityChecker +process.BeamSpotChecker = beamSpotCompatibilityChecker.clone( + bsFromEvent = "offlineBeamSpot::RECO", # source of the event beamspot (in the ALCARECO files) + bsFromDB = "offlineBeamSpot", # source of the DB beamspot (from Global Tag) NOTE: only if dbFromEvent is True! + warningThr = 3, # significance threshold to emit a warning message + errorThr = 5, # significance threshold to abort the job +) + if isMC: - process.goodvertexSkim = cms.Sequence(process.noscraping) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.noscraping) else: - process.goodvertexSkim = cms.Sequence(process.primaryVertexFilter + process.noscraping + process.noslowpt) + process.goodvertexSkim = cms.Sequence(process.BeamSpotChecker + process.primaryVertexFilter + process.noscraping + process.noslowpt) if(theRefitter == RefitType.COMMON): diff --git a/Alignment/OfflineValidation/test/unit_test.json b/Alignment/OfflineValidation/test/unit_test.json index 9a599e8dd691d..cde695aa859b3 100644 --- a/Alignment/OfflineValidation/test/unit_test.json +++ b/Alignment/OfflineValidation/test/unit_test.json @@ -11,7 +11,7 @@ }, "unitTestPV": { "color": "1", - "globaltag": "110X_dataRun2_v10", + "globaltag": "140X_dataRun3_Prompt_v4", "style": "2001", "title": "unit test" }, @@ -147,6 +147,8 @@ "alignments": ["unitTestPV"], "trackcollection": "ALCARECOTkAlMinBias", "vertexcollection": "offlinePrimaryVertices", + "bsIncompatibleWarnThresh": "100", + "bsIncompatibleErrThresh": "1000", "maxevents": "10", "isda": "true", "ismc": "false" @@ -182,6 +184,8 @@ "IOV": ["1"], "alignments": ["unitTest"], "trackcollection": "generalTracks", + "bsIncompatibleWarnThresh": "100", + "bsIncompatibleErrThresh": "1000", "HLTSelection": "False", "triggerBits" : "HLT_*", "maxevents": "10" @@ -198,6 +202,8 @@ "testUnits" : { "IOV" : ["1"], "alignments" : ["unitTestDiMuonVMC"], + "bsIncompatibleWarnThresh": "100", + "bsIncompatibleErrThresh": "1000", "trackcollection" : "generalTracks", "maxevents" : "10" } @@ -244,13 +250,17 @@ "alignments": ["unitTestJetHT"], "trackCollection": "ALCARECOTkAlMinBias", "maxevents": 100, - "iovListFile": "Alignment/OfflineValidation/data/lumiPerRun_Run2.txt" + "iovListFile": "Alignment/OfflineValidation/data/lumiPerRun_Run2.txt", + "bsIncompatibleWarnThresh": "100", + "bsIncompatibleErrThresh": "1000" }, "testMC": { "alignments": ["unitTestJetHTMC"], "trackCollection": "ALCARECOTkAlMinBias", "mc": "True", - "maxevents": 100 + "maxevents": 100, + "bsIncompatibleWarnThresh": "100", + "bsIncompatibleErrThresh": "1000" } }, "merge": { diff --git a/Alignment/OfflineValidation/test/unit_test.yaml b/Alignment/OfflineValidation/test/unit_test.yaml index d46a6b7c647e6..92519e519172c 100644 --- a/Alignment/OfflineValidation/test/unit_test.yaml +++ b/Alignment/OfflineValidation/test/unit_test.yaml @@ -8,7 +8,7 @@ alignments: title: unit test unitTestPV: color: 1 - globaltag: 110X_dataRun2_v10 + globaltag: 140X_dataRun3_Prompt_v4 style: 2001 title: unit test ideal: @@ -144,6 +144,8 @@ validations: alignments: - unitTestPV maxevents: 10 + bsIncompatibleWarnThresh: 100 + bsIncompatibleErrThresh: 1000 trackcollection: ALCARECOTkAlMinBias vertexcollection: offlinePrimaryVertices isda: true @@ -180,6 +182,8 @@ validations: alignments: - unitTest trackcollection: generalTracks + bsIncompatibleWarnThresh: 100 + bsIncompatibleErrThresh: 1000 HLTSelection: False triggerBits: HLT_* maxevents: 10 @@ -194,6 +198,8 @@ validations: - 1 alignments: - unitTestDiMuonVMC + bsIncompatibleWarnThresh: 100 + bsIncompatibleErrThresh: 1000 trackcollection: generalTracks maxevents: 10 @@ -209,6 +215,8 @@ validations: alignments: - unitTestZmumuMCreal - unitTestZmumuMCdesign + bsIncompatibleWarnThresh: 100 + bsIncompatibleErrThresh: 1000 trackcollection: ALCARECOTkAlZMuMu maxevents: 100 MTS: @@ -247,12 +255,16 @@ validations: alignments: - unitTestJetHT trackCollection: ALCARECOTkAlMinBias + bsIncompatibleWarnThresh: 100 + bsIncompatibleErrThresh: 1000 maxevents: 100 iovListFile: Alignment/OfflineValidation/data/lumiPerRun_Run2.txt testMC: alignments: - unitTestJetHTMC + bsIncompatibleWarnThresh: 100 + bsIncompatibleErrThresh: 1000 trackCollection: ALCARECOTkAlMinBias mc: True maxevents: 100 From bba504aece9a38ca3b78b19c1cbdb47511569bf4 Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 20 Dec 2024 15:37:59 +0100 Subject: [PATCH 395/418] Improve BeamSpotCompatibilityChecker --- .../plugins/BeamSpotCompatibilityChecker.cc | 72 +++++++++++++------ .../BeamSpotProducer/plugins/BuildFile.xml | 1 + .../BeamSpotProducer/test/BuildFile.xml | 1 + .../test/testBeamSpotCompatibility.cc | 4 +- 4 files changed, 53 insertions(+), 25 deletions(-) diff --git a/RecoVertex/BeamSpotProducer/plugins/BeamSpotCompatibilityChecker.cc b/RecoVertex/BeamSpotProducer/plugins/BeamSpotCompatibilityChecker.cc index 1661427845f16..e0abd152be0a4 100644 --- a/RecoVertex/BeamSpotProducer/plugins/BeamSpotCompatibilityChecker.cc +++ b/RecoVertex/BeamSpotProducer/plugins/BeamSpotCompatibilityChecker.cc @@ -5,7 +5,7 @@ // /**\class BeamSpotCompatibilityChecker BeamSpotCompatibilityChecker.cc RecoVertex/BeamSpotProducer/plugins/BeamSpotCompatibilityChecker.cc - Description: Class to check the compatibilty between the BeamSpot payload in the database and the one in the event + Description: Class to check the compatibility between the BeamSpot payload in the database and the one in the event Implementation: Makes use of the Significance struct to establish how compatible are the data members of the two BeamSpots in input @@ -38,7 +38,7 @@ #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/ESGetToken.h" #include "FWCore/Utilities/interface/InputTag.h" - +#include "RecoVertex/VertexTools/interface/VertexDistance3D.h" // // class declaration // @@ -47,20 +47,22 @@ namespace { struct Significance { - Significance(const double& a, const double& b, const double& errA, const double& errB) - : m_A(a), m_B(b), m_ErrA(errA), m_ErrB(errB) { + Significance(const double& a, const double& b, const double& errA, const double& errB, const std::string& var) + : m_A(a), m_B(b), m_ErrA(errA), m_ErrB(errB), m_var(var) { if (m_ErrA == 0 && m_ErrB == 0) { edm::LogError("LogicalError") << "Can't calculate significance when both errors are zero!" << std::endl; } m_combinedError = std::sqrt((m_ErrA * m_ErrA) + (m_ErrB * m_ErrB)); } - float getSig(bool verbose) { + float getSig(const bool verbose) { if (verbose) { - edm::LogInfo("BeamSpotCompatibilityChecker") - << "A= " << m_A << "+/-" << m_ErrA << " " - << "B= " << m_B << "+/-" << m_ErrB << " | delta=" << std::abs(m_A - m_B) << "+/-" << m_combinedError - << std::endl; + edm::LogPrint("BeamSpotCompatibilityChecker") + << std::fixed << std::setprecision(6) // Set fixed-point format with 3 decimal places + << m_var << ": A= " << std::setw(10) << m_A << " +/- " << std::setw(10) << m_ErrA + << " B= " << std::setw(5) << m_B << " +/- " << std::setw(10) << m_ErrB + << " | delta= " << std::setw(10) << std::abs(m_A - m_B) << " +/- " << std::setw(10) << m_combinedError + << " Sig= " << std::setw(10) << std::abs(m_A - m_B) / m_combinedError << std::endl; } return std::abs(m_A - m_B) / m_combinedError; } @@ -71,6 +73,7 @@ namespace { double m_ErrA; double m_ErrB; double m_ErrAB; + std::string m_var; double m_combinedError; }; } // namespace @@ -82,7 +85,8 @@ class BeamSpotCompatibilityChecker : public edm::global::EDAnalyzer<> { void analyze(edm::StreamID, edm::Event const&, edm::EventSetup const&) const final; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - static std::array compareBS(const reco::BeamSpot& BSA, const reco::BeamSpot& BSB); + static std::array compareBS(const reco::BeamSpot& BSA, const reco::BeamSpot& BSB, const bool verbose); + static double computeBeamSpotCompatibility(const reco::BeamSpot& beamSpot1, const reco::BeamSpot& beamSpot2); private: // ----------member data --------------------------- @@ -184,7 +188,7 @@ void BeamSpotCompatibilityChecker::analyze(edm::StreamID sid, edm::LogPrint("BeamSpotCompatibilityChecker") << "BS from DB: \n" << spotDB << std::endl; } - auto significances = compareBS(spotDB, spotEvent); + auto significances = compareBS(spotDB, spotEvent, verbose_); std::vector labels = {"x0", "y0", "z0", "sigmaX", "sigmaY", "sigmaZ"}; std::string msg = " |delta X0|=" + std::to_string(std::abs(deltaX0) * cmToum) + @@ -192,7 +196,7 @@ void BeamSpotCompatibilityChecker::analyze(edm::StreamID sid, " um |delta Z0|=" + std::to_string(std::abs(deltaZ0) * cmToum) + " um |delta sigmaX|=" + std::to_string(std::abs(deltaSigmaX) * cmToum) + " um |delta sigmaY|=" + std::to_string(std::abs(deltaSigmaY) * cmToum) + - " um |delta sigmaZ|=" + std::to_string(std::abs(deltaSigmaZ)) + "cm"; + " um |delta sigmaZ|=" + std::to_string(std::abs(deltaSigmaZ)) + " cm"; if (verbose_) { edm::LogPrint("BeamSpotCompatibilityChecker") << msg.c_str() << std::endl; } @@ -213,22 +217,44 @@ void BeamSpotCompatibilityChecker::analyze(edm::StreamID sid, } } -std::array BeamSpotCompatibilityChecker::compareBS(const reco::BeamSpot& beamSpotA, - const reco::BeamSpot& beamSpotB) { - auto xS = Significance(beamSpotA.x0(), beamSpotB.x0(), beamSpotA.x0Error(), beamSpotB.x0Error()); - auto yS = Significance(beamSpotA.y0(), beamSpotB.y0(), beamSpotA.y0Error(), beamSpotB.y0Error()); - auto zS = Significance(beamSpotA.z0(), beamSpotB.z0(), beamSpotA.z0Error(), beamSpotB.z0Error()); - auto xWS = Significance( - beamSpotA.BeamWidthX(), beamSpotB.BeamWidthX(), beamSpotA.BeamWidthXError(), beamSpotB.BeamWidthXError()); - auto yWS = Significance( - beamSpotA.BeamWidthY(), beamSpotB.BeamWidthY(), beamSpotA.BeamWidthYError(), beamSpotB.BeamWidthYError()); - auto zWS = Significance(beamSpotA.sigmaZ(), beamSpotB.sigmaZ(), beamSpotA.sigmaZ0Error(), beamSpotB.sigmaZ0Error()); +std::array BeamSpotCompatibilityChecker::compareBS(const reco::BeamSpot& spotA, + const reco::BeamSpot& spotB, + const bool verbose) { + // Lambda to calculate the significance + auto calcSignificance = [&](auto a, auto b, auto aErr, auto bErr, auto var) { + return Significance(a, b, aErr, bErr, var).getSig(verbose); + }; + // Populate the array using the lambda std::array ret = { - {xS.getSig(false), yS.getSig(false), zS.getSig(false), xWS.getSig(false), yWS.getSig(false), zWS.getSig(false)}}; + {calcSignificance(spotA.x0(), spotB.x0(), spotA.x0Error(), spotB.x0Error(), "x"), + calcSignificance(spotA.y0(), spotB.y0(), spotA.y0Error(), spotB.y0Error(), "y"), + calcSignificance(spotA.z0(), spotB.z0(), spotA.z0Error(), spotB.z0Error(), "z"), + calcSignificance( + spotA.BeamWidthX(), spotB.BeamWidthX(), spotA.BeamWidthXError(), spotB.BeamWidthXError(), "widthX"), + calcSignificance( + spotA.BeamWidthY(), spotB.BeamWidthY(), spotA.BeamWidthYError(), spotB.BeamWidthYError(), "witdhY"), + calcSignificance(spotA.sigmaZ(), spotB.sigmaZ(), spotA.sigmaZ0Error(), spotB.sigmaZ0Error(), "witdthZ")}}; + return ret; } +double BeamSpotCompatibilityChecker::computeBeamSpotCompatibility(const reco::BeamSpot& beamSpot1, + const reco::BeamSpot& beamSpot2) { + reco::Vertex vertex1( + reco::Vertex::Point(beamSpot1.x0(), beamSpot1.y0(), beamSpot1.z0()), beamSpot1.rotatedCovariance3D(), 0, 0, 0); + reco::Vertex vertex2( + reco::Vertex::Point(beamSpot2.x0(), beamSpot2.y0(), beamSpot2.z0()), beamSpot2.rotatedCovariance3D(), 0, 0, 0); + + // Calculate distance and significance using VertexDistance3D + VertexDistance3D distanceCalculator; + // double distance = distanceCalculator.distance(vertex1, vertex2).value(); // Euclidean distance + double significance = distanceCalculator.distance(vertex1, vertex2).significance(); // Distance significance + + // Return the significance as a measure of compatibility + return significance; // Smaller values indicate higher compatibility +} + // ------------ method fills 'descriptions' with the allowed parameters for the module ------------ void BeamSpotCompatibilityChecker::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; diff --git a/RecoVertex/BeamSpotProducer/plugins/BuildFile.xml b/RecoVertex/BeamSpotProducer/plugins/BuildFile.xml index 8f846964d224d..5de80f16f24e5 100644 --- a/RecoVertex/BeamSpotProducer/plugins/BuildFile.xml +++ b/RecoVertex/BeamSpotProducer/plugins/BuildFile.xml @@ -8,6 +8,7 @@ + diff --git a/RecoVertex/BeamSpotProducer/test/BuildFile.xml b/RecoVertex/BeamSpotProducer/test/BuildFile.xml index 2c75914b38196..f293d839f3b4c 100644 --- a/RecoVertex/BeamSpotProducer/test/BuildFile.xml +++ b/RecoVertex/BeamSpotProducer/test/BuildFile.xml @@ -19,6 +19,7 @@ + diff --git a/RecoVertex/BeamSpotProducer/test/testBeamSpotCompatibility.cc b/RecoVertex/BeamSpotProducer/test/testBeamSpotCompatibility.cc index de5515318e718..18904fb034a5c 100644 --- a/RecoVertex/BeamSpotProducer/test/testBeamSpotCompatibility.cc +++ b/RecoVertex/BeamSpotProducer/test/testBeamSpotCompatibility.cc @@ -12,7 +12,7 @@ TEST_CASE("Significance Calculation", "[Significance]") { double errA = 1.0; double errB = 1.5; - Significance sig(a, b, errA, errB); + Significance sig(a, b, errA, errB, "test"); float significance = sig.getSig(false); // Correct the expected value based on actual calculation @@ -47,7 +47,7 @@ TEST_CASE("BeamSpot Compatibility Checker", "[compareBS]") { pset.addParameter("bsFromDB", edm::InputTag("")); BeamSpotCompatibilityChecker checker(pset); - auto significances = checker.compareBS(beamSpotA, beamSpotB); + auto significances = checker.compareBS(beamSpotA, beamSpotB, true); // Print significances for (size_t i = 0; i < significances.size(); ++i) { From 8f9313e751991951e4bae3eb103bf2cefbb86480 Mon Sep 17 00:00:00 2001 From: mmusich Date: Thu, 2 Jan 2025 13:38:23 +0100 Subject: [PATCH 396/418] add offlineBeamSpot event product to Z->mm based alcarecos --- .../python/ALCARECOTkAlDiMuonAndVertex_Output_cff.py | 3 ++- .../python/ALCARECOTkAlZMuMu_Output_cff.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlDiMuonAndVertex_Output_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlDiMuonAndVertex_Output_cff.py index 323ce65d62e10..72ab625a026ed 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlDiMuonAndVertex_Output_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlDiMuonAndVertex_Output_cff.py @@ -20,7 +20,8 @@ 'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*', 'keep *_TriggerResults_*_*', 'keep DcsStatuss_scalersRawToDigi_*_*', - 'keep *_offlinePrimaryVertices_*_*') + 'keep *_offlinePrimaryVertices_*_*', + 'keep *_offlineBeamSpot_*_*') ) # add branches for MC truth evaluation diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlZMuMu_Output_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlZMuMu_Output_cff.py index fc8dd02a65873..4e91bbf5b563a 100644 --- a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlZMuMu_Output_cff.py +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlZMuMu_Output_cff.py @@ -15,7 +15,8 @@ 'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*', 'keep *_TriggerResults_*_*', 'keep DcsStatuss_scalersRawToDigi_*_*', - 'keep *_offlinePrimaryVertices_*_*') + 'keep *_offlinePrimaryVertices_*_*', + 'keep *_offlineBeamSpot_*_*') ) # add branches for MC truth evaluation From 24181b339b3e80f016187bdd10531febf94368ee Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Tue, 13 Feb 2024 23:48:31 +0100 Subject: [PATCH 397/418] Make Alpaka ESProducers asynchronous for non-host backends --- HeterogeneousCore/AlpakaCore/README.md | 2 +- .../AlpakaCore/interface/alpaka/ESProducer.h | 51 +++++++++++++------ .../interface/alpaka/ProducerBase.h | 2 - .../AlpakaCore/src/alpaka/ESProducer.cc | 21 +++++++- 4 files changed, 57 insertions(+), 19 deletions(-) diff --git a/HeterogeneousCore/AlpakaCore/README.md b/HeterogeneousCore/AlpakaCore/README.md index 4e0dad334c3e9..acbd00c9cb5c3 100644 --- a/HeterogeneousCore/AlpakaCore/README.md +++ b/HeterogeneousCore/AlpakaCore/README.md @@ -98,7 +98,7 @@ namespace cms::alpakatools { }; } ``` -Note that the destination (device-side) type `TDst` can be different from or the same as the source (host-side) type `TSrc` as far as the framework is concerned. For example, in the `PortableCollection` model the types are different. The `copyAsync()` member function is easiest to implement as a template over `TQueue`. The framework handles the necessary synchronization between the copy function and the consumer (currently the synchronization blocks, but work is ongoing to make it non-blocking). +Note that the destination (device-side) type `TDst` can be different from or the same as the source (host-side) type `TSrc` as far as the framework is concerned. For example, in the `PortableCollection` model the types are different. The `copyAsync()` member function is easiest to implement as a template over `TQueue`. The framework handles the necessary synchronization between the copy function and the consumer in a non-blocking way. The `CopyToDevice` class template is partially specialized for all `PortableCollection` instantiations. diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h index dfcbd66b527e0..6c812cff17253 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h @@ -1,7 +1,7 @@ #ifndef HeterogeneousCore_AlpakaCore_interface_alpaka_ESProducer_h #define HeterogeneousCore_AlpakaCore_interface_alpaka_ESProducer_h -#include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/Framework/interface/ESProducerExternalWork.h" #include "FWCore/Framework/interface/MakeDataException.h" #include "FWCore/Framework/interface/produce_helpers.h" #include "HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h" @@ -12,7 +12,6 @@ #include "HeterogeneousCore/AlpakaInterface/interface/CopyToDevice.h" #include -#include namespace ALPAKA_ACCELERATOR_NAMESPACE { /** @@ -25,8 +24,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { * the the usual Record argument. For producing a device product, * the produce funtion should have device::Record argument. */ - class ESProducer : public edm::ESProducer { - using Base = edm::ESProducer; + class ESProducer : public edm::ESProducerExternalWork { + using Base = edm::ESProducerExternalWork; public: static void prevalidate(edm::ConfigurationDescriptions& descriptions) { @@ -76,6 +75,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { auto const& devices = cms::alpakatools::devices(); assert(devices.size() == 1); device::Record const deviceRecord(record, devices.front()); + static_assert(std::is_same_v, + alpaka::Queue>, + "Non-blocking queue when trying to use ES data product directly. This might indicate a " + "need to extend the Alpaka ESProducer base class."); return std::invoke(iMethod, iThis, deviceRecord); }, label); @@ -94,12 +97,12 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { using TProduct = typename edm::eventsetup::produce::smart_pointer_traits::type; using ProductType = ESDeviceProduct; using ReturnType = detail::ESDeviceProductWithStorage; - return Base::setWhatProduced( - [function = std::forward(func)](TRecord const& record) -> std::unique_ptr { + return Base::setWhatAcquiredProducedWithLambda( + // acquire() part + [function = std::forward(func), synchronize = synchronize_](TRecord const& record, + edm::WaitingTaskWithArenaHolder holder) { // TODO: move the multiple device support into EventSetup system itself auto const& devices = cms::alpakatools::devices(); - std::vector> queues; - queues.reserve(devices.size()); auto ret = std::make_unique(devices.size()); bool allnull = true; bool anynull = false; @@ -112,12 +115,28 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { } else { anynull = true; } - queues.push_back(deviceRecord.queuePtr()); - } - // TODO: to be changed asynchronous later - for (auto& queuePtr : queues) { - alpaka::wait(*queuePtr); + if (synchronize) { + alpaka::wait(deviceRecord.queue()); + } else { + enqueueCallback(deviceRecord.queue(), std::move(holder)); + } + // The Queue is returned to the QueueCache. The same + // Queue may be used for other work before the work + // enqueued here finishes. The only impact would be a + // (slight?) delay in the completion of the other work. + // Given that the ESProducers are expected to be mostly + // for host-to-device data copies, that are serialized + // anyway (at least on current NVIDIA), this should be + // reasonable behavior for now. } + return std::tuple(std::move(ret), allnull, anynull); + }, + // produce() part, called after the asynchronous work in all queues have finished + [](TRecord const& record, auto fromAcquire) -> std::unique_ptr { + auto [ret, allnull, anynull] = std::move(fromAcquire); + // The 'allnull'/'anynull' actions are in produce() + // to keep any destination memory in 'ret' + // alive until the asynchronous work has finished if (allnull) { return nullptr; } else if (anynull) { @@ -129,17 +148,19 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { // make the EventSetup system itself aware of multiple // devies (or memory spaces). I hope this exception // would be good-enough until we get there. - ESProducer::throwSomeNullException(); + throwSomeNullException(); } - return ret; + return std::move(ret); }, label); } + static void enqueueCallback(Queue& queue, edm::WaitingTaskWithArenaHolder holder); static void throwSomeNullException(); std::string const moduleLabel_; std::string const appendToDataLabel_; + bool const synchronize_; }; } // namespace ALPAKA_ACCELERATOR_NAMESPACE diff --git a/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h b/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h index d8d2f2de6fea3..c2d41e91a9106 100644 --- a/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h +++ b/HeterogeneousCore/AlpakaCore/interface/alpaka/ProducerBase.h @@ -10,8 +10,6 @@ #include "FWCore/Utilities/interface/Transition.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/DeviceProductType.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/EDMetadataAcquireSentry.h" -#include "HeterogeneousCore/AlpakaCore/interface/EventCache.h" -#include "HeterogeneousCore/AlpakaCore/interface/QueueCache.h" #include "HeterogeneousCore/AlpakaCore/interface/modulePrevalidate.h" #include "HeterogeneousCore/AlpakaInterface/interface/Backend.h" #include "HeterogeneousCore/AlpakaInterface/interface/CopyToHost.h" diff --git a/HeterogeneousCore/AlpakaCore/src/alpaka/ESProducer.cc b/HeterogeneousCore/AlpakaCore/src/alpaka/ESProducer.cc index c4f7c58a68e1d..028718bc74c85 100644 --- a/HeterogeneousCore/AlpakaCore/src/alpaka/ESProducer.cc +++ b/HeterogeneousCore/AlpakaCore/src/alpaka/ESProducer.cc @@ -1,10 +1,29 @@ +#include "FWCore/Concurrency/interface/Async.h" +#include "FWCore/ServiceRegistry/interface/Service.h" #include "FWCore/Utilities/interface/EDMException.h" +#include "HeterogeneousCore/AlpakaCore/interface/EventCache.h" #include "HeterogeneousCore/AlpakaCore/interface/alpaka/ESProducer.h" +#include "HeterogeneousCore/AlpakaInterface/interface/HostOnlyTask.h" namespace ALPAKA_ACCELERATOR_NAMESPACE { ESProducer::ESProducer(edm::ParameterSet const& iConfig) : moduleLabel_(iConfig.getParameter("@module_label")), - appendToDataLabel_(iConfig.getParameter("appendToDataLabel")) {} + appendToDataLabel_(iConfig.getParameter("appendToDataLabel")), + // The 'synchronize' parameter can be unset in Alpaka modules + // specified with the namespace prefix instead if '@alpaka' + // suffix + synchronize_( + iConfig.getUntrackedParameter("alpaka").getUntrackedParameter("synchronize", false)) {} + + void ESProducer::enqueueCallback(Queue& queue, edm::WaitingTaskWithArenaHolder holder) { + edm::Service async; + auto event = cms::alpakatools::getEventCache().get(alpaka::getDev(queue)); + alpaka::enqueue(queue, *event); + async->runAsync( + std::move(holder), + [event = std::move(event)]() mutable { alpaka::wait(*event); }, + []() { return "Enqueued via " EDM_STRINGIZE(ALPAKA_ACCELERATOR_NAMESPACE) "::ESProducer::enqueueCallback()"; }); + } void ESProducer::throwSomeNullException() { throw edm::Exception(edm::errors::UnimplementedFeature) From 52559af5b6d2f16115e9e67eba92007b38bf1921 Mon Sep 17 00:00:00 2001 From: Shahzad Malik Muzaffar Date: Tue, 7 Jan 2025 12:29:26 +0100 Subject: [PATCH 398/418] Update lost dict def for EcalRecHitSoA --- Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py | 1 + 1 file changed, 1 insertion(+) diff --git a/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py b/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py index 2312960db78fb..29d4ba33f175f 100755 --- a/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py +++ b/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py @@ -77,6 +77,7 @@ {'HGCDigi' : ['HGCSample']}, {'HGCRecHit' : ['constHGCRecHit','HGCRecHit']}, {'SiPixelObjects' : ['SiPixelQuality.*']}, + {'EcalRecHit' : ['EcalRecHitSoA.*']}, ] ignoreEdmDP = { From 5c2080c0304b7dcd782c7992371784e76df84487 Mon Sep 17 00:00:00 2001 From: Luca Ferragina Date: Tue, 7 Jan 2025 13:34:40 +0100 Subject: [PATCH 399/418] Fix double inclusion of Phase2HLTMuonSelectorForL3 in some cases --- RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h | 1 - RecoMuon/L3TrackFinder/plugins/SealModules.cc | 2 ++ RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc | 2 -- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h b/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h index e7fcc02585b55..7a29b42c52082 100644 --- a/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h +++ b/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h @@ -30,7 +30,6 @@ #include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" diff --git a/RecoMuon/L3TrackFinder/plugins/SealModules.cc b/RecoMuon/L3TrackFinder/plugins/SealModules.cc index 66528331f148f..f1edc80af9233 100644 --- a/RecoMuon/L3TrackFinder/plugins/SealModules.cc +++ b/RecoMuon/L3TrackFinder/plugins/SealModules.cc @@ -4,6 +4,8 @@ #include "RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h" #include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilderFactory.h" #include "RecoMuon/L3TrackFinder/interface/HLTMuonL2SelectorForL3IO.h" +#include "RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h" DEFINE_EDM_VALIDATED_PLUGIN(BaseCkfTrajectoryBuilderFactory, MuonCkfTrajectoryBuilder, "MuonCkfTrajectoryBuilder"); DEFINE_FWK_MODULE(HLTMuonL2SelectorForL3IO); +DEFINE_FWK_MODULE(Phase2HLTMuonSelectorForL3); diff --git a/RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc b/RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc index 4f339ba43a1f6..97009a7121e36 100644 --- a/RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc +++ b/RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc @@ -202,5 +202,3 @@ const bool Phase2HLTMuonSelectorForL3::rejectL3Track(l1t::TrackerMuonRef l1TkMuR LogDebug(metname) << "Reject L3 Track: " << reject; return reject; } - -DEFINE_FWK_MODULE(Phase2HLTMuonSelectorForL3); From 399e4f25b42eb580aff592f8d179dd842c08bdc6 Mon Sep 17 00:00:00 2001 From: AdrianoDee Date: Tue, 3 Dec 2024 14:48:06 +0100 Subject: [PATCH 400/418] Removing CUDA/gpu from Pixel code configs, removing all CUDA wfs --- .../python/pixelNtupletFit_cff.py | 7 - Configuration/PyReleaseValidation/README.md | 21 +- .../PyReleaseValidation/python/relval_gpu.py | 2 - .../python/relval_steps.py | 6 +- .../python/upgradeWorkflowComponents.py | 649 ++---------------- .../PyReleaseValidation/scripts/README.md | 113 ++- .../StandardSequences/python/RawToDigi_cff.py | 2 +- .../StandardSequences/python/Services_cff.py | 3 +- .../python/SiPixelRawToDigi_cfi.py | 25 +- .../python/siPixelDigis_cff.py | 35 +- .../python/HILowPtConformalPixelTracks_cfi.py | 93 +-- .../SiPixelClusterizerPreSplitting_cfi.py | 25 +- .../python/SiPixelClusterizer_cfi.py | 7 +- .../python/siPixelClustersPreSplitting_cff.py | 119 +--- .../python/PixelCPEESProducers_cff.py | 3 - .../python/SiPixelRecHits_cfi.py | 117 +--- .../python/PixelTracks_cff.py | 113 --- .../BeamSpotProducer/python/BeamSpot_cff.py | 6 - .../python/RecoPixelVertexing_cff.py | 98 +-- .../RecoTrack/python/TrackValidation_cff.py | 7 +- 20 files changed, 167 insertions(+), 1284 deletions(-) delete mode 100644 Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py diff --git a/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py b/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py deleted file mode 100644 index 94b14a4f5a6e3..0000000000000 --- a/Configuration/ProcessModifiers/python/pixelNtupletFit_cff.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This modifier is for replacing the legacy pixel tracks with the "Patatrack" pixel ntuplets, -# fishbone cleaning, and either the Broken Line fit (by default) or the Riemann fit. -# It also replaces the "gap" pixel vertices with a density-based vertex reconstruction algorithm. - -pixelNtupletFit = cms.Modifier() diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index 84b1e1bc84129..ccd8b4aabd0d4 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -43,24 +43,9 @@ The offsets currently in use are: * 0.424: Alpaka, HCAL only, portable profiling * 0.492: Alpaka, full reco with pixel quadruplets * 0.496: Alpaka, full reco with pixel triplets -* 0.5: Pixel tracking only + 0.1 -* 0.501: Patatrack, pixel only quadruplets, on CPU -* 0.502: Patatrack, pixel only quadruplets, with automatic offload to GPU if available -* 0.504: Patatrack, pixel only quadruplets, GPU profiling -* 0.505: Patatrack, pixel only triplets, on CPU -* 0.506: Patatrack, pixel only triplets, with automatic offload to GPU if available -* 0.508: Patatrack, pixel only triplets, GPU profiling -* 0.511: Patatrack, ECAL only, on CPU -* 0.512: Patatrack, ECAL only, with automatic offload to GPU if available -* 0.513: Patatrack, ECAL only, GPU vs. CPU validation -* 0.514: Patatrack, ECAL only, GPU profiling -* 0.521: Patatrack, HCAL only, on CPU -* 0.522: Patatrack, HCAL only, with automatic offload to GPU if available -* 0.524: Patatrack, HCAL only, GPU profiling -* 0.591: Patatrack, full reco with pixel quadruplets, on CPU -* 0.592: Patatrack, full reco with pixel quadruplets, with automatic offload to GPU if available -* 0.595: Patatrack, full reco with pixel triplets, on CPU -* 0.596: Patatrack, full reco with pixel triplets, with automatic offload to GPU if available +* 0.5: Legacy pixel tracking only (CPU) +* 0.511: Legacy ECAL reco only (CPU) +* 0.521: Legacy HCAL reco only (CPU) * 0.6: HE Collapse (old depth segmentation for 2018) * 0.601: HLT as separate step * 0.7: trackingMkFit modifier diff --git a/Configuration/PyReleaseValidation/python/relval_gpu.py b/Configuration/PyReleaseValidation/python/relval_gpu.py index c79e13bc00f9e..c470c370b2bf0 100644 --- a/Configuration/PyReleaseValidation/python/relval_gpu.py +++ b/Configuration/PyReleaseValidation/python/relval_gpu.py @@ -42,8 +42,6 @@ # Alpaka pixel-only: TTbar with PU: quadruplets any backend, any backend vs cpu validation, profiling numWFIB = [ - # 2023, Alpaka-based noPU - 12434.402,12434.403,12434.412,12434.422,12434.423, # 2024, Alpaka-based noPU 12834.402, 12834.403, 12834.404, diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 9876746655206..98f064ffcd62c 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -2940,10 +2940,10 @@ def gen2024HiMix(fragment,howMuch): '--procModifiers': 'pixelNtupletFit' } step3_pixel_ntuplet_gpu = { - '--procModifiers': 'pixelNtupletFit,gpu' + '--procModifiers': 'alpaka' } step3_pixel_ntuplet_gpu_validation = { - '--procModifiers': 'pixelNtupletFit,gpuValidation' + '--procModifiers': 'alpaka,alpakaValidation' } step3_pixel_triplets = { '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' @@ -2955,7 +2955,7 @@ def gen2024HiMix(fragment,howMuch): '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' } step3_gpu = { - '--procModifiers': 'gpu', + '--procModifiers': 'alpaka', } step3_trackingLowPU = { '--era': 'Run2_2016_trackingLowPU' diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 7f3ab207ea7c2..8275172ecfbda 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -1101,169 +1101,51 @@ def setup_(self, step, stepName, stepDict, k, properties): else: stepDict[stepName][k] = merge([self.__harvest, stepDict[step][k]]) -# Pixel-only quadruplets workflow running on CPU -# - HLT on CPU -# - Pixel-only reconstruction on CPU, with DQM and validation -# - harvesting - -upgradeWFs['PatatrackPixelOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyCPU', - offset = 0.501, -) - -# Pixel-only quadruplets workflow running on CPU or GPU -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackPixelOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyGPU', - offset = 0.502, -) - -# Pixel-only quadruplets workflow running on CPU and GPU -# - HLT on GPU (required) -# - Pixel-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackPixelOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_PixelOnlyGPU_Validation', - offset = 0.503, -) - -# Pixel-only quadruplets workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional) -upgradeWFs['PatatrackPixelOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise' : 'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_PixelOnlyGPU_Profiling', - offset = 0.504, -) +############################################################################################################### +### Calorimeter-only reco +### these are not technically Patarack workflows but for +### the moment we can still leverage on the PatatrackWorkflow +### constructor for simplicity -# Pixel-only triplets workflow running on CPU +# ECAL-only workflow running on CPU # - HLT on CPU -# - Pixel-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' - }, - suffix = 'Patatrack_PixelOnlyTripletsCPU', - offset = 0.505, -) - -# Pixel-only triplets workflow running on CPU or GPU -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional), with DQM and validation +# - ECAL-only reconstruction on CPU, with DQM and validation # - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsGPU'] = PatatrackWorkflow( +upgradeWFs['ECALOnlyCPU'] = PatatrackWorkflow( digi = { # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' }, reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' + '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', }, harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM' + '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' }, - suffix = 'Patatrack_PixelOnlyTripletsGPU', - offset = 0.506, + suffix = 'ECALOnlyCPU', + offset = 0.511, ) -# Pixel-only triplets workflow running on CPU and GPU -# - HLT on GPU (required) -# - Pixel-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons +# HCAL-only workflow running on CPU +# - HLT on CPU +# - HCAL-only reconstruction on CPU, with DQM and validation # - harvesting -upgradeWFs['PatatrackPixelOnlyTripletsGPUValidation'] = PatatrackWorkflow( +upgradeWFs['HCALOnlyCPU'] = PatatrackWorkflow( digi = { # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' }, reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' + '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', }, harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM', - '--procModifiers': 'gpuValidation', + '-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' }, - suffix = 'Patatrack_PixelOnlyTripletsGPU_Validation', - offset = 0.507, + suffix = 'HCALOnlyCPU', + offset = 0.521, ) -# Pixel-only triplets workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - Pixel-only reconstruction on GPU (optional) -upgradeWFs['PatatrackPixelOnlyTripletsGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_PixelOnlyTripletsGPU_Profiling', - offset = 0.508, -) +############################################################################################################### +### Alpaka workflows +### # ECAL-only workflow running on CPU or GPU with Alpaka code # - HLT with Alpaka @@ -1272,7 +1154,6 @@ def setup_(self, step, stepName, stepDict, k, properties): upgradeWFs['PatatrackECALOnlyAlpaka'] = PatatrackWorkflow( digi = { # customize the ECAL Local Reco part of the HLT menu for Alpaka - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1309,168 +1190,11 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.413, ) -# ECAL-only workflow running on CPU -# - HLT on CPU -# - ECAL-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackECALOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyCPU', - offset = 0.511, -) - -# ECAL-only workflow running on CPU or GPU -# - HLT on GPU (optional) -# - ECAL-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackECALOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - '--procModifiers': 'gpu' - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyGPU', - offset = 0.512, -) - -# ECAL-only workflow running on CPU and GPU -# - HLT on GPU (required) -# - ECAL-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackECALOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,VALIDATION:@ecalOnlyValidation,DQM:@ecalOnly', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@ecalOnlyValidation+@ecal' - }, - suffix = 'Patatrack_ECALOnlyGPU_Validation', - offset = 0.513, -) - -# ECAL-only workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - ECAL-only reconstruction on GPU (optional) -upgradeWFs['PatatrackECALOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly', - '--procModifiers': 'gpu', - '--customise' : 'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_ECALOnlyGPU_Profiling', - offset = 0.514, -) - -# HCAL-only workflow running on CPU -# - HLT on CPU -# - HCAL-only reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackHCALOnlyCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_HCALOnlyCPU', - offset = 0.521, -) - -# HCAL-only workflow running on CPU or GPU -# - HLT on GPU (optional) -# - HCAL-only reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackHCALOnlyGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - '--procModifiers': 'gpu' - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_HCALOnlyGPU', - offset = 0.522, -) - -# HCAL-only workflow running on CPU and GPU -# - HLT on GPU (required) -# - HCAL-only reconstruction on both CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackHCALOnlyGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,VALIDATION:@hcalOnlyValidation,DQM:@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@hcalOnlyValidation+@hcal' - }, - suffix = 'Patatrack_HCALOnlyGPU_Validation', - offset = 0.523, -) - -# HCAL-only workflow running on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - HCAL-only reconstruction on GPU (optional) -upgradeWFs['PatatrackHCALOnlyGPUProfiling'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly', - '--procModifiers': 'gpu', - '--customise' : 'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' - }, - harvest = None, - suffix = 'Patatrack_HCALOnlyGPU_Profiling', - offset = 0.524, -) - # HCAL-PF Only workflow running HCAL local reco on GPU and PF with Alpaka with DQM and Validation # - HLT-alpaka # - HCAL-only reconstruction using Alpaka with DQM and Validation upgradeWFs['PatatrackHCALOnlyAlpakaValidation'] = PatatrackWorkflow( - digi = { - '--procModifiers': 'alpaka', + digi = { '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1490,7 +1214,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HCAL-only reconstruction using GPU and Alpaka with DQM and Validation for PF Alpaka vs CPU comparisons upgradeWFs['PatatrackHCALOnlyGPUandAlpakaValidation'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1510,7 +1233,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HCAL-only reconstruction using Alpaka upgradeWFs['PatatrackHCALOnlyAlpakaProfiling'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', }, reco = { '-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly', @@ -1527,7 +1249,6 @@ def setup_(self, step, stepName, stepDict, k, properties): # - harvesting upgradeWFs['PatatrackFullRecoAlpaka'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1547,9 +1268,9 @@ def setup_(self, step, stepName, stepDict, k, properties): # - HLT on GPU (optional) # - reconstruction on Alpaka, with DQM and validation # - harvesting + upgradeWFs['PatatrackFullRecoAlpaka'] = PatatrackWorkflow( digi = { - '--procModifiers': 'alpaka', '--customise' : 'HeterogeneousCore/AlpakaServices/customiseAlpakaServiceMemoryFilling.customiseAlpakaServiceMemoryFilling', }, reco = { @@ -1565,309 +1286,9 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.496, ) -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllCPU', - offset = 0.581, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU or GPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllGPU', - offset = 0.582, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU and GPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackAllGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_AllGPU_Validation', - offset = 0.583, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - minimal reconstruction on GPU (optional) -# FIXME workflow 0.584 to be implemented - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllTripletsCPU', - offset = 0.585, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU or GPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackAllTripletsGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only' - }, - suffix = 'Patatrack_AllTripletsGPU', - offset = 0.586, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU and GPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons +# Pixel-only quadruplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with DQM and validation # - harvesting -upgradeWFs['PatatrackAllTripletsGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - '-s': 'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,VALIDATION:@pixelTrackingOnlyValidation+@ecalOnlyValidation+@hcalOnlyValidation,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - '-s': 'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only', - '--procModifiers': 'gpuValidation' - }, - suffix = 'Patatrack_AllTripletsGPU_Validation', - offset = 0.587, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU or GPU, trimmed down for benchmarking -# - HLT on GPU (optional) -# - minimal reconstruction on GPU (optional) -# FIXME workflow 0.588 to be implemented - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU, together with the full offline reconstruction -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoCPU', - offset = 0.591, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on GPU (optional), together with the full offline reconstruction on CPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoGPU', - offset = 0.592, -) - -# Workflow running the Pixel quadruplets, ECAL and HCAL reconstruction on CPU and GPU, together with the full offline reconstruction on CPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackFullRecoGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoGPU_Validation', - offset = 0.593, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU, together with the full offline reconstruction -# - HLT on CPU -# - reconstruction on CPU, with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsCPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsCPU', - offset = 0.595, -) -# - ProdLike -upgradeWFs['PatatrackFullRecoTripletsCPUProdLike'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--datatier':'GEN-SIM-RAW', - '--eventcontent':'RAWSIM', - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM', - '--procModifiers': 'pixelNtupletFit', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets', - '--datatier':'AODSIM', - '--eventcontent':'AODSIM', - }, - harvest = None, - suffix = 'Patatrack_FullRecoTripletsCPUProdLike', - offset = 0.59521, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on GPU (optional), together with the full offline reconstruction on CPU -# - HLT on GPU (optional) -# - reconstruction on GPU (optional), with DQM and validation -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsGPU'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsGPU', - offset = 0.596, -) -# - ProdLike -upgradeWFs['PatatrackFullRecoTripletsGPUProdLike'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--procModifiers': 'gpu', - '--datatier':'GEN-SIM-RAW', - '--eventcontent':'RAWSIM', - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM', - '--procModifiers': 'pixelNtupletFit,gpu', - '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets', - '--datatier':'AODSIM', - '--eventcontent':'AODSIM', - }, - harvest = None, - suffix = 'Patatrack_FullRecoTripletsGPUProdLike', - offset = 0.59621, -) - -# Workflow running the Pixel triplets, ECAL and HCAL reconstruction on CPU and GPU, together with the full offline reconstruction on CPU -# - HLT on GPU (required) -# - reconstruction on CPU and GPU, with DQM and validation for GPU-vs-CPU comparisons -# - harvesting -upgradeWFs['PatatrackFullRecoTripletsGPUValidation'] = PatatrackWorkflow( - digi = { - # the HLT menu is already set up for using GPUs if available and if the "gpu" modifier is enabled - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'gpu' - }, - reco = { - # skip the @pixelTrackingOnlyValidation which cannot run together with the full reconstruction - '-s': 'RAW2DIGI:RawToDigi+RawToDigi_pixelOnly,L1Reco,RECO:reconstruction+reconstruction_pixelTrackingOnly,RECOSIM,PAT,VALIDATION:@standardValidation+@miniAODValidation,DQM:@standardDQM+@ExtraHLT+@miniAODDQM+@pixelTrackingOnlyDQM', - '--accelerators': 'gpu-nvidia', - '--procModifiers': 'pixelNtupletFit,gpuValidation', - '--customise' : 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' - }, - harvest = { - # skip the @pixelTrackingOnlyDQM harvesting - }, - suffix = 'Patatrack_FullRecoTripletsGPU_Validation', - offset = 0.597, -) upgradeWFs['PatatrackPixelOnlyAlpaka'] = PatatrackWorkflow( digi = { @@ -1886,6 +1307,10 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.402, ) +# Pixel-only quadruplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyAlpakaValidation'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1904,6 +1329,8 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.403, ) +# Pixel-only quadruplets workflow running on CPU or GPU, trimmed down for benchmarking + upgradeWFs['PatatrackPixelOnlyAlpakaProfiling'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1918,6 +1345,11 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.404, ) + +# Pixel-only triplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyTripletsAlpaka'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1935,6 +1367,10 @@ def setup_(self, step, stepName, stepDict, k, properties): offset = 0.406, ) +# Pixel-only triplets workflow running on GPU (optional) +# - Pixel-only reconstruction with Alpaka, with standard and CPUvsGPU DQM and validation +# - harvesting for CPUvsGPU validation + upgradeWFs['PatatrackPixelOnlyTripletsAlpakaValidation'] = PatatrackWorkflow( digi = { '--procModifiers': 'alpaka', @@ -1967,6 +1403,7 @@ def setup_(self, step, stepName, stepDict, k, properties): ) # end of Patatrack workflows +############################################################################################################### class UpgradeWorkflow_ProdLike(UpgradeWorkflow): def setup_(self, step, stepName, stepDict, k, properties): diff --git a/Configuration/PyReleaseValidation/scripts/README.md b/Configuration/PyReleaseValidation/scripts/README.md index 1640272426310..e76ab1cc700a4 100644 --- a/Configuration/PyReleaseValidation/scripts/README.md +++ b/Configuration/PyReleaseValidation/scripts/README.md @@ -227,63 +227,62 @@ premix nano matrix> showWorkflow gpu -140.065506 Run3-2023_JetMET2022D_RecoPixelOnlyTripletsGPU -140.065512 Run3-2023_JetMET2022D_RecoECALOnlyGPU -140.065522 Run3-2023_JetMET2022D_RecoHCALOnlyGPU -11634.502 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU -11634.503 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU_Validation -11634.504 TTbar_14TeV+2021_Patatrack_PixelOnlyGPU_Profiling -11634.506 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU -11634.507 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU_Validation -11634.508 TTbar_14TeV+2021_Patatrack_PixelOnlyTripletsGPU_Profiling -11634.512 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU -11634.513 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU_Validation -11634.514 TTbar_14TeV+2021_Patatrack_ECALOnlyGPU_Profiling -11634.522 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU -11634.523 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU_Validation -11634.524 TTbar_14TeV+2021_Patatrack_HCALOnlyGPU_Profiling -11634.582 TTbar_14TeV+2021_Patatrack_AllGPU -11634.583 TTbar_14TeV+2021_Patatrack_AllGPU_Validation -11634.586 TTbar_14TeV+2021_Patatrack_AllTripletsGPU -11634.587 TTbar_14TeV+2021_Patatrack_AllTripletsGPU_Validation -11634.592 TTbar_14TeV+2021_Patatrack_FullRecoGPU -11634.593 TTbar_14TeV+2021_Patatrack_FullRecoGPU_Validation -11634.596 TTbar_14TeV+2021_Patatrack_FullRecoTripletsGPU -11634.597 TTbar_14TeV+2021_Patatrack_FullRecoTripletsGPU_Validation -11650.502 ZMM_14+2021_Patatrack_PixelOnlyGPU -11650.503 ZMM_14+2021_Patatrack_PixelOnlyGPU_Validation -11650.504 ZMM_14+2021_Patatrack_PixelOnlyGPU_Profiling -11650.506 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU -11650.507 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU_Validation -11650.508 ZMM_14+2021_Patatrack_PixelOnlyTripletsGPU_Profiling -12434.502 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU -12434.503 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU_Validation -12434.504 TTbar_14TeV+2023_Patatrack_PixelOnlyGPU_Profiling -12434.506 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU -12434.507 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU_Validation -12434.508 TTbar_14TeV+2023_Patatrack_PixelOnlyTripletsGPU_Profiling -12434.512 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU -12434.513 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU_Validation -12434.514 TTbar_14TeV+2023_Patatrack_ECALOnlyGPU_Profiling -12434.522 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU -12434.523 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU_Validation -12434.524 TTbar_14TeV+2023_Patatrack_HCALOnlyGPU_Profiling -12434.582 TTbar_14TeV+2023_Patatrack_AllGPU -12434.583 TTbar_14TeV+2023_Patatrack_AllGPU_Validation -12434.586 TTbar_14TeV+2023_Patatrack_AllTripletsGPU -12434.587 TTbar_14TeV+2023_Patatrack_AllTripletsGPU_Validation -12434.592 TTbar_14TeV+2023_Patatrack_FullRecoGPU -12434.593 TTbar_14TeV+2023_Patatrack_FullRecoGPU_Validation -12434.596 TTbar_14TeV+2023_Patatrack_FullRecoTripletsGPU -12434.597 TTbar_14TeV+2023_Patatrack_FullRecoTripletsGPU_Validation -12450.502 ZMM_14+2023_Patatrack_PixelOnlyGPU -12450.503 ZMM_14+2023_Patatrack_PixelOnlyGPU_Validation -12450.504 ZMM_14+2023_Patatrack_PixelOnlyGPU_Profiling -12450.506 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU -12450.507 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU_Validation -12450.508 ZMM_14+2023_Patatrack_PixelOnlyTripletsGPU_Profiling -gpu contains 55 workflows -matrix> +141.008506 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU +141.008507 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Validation +141.008508 Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Profiling +141.008512 Run3-2023_JetMET2023B_RecoECALOnlyGPU +141.008513 Run3-2023_JetMET2023B_RecoECALOnlyGPU_Validation +141.008514 Run3-2023_JetMET2023B_RecoECALOnlyGPU_Profiling +141.008522 Run3-2023_JetMET2023B_RecoHCALOnlyGPU +141.008523 Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Validation +141.008524 Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Profiling +141.008583 Run3-2023_JetMET2023B_GPUValidation +160.03502 HydjetQ_MinBias_5362GeV_2023_ppReco +12450.406 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka +12450.407 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka_Validation +12450.408 ZMM_14+2023_Patatrack_PixelOnlyTripletsAlpaka_Profiling +12834.402 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka +12834.403 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka_Validation +12834.404 TTbar_14TeV+2024_Patatrack_PixelOnlyAlpaka_Profiling +12834.406 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka +12834.407 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka_Validation +12834.408 TTbar_14TeV+2024_Patatrack_PixelOnlyTripletsAlpaka_Profiling +12834.412 TTbar_14TeV+2024_Patatrack_ECALOnlyAlpaka +12834.422 TTbar_14TeV+2024_Patatrack_HCALOnlyAlpaka_Validation +12834.423 TTbar_14TeV+2024_Patatrack_HCALOnlyGPUandAlpaka_Validation +12834.424 TTbar_14TeV+2024_Patatrack_HCALOnlyAlpaka_Profiling +12850.402 ZMM_14+2024_Patatrack_PixelOnlyAlpaka +12850.403 ZMM_14+2024_Patatrack_PixelOnlyAlpaka_Validation +12850.404 ZMM_14+2024_Patatrack_PixelOnlyAlpaka_Profiling +12861.402 NuGun+2024_Patatrack_PixelOnlyAlpaka +13034.402 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka +13034.403 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka_Validation +13034.404 TTbar_14TeV+2024PU_Patatrack_PixelOnlyAlpaka_Profiling +13034.406 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka +13034.407 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Validation +13034.408 TTbar_14TeV+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Profiling +13034.412 TTbar_14TeV+2024PU_Patatrack_ECALOnlyAlpaka +13034.422 TTbar_14TeV+2024PU_Patatrack_HCALOnlyAlpaka_Validation +13034.423 TTbar_14TeV+2024PU_Patatrack_HCALOnlyGPUandAlpaka_Validation +13034.424 TTbar_14TeV+2024PU_Patatrack_HCALOnlyAlpaka_Profiling +13050.402 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka +13050.403 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka_Validation +13050.404 ZMM_14+2024PU_Patatrack_PixelOnlyAlpaka_Profiling +13050.406 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka +13050.407 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Validation +13050.408 ZMM_14+2024PU_Patatrack_PixelOnlyTripletsAlpaka_Profiling +13061.402 NuGun+2024PU_Patatrack_PixelOnlyAlpaka +24834.704 TTbar_14TeV+Run4D98_lstOnGPUIters01TrackingOnly +29634.402 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka +29634.403 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka_Validation +29634.404 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyAlpaka_Profiling +29634.406 TTbar_14TeV+Run4D110_Patatrack_PixelOnlyTripletsAlpaka +29661.402 NuGun+Run4D110_Patatrack_PixelOnlyAlpaka +29834.402 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka +29834.403 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka_Validation +29834.404 TTbar_14TeV+Run4D110PU_Patatrack_PixelOnlyAlpaka_Profiling +gpu contains 54 workflows +matrix> ``` All commands come with dynamic TAB-completion. There's also a transient history diff --git a/Configuration/StandardSequences/python/RawToDigi_cff.py b/Configuration/StandardSequences/python/RawToDigi_cff.py index 321e5daa02370..df40e9ca18c8a 100644 --- a/Configuration/StandardSequences/python/RawToDigi_cff.py +++ b/Configuration/StandardSequences/python/RawToDigi_cff.py @@ -77,7 +77,7 @@ from Configuration.ProcessModifiers.alpaka_cff import alpaka scalersRawToDigi.scalersInputTag = 'rawDataCollector' -siPixelDigis.cpu.InputLabel = 'rawDataCollector' +siPixelDigis.InputLabel = 'rawDataCollector' ecalDigisCPU.InputLabel = 'rawDataCollector' gpu.toModify(ecalDigisGPU, InputLabel = 'rawDataCollector') alpaka.toModify(ecalDigisPortable, InputLabel = 'rawDataCollector') diff --git a/Configuration/StandardSequences/python/Services_cff.py b/Configuration/StandardSequences/python/Services_cff.py index d7530b51f0ed9..4abf4783fa2da 100644 --- a/Configuration/StandardSequences/python/Services_cff.py +++ b/Configuration/StandardSequences/python/Services_cff.py @@ -14,10 +14,9 @@ def _addProcessAccelerators(process): process.load("Configuration.StandardSequences.Accelerators_cff") from Configuration.ProcessModifiers.gpu_cff import gpu -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit from Configuration.ProcessModifiers.alpaka_cff import alpaka -modifyConfigurationStandardSequencesServicesAddProcessAccelerators_ = (gpu | pixelNtupletFit | alpaka).makeProcessModifier(_addProcessAccelerators) +modifyConfigurationStandardSequencesServicesAddProcessAccelerators_ = (gpu | alpaka).makeProcessModifier(_addProcessAccelerators) # load TritonService when SONIC workflow is enabled def _addTritonService(process): diff --git a/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py b/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py index 26136836c7b5f..18eed6451c252 100644 --- a/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py +++ b/EventFilter/SiPixelRawToDigi/python/SiPixelRawToDigi_cfi.py @@ -1,36 +1,17 @@ import FWCore.ParameterSet.Config as cms -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA -from Configuration.ProcessModifiers.gpu_cff import gpu # legacy pixel unpacker from EventFilter.SiPixelRawToDigi.siPixelRawToDigi_cfi import siPixelRawToDigi as _siPixelRawToDigi -siPixelDigis = SwitchProducerCUDA( - cpu = _siPixelRawToDigi.clone() -) +siPixelDigis = _siPixelRawToDigi.clone() # use the Phase 1 settings from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel -phase1Pixel.toModify(siPixelDigis.cpu, +phase1Pixel.toModify(siPixelDigis, UsePhase1 = True ) from Configuration.ProcessModifiers.siPixelQualityRawToDigi_cff import siPixelQualityRawToDigi -siPixelQualityRawToDigi.toModify(siPixelDigis.cpu, +siPixelQualityRawToDigi.toModify(siPixelDigis, UseQualityInfo = True, SiPixelQualityLabel = 'forRawToDigi', ) - -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA -(gpu & ~phase2_tracker).toModify(siPixelDigis, - cuda = cms.EDAlias( - siPixelDigiErrors = cms.VPSet( - cms.PSet(type = cms.string("DetIdedmEDCollection")), - cms.PSet(type = cms.string("SiPixelRawDataErroredmDetSetVector")), - cms.PSet(type = cms.string("PixelFEDChanneledmNewDetSetVector")) - ), - siPixelDigisClustersPreSplitting = cms.VPSet( - cms.PSet(type = cms.string("PixelDigiedmDetSetVector")) - ) - ) -) diff --git a/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py b/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py index b5484afd2fafa..05263e3e8bdf9 100644 --- a/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py +++ b/EventFilter/SiPixelRawToDigi/python/siPixelDigis_cff.py @@ -7,40 +7,7 @@ siPixelDigis ) -# copy the pixel digis (except errors) and clusters to the host -from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA -siPixelDigisSoA = _siPixelDigisSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" -) - -# copy the pixel digis errors to the host -from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsSoAFromCUDA_cfi import siPixelDigiErrorsSoAFromCUDA as _siPixelDigiErrorsSoAFromCUDA -siPixelDigiErrorsSoA = _siPixelDigiErrorsSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" -) - -# convert the pixel digis errors to the legacy format -from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoA_cfi import siPixelDigiErrorsFromSoA as _siPixelDigiErrorsFromSoA -siPixelDigiErrors = _siPixelDigiErrorsFromSoA.clone() - -# use the Phase 1 settings -from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel -phase1Pixel.toModify(siPixelDigiErrors, - UsePhase1 = True -) - -from Configuration.ProcessModifiers.gpu_cff import gpu +# Phase 2 Tracker Modifier from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -(gpu & ~phase2_tracker).toReplaceWith(siPixelDigisTask, cms.Task( - # copy the pixel digis (except errors) and clusters to the host - siPixelDigisSoA, - # copy the pixel digis errors to the host - siPixelDigiErrorsSoA, - # convert the pixel digis errors to the legacy format - siPixelDigiErrors, - # SwitchProducer wrapping the legacy pixel digis producer or an alias combining the pixel digis information converted from SoA - siPixelDigisTask.copy() -)) - # Remove siPixelDigis until we have phase2 pixel digis phase2_tracker.toReplaceWith(siPixelDigisTask, cms.Task()) #FIXME diff --git a/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py b/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py index 146bfe0bbf071..d2a9af667a117 100644 --- a/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py +++ b/RecoHI/HiTracking/python/HILowPtConformalPixelTracks_cfi.py @@ -132,66 +132,27 @@ hiConformalPixelTracks ) -from Configuration.ProcessModifiers.gpu_cff import gpu -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAHIonPhase1_cfi import pixelTrackSoAFromCUDAHIonPhase1 as _pixelTracksSoA -from RecoTracker.PixelSeeding.caHitNtupletCUDAHIonPhase1_cfi import caHitNtupletCUDAHIonPhase1 as _pixelTracksCUDA -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAHIonPhase1_cfi import pixelTrackProducerFromSoAHIonPhase1 as _pixelTrackProducerFromSoA - -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA - -hiPixelTracksCUDA = _pixelTracksCUDA.clone(pixelRecHitSrc="siPixelRecHitsPreSplittingCUDA", idealConditions = False, - ptmin = 0.25, z0Cut = 8.0, hardCurvCut = 0.0756, doPtCut = False, - onGPU = True, - dcaCutInnerTriplet = 0.05, dcaCutOuterTriplet = 0.10, - CAThetaCutForward = 0.002, CAThetaCutBarrel = 0.001, - phiCuts = cms.vint32(19*[900]), #19 pairs - trackQualityCuts = dict( - chi2MaxPt = 10, - chi2Coeff = [0.9,1.8], - chi2Scale = 1.8, - tripletMinPt = 0.1, - tripletMaxTip = 0.3, - tripletMaxZip = 12, - quadrupletMinPt = 0.1, - quadrupletMaxTip = 0.5, - quadrupletMaxZip = 12 - )) - -# SwitchProducer providing the pixel tracks in SoA format on the CPU -hiPixelTracksSoA = SwitchProducerCUDA( - # build pixel ntuplets and pixel tracks in SoA format on the CPU - cpu = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCPU", - idealConditions = False, - doPtCut = False, - ptmin = 0.25, - hardCurvCut = 0.0756, - onGPU = False, - phiCuts = cms.vint32(19*[900]), #19 pairs - trackQualityCuts = dict( - chi2MaxPt = 10, - chi2Coeff = [0.9,1.8], - chi2Scale = 8, - tripletMinPt = 0.5, - tripletMaxTip = 0.3, - tripletMaxZip = 12, - quadrupletMinPt = 0.3, - quadrupletMaxTip = 0.5, - quadrupletMaxZip = 12 - )) -) - -gpu.toModify(hiPixelTracksSoA, - # transfer the pixel tracks in SoA format to the host - cuda = _pixelTracksSoA.clone(src="hiPixelTracksCUDA") -) +## These are the parameters used for the offline CUDA HI Pixel Tracks +## leaving them here for the records until we have the Alpaka equivalent + +# hiPixelTracksCUDA = _pixelTracksCUDA.clone(pixelRecHitSrc="siPixelRecHitsPreSplittingCUDA", idealConditions = False, +# ptmin = 0.25, z0Cut = 8.0, hardCurvCut = 0.0756, doPtCut = False, +# onGPU = True, +# dcaCutInnerTriplet = 0.05, dcaCutOuterTriplet = 0.10, +# CAThetaCutForward = 0.002, CAThetaCutBarrel = 0.001, +# phiCuts = cms.vint32(19*[900]), #19 pairs +# trackQualityCuts = dict( +# chi2MaxPt = 10, +# chi2Coeff = [0.9,1.8], +# chi2Scale = 1.8, +# tripletMinPt = 0.1, +# tripletMaxTip = 0.3, +# tripletMaxZip = 12, +# quadrupletMinPt = 0.1, +# quadrupletMaxTip = 0.5, +# quadrupletMaxZip = 12 +# )) -pixelNtupletFit.toReplaceWith(hiConformalPixelTracks,_pixelTrackProducerFromSoA.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", - trackSrc = "hiPixelTracksSoA", - minQuality = "highPurity" -)) hiConformalPixelTracksTaskPhase1 = cms.Task( @@ -204,20 +165,6 @@ hiConformalPixelTracks ) -pixelNtupletFit.toReplaceWith(hiConformalPixelTracksTaskPhase1, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the CPU - hiPixelTracksSoA, - # convert the pixel tracks from SoA to legacy format - hiConformalPixelTracks -)) - -(gpu & pixelNtupletFit).toReplaceWith(hiConformalPixelTracksTaskPhase1, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the GPU - hiPixelTracksCUDA, - # just copying the task above - hiConformalPixelTracksTaskPhase1.copy() -)) - phase1Pixel.toReplaceWith(hiConformalPixelTracksTask, hiConformalPixelTracksTaskPhase1) from Configuration.Eras.Modifier_run3_upc_cff import run3_upc diff --git a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py index 2732b4641da19..68161bddd572e 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizerPreSplitting_cfi.py @@ -1,34 +1,11 @@ import FWCore.ParameterSet.Config as cms -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA # SiPixelGainCalibrationServiceParameters from CondTools.SiPixel.SiPixelGainCalibrationService_cfi import * # legacy pixel cluster producer from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters -siPixelClustersPreSplitting = SwitchProducerCUDA( - cpu = _siPixelClusters.clone() -) - -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -from Configuration.ProcessModifiers.gpu_cff import gpu - -# ensure the same results when running on GPU (which supports only the 'HLT' payload) and CPU -# but not for phase-2 where we don't calibrate digis in the clusterizer (yet) -(gpu & ~phase2_tracker).toModify(siPixelClustersPreSplitting, - cpu = dict( - payloadType = 'HLT' - ) -) - -# SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA -gpu.toModify(siPixelClustersPreSplitting, - cuda = cms.EDAlias( - siPixelDigisClustersPreSplitting = cms.VPSet( - cms.PSet(type = cms.string("SiPixelClusteredmNewDetSetVector")) - ) - ) -) +siPixelClustersPreSplitting = _siPixelClusters.clone() from Configuration.ProcessModifiers.siPixelDigiMorphing_cff import siPixelDigiMorphing siPixelDigiMorphing.toModify( diff --git a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py index 1bbaef1910a19..9226180d24c46 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/SiPixelClusterizer_cfi.py @@ -17,8 +17,7 @@ ) # Run3, changes in the gain calibration scheme -#from Configuration.Eras.Era_Run3_cff import Run3 -#Run3.toModify(siPixelClusters, + from Configuration.Eras.Modifier_run3_common_cff import run3_common run3_common.toModify(siPixelClusters, VCaltoElectronGain = 1, # all gains=1, pedestals=0 @@ -46,7 +45,3 @@ (premix_stage2 & phase2_tracker).toModify(siPixelClusters, src = "mixData:Pixel" ) -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -(phase2_tracker & pixelNtupletFit).toModify(siPixelClusters, #at the moment the duplicate dropping is not imnplemented in Phase2 - DropDuplicates = False -) diff --git a/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py b/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py index 71d2ff35cadce..1ae9cc4bc2610 100644 --- a/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py +++ b/RecoLocalTracker/SiPixelClusterizer/python/siPixelClustersPreSplitting_cff.py @@ -1,101 +1,20 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * from Configuration.Eras.Modifier_run3_common_cff import run3_common -from Configuration.ProcessModifiers.gpu_cff import gpu from Configuration.ProcessModifiers.alpaka_cff import alpaka -# conditions used *only* by the modules running on GPU -from CalibTracker.SiPixelESProducers.siPixelROCsStatusAndMappingWrapperESProducer_cfi import siPixelROCsStatusAndMappingWrapperESProducer -from CalibTracker.SiPixelESProducers.siPixelGainCalibrationForHLTGPU_cfi import siPixelGainCalibrationForHLTGPU - -# SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA -from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting - -siPixelClustersPreSplittingTask = cms.Task( - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplitting -) - -# reconstruct the pixel digis and clusters on the gpu -from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDAPhase1_cfi import siPixelRawToClusterCUDAPhase1 as _siPixelRawToClusterCUDA -from RecoLocalTracker.SiPixelClusterizer.siPixelRawToClusterCUDAHIonPhase1_cfi import siPixelRawToClusterCUDAHIonPhase1 as _siPixelRawToClusterCUDAHIonPhase1 - -siPixelClustersPreSplittingCUDA = _siPixelRawToClusterCUDA.clone() - # HIon Modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA # Phase 2 Tracker Modifier from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelClustersPreSplittingCUDA, _siPixelRawToClusterCUDAHIonPhase1.clone()) - -run3_common.toModify(siPixelClustersPreSplittingCUDA, - # use the pixel channel calibrations scheme for Run 3 - clusterThreshold_layer1 = 4000, - VCaltoElectronGain = 1, # all gains=1, pedestals=0 - VCaltoElectronGain_L1 = 1, - VCaltoElectronOffset = 0, - VCaltoElectronOffset_L1 = 0) - -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAPhase1_cfi import siPixelDigisClustersFromSoAPhase1 as _siPixelDigisClustersFromSoAPhase1 -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAPhase2_cfi import siPixelDigisClustersFromSoAPhase2 as _siPixelDigisClustersFromSoAPhase2 - -siPixelDigisClustersPreSplitting = _siPixelDigisClustersFromSoAPhase1.clone() - -from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAHIonPhase1_cfi import siPixelDigisClustersFromSoAHIonPhase1 as _siPixelDigisClustersFromSoAHIonPhase1 -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting, _siPixelDigisClustersFromSoAHIonPhase1.clone()) - - -run3_common.toModify(siPixelDigisClustersPreSplitting, - clusterThreshold_layer1 = 4000) - -gpu.toReplaceWith(siPixelClustersPreSplittingTask, cms.Task( - # conditions used *only* by the modules running on GPU - siPixelROCsStatusAndMappingWrapperESProducer, - siPixelGainCalibrationForHLTGPU, - # reconstruct the pixel digis and clusters on the gpu - siPixelClustersPreSplittingCUDA, - # convert the pixel digis (except errors) and clusters to the legacy format - siPixelDigisClustersPreSplitting, - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplittingTask.copy() -)) - -from RecoLocalTracker.SiPixelClusterizer.siPixelPhase2DigiToClusterCUDA_cfi import siPixelPhase2DigiToClusterCUDA as _siPixelPhase2DigiToClusterCUDA -# for phase2 no pixel raw2digi is available at the moment -# so we skip the raw2digi step and run on pixel digis copied to gpu - -from SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi import PixelDigitizerAlgorithmCommon - -phase2_tracker.toReplaceWith(siPixelClustersPreSplittingCUDA,_siPixelPhase2DigiToClusterCUDA.clone( - Phase2ReadoutMode = PixelDigitizerAlgorithmCommon.Phase2ReadoutMode.value(), # Flag to decide Readout Mode : linear TDR (-1), dual slope with slope parameters (+1,+2,+3,+4 ...) with threshold subtraction - Phase2DigiBaseline = int(PixelDigitizerAlgorithmCommon.ThresholdInElectrons_Barrel.value()), #Same for barrel and endcap - Phase2KinkADC = 8, - ElectronPerADCGain = PixelDigitizerAlgorithmCommon.ElectronPerAdc.value() -)) +# The legacy pixel cluster producer +from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting -from EventFilter.SiPixelRawToDigi.siPixelDigisSoAFromCUDA_cfi import siPixelDigisSoAFromCUDA as _siPixelDigisSoAFromCUDA -siPixelDigisPhase2SoA = _siPixelDigisSoAFromCUDA.clone( - src = "siPixelClustersPreSplittingCUDA" +siPixelClustersPreSplittingTask = cms.Task( + siPixelClustersPreSplitting ) -phase2_tracker.toReplaceWith(siPixelDigisClustersPreSplitting, _siPixelDigisClustersFromSoAPhase2.clone( - clusterThreshold_layer1 = 4000, - clusterThreshold_otherLayers = 4000, - src = "siPixelDigisPhase2SoA", - #produceDigis = False - )) - -(gpu & phase2_tracker).toReplaceWith(siPixelClustersPreSplittingTask, cms.Task( - # reconstruct the pixel clusters on the gpu from copied digis - siPixelClustersPreSplittingCUDA, - # copy from gpu to cpu - siPixelDigisPhase2SoA, - # convert the pixel digis (except errors) and clusters to the legacy format - siPixelDigisClustersPreSplitting, - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplitting)) - ###################################################################### ### Alpaka Pixel Clusters Reco @@ -127,6 +46,10 @@ def _addProcessCalibTrackerAlpakaES(process): from RecoLocalTracker.SiPixelClusterizer.siPixelPhase2DigiToCluster_cfi import siPixelPhase2DigiToCluster as _siPixelPhase2DigiToCluster +# for phase2 no pixel raw2digi is available at the moment +# so we skip the raw2digi step and run on pixel digis copied to gpu +from SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi import PixelDigitizerAlgorithmCommon + (alpaka & phase2_tracker).toReplaceWith(siPixelClustersPreSplittingAlpaka, _siPixelPhase2DigiToCluster.clone( Phase2ReadoutMode = PixelDigitizerAlgorithmCommon.Phase2ReadoutMode.value(), # flag to decide Readout Mode : linear TDR (-1), dual slope with slope parameters (+1,+2,+3,+4 ...) with threshold subtraction Phase2DigiBaseline = int(PixelDigitizerAlgorithmCommon.ThresholdInElectrons_Barrel.value()), # same for barrel and endcap @@ -141,15 +64,15 @@ def _addProcessCalibTrackerAlpakaES(process): from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAAlpakaPhase2_cfi import siPixelDigisClustersFromSoAAlpakaPhase2 as _siPixelDigisClustersFromSoAAlpakaPhase2 from RecoLocalTracker.SiPixelClusterizer.siPixelDigisClustersFromSoAAlpakaHIonPhase1_cfi import siPixelDigisClustersFromSoAAlpakaHIonPhase1 as _siPixelDigisClustersFromSoAAlpakaHIonPhase1 -(alpaka & ~phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaPhase1.clone( +alpaka.toReplaceWith(siPixelClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaPhase1.clone( src = "siPixelClustersPreSplittingAlpaka" )) -(alpaka & pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaHIonPhase1.clone( +(alpaka & pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaHIonPhase1.clone( src = "siPixelClustersPreSplittingAlpaka" )) -(alpaka & phase2_tracker).toReplaceWith(siPixelDigisClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaPhase2.clone( +(alpaka & phase2_tracker).toReplaceWith(siPixelClustersPreSplitting,_siPixelDigisClustersFromSoAAlpakaPhase2.clone( clusterThreshold_layer1 = 4000, clusterThreshold_otherLayers = 4000, src = "siPixelClustersPreSplittingAlpaka", @@ -157,14 +80,6 @@ def _addProcessCalibTrackerAlpakaES(process): produceDigis = False )) -alpaka.toModify(siPixelClustersPreSplitting, - cpu = cms.EDAlias( - siPixelDigisClustersPreSplitting = cms.VPSet( - cms.PSet(type = cms.string("SiPixelClusteredmNewDetSetVector")) - ) - ) -) - # These produce pixelDigiErrors in Alpaka; they are constructed here because they need # siPixelClustersPreSplittingAlpaka* as input from EventFilter.SiPixelRawToDigi.siPixelDigiErrorsFromSoAAlpaka_cfi import siPixelDigiErrorsFromSoAAlpaka as _siPixelDigiErrorsFromSoAAlpaka @@ -189,10 +104,8 @@ def _addProcessCalibTrackerAlpakaES(process): siPixelDigiErrorsAlpaka, siPixelDigiErrorsAlpakaSerial, # convert from host SoA to legacy formats (digis and clusters) - siPixelDigisClustersPreSplitting, - # EDAlias for the clusters - siPixelClustersPreSplitting) -) + siPixelClustersPreSplitting +)) # Phase 2 (alpaka & phase2_tracker).toReplaceWith(siPixelClustersPreSplittingTask, cms.Task( @@ -204,7 +117,5 @@ def _addProcessCalibTrackerAlpakaES(process): siPixelDigiErrorsAlpaka, siPixelDigiErrorsAlpakaSerial, # convert the pixel digis (except errors) and clusters to the legacy format - siPixelDigisClustersPreSplitting, - # SwitchProducer wrapping the legacy pixel cluster producer or an alias for the pixel clusters information converted from SoA - siPixelClustersPreSplitting) -) + siPixelClustersPreSplitting +)) diff --git a/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py b/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py index 054e8b7c461ea..d0532d33ff260 100644 --- a/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py +++ b/RecoLocalTracker/SiPixelRecHits/python/PixelCPEESProducers_cff.py @@ -11,9 +11,6 @@ # 2. Pixel Generic CPE # from RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerPhase1_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerPhase2_cfi import * -from RecoLocalTracker.SiPixelRecHits.pixelCPEFastESProducerHIonPhase1_cfi import * # # 3. ESProducer for the Magnetic-field dependent template records # diff --git a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py index 4234a821f4dd9..c44823be3ab60 100644 --- a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py +++ b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py @@ -1,127 +1,26 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA -from Configuration.ProcessModifiers.gpu_cff import gpu from Configuration.ProcessModifiers.alpaka_cff import alpaka + # legacy pixel rechit producer from RecoLocalTracker.SiPixelRecHits.siPixelRecHitConverter_cfi import siPixelRecHitConverter as _siPixelRecHitConverter siPixelRecHits = _siPixelRecHitConverter.clone() -# SwitchProducer wrapping the legacy pixel rechit producer -siPixelRecHitsPreSplitting = SwitchProducerCUDA( - cpu = siPixelRecHits.clone( - src = 'siPixelClustersPreSplitting' - ) -) - -# phase 2 tracker modifier -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# HIon modifiers +# HIon Modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA +# Phase 2 Tracker Modifier +from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# convert the pixel rechits from legacy to SoA format on CPU -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyPhase1_cfi import siPixelRecHitSoAFromLegacyPhase1 as _siPixelRecHitsPreSplittingSoA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyPhase2_cfi import siPixelRecHitSoAFromLegacyPhase2 as _siPixelRecHitsPreSplittingSoAPhase2 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacyHIonPhase1_cfi import siPixelRecHitSoAFromLegacyHIonPhase1 as _siPixelRecHitsPreSplittingSoAHIonPhase1 - -siPixelRecHitsPreSplittingCPU = _siPixelRecHitsPreSplittingSoA.clone(convertToLegacy=True) -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplittingCPU, _siPixelRecHitsPreSplittingSoAHIonPhase1.clone(convertToLegacy=True, CPE = cms.string('PixelCPEFastHIonPhase1'))) -phase2_tracker.toReplaceWith(siPixelRecHitsPreSplittingCPU, _siPixelRecHitsPreSplittingSoAPhase2.clone(convertToLegacy=True, CPE = cms.string('PixelCPEFastPhase2'))) - -# modifier used to prompt patatrack pixel tracks reconstruction on cpu -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -pixelNtupletFit.toModify(siPixelRecHitsPreSplitting, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("SiPixelRecHitedmNewDetSetVector")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ) -)) - +# The legacy pixel rechit producer +siPixelRecHitsPreSplitting = siPixelRecHits.clone( + src = 'siPixelClustersPreSplitting' +) siPixelRecHitsPreSplittingTask = cms.Task( - # SwitchProducer wrapping the legacy pixel rechit producer or the cpu SoA producer siPixelRecHitsPreSplitting ) -# reconstruct the pixel rechits on the gpu -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAPhase1_cfi import siPixelRecHitCUDAPhase1 as _siPixelRecHitCUDAPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAPhase2_cfi import siPixelRecHitCUDAPhase2 as _siPixelRecHitCUDAPhase2 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitCUDAHIonPhase1_cfi import siPixelRecHitCUDAHIonPhase1 as _siPixelRecHitCUDAHIonPhase1 - -siPixelRecHitsPreSplittingCUDA = _siPixelRecHitCUDAPhase1.clone( - beamSpot = "offlineBeamSpotToCUDA" -) -(pp_on_AA & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplittingCUDA,_siPixelRecHitCUDAHIonPhase1.clone( - beamSpot = "offlineBeamSpotToCUDA" -)) -phase2_tracker.toReplaceWith(siPixelRecHitsPreSplittingCUDA,_siPixelRecHitCUDAPhase2.clone( - beamSpot = "offlineBeamSpotToCUDA" -)) - -#this is an alias for the SoA on GPU or CPU to be used for DQM -siPixelRecHitsPreSplittingSoA = SwitchProducerCUDA( - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyPhase1TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - )), -) - -(pp_on_AA & ~phase2_tracker).toModify(siPixelRecHitsPreSplittingSoA, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyHIonPhase1TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ))) - -phase2_tracker.toModify(siPixelRecHitsPreSplittingSoA, - cpu = cms.EDAlias( - siPixelRecHitsPreSplittingCPU = cms.VPSet( - cms.PSet(type = cms.string("pixelTopologyPhase2TrackingRecHitSoAHost")), - cms.PSet(type = cms.string("uintAsHostProduct")) - ))) - -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAPhase1_cfi import siPixelRecHitSoAFromCUDAPhase1 as _siPixelRecHitSoAFromCUDA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAHIonPhase1_cfi import siPixelRecHitSoAFromCUDAHIonPhase1 as _siPixelRecHitSoAFromCUDAHIonPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromCUDAPhase2_cfi import siPixelRecHitSoAFromCUDAPhase2 as _siPixelRecHitSoAFromCUDAPhase2 - -(gpu & pixelNtupletFit).toModify(siPixelRecHitsPreSplittingSoA, cuda = _siPixelRecHitSoAFromCUDA.clone()) -(gpu & pixelNtupletFit & phase2_tracker).toModify(siPixelRecHitsPreSplittingSoA, cuda = _siPixelRecHitSoAFromCUDAPhase2.clone()) - -# transfer the pixel rechits to the host and convert them from SoA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAPhase1_cfi import siPixelRecHitFromCUDAPhase1 as _siPixelRecHitFromCUDA -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAHIonPhase1_cfi import siPixelRecHitFromCUDAHIonPhase1 as _siPixelRecHitFromCUDAHIonPhase1 -from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromCUDAPhase2_cfi import siPixelRecHitFromCUDAPhase2 as _siPixelRecHitFromCUDAPhase2 - -(gpu & pixelNtupletFit).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDA.clone()) -(gpu & pixelNtupletFit & pp_on_AA).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDAHIonPhase1.clone()) -(gpu & pixelNtupletFit & phase2_tracker).toModify(siPixelRecHitsPreSplitting, cuda = _siPixelRecHitFromCUDAPhase2.clone()) - - -pixelNtupletFit.toReplaceWith(siPixelRecHitsPreSplittingTask, cms.Task( - cms.Task( - # reconstruct the pixel rechits on the cpu - siPixelRecHitsPreSplittingCPU, - # SwitchProducer wrapping an EDAlias on cpu or the converter from SoA to legacy on gpu - siPixelRecHitsPreSplittingTask.copy(), - # producing and converting on cpu (if needed) - siPixelRecHitsPreSplittingSoA) - ) - ) - -(gpu & pixelNtupletFit).toReplaceWith(siPixelRecHitsPreSplittingTask, cms.Task( - # reconstruct the pixel rechits on the gpu or on the cpu - # (normally only one of the two is run because only one is consumed from later stages) - siPixelRecHitsPreSplittingCUDA, - siPixelRecHitsPreSplittingCPU, - # SwitchProducer wrapping an EDAlias on cpu or the converter from SoA to legacy on gpu - siPixelRecHitsPreSplittingTask.copy(), - # producing and converting on cpu (if needed) - siPixelRecHitsPreSplittingSoA -)) - ###################################################################### ### Alpaka Pixel Hits Reco diff --git a/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py b/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py index c8c3719edfc84..79b257ab64fa3 100644 --- a/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py +++ b/RecoTracker/PixelTrackFitting/python/PixelTracks_cff.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA from RecoLocalTracker.SiStripRecHitConverter.StripCPEfromTrackAngle_cfi import * from RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitMatcher_cfi import * @@ -88,123 +87,11 @@ _pixelTracksTask_lowPU.replace(pixelTracksHitQuadruplets, pixelTracksHitTriplets) trackingLowPU.toReplaceWith(pixelTracksTask, _pixelTracksTask_lowPU) - -# "Patatrack" pixel ntuplets, fishbone cleaning, Broken Line fit, and density-based vertex reconstruction -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit - -from RecoTracker.PixelSeeding.caHitNtupletCUDAPhase1_cfi import caHitNtupletCUDAPhase1 as _pixelTracksCUDA -from RecoTracker.PixelSeeding.caHitNtupletCUDAPhase2_cfi import caHitNtupletCUDAPhase2 as _pixelTracksCUDAPhase2 -from RecoTracker.PixelSeeding.caHitNtupletCUDAHIonPhase1_cfi import caHitNtupletCUDAHIonPhase1 as _pixelTracksCUDAHIonPhase1 - # Phase 2 modifier from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker # HIon modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA -# SwitchProducer providing the pixel tracks in SoA format on the CPU -pixelTracksSoA = SwitchProducerCUDA( - # build pixel ntuplets and pixel tracks in SoA format on the CPU - cpu = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - idealConditions = False, - onGPU = False - ) -) - -# use quality cuts tuned for Run 2 ideal conditions for all Run 3 workflows -run3_common.toModify(pixelTracksSoA.cpu, - idealConditions = True -) - -# convert the pixel tracks from SoA to legacy format -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAPhase1_cfi import pixelTrackProducerFromSoAPhase1 as _pixelTrackProducerFromSoA -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAPhase2_cfi import pixelTrackProducerFromSoAPhase2 as _pixelTrackProducerFromSoAPhase2 -from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAHIonPhase1_cfi import pixelTrackProducerFromSoAHIonPhase1 as _pixelTrackProducerFromSoAHIonPhase1 - -pixelNtupletFit.toReplaceWith(pixelTracks, _pixelTrackProducerFromSoA.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -(pixelNtupletFit & phase2_tracker).toReplaceWith(pixelTracks, _pixelTrackProducerFromSoAPhase2.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -(pixelNtupletFit & pp_on_AA).toReplaceWith(pixelTracks, _pixelTrackProducerFromSoAHIonPhase1.clone( - pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting", -)) - -pixelNtupletFit.toReplaceWith(pixelTracksTask, cms.Task( - # build the pixel ntuplets and the pixel tracks in SoA format on the GPU - pixelTracksSoA, - # convert the pixel tracks from SoA to legacy format - pixelTracks -)) - -# "Patatrack" sequence running on GPU (or CPU if not available) -from Configuration.ProcessModifiers.gpu_cff import gpu - -# build the pixel ntuplets and pixel tracks in SoA format on the GPU -pixelTracksCUDA = _pixelTracksCUDA.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - idealConditions = False, - onGPU = True, -) - -# use quality cuts tuned for Run 2 ideal conditions for all Run 3 workflows -run3_common.toModify(pixelTracksCUDA, - idealConditions = True -) - -# SwitchProducer providing the pixel tracks in SoA format on the CPU -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAPhase1_cfi import pixelTrackSoAFromCUDAPhase1 as _pixelTracksSoA -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAPhase2_cfi import pixelTrackSoAFromCUDAPhase2 as _pixelTracksSoAPhase2 -from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAHIonPhase1_cfi import pixelTrackSoAFromCUDAHIonPhase1 as _pixelTracksSoAHIonPhase1 - -gpu.toModify(pixelTracksSoA, - # transfer the pixel tracks in SoA format to the host - cuda = _pixelTracksSoA.clone() -) - -(gpu & phase2_tracker).toModify(pixelTracksSoA,cuda = _pixelTracksSoAPhase2.clone( -)) - -(gpu & pp_on_AA).toModify(pixelTracksSoA,cuda = _pixelTracksSoAHIonPhase1.clone( -)) - -phase2_tracker.toModify(pixelTracksSoA,cpu = _pixelTracksCUDAPhase2.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - onGPU = False -)) - -(pp_on_AA & ~phase2_tracker).toModify(pixelTracksSoA,cpu = _pixelTracksCUDAHIonPhase1.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA", - onGPU = False -)) - -phase2_tracker.toReplaceWith(pixelTracksCUDA,_pixelTracksCUDAPhase2.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - onGPU = True, -)) - -(pp_on_AA & ~phase2_tracker).toReplaceWith(pixelTracksCUDA,_pixelTracksCUDAHIonPhase1.clone( - pixelRecHitSrc = "siPixelRecHitsPreSplittingCUDA", - onGPU = True, -)) - -(pixelNtupletFit & gpu).toReplaceWith(pixelTracksTask, cms.Task( - # build the pixel ntuplets and pixel tracks in SoA format on the GPU - pixelTracksCUDA, - # transfer the pixel tracks in SoA format to the CPU, and convert them to legacy format - pixelTracksTask.copy() -)) - -## GPU vs CPU validation -# force CPU vertexing to use hit SoA from CPU chain and not the converted one from GPU chain -from Configuration.ProcessModifiers.gpuValidationPixel_cff import gpuValidationPixel -(pixelNtupletFit & gpu & gpuValidationPixel).toModify(pixelTracksSoA.cpu, - pixelRecHitSrc = "siPixelRecHitsPreSplittingSoA@cpu" - ) - ###################################################################### ### Alpaka Pixel Track Reco diff --git a/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py b/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py index 5c17275c17274..03775db850083 100644 --- a/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py +++ b/RecoVertex/BeamSpotProducer/python/BeamSpot_cff.py @@ -1,16 +1,10 @@ import FWCore.ParameterSet.Config as cms from RecoVertex.BeamSpotProducer.BeamSpot_cfi import * -from RecoVertex.BeamSpotProducer.offlineBeamSpotToCUDA_cfi import offlineBeamSpotToCUDA from RecoVertex.BeamSpotProducer.beamSpotDeviceProducer_cfi import beamSpotDeviceProducer as _beamSpotDeviceProducer offlineBeamSpotTask = cms.Task(offlineBeamSpot) -from Configuration.ProcessModifiers.gpu_cff import gpu -_offlineBeamSpotTask_gpu = offlineBeamSpotTask.copy() -_offlineBeamSpotTask_gpu.add(offlineBeamSpotToCUDA) -gpu.toReplaceWith(offlineBeamSpotTask, _offlineBeamSpotTask_gpu) - from Configuration.ProcessModifiers.alpaka_cff import alpaka _offlineBeamSpotTask_alpaka = offlineBeamSpotTask.copy() offlineBeamSpotDevice = _beamSpotDeviceProducer.clone(src = cms.InputTag('offlineBeamSpot')) diff --git a/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py b/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py index 0a2bb0d2b63b7..96dec2b62dd1b 100644 --- a/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py +++ b/RecoVertex/Configuration/python/RecoPixelVertexing_cff.py @@ -1,105 +1,21 @@ import FWCore.ParameterSet.Config as cms from HeterogeneousCore.AlpakaCore.functions import * -from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA from RecoTracker.PixelTrackFitting.PixelTracks_cff import * from RecoVertex.PixelVertexFinding.PixelVertices_cff import * -# legacy pixel vertex reconsruction using the divisive vertex finder -pixelVerticesTask = cms.Task( - pixelVertices -) - -# "Patatrack" pixel ntuplets, fishbone cleaning, Broken Line fit, and density-based vertex reconstruction -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker - -# HIon modifiers +# HIon Modifiers from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA +# Phase 2 Tracker Modifier +from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker -# build the pixel vertices in SoA format on the CPU -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAPhase1_cfi import pixelVertexProducerCUDAPhase1 as _pixelVerticesCUDA -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAPhase2_cfi import pixelVertexProducerCUDAPhase2 as _pixelVerticesCUDAPhase2 -from RecoVertex.PixelVertexFinding.pixelVertexProducerCUDAHIonPhase1_cfi import pixelVertexProducerCUDAHIonPhase1 as _pixelVerticesCUDAHIonPhase1 - -pixelVerticesSoA = SwitchProducerCUDA( - cpu = _pixelVerticesCUDA.clone( - pixelTrackSrc = "pixelTracksSoA", - onGPU = False - ) -) - -phase2_tracker.toModify(pixelVerticesSoA,cpu = _pixelVerticesCUDAPhase2.clone( - pixelTrackSrc = "pixelTracksSoA", - onGPU = False, - PtMin = 2.0 -)) - -(pp_on_AA & ~phase2_tracker).toModify(pixelVerticesSoA,cpu = _pixelVerticesCUDAHIonPhase1.clone( - pixelTrackSrc = "pixelTracksSoA", - doSplitting = False, - onGPU = False, -)) - -# convert the pixel vertices from SoA to legacy format -from RecoVertex.PixelVertexFinding.pixelVertexFromSoA_cfi import pixelVertexFromSoA as _pixelVertexFromSoA - -(pixelNtupletFit).toReplaceWith(pixelVertices, _pixelVertexFromSoA.clone( - src = "pixelVerticesSoA" -)) - -(pixelNtupletFit).toReplaceWith(pixelVerticesTask, cms.Task( - # build the pixel vertices in SoA format on the CPU - pixelVerticesSoA, - # convert the pixel vertices from SoA to legacy format +# legacy pixel vertex reconsruction using the divisive vertex finder +pixelVerticesTask = cms.Task( pixelVertices -)) - - -# "Patatrack" sequence running on the GPU -from Configuration.ProcessModifiers.gpu_cff import gpu - -# build pixel vertices in SoA format on the GPU -pixelVerticesCUDA = _pixelVerticesCUDA.clone( - pixelTrackSrc = "pixelTracksCUDA", - onGPU = True ) -phase2_tracker.toReplaceWith(pixelVerticesCUDA,_pixelVerticesCUDAPhase2.clone( - pixelTrackSrc = "pixelTracksCUDA", - onGPU = True, - PtMin = 2.0 -)) - -(pp_on_AA & ~phase2_tracker).toReplaceWith(pixelVerticesCUDA,_pixelVerticesCUDAHIonPhase1.clone( - pixelTrackSrc = "pixelTracksCUDA", - doSplitting = False, - onGPU = True -)) - -# transfer the pixel vertices in SoA format to the CPU -from RecoVertex.PixelVertexFinding.pixelVerticesSoA_cfi import pixelVerticesSoA as _pixelVerticesSoA -gpu.toModify(pixelVerticesSoA, - cuda = _pixelVerticesSoA.clone( - src = cms.InputTag("pixelVerticesCUDA") - ) -) - -## GPU vs CPU validation -# force CPU vertexing to use track SoA from CPU chain and not the converted one from GPU chain -from Configuration.ProcessModifiers.gpuValidationPixel_cff import gpuValidationPixel -(pixelNtupletFit & gpu & gpuValidationPixel).toModify(pixelVerticesSoA.cpu, - pixelTrackSrc = "pixelTracksSoA@cpu" -) - -(pixelNtupletFit & gpu).toReplaceWith(pixelVerticesTask, cms.Task( - # build pixel vertices in SoA format on the GPU - pixelVerticesCUDA, - # transfer the pixel vertices in SoA format to the CPU and convert them to legacy format - pixelVerticesTask.copy() -)) - -## pixel vertex reconstruction with Alpaka +############################################################ +## Pixel vertex reconstruction with Alpaka # pixel vertex SoA producer with alpaka on the device from RecoVertex.PixelVertexFinding.pixelVertexProducerAlpakaPhase1_cfi import pixelVertexProducerAlpakaPhase1 as _pixelVerticesAlpakaPhase1 diff --git a/Validation/RecoTrack/python/TrackValidation_cff.py b/Validation/RecoTrack/python/TrackValidation_cff.py index 62110c93f5e84..13d6afc6a5cd4 100644 --- a/Validation/RecoTrack/python/TrackValidation_cff.py +++ b/Validation/RecoTrack/python/TrackValidation_cff.py @@ -721,10 +721,11 @@ def _uniqueFirstLayers(layerList): associator = "quickTrackAssociatorByHits", ) -from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit +# For the moment we have no Alpaka version of the hiConformalPixelTracks +# from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit -pixelNtupletFit.toModify(trackingParticleHIPixelTrackAssociation, - associator = "quickTrackAssociatorByHitsPreSplitting") +# pixelNtupletFit.toModify(trackingParticleHIPixelTrackAssociation, +# associator = "quickTrackAssociatorByHitsPreSplitting") HIPixelVertexAssociatorByPositionAndTracks = VertexAssociatorByPositionAndTracks.clone( trackAssociation = "trackingParticleHIPixelTrackAssociation" From c0d364d770f30252fa5054a66b2eb285ad4dae6e Mon Sep 17 00:00:00 2001 From: AdrianoDee Date: Fri, 6 Dec 2024 12:44:17 +0100 Subject: [PATCH 401/418] Move data steps and wfs to Alpaka --- .../PyReleaseValidation/python/relval_gpu.py | 73 +++++++------- .../python/relval_standard.py | 8 +- .../python/relval_steps.py | 95 ++++++++++++------- 3 files changed, 104 insertions(+), 72 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/relval_gpu.py b/Configuration/PyReleaseValidation/python/relval_gpu.py index c470c370b2bf0..71e474303bf87 100644 --- a/Configuration/PyReleaseValidation/python/relval_gpu.py +++ b/Configuration/PyReleaseValidation/python/relval_gpu.py @@ -82,68 +82,69 @@ # data WFs to run in IB: -# data 2023 Patatrack pixel-only triplets: RunJetMET2022D on GPU (optional), RunJetMET2022D GPU-vs-CPU validation, RunJetMET2022D profiling -# Patatrack ECAL-only: RunJetMET2022D on GPU (optional), RunJetMET2022D GPU-vs-CPU validation, RunJetMET2022D profiling -# Patatrack HCAL-only: RunJetMET2022D on GPU (optional), RunJetMET2022D GPU-vs-CPU validation, RunJetMET2022D profiling -workflows[141.008506] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU',[ - 'RunJetMET2023B', +# data 2023 Alpaka pixel-only triplets: RunJetMET2023D on GPU (optional), RunJetMET2023D GPU-vs-CPU validation, RunJetMET2023D profiling +# Alpaka ECAL-only: RunJetMET2023D on GPU (optional), RunJetMET2023D GPU-vs-CPU validation, RunJetMET2023D profiling +# Alpaka HCAL-only: RunJetMET2023D on GPU (optional), RunJetMET2023D GPU-vs-CPU validation, RunJetMET2023D profiling + +workflows[141.044406] = ['Run3-2023_JetMET2023D_RecoPixelOnlyTripletsGPU',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPU', + 'RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPU', 'HARVESTRUN3_pixelTrackingOnly' ]] -workflows[141.008507] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Validation',[ - 'RunJetMET2023B', +workflows[141.044407] = ['Run3-2023_JetMET2023D_RecoPixelOnlyTripletsGPU_Validation',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPUValidation', + 'RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPUValidation', 'HARVESTRUN3_pixelTrackingOnlyGPUValidation' ]] -workflows[141.008508] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsGPU_Profiling',[ - 'RunJetMET2023B', +workflows[141.044408] = ['Run3-2023_JetMET2023D_RecoPixelOnlyTripletsGPU_Profiling',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPUProfiling' + 'RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPUProfiling' ]] -workflows[141.008512] = ['Run3-2023_JetMET2023B_RecoECALOnlyGPU',[ - 'RunJetMET2023B', +workflows[141.044412] = ['Run3-2023_JetMET2023D_RecoECALOnlyGPU',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_ECALOnlyGPU', + 'RECODR3_reHLT_Alpaka_ECALOnlyGPU', 'HARVESTRUN3_ECALOnly' ]] -workflows[141.008513] = ['Run3-2023_JetMET2023B_RecoECALOnlyGPU_Validation',[ - 'RunJetMET2023B', +workflows[141.044413] = ['Run3-2023_JetMET2023D_RecoECALOnlyGPU_Validation',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_ECALOnlyGPUValidation', + 'RECODR3_reHLT_Alpaka_ECALOnlyGPUValidation', 'HARVESTRUN3_ECALOnlyGPUValidation' ]] -workflows[141.008514] = ['Run3-2023_JetMET2023B_RecoECALOnlyGPU_Profiling',[ - 'RunJetMET2023B', +workflows[141.044414] = ['Run3-2023_JetMET2023D_RecoECALOnlyGPU_Profiling',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_ECALOnlyGPUProfiling' + 'RECODR3_reHLT_Alpaka_ECALOnlyGPUProfiling' ]] -workflows[141.008522] = ['Run3-2023_JetMET2023B_RecoHCALOnlyGPU',[ - 'RunJetMET2023B', +workflows[141.044422] = ['Run3-2023_JetMET2023D_RecoHCALOnlyGPU',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_HCALOnlyGPU', + 'RECODR3_reHLT_Alpaka_HCALOnlyGPU', 'HARVESTRUN3_HCALOnly' ]] -workflows[141.008523] = ['Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Validation',[ - 'RunJetMET2023B', +workflows[141.044423] = ['Run3-2023_JetMET2023D_RecoHCALOnlyGPU_Validation',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_HCALOnlyGPUValidation', + 'RECODR3_reHLT_Alpaka_HCALOnlyGPUValidation', 'HARVESTRUN3_HCALOnlyGPUValidation' ]] -workflows[141.008524] = ['Run3-2023_JetMET2023B_RecoHCALOnlyGPU_Profiling',[ - 'RunJetMET2023B', +workflows[141.044424] = ['Run3-2023_JetMET2023D_RecoHCALOnlyGPU_Profiling',[ + 'RunJetMET2023D', 'HLTDR3_2023', - 'RECODR3_reHLT_HCALOnlyGPUProfiling' + 'RECODR3_reHLT_Alpaka_HCALOnlyGPUProfiling' ]] -workflows[141.008583] = ['Run3-2023_JetMET2023B_GPUValidation',[ - 'RunJetMET2023B', - 'RecoData_Patatrack_AllGPU_Validation_2023', - 'HARVESTData_Patatrack_AllGPU_Validation_2023' +workflows[141.044483] = ['Run3-2023_JetMET2023D_GPUValidation',[ + 'RunJetMET2023D', + 'RecoData_Alpaka_AllGPU_Validation_2023', + 'HARVESTData_Alpaka_AllGPU_Validation_2023' ]] -# 2023 HIon MC Patatrack pixel-only quadruplets on HydjetQ_MinBias_5362GeV_2023_ppReco on GPU (optional) -workflows[160.03502] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_PatatrackGPU','MINIHI2023PROD']] +# 2023 HIon MC Alpaka pixel-only quadruplets on HydjetQ_MinBias_5362GeV_2023_ppReco on GPU (optional) +workflows[160.03502] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_AlpakaGPU','MINIHI2023PROD']] diff --git a/Configuration/PyReleaseValidation/python/relval_standard.py b/Configuration/PyReleaseValidation/python/relval_standard.py index 626cb43284e64..cde609f20c25d 100644 --- a/Configuration/PyReleaseValidation/python/relval_standard.py +++ b/Configuration/PyReleaseValidation/python/relval_standard.py @@ -544,9 +544,9 @@ workflows[141.114] = ['',['RunParkingDoubleMuonLowMass2023C','HLTDR3_2023','SKIMPARKINGDOUBLEMUONLOWMASS0RUN3_reHLT_2023','HARVESTRUN3_2023']] ### run3-2023 (2023 data) - Pixel-only (triplets), ECAL-only and HCAL-only -workflows[141.008505] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Patatrack_PixelOnlyTripletsCPU','HARVESTRUN3_pixelTrackingOnly']] -workflows[141.008511] = ['Run3-2023_JetMET2023B_RecoECALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_ECALOnlyCPU','HARVESTRUN3_ECALOnly']] -workflows[141.008521] = ['Run3-2023_JetMET2023B_RecoHCALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_HCALOnlyCPU','HARVESTRUN3_HCALOnly']] +workflows[141.008505] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_PixelOnlyTripletsCPU','HARVESTRUN3_pixelTrackingOnly']] +workflows[141.008511] = ['Run3-2023_JetMET2023B_RecoECALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_ECALOnlyCPU','HARVESTRUN3_ECALOnly']] +workflows[141.008521] = ['Run3-2023_JetMET2023B_RecoHCALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_HCALOnlyCPU','HARVESTRUN3_HCALOnly']] ### run3-2023 (2023 HI UPC data) workflows[141.901] = ['',['RunUPC2023','RECODR3_2023_UPC','HARVESTDPROMPTR3']] @@ -845,7 +845,7 @@ workflows[160.3] = ['',['ZMM_5362_HI_2023','DIGIHI2023PPRECO','RECOHI2023PPRECO','HARVESTHI2023PPRECO']] workflows[160.4] = ['',['ZEE_5362_HI_2023','DIGIHI2023PPRECO','RECOHI2023PPRECO','HARVESTHI2023PPRECO']] # Patatrack Pixel Tracks on CPU -workflows[160.501] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_PatatrackCPU','MINIHI2023PROD']] +workflows[160.501] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_AlpakaCPU','MINIHI2023PROD']] ### Run 3 cond., 2024 workflows[161] = ['',['HydjetQ_B12_5362GeV_2024','DIGIHI2024','RECOHI2024MB','ALCARECOHI2023PPRECO','HARVESTHI2024']] workflows[161.02] = ['',['HydjetQ_B12_5362GeV_2024','DIGIHI2024','RAWPRIMESIMHI18','RECOHI2024MBAPPROXCLUSTERS','ALCARECOHI2024','HARVESTHI2024S4']] diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 98f064ffcd62c..baa2b62ae755a 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -2936,14 +2936,18 @@ def gen2024HiMix(fragment,howMuch): '--era' :'Run2_2016' } -step3_pixel_ntuplet_cpu = { - '--procModifiers': 'pixelNtupletFit' +step3_alpaka_cpu = { + '--procModifiers': 'alpaka', + '--accelerators' : 'cpu' } -step3_pixel_ntuplet_gpu = { - '--procModifiers': 'alpaka' +step3_alpaka_gpu = { + '--procModifiers': 'alpaka', + '--accelerators' : '*' ## redundant, here just for readability } -step3_pixel_ntuplet_gpu_validation = { - '--procModifiers': 'alpaka,alpakaValidation' + +step3_alpaka_gpu_validation = { + '--procModifiers': 'alpaka,alpakaValidation', + '--accelerators' : 'gpu*' } step3_pixel_triplets = { '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets' @@ -2954,9 +2958,14 @@ def gen2024HiMix(fragment,howMuch): step3_pixel_triplets_profiling = { '--customise': 'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly' } -step3_gpu = { - '--procModifiers': 'alpaka', +step3_ecal_profiling = { + '--customise': 'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly' } +step3_hcal_profiling = { + '--customise': 'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly' +} + + step3_trackingLowPU = { '--era': 'Run2_2016_trackingLowPU' } @@ -3165,23 +3174,45 @@ def gen2024HiMix(fragment,howMuch): steps['RECODR3_reHLT_ZBOffline']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,ALCA:SiStripCalZeroBias+SiStripCalMinBias+TkAlMinBias+EcalESAlign+HcalCalIsoTrkProducerFilter,DQM:@rerecoZeroBias+@miniAODDQM','--procModifiers':'siPixelQualityRawToDigi'},steps['RECODR3_reHLT_2022']]) steps['RECODR3_reHLT_HLTPhysics_Offline']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,ALCA:TkAlMinBias+HcalCalIterativePhiSym+HcalCalIsoTrkProducerFilter+HcalCalHO+HcalCalHBHEMuonProducerFilter,DQM:@commonReduced+@miniAODDQM','--procModifiers':'siPixelQualityRawToDigi'},steps['RECODR3_reHLT_2022']]) steps['RECODR3_reHLT_AlCaTkCosmics_Offline']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,SKIM:EXONoBPTXSkim,PAT,ALCA:TkAlCosmicsInCollisions,DQM:@standardDQMFakeHLT+@miniAODDQM'},steps['RECODR3_reHLT_2022']]) -steps['RECODR3_reHLT_pixelTrackingOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,DQM:@pixelTrackingOnlyDQM'},steps['RECODR3_reHLT_2023']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyCPU']=merge([step3_pixel_ntuplet_cpu, steps['RECODR3_reHLT_pixelTrackingOnly']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyGPU']=merge([step3_pixel_ntuplet_gpu, steps['RECODR3_reHLT_pixelTrackingOnly']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyGPUValidation']=merge([{'--accelerators':'gpu-nvidia'},step3_pixel_ntuplet_gpu_validation,steps['RECODR3_reHLT_Patatrack_PixelOnlyGPU']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyGPUProfiling']=merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly','--customise':'RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly'},steps['RECODR3_reHLT_Patatrack_PixelOnlyGPU']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsCPU']=merge([step3_pixel_ntuplet_cpu, step3_pixel_triplets, steps['RECODR3_reHLT_pixelTrackingOnly']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPU']=merge([step3_pixel_ntuplet_gpu, step3_pixel_triplets, steps['RECODR3_reHLT_pixelTrackingOnly']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPUValidation']=merge([{'--accelerators':'gpu-nvidia'},step3_pixel_ntuplet_gpu_validation,steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPU']]) -steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPUProfiling']=merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly','--customise':'RecoTracker/Configuration/customizePixelTracksForTriplets.customizePixelTracksForTriplets,RecoTracker/Configuration/customizePixelOnlyForProfiling.customizePixelOnlyForProfilingGPUOnly'},steps['RECODR3_reHLT_Patatrack_PixelOnlyTripletsGPU']]) -steps['RECODR3_reHLT_ECALOnlyCPU']=merge([{'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,DQM:@ecalOnly'},steps['RECODR3_reHLT_2023']]) -steps['RECODR3_reHLT_ECALOnlyGPU']=merge([step3_gpu, steps['RECODR3_reHLT_ECALOnlyCPU']]) -steps['RECODR3_reHLT_ECALOnlyGPUValidation']=merge([{'--accelerators':'gpu-nvidia','--procModifiers':'gpuValidation'},steps['RECODR3_reHLT_ECALOnlyGPU']]) -steps['RECODR3_reHLT_ECALOnlyGPUProfiling']=merge([{'-s':'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly', '--customise':'RecoLocalCalo/Configuration/customizeEcalOnlyForProfiling.customizeEcalOnlyForProfilingGPUOnly'},steps['RECODR3_reHLT_ECALOnlyGPU']]) -steps['RECODR3_reHLT_HCALOnlyCPU']=merge([{'-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,DQM:@hcalOnly+@hcal2Only'},steps['RECODR3_reHLT_2023']]) -steps['RECODR3_reHLT_HCALOnlyGPU']=merge([step3_gpu, steps['RECODR3_reHLT_HCALOnlyCPU']]) -steps['RECODR3_reHLT_HCALOnlyGPUValidation']=merge([{'--accelerators':'gpu-nvidia','--procModifiers':'gpuValidation'},steps['RECODR3_reHLT_HCALOnlyGPU']]) -steps['RECODR3_reHLT_HCALOnlyGPUProfiling']=merge([{'-s':'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly','--customise':'RecoLocalCalo/Configuration/customizeHcalOnlyForProfiling.customizeHcalOnlyForProfilingGPUOnly'},steps['RECODR3_reHLT_HCALOnlyGPU']]) + +###################################################### +###### Single detector wfs (pixel,ECAL,HCAL) + +### Pixel Only wfs +## Legacy wf (CPUs) +steps['RECODR3_reHLT_pixelTrackingOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,DQM:@pixelTrackingOnlyDQM'}, steps['RECODR3_reHLT_2023']]) +steps['RECODR3_reHLT_pixelTrackingOnlyProfiling']=merge([{'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly'}, steps['RECODR3_reHLT_2023']]) +## Alpaka Quadruplets Wfs +steps['RECODR3_reHLT_Alpaka_PixelOnlyCPU']=merge([step3_alpaka_cpu, steps['RECODR3_reHLT_pixelTrackingOnly']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyGPU']=merge([step3_alpaka_gpu, steps['RECODR3_reHLT_pixelTrackingOnly']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyGPUValidation']=merge([step3_alpaka_gpu_validation,steps['RECODR3_reHLT_Alpaka_PixelOnlyGPU']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyGPUProfiling']=merge([step3_alpaka_gpu, step3_pixel_profiling, steps['RECODR3_reHLT_pixelTrackingOnlyProfiling']]) +## Alpaka Triplets Wfs +steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsCPU']=merge([step3_alpaka_cpu, step3_pixel_triplets, steps['RECODR3_reHLT_pixelTrackingOnly']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPU']=merge([step3_alpaka_gpu, step3_pixel_triplets, steps['RECODR3_reHLT_pixelTrackingOnly']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPUValidation']=merge([step3_alpaka_gpu_validation,steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPU']]) +steps['RECODR3_reHLT_Alpaka_PixelOnlyTripletsGPUProfiling']=merge([step3_alpaka_gpu, step3_pixel_triplets_profiling, steps['RECODR3_reHLT_pixelTrackingOnlyProfiling']]) + +### ECAL Only +## Legacy wfs (CPU) +steps['RECODR3_reHLT_ECALOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,DQM:@ecalOnly'}, steps['RECODR3_reHLT_2023']]) +steps['RECODR3_reHLT_ECALOnlyProfiling']=merge([{'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly'}, steps['RECODR3_reHLT_2023']]) +## Alpaka +steps['RECODR3_reHLT_Alpaka_ECALOnlyCPU']=merge([step3_alpaka_cpu, steps['RECODR3_reHLT_ECALOnly']]) +steps['RECODR3_reHLT_Alpaka_ECALOnlyGPU']=merge([step3_alpaka_gpu, steps['RECODR3_reHLT_ECALOnly']]) +steps['RECODR3_reHLT_Alpaka_ECALOnlyGPUValidation']=merge([step3_alpaka_gpu_validation, steps['RECODR3_reHLT_Alpaka_ECALOnlyGPU']]) +steps['RECODR3_reHLT_Alpaka_ECALOnlyGPUProfiling']=merge([step3_ecal_profiling, steps['RECODR3_reHLT_ECALOnlyProfiling'], steps['RECODR3_reHLT_Alpaka_ECALOnlyGPU']]) + +### HCAL Only +## Legacy wfs (CPU) +steps['RECODR3_reHLT_HCALOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,DQM:@hcalOnly+@hcal2Only'}, steps['RECODR3_reHLT_2023']]) +steps['RECODR3_reHLT_HCALOnlyProfiling']=merge([{'-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly'}, steps['RECODR3_reHLT_2023']]) +## Alpaka +steps['RECODR3_reHLT_Alpaka_HCALOnlyCPU']=merge([step3_alpaka_cpu, steps['RECODR3_reHLT_HCALOnly']]) +steps['RECODR3_reHLT_Alpaka_HCALOnlyGPU']=merge([step3_alpaka_gpu, steps['RECODR3_reHLT_HCALOnly']]) +steps['RECODR3_reHLT_Alpaka_HCALOnlyGPUValidation']=merge([step3_alpaka_gpu_validation, steps['RECODR3_reHLT_Alpaka_HCALOnlyGPU']]) +steps['RECODR3_reHLT_Alpaka_HCALOnlyGPUProfiling']=merge([step3_hcal_profiling, steps['RECODR3_reHLT_HCALOnlyProfiling'], steps['RECODR3_reHLT_Alpaka_HCALOnlyGPU']]) +###################################################### steps['RECONANORUN3_reHLT_2022']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@standardDQMFakeHLT+@miniAODDQM+@nanoAODDQM','--datatier':'RECO,MINIAOD,NANOAOD,DQMIO','--eventcontent':'RECO,MINIAOD,NANOEDMAOD,DQM'},steps['RECODR3_reHLT_2022']]) steps['RECONANORUN3_ZB_reHLT_2022']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@rerecoZeroBiasFakeHLT+@miniAODDQM+@nanoAODDQM'},steps['RECONANORUN3_reHLT_2022']]) @@ -3204,16 +3235,16 @@ def gen2024HiMix(fragment,howMuch): steps['RECONANORUN3_ZB_reHLT_2024']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@rerecoZeroBias+@miniAODDQM+@nanoAODDQM'},steps['RECONANORUN3_reHLT_2024']]) steps['AODNANORUN3_reHLT_2024']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@standardDQM+@miniAODDQM+@nanoAODDQM','--datatier':'AOD,MINIAOD,NANOAOD,DQMIO','--eventcontent':'AOD,MINIAOD,NANOEDMAOD,DQM'},steps['RECODR3_reHLT_2024']]) -# patatrack validation in data -steps['RecoData_Patatrack_AllGPU_Validation_2023'] = merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', +# Patatrack Alpaka validation in data +steps['RecoData_Alpaka_AllGPU_Validation_2023'] = merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', '--conditions':'auto:run3_data_prompt', '--datatier':'RECO,MINIAOD,DQMIO', '-n':'100', '--eventcontent':'RECO,MINIAOD,DQM', '--geometry':'DB:Extended', '--era':'Run3', - '--accelerators': 'gpu-nvidia', - '--procModifiers':'pixelNtupletFit,gpuValidation'},dataReco]) + '--accelerators': 'gpu-*', + '--procModifiers':'alpakaValidation'},dataReco]) # Run-3 2022 skim for s in autoSkim.keys(): @@ -3387,13 +3418,13 @@ def gen2024HiMix(fragment,howMuch): '--era':'Run3_pp_on_PbPb_2023', '--procModifiers':'genJetSubEvent', },step3Up2015Defaults]) -steps['RECOHI2023PPRECOMB_PatatrackGPU']=merge([hiDefaults2023_ppReco,step3_pixel_ntuplet_gpu,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidationNoHLT+@miniAODValidation,DQM:@standardDQMFakeHLT+@miniAODDQM', +steps['RECOHI2023PPRECOMB_AlpakaGPU']=merge([hiDefaults2023_ppReco,step3_alpaka_gpu,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidationNoHLT+@miniAODValidation,DQM:@standardDQMFakeHLT+@miniAODDQM', '--datatier':'GEN-SIM-RECO,MINIAODSIM,DQMIO', '--eventcontent':'RECOSIM,MINIAODSIM,DQM', '--era':'Run3_pp_on_PbPb', '--procModifiers':'genJetSubEvent', },step3Up2015Defaults]) -steps['RECOHI2023PPRECOMB_PatatrackCPU']=merge([hiDefaults2023_ppReco,step3_pixel_ntuplet_cpu,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidationNoHLT+@miniAODValidation,DQM:@standardDQMFakeHLT+@miniAODDQM', +steps['RECOHI2023PPRECOMB_AlpakaCPU']=merge([hiDefaults2023_ppReco,step3_alpaka_cpu,{'-s':'RAW2DIGI,L1Reco,RECO,PAT,VALIDATION:@standardValidationNoHLT+@miniAODValidation,DQM:@standardDQMFakeHLT+@miniAODDQM', '--datatier':'GEN-SIM-RECO,MINIAODSIM,DQMIO', '--eventcontent':'RECOSIM,MINIAODSIM,DQM', '--era':'Run3_pp_on_PbPb', @@ -4007,7 +4038,7 @@ def gen2024HiMix(fragment,howMuch): steps['HARVESTRUN3_HCALOnly'] = merge([ {'-s':'HARVESTING:@hcalOnly'}, steps['HARVESTRUN3_2023']]) steps['HARVESTRUN3_HCALOnlyGPUValidation'] = merge([ {'--procModifiers':'gpuValidation'}, steps['HARVESTRUN3_HCALOnly']]) -steps['HARVESTData_Patatrack_AllGPU_Validation_2023'] = merge([{'--data':'', +steps['HARVESTData_Alpaka_AllGPU_Validation_2023'] = merge([{'--data':'', '-s':'HARVESTING:@trackingOnlyValidation+@pixelTrackingOnlyDQM+@ecalOnlyValidation+@ecal+@hcalOnlyValidation+@hcalOnly+@hcal2Only', '--conditions':'auto:run3_data_prompt', '--geometry':'DB:Extended', From cebdb4dbe0f7798fb31359180d44f47fb6313450 Mon Sep 17 00:00:00 2001 From: AdrianoDee Date: Mon, 9 Dec 2024 10:57:35 +0100 Subject: [PATCH 402/418] Small fixes --- .../python/ALCARECOLumiPixels_cff.py | 4 ++-- .../PyReleaseValidation/python/relval_standard.py | 8 ++++---- .../StandardSequences/python/RawToDigi_Repacked_cff.py | 2 +- .../python/clients/beam_dqm_sourceclient-live_cfg.py | 2 +- .../clients/beampixel_dqm_sourceclient-live_cfg.py | 4 ++-- .../python/clients/csc_dqm_sourceclient-live_cfg.py | 4 ++-- .../python/clients/fed_dqm_sourceclient-live_cfg.py | 6 +++--- .../python/clients/l1t_dqm_sourceclient-live_cfg.py | 4 ++-- .../clients/l1temulator_dqm_sourceclient-live_cfg.py | 4 ++-- .../clients/l1tstage1_dqm_sourceclient-live_cfg.py | 4 ++-- .../l1tstage1emulator_dqm_sourceclient-live_cfg.py | 4 ++-- .../clients/l1tstage2_dqm_sourceclient-live_cfg.py | 2 +- .../l1tstage2emulator_dqm_sourceclient-live_cfg.py | 2 +- .../python/clients/lumi_dqm_sourceclient-live_cfg.py | 2 +- .../python/clients/physics_dqm_sourceclient-live_cfg.py | 4 ++-- .../python/clients/pixel_dqm_sourceclient-live_cfg.py | 6 +++--- .../clients/pixellumi_dqm_sourceclient-live_cfg.py | 6 +++--- .../python/clients/scal_dqm_sourceclient-live_cfg.py | 2 +- .../clients/sistrip_approx_dqm_sourceclient-live_cfg.py | 2 +- .../python/clients/sistrip_dqm_sourceclient-live_cfg.py | 4 ++-- DQM/Physics/python/qcdLowPtDQM_cfi.py | 2 +- .../SiPixelRecHits/python/SiPixelRecHits_cfi.py | 9 +++------ 22 files changed, 42 insertions(+), 45 deletions(-) diff --git a/Calibration/LumiAlCaRecoProducers/python/ALCARECOLumiPixels_cff.py b/Calibration/LumiAlCaRecoProducers/python/ALCARECOLumiPixels_cff.py index 25c7e5e60cb26..153c944ea4721 100644 --- a/Calibration/LumiAlCaRecoProducers/python/ALCARECOLumiPixels_cff.py +++ b/Calibration/LumiAlCaRecoProducers/python/ALCARECOLumiPixels_cff.py @@ -9,12 +9,12 @@ ) from EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi import siPixelDigis -siPixelDigisForLumi = siPixelDigis.cpu.clone( +siPixelDigisForLumi = siPixelDigis.clone( InputLabel = "hltFEDSelectorLumiPixels" ) from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizerPreSplitting_cfi import siPixelClustersPreSplitting -siPixelClustersForLumi = siPixelClustersPreSplitting.cpu.clone( +siPixelClustersForLumi = siPixelClustersPreSplitting.clone( src = "siPixelDigisForLumi" ) diff --git a/Configuration/PyReleaseValidation/python/relval_standard.py b/Configuration/PyReleaseValidation/python/relval_standard.py index cde609f20c25d..94f18b9f8047a 100644 --- a/Configuration/PyReleaseValidation/python/relval_standard.py +++ b/Configuration/PyReleaseValidation/python/relval_standard.py @@ -544,9 +544,9 @@ workflows[141.114] = ['',['RunParkingDoubleMuonLowMass2023C','HLTDR3_2023','SKIMPARKINGDOUBLEMUONLOWMASS0RUN3_reHLT_2023','HARVESTRUN3_2023']] ### run3-2023 (2023 data) - Pixel-only (triplets), ECAL-only and HCAL-only -workflows[141.008505] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_PixelOnlyTripletsCPU','HARVESTRUN3_pixelTrackingOnly']] -workflows[141.008511] = ['Run3-2023_JetMET2023B_RecoECALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_ECALOnlyCPU','HARVESTRUN3_ECALOnly']] -workflows[141.008521] = ['Run3-2023_JetMET2023B_RecoHCALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_HCALOnlyCPU','HARVESTRUN3_HCALOnly']] +workflows[141.008405] = ['Run3-2023_JetMET2023B_RecoPixelOnlyTripletsCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_PixelOnlyTripletsCPU','HARVESTRUN3_pixelTrackingOnly']] +workflows[141.008411] = ['Run3-2023_JetMET2023B_RecoECALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_ECALOnlyCPU','HARVESTRUN3_ECALOnly']] +workflows[141.008421] = ['Run3-2023_JetMET2023B_RecoHCALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_Alpaka_HCALOnlyCPU','HARVESTRUN3_HCALOnly']] ### run3-2023 (2023 HI UPC data) workflows[141.901] = ['',['RunUPC2023','RECODR3_2023_UPC','HARVESTDPROMPTR3']] @@ -845,7 +845,7 @@ workflows[160.3] = ['',['ZMM_5362_HI_2023','DIGIHI2023PPRECO','RECOHI2023PPRECO','HARVESTHI2023PPRECO']] workflows[160.4] = ['',['ZEE_5362_HI_2023','DIGIHI2023PPRECO','RECOHI2023PPRECO','HARVESTHI2023PPRECO']] # Patatrack Pixel Tracks on CPU -workflows[160.501] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_AlpakaCPU','MINIHI2023PROD']] +workflows[160.401] = ['',['HydjetQ_MinBias_5362GeV_2023_ppReco','DIGIHI2023PPRECO','RAWPRIMESIMHI18','RECOHI2023PPRECOMB_AlpakaCPU','MINIHI2023PROD']] ### Run 3 cond., 2024 workflows[161] = ['',['HydjetQ_B12_5362GeV_2024','DIGIHI2024','RECOHI2024MB','ALCARECOHI2023PPRECO','HARVESTHI2024']] workflows[161.02] = ['',['HydjetQ_B12_5362GeV_2024','DIGIHI2024','RAWPRIMESIMHI18','RECOHI2024MBAPPROXCLUSTERS','ALCARECOHI2024','HARVESTHI2024S4']] diff --git a/Configuration/StandardSequences/python/RawToDigi_Repacked_cff.py b/Configuration/StandardSequences/python/RawToDigi_Repacked_cff.py index e40eaee29c6e1..63ccf991d7e92 100644 --- a/Configuration/StandardSequences/python/RawToDigi_Repacked_cff.py +++ b/Configuration/StandardSequences/python/RawToDigi_Repacked_cff.py @@ -11,7 +11,7 @@ gctDigis.inputLabel = 'rawDataRepacker' gtDigis.DaqGtInputTag = 'rawDataRepacker' gtEvmDigis.EvmGtInputTag = 'rawDataRepacker' -siPixelDigis.cpu.InputLabel = 'rawDataRepacker' +siPixelDigis.InputLabel = 'rawDataRepacker' siStripDigis.ProductLabel = 'rawDataRepacker' ecalDigisCPU.InputLabel = 'rawDataRepacker' gpu.toModify(ecalDigisGPU, InputLabel = 'rawDataRepacker') diff --git a/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py index 32f1a9537eddf..5cf86c21e61e4 100644 --- a/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py @@ -315,7 +315,7 @@ process.muonDTDigis.inputLabel = rawDataInputTag process.muonRPCDigis.InputLabel = rawDataInputTag process.scalersRawToDigi.scalersInputTag = rawDataInputTag -process.siPixelDigis.cpu.InputLabel = rawDataInputTag +process.siPixelDigis.InputLabel = rawDataInputTag process.siStripDigis.ProductLabel = rawDataInputTag process.tcdsDigis.InputLabel = rawDataInputTag diff --git a/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py index 3c9b75122dfa9..3ddae1e585ece 100644 --- a/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py @@ -129,7 +129,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" - process.siPixelDigis.cpu.InputLabel = "rawDataCollector" + process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" @@ -182,7 +182,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py index e09887f21c8ad..8399a37a17ee0 100644 --- a/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/csc_dqm_sourceclient-live_cfg.py @@ -189,7 +189,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" process.cscMonitor.FEDRawDataCollectionTag = "rawDataCollector" process.dqmCSCClient.InputObjects = "rawDataCollector" @@ -214,7 +214,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" process.cscMonitor.FEDRawDataCollectionTag = "rawDataRepacker" process.dqmCSCClient.InputObjects = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/fed_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/fed_dqm_sourceclient-live_cfg.py index 2ea853810e263..6e0e1a2684ab0 100644 --- a/DQM/Integration/python/clients/fed_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/fed_dqm_sourceclient-live_cfg.py @@ -49,7 +49,7 @@ # Pixel sequence: process.load('Configuration.StandardSequences.MagneticField_cff') process.load('EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi') -process.siPixelDigis.cpu.IncludeErrors = True +process.siPixelDigis.IncludeErrors = True process.load('DQM.SiPixelMonitorRawData.SiPixelMonitorHLT_cfi') process.SiPixelHLTSource.saveFile = False process.SiPixelHLTSource.slowDown = False @@ -95,7 +95,7 @@ # Setting raw data collection label for all subsytem modules, depending on run type: if (process.runType.getRunType() == process.runType.hi_run): process.l1tStage2Fed.rawTag = 'rawDataRepacker' - process.siPixelDigis.cpu.InputLabel = 'rawDataRepacker' + process.siPixelDigis.InputLabel = 'rawDataRepacker' process.SiPixelHLTSource.RawInput = 'rawDataRepacker' process.siStripFEDCheck.RawDataTag = 'rawDataRepacker' process.esRawToDigi.sourceTag = 'rawDataRepacker' @@ -109,7 +109,7 @@ process.cscDQMEvF.InputObjects = 'rawDataRepacker' else: process.l1tStage2Fed.rawTag = 'rawDataCollector' - process.siPixelDigis.cpu.InputLabel = 'rawDataCollector' + process.siPixelDigis.InputLabel = 'rawDataCollector' process.SiPixelHLTSource.RawInput = 'rawDataCollector' process.siStripFEDCheck.RawDataTag = 'rawDataCollector' process.esRawToDigi.sourceTag = 'rawDataCollector' diff --git a/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py index c28be18e08d06..69ecac59f6f4d 100644 --- a/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1t_dqm_sourceclient-live_cfg.py @@ -181,7 +181,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" process.bxTiming.FedSource = "rawDataCollector" process.l1s.fedRawData = "rawDataCollector" @@ -200,7 +200,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" process.bxTiming.FedSource = "rawDataRepacker" process.l1s.fedRawData = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py index b189cb730d78b..ff1c21439a091 100644 --- a/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1temulator_dqm_sourceclient-live_cfg.py @@ -197,7 +197,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" #-------------------------------------------------- @@ -219,7 +219,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py index 9a7068ab5b2d7..33ac6ac576577 100644 --- a/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage1_dqm_sourceclient-live_cfg.py @@ -192,7 +192,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" process.bxTiming.FedSource = "rawDataCollector" process.l1s.fedRawData = "rawDataCollector" @@ -211,7 +211,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" process.bxTiming.FedSource = "rawDataRepacker" process.l1s.fedRawData = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py index 000daa236ecc0..3093a87e67f59 100644 --- a/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage1emulator_dqm_sourceclient-live_cfg.py @@ -204,7 +204,7 @@ process.muonDTDigis.inputLabel = "rawDataCollector" process.muonRPCDigis.InputLabel = "rawDataCollector" process.scalersRawToDigi.scalersInputTag = "rawDataCollector" -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" process.siStripDigis.ProductLabel = "rawDataCollector" #-------------------------------------------------- @@ -226,7 +226,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py index b9410f2f87fa0..7d69080b6077b 100644 --- a/DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage2_dqm_sourceclient-live_cfg.py @@ -142,7 +142,7 @@ process.muonRPCDigis.InputLabel = rawDataRepackerLabel process.muonGEMDigis.InputLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel process.tcdsRawToDigi.InputLabel = rawDataRepackerLabel diff --git a/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py index 695c24a42fa4d..ac12957c8fc75 100644 --- a/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py @@ -139,7 +139,7 @@ process.muonRPCDigis.InputLabel = rawDataRepackerLabel process.muonGEMDigis.InputLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel process.tcdsRawToDigi.InputLabel = rawDataRepackerLabel diff --git a/DQM/Integration/python/clients/lumi_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/lumi_dqm_sourceclient-live_cfg.py index fc5e12b92e68d..cc96a75d9c717 100644 --- a/DQM/Integration/python/clients/lumi_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/lumi_dqm_sourceclient-live_cfg.py @@ -50,7 +50,7 @@ process.load("Configuration.StandardSequences.EndOfProcess_cff") process.load("Configuration.EventContent.EventContent_cff") process.load("Configuration.StandardSequences.Reconstruction_cff") -process.siPixelDigis.cpu.InputLabel = cms.InputTag("hltFEDSelectorLumiPixels") +process.siPixelDigis.InputLabel = cms.InputTag("hltFEDSelectorLumiPixels") process.reconstruction_step = cms.Sequence( process.siPixelDigis + diff --git a/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py index b9a8baef18c87..b9d1024aa5bf9 100644 --- a/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/physics_dqm_sourceclient-live_cfg.py @@ -61,7 +61,7 @@ # process.dqmSaverPB ) -process.siPixelDigis.cpu.InputLabel = "rawDataCollector" +process.siPixelDigis.InputLabel = "rawDataCollector" ### process customizations included here from DQM.Integration.config.online_customizations_cfi import * @@ -74,4 +74,4 @@ print("Running with run type = ", process.runType.getRunType()) if (process.runType.getRunType() == process.runType.hi_run): - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py index c8539b1d8088e..fee74d39d6132 100644 --- a/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py @@ -105,20 +105,20 @@ # PixelPhase1 Real data raw to digi process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi") -process.siPixelDigis.cpu.IncludeErrors = True +process.siPixelDigis.IncludeErrors = True if (process.runType.getRunType() == process.runType.hi_run): rawDataRepackerLabel = 'rawDataRepacker' #-------------------------------- # Heavy Ion Configuration Changes #-------------------------------- - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel else : rawDataCollectorLabel = 'rawDataCollector' - process.siPixelDigis.cpu.InputLabel = rawDataCollectorLabel + process.siPixelDigis.InputLabel = rawDataCollectorLabel process.siStripDigis.ProductLabel = rawDataCollectorLabel ## Collision Reconstruction diff --git a/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py index d4dba8722178f..a46b00523b345 100644 --- a/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/pixellumi_dqm_sourceclient-live_cfg.py @@ -82,7 +82,7 @@ #----------------------- # Real data raw to digi process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi") -process.siPixelDigis.cpu.IncludeErrors = True +process.siPixelDigis.IncludeErrors = True # Local Reconstruction process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi") @@ -95,13 +95,13 @@ # SelectEvents = cms.vstring('HLT_600Tower*','HLT_L1*','HLT_Jet*','HLT_*Cosmic*','HLT_HT*','HLT_MinBias_*','HLT_Physics*', 'HLT_ZeroBias*','HLT_HcalNZS*')) -process.siPixelDigis.cpu.InputLabel = cms.InputTag("rawDataCollector") +process.siPixelDigis.InputLabel = cms.InputTag("rawDataCollector") #-------------------------------- # Heavy Ion Configuration Changes #-------------------------------- if (process.runType.getRunType() == process.runType.hi_run): process.load('Configuration.StandardSequences.RawToDigi_Repacked_cff') - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" if not unitTest: process.source.SelectEvents = ['HLT_HIL1MinimumBiasHF2AND*'] diff --git a/DQM/Integration/python/clients/scal_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/scal_dqm_sourceclient-live_cfg.py index 1ff0bfaf4f903..21fa87d29783f 100644 --- a/DQM/Integration/python/clients/scal_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/scal_dqm_sourceclient-live_cfg.py @@ -99,7 +99,7 @@ process.muonDTDigis.inputLabel = "rawDataRepacker" process.muonRPCDigis.InputLabel = "rawDataRepacker" process.scalersRawToDigi.scalersInputTag = "rawDataRepacker" - process.siPixelDigis.cpu.InputLabel = "rawDataRepacker" + process.siPixelDigis.InputLabel = "rawDataRepacker" process.siStripDigis.ProductLabel = "rawDataRepacker" diff --git a/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py index a9e26c4d01f2b..40228642726d3 100644 --- a/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/sistrip_approx_dqm_sourceclient-live_cfg.py @@ -193,7 +193,7 @@ process.muonDTDigis.inputLabel = rawDataRepackerLabel process.muonRPCDigis.InputLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel diff --git a/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py index 7c30ed948aac7..32fb727ce71a3 100644 --- a/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/sistrip_dqm_sourceclient-live_cfg.py @@ -521,7 +521,7 @@ process.muonDTDigis.inputLabel = rawDataCollectorLabel process.muonRPCDigis.InputLabel = rawDataCollectorLabel process.scalersRawToDigi.scalersInputTag = rawDataCollectorLabel -process.siPixelDigis.cpu.InputLabel = rawDataCollectorLabel +process.siPixelDigis.InputLabel = rawDataCollectorLabel process.siStripDigis.ProductLabel = rawDataCollectorLabel process.siStripFEDMonitor.RawDataTag = rawDataCollectorLabel #-------------------------------------------------- @@ -544,7 +544,7 @@ process.muonDTDigis.inputLabel = rawDataRepackerLabel process.muonRPCDigis.InputLabel = rawDataRepackerLabel process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel - process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel + process.siPixelDigis.InputLabel = rawDataRepackerLabel process.siStripDigis.ProductLabel = rawDataRepackerLabel process.siStripFEDMonitor.RawDataTag = rawDataRepackerLabel process.tcdsDigis.InputLabel = rawDataRepackerLabel diff --git a/DQM/Physics/python/qcdLowPtDQM_cfi.py b/DQM/Physics/python/qcdLowPtDQM_cfi.py index ead851164104b..c77a780bb9725 100644 --- a/DQM/Physics/python/qcdLowPtDQM_cfi.py +++ b/DQM/Physics/python/qcdLowPtDQM_cfi.py @@ -7,7 +7,7 @@ from RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi import * from RecoLocalTracker.SiPixelRecHits.PixelCPEESProducers_cff import * -siPixelDigis.cpu.InputLabel = cms.InputTag("source") +siPixelDigis.InputLabel = cms.InputTag("source") myRecoSeq1 = cms.Sequence( siPixelDigis * diff --git a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py index c44823be3ab60..0d1c3194e4787 100644 --- a/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py +++ b/RecoLocalTracker/SiPixelRecHits/python/SiPixelRecHits_cfi.py @@ -49,20 +49,17 @@ from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromSoAAlpakaPhase2_cfi import siPixelRecHitFromSoAAlpakaPhase2 as _siPixelRecHitFromSoAAlpakaPhase2 from RecoLocalTracker.SiPixelRecHits.siPixelRecHitFromSoAAlpakaHIonPhase1_cfi import siPixelRecHitFromSoAAlpakaHIonPhase1 as _siPixelRecHitFromSoAAlpakaHIonPhase1 -(alpaka & ~phase2_tracker).toModify(siPixelRecHitsPreSplitting, - cpu = _siPixelRecHitFromSoAAlpakaPhase1.clone( +(alpaka & ~phase2_tracker).toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaPhase1.clone( pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'), src = cms.InputTag('siPixelClustersPreSplitting')) ) -(alpaka & phase2_tracker).toModify(siPixelRecHitsPreSplitting, - cpu = _siPixelRecHitFromSoAAlpakaPhase2.clone( +(alpaka & phase2_tracker).toReplaceWith(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaPhase2.clone( pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'), src = cms.InputTag('siPixelClustersPreSplitting')) ) -(alpaka & pp_on_AA & ~phase2_tracker).toModify(siPixelRecHitsPreSplitting, - cpu = _siPixelRecHitFromSoAAlpakaHIonPhase1.clone( +(alpaka & pp_on_AA & ~phase2_tracker).toModify(siPixelRecHitsPreSplitting, _siPixelRecHitFromSoAAlpakaHIonPhase1.clone( pixelRecHitSrc = cms.InputTag('siPixelRecHitsPreSplittingAlpaka'), src = cms.InputTag('siPixelClustersPreSplitting')) ) From 5dd08d6522896553d71ce89f62c367cdfa693f53 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 19 Dec 2024 17:32:25 +0100 Subject: [PATCH 403/418] Add tests for InputFileCatalog --- FWCore/Catalog/test/BuildFile.xml | 2 +- FWCore/Catalog/test/FileLocator_t.cpp | 94 ++---------- FWCore/Catalog/test/InputFileCatalog_t.cpp | 163 +++++++++++++++++++++ FWCore/Catalog/test/TestSiteLocalConfig.h | 87 +++++++++++ 4 files changed, 262 insertions(+), 84 deletions(-) create mode 100644 FWCore/Catalog/test/InputFileCatalog_t.cpp create mode 100644 FWCore/Catalog/test/TestSiteLocalConfig.h diff --git a/FWCore/Catalog/test/BuildFile.xml b/FWCore/Catalog/test/BuildFile.xml index 484a7cb422667..e1e65241d3ebf 100644 --- a/FWCore/Catalog/test/BuildFile.xml +++ b/FWCore/Catalog/test/BuildFile.xml @@ -1,5 +1,5 @@ - + diff --git a/FWCore/Catalog/test/FileLocator_t.cpp b/FWCore/Catalog/test/FileLocator_t.cpp index 3da5d9c616f80..d71c20c84e26a 100644 --- a/FWCore/Catalog/test/FileLocator_t.cpp +++ b/FWCore/Catalog/test/FileLocator_t.cpp @@ -2,96 +2,24 @@ #include "FWCore/Catalog/interface/SiteLocalConfig.h" #include "FWCore/Utilities/interface/Exception.h" #include "FWCore/ServiceRegistry/interface/ServiceRegistry.h" -#include +#include "TestSiteLocalConfig.h" + +#include #include #define CATCH_CONFIG_MAIN #include "catch.hpp" -namespace { - class TestSiteLocalConfig : public edm::SiteLocalConfig { - public: - //constructor using trivial data catalogs - TestSiteLocalConfig(std::vector catalogs) : m_trivialCatalogs(std::move(catalogs)) {} - //constructor using Rucio data catalogs - TestSiteLocalConfig(std::vector catalogs) : m_catalogs(std::move(catalogs)) {} - std::vector const& trivialDataCatalogs() const final { return m_trivialCatalogs; } - std::vector const& dataCatalogs() const final { return m_catalogs; } - std::filesystem::path const storageDescriptionPath(const edm::CatalogAttributes& aDataCatalog) const final { - return std::filesystem::path(); - } - - std::string const lookupCalibConnect(std::string const& input) const final { return std::string(); } - std::string const rfioType(void) const final { return std::string(); } - - std::string const* sourceCacheTempDir() const final { return nullptr; } - double const* sourceCacheMinFree() const final { return nullptr; } - std::string const* sourceCacheHint() const final { return nullptr; } - std::string const* sourceCloneCacheHint() const final { return nullptr; } - std::string const* sourceReadHint() const final { return nullptr; } - unsigned int const* sourceTTreeCacheSize() const final { return nullptr; } - unsigned int const* sourceTimeout() const final { return nullptr; } - bool enablePrefetching() const final { return false; } - unsigned int debugLevel() const final { return 0; } - std::vector const* sourceNativeProtocols() const final { return nullptr; } - struct addrinfo const* statisticsDestination() const final { return nullptr; } - std::set const* statisticsInfo() const final { return nullptr; } - std::string const& siteName(void) const final { return m_emptyString; } - std::string const& subSiteName(void) const final { return m_emptyString; } - bool useLocalConnectString() const final { return false; } - std::string const& localConnectPrefix() const final { return m_emptyString; } - std::string const& localConnectSuffix() const final { return m_emptyString; } - - private: - std::vector m_trivialCatalogs; - std::vector m_catalogs; - std::filesystem::path m_storageDescription_path; - std::string m_emptyString; - }; -} // namespace - -TEST_CASE("FileLocator with Rucio data catalog", "[filelocatorRucioDataCatalog]") { - //catalog for testing "prefix" - edm::CatalogAttributes aCatalog; - aCatalog.site = "T1_US_FNAL"; - aCatalog.subSite = "T1_US_FNAL"; - aCatalog.storageSite = "T1_US_FNAL"; - aCatalog.volume = "American_Federation"; - aCatalog.protocol = "XRootD"; - std::vector tmp{aCatalog}; - //catalog for testing "rules" - aCatalog.site = "T1_US_FNAL"; - aCatalog.subSite = "T1_US_FNAL"; - aCatalog.storageSite = "T1_US_FNAL"; - aCatalog.volume = "FNAL_dCache_EOS"; - aCatalog.protocol = "XRootD"; - tmp.push_back(aCatalog); - //catalog for testing chained "rules" - aCatalog.site = "T1_US_FNAL"; - aCatalog.subSite = "T1_US_FNAL"; - aCatalog.storageSite = "T1_US_FNAL"; - aCatalog.volume = "FNAL_dCache_EOS"; - aCatalog.protocol = "root"; - tmp.push_back(aCatalog); - - //create the services - edm::ServiceToken tempToken( - edm::ServiceRegistry::createContaining(std::unique_ptr(new TestSiteLocalConfig(tmp)))); - - std::string CMSSW_BASE(std::getenv("CMSSW_BASE")); - std::string CMSSW_RELEASE_BASE(std::getenv("CMSSW_RELEASE_BASE")); - std::string file_name("/src/FWCore/Catalog/test/storage.json"); - std::string full_file_name = std::filesystem::exists((CMSSW_BASE + file_name).c_str()) - ? CMSSW_BASE + file_name - : CMSSW_RELEASE_BASE + file_name; +TEST_CASE("FileLocator with Rucio data catalog", "[FWCore/Catalog]") { + edm::ServiceToken tempToken = edmtest::catalog::makeTestSiteLocalConfigToken(); SECTION("prefix") { edm::ServiceRegistry::Operate operate(tempToken); //empty catalog edm::CatalogAttributes tmp_cat; //use the first catalog provided by site local config - edm::FileLocator fl(tmp_cat, 0, full_file_name); + edm::FileLocator fl(tmp_cat, 0); CHECK("root://cmsxrootd.fnal.gov/store/group/bha/bho" == fl.pfn("/store/group/bha/bho", edm::CatalogType::RucioCatalog)); } @@ -100,7 +28,7 @@ TEST_CASE("FileLocator with Rucio data catalog", "[filelocatorRucioDataCatalog]" //empty catalog edm::CatalogAttributes tmp_cat; //use the second catalog provided by site local config - edm::FileLocator fl(tmp_cat, 1, full_file_name); + edm::FileLocator fl(tmp_cat, 1); const std::array lfn = {{"/bha/bho", "bha", "file:bha", @@ -119,7 +47,7 @@ TEST_CASE("FileLocator with Rucio data catalog", "[filelocatorRucioDataCatalog]" //empty catalog edm::CatalogAttributes tmp_cat; //use the third catalog provided by site local config above - edm::FileLocator fl(tmp_cat, 2, full_file_name); + edm::FileLocator fl(tmp_cat, 2); const std::array lfn = {{"/bha/bho", "bha", "file:bha", @@ -139,7 +67,7 @@ TEST_CASE("FileLocator with Rucio data catalog", "[filelocatorRucioDataCatalog]" } } -TEST_CASE("FileLocator", "[filelocator]") { +TEST_CASE("FileLocator with TrivialFileCatalog", "[FWCore/Catalog]") { std::string CMSSW_BASE(std::getenv("CMSSW_BASE")); std::string CMSSW_RELEASE_BASE(std::getenv("CMSSW_RELEASE_BASE")); std::string file_name("/src/FWCore/Catalog/test/simple_catalog.xml"); @@ -149,8 +77,8 @@ TEST_CASE("FileLocator", "[filelocator]") { //create the services std::vector tmp{std::string("trivialcatalog_file:") + full_file_name + "?protocol=xrd"}; - edm::ServiceToken tempToken( - edm::ServiceRegistry::createContaining(std::unique_ptr(new TestSiteLocalConfig(tmp)))); + edm::ServiceToken tempToken(edm::ServiceRegistry::createContaining( + std::unique_ptr(std::make_unique(tmp)))); //make the services available SECTION("standard") { diff --git a/FWCore/Catalog/test/InputFileCatalog_t.cpp b/FWCore/Catalog/test/InputFileCatalog_t.cpp new file mode 100644 index 0000000000000..52edef9f9d3bc --- /dev/null +++ b/FWCore/Catalog/test/InputFileCatalog_t.cpp @@ -0,0 +1,163 @@ +#include "FWCore/Catalog/interface/InputFileCatalog.h" +#include "FWCore/ServiceRegistry/interface/ServiceRegistry.h" + +#include "TestSiteLocalConfig.h" + +#include "catch.hpp" + +TEST_CASE("InputFileCatalog with Rucio data catalog", "[FWCore/Catalog]") { + edm::ServiceToken tempToken = edmtest::catalog::makeTestSiteLocalConfigToken(); + + SECTION("Empty") { + edm::ServiceRegistry::Operate operate(tempToken); + edm::InputFileCatalog catalog({}, ""); + REQUIRE(catalog.empty()); + } + + SECTION("isPhysical") { + REQUIRE(edm::InputFileCatalog::isPhysical("")); + REQUIRE(not edm::InputFileCatalog::isPhysical("/foo/bar")); + REQUIRE(edm::InputFileCatalog::isPhysical("file:/foo/bar")); + } + + SECTION("Default behavior") { + edm::ServiceRegistry::Operate operate(tempToken); + + edm::InputFileCatalog catalog(std::vector{"/store/foo/bar", " file:/foo/bar", "root://foobar "}, ""); + + SECTION("logicalFileNames") { + auto const& lfns = catalog.logicalFileNames(); + REQUIRE(lfns.size() == 3); + CHECK(lfns[0] == "/store/foo/bar"); + CHECK(lfns[1] == ""); // was PFN + CHECK(lfns[2] == ""); // was PFN + } + + SECTION("fileNames") { + SECTION("Catalog 0") { + auto const names = catalog.fileNames(0); + REQUIRE(names.size() == 3); + CHECK(names[0] == "root://cmsxrootd.fnal.gov/store/foo/bar"); + CHECK(names[1] == "file:/foo/bar"); + CHECK(names[2] == "root://foobar"); + } + // The fileNames() works only for catalog 0 + // Catalog 1 or 2 leads to a crash because the input file list + // is a mixture of LFNs and PFNs + // This isn't really good behavior... + } + + SECTION("fileCatalogItems") { + auto const& items = catalog.fileCatalogItems(); + REQUIRE(items.size() == 3); + CHECK(items[0].logicalFileName() == "/store/foo/bar"); + CHECK(items[1].logicalFileName() == ""); + CHECK(items[2].logicalFileName() == ""); + + REQUIRE(items[0].fileNames().size() == 3); + REQUIRE(items[1].fileNames().size() == 1); + REQUIRE(items[2].fileNames().size() == 1); + + SECTION("Catalog 0") { + CHECK(items[0].fileName(0) == "root://cmsxrootd.fnal.gov/store/foo/bar"); + CHECK(items[1].fileName(0) == "file:/foo/bar"); + CHECK(items[2].fileName(0) == "root://foobar"); + } + SECTION("Catalog 1") { + CHECK(items[0].fileName(1) == "root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/foo/bar"); + } + SECTION("Catalog 2") { CHECK(items[0].fileName(2) == "root://host.domain//pnfs/cms/store/foo/bar"); } + } + } + + SECTION("Override catalog") { + edm::ServiceRegistry::Operate operate(tempToken); + + edm::InputFileCatalog catalog(std::vector{"/store/foo/bar", " file:/foo/bar", "root://foobar "}, + "T1_US_FNAL,,T1_US_FNAL,FNAL_dCache_EOS,XRootD"); + + SECTION("logicalFileNames") { + auto const& lfns = catalog.logicalFileNames(); + REQUIRE(lfns.size() == 3); + CHECK(lfns[0] == "/store/foo/bar"); + CHECK(lfns[1] == ""); // was PFN + CHECK(lfns[2] == ""); // was PFN + } + + SECTION("fileNames") { + auto const names = catalog.fileNames(0); + REQUIRE(names.size() == 3); + CHECK(names[0] == "root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/foo/bar"); + CHECK(names[1] == "file:/foo/bar"); + CHECK(names[2] == "root://foobar"); + } + + SECTION("fileCatalogItems") { + auto const& items = catalog.fileCatalogItems(); + REQUIRE(items.size() == 3); + + CHECK(items[0].logicalFileName() == "/store/foo/bar"); + CHECK(items[1].logicalFileName() == ""); + CHECK(items[2].logicalFileName() == ""); + + REQUIRE(items[0].fileNames().size() == 1); + REQUIRE(items[1].fileNames().size() == 1); + REQUIRE(items[2].fileNames().size() == 1); + + CHECK(items[0].fileName(0) == "root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/foo/bar"); + CHECK(items[1].fileName(0) == "file:/foo/bar"); + CHECK(items[2].fileName(0) == "root://foobar"); + } + } + + SECTION("useLFNasPFNifLFNnotFound") { + edm::ServiceRegistry::Operate operate(tempToken); + + edm::InputFileCatalog catalog( + std::vector{"/store/foo/bar", "/tmp/foo/bar", "root://foobar "}, "", true); + + SECTION("logicalFileNames") { + auto const& lfns = catalog.logicalFileNames(); + REQUIRE(lfns.size() == 3); + CHECK(lfns[0] == "/store/foo/bar"); + CHECK(lfns[1] == "/tmp/foo/bar"); + CHECK(lfns[2] == ""); // was PFN + } + + SECTION("fileNames") { + SECTION("Catalog 0") { + auto const names = catalog.fileNames(0); + REQUIRE(names.size() == 3); + CHECK(names[0] == "root://cmsxrootd.fnal.gov/store/foo/bar"); + CHECK(names[1] == "/tmp/foo/bar"); + CHECK(names[2] == "root://foobar"); + } + } + + SECTION("fileCatalogItems") { + auto const& items = catalog.fileCatalogItems(); + REQUIRE(items.size() == 3); + CHECK(items[0].logicalFileName() == "/store/foo/bar"); + CHECK(items[1].logicalFileName() == "/tmp/foo/bar"); + CHECK(items[2].logicalFileName() == ""); + + REQUIRE(items[0].fileNames().size() == 3); + REQUIRE(items[1].fileNames().size() == 3); + REQUIRE(items[2].fileNames().size() == 1); + + SECTION("Catalog 0") { + CHECK(items[0].fileName(0) == "root://cmsxrootd.fnal.gov/store/foo/bar"); + CHECK(items[1].fileName(0) == "/tmp/foo/bar"); + CHECK(items[2].fileName(0) == "root://foobar"); + } + SECTION("Catalog 1") { + CHECK(items[0].fileName(1) == "root://cmsdcadisk.fnal.gov//dcache/uscmsdisk/store/foo/bar"); + CHECK(items[1].fileName(1) == "/tmp/foo/bar"); + } + SECTION("Catalog 2") { + CHECK(items[0].fileName(2) == "root://host.domain//pnfs/cms/store/foo/bar"); + CHECK(items[1].fileName(2) == "/tmp/foo/bar"); + } + } + } +} diff --git a/FWCore/Catalog/test/TestSiteLocalConfig.h b/FWCore/Catalog/test/TestSiteLocalConfig.h new file mode 100644 index 0000000000000..e9d3ac456e5e3 --- /dev/null +++ b/FWCore/Catalog/test/TestSiteLocalConfig.h @@ -0,0 +1,87 @@ +#ifndef FWCore_Catalog_test_TestSiteLocalConfig_h +#define FWCore_Catalog_test_TestSiteLocalConfig_h + +#include "FWCore/Catalog/interface/SiteLocalConfig.h" + +#include +#include +#include + +namespace edmtest::catalog { + class TestSiteLocalConfig : public edm::SiteLocalConfig { + public: + //constructor using trivial data catalogs + TestSiteLocalConfig(std::vector catalogs) : m_trivialCatalogs(std::move(catalogs)) {} + //constructor using Rucio data catalogs + TestSiteLocalConfig(std::vector catalogs) : m_catalogs(std::move(catalogs)) {} + std::vector const& trivialDataCatalogs() const final { return m_trivialCatalogs; } + std::vector const& dataCatalogs() const final { return m_catalogs; } + std::filesystem::path const storageDescriptionPath(const edm::CatalogAttributes& aDataCatalog) const final { + std::string CMSSW_BASE(std::getenv("CMSSW_BASE")); + std::string CMSSW_RELEASE_BASE(std::getenv("CMSSW_RELEASE_BASE")); + std::string file_name("/src/FWCore/Catalog/test/storage.json"); + std::string full_file_name = std::filesystem::exists((CMSSW_BASE + file_name).c_str()) + ? CMSSW_BASE + file_name + : CMSSW_RELEASE_BASE + file_name; + return full_file_name; + } + + std::string const lookupCalibConnect(std::string const& input) const final { return std::string(); } + std::string const rfioType(void) const final { return std::string(); } + + std::string const* sourceCacheTempDir() const final { return nullptr; } + double const* sourceCacheMinFree() const final { return nullptr; } + std::string const* sourceCacheHint() const final { return nullptr; } + std::string const* sourceCloneCacheHint() const final { return nullptr; } + std::string const* sourceReadHint() const final { return nullptr; } + unsigned int const* sourceTTreeCacheSize() const final { return nullptr; } + unsigned int const* sourceTimeout() const final { return nullptr; } + bool enablePrefetching() const final { return false; } + unsigned int debugLevel() const final { return 0; } + std::vector const* sourceNativeProtocols() const final { return nullptr; } + struct addrinfo const* statisticsDestination() const final { return nullptr; } + std::set const* statisticsInfo() const final { return nullptr; } + std::string const& siteName(void) const final { return m_emptyString; } + std::string const& subSiteName(void) const final { return m_emptyString; } + bool useLocalConnectString() const final { return false; } + std::string const& localConnectPrefix() const final { return m_emptyString; } + std::string const& localConnectSuffix() const final { return m_emptyString; } + + private: + std::vector m_trivialCatalogs; + std::vector m_catalogs; + std::filesystem::path m_storageDescription_path; + std::string m_emptyString; + }; + + inline edm::ServiceToken makeTestSiteLocalConfigToken() { + //catalog for testing "prefix" + edm::CatalogAttributes aCatalog; + aCatalog.site = "T1_US_FNAL"; + aCatalog.subSite = "T1_US_FNAL"; + aCatalog.storageSite = "T1_US_FNAL"; + aCatalog.volume = "American_Federation"; + aCatalog.protocol = "XRootD"; + std::vector tmp{aCatalog}; + //catalog for testing "rules" + aCatalog.site = "T1_US_FNAL"; + aCatalog.subSite = "T1_US_FNAL"; + aCatalog.storageSite = "T1_US_FNAL"; + aCatalog.volume = "FNAL_dCache_EOS"; + aCatalog.protocol = "XRootD"; + tmp.push_back(aCatalog); + //catalog for testing chained "rules" + aCatalog.site = "T1_US_FNAL"; + aCatalog.subSite = "T1_US_FNAL"; + aCatalog.storageSite = "T1_US_FNAL"; + aCatalog.volume = "FNAL_dCache_EOS"; + aCatalog.protocol = "root"; + tmp.push_back(aCatalog); + + //create the services + return edm::ServiceToken(edm::ServiceRegistry::createContaining( + std::unique_ptr(std::make_unique(std::move(tmp))))); + } +} // namespace edmtest::catalog + +#endif From cff58ae800c392e12765b9fe6a34d09cbd2c57d9 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 19 Dec 2024 00:37:54 +0100 Subject: [PATCH 404/418] Remove InputFileCatalog::fileNames_ as seemingly unnecessary The fileNames_ was used only in init(), and before being modified in init() it was a direct copy of logicalFileNames_. There doesn't seem to be any real need to store it as a data member, and removing it allows to save ~100 MB memory per stream on an example MC production (using premixing) DIGI job whose configuration specified had ~500k pileup files. --- FWCore/Catalog/interface/InputFileCatalog.h | 3 +-- FWCore/Catalog/src/InputFileCatalog.cc | 23 ++++++++++----------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/FWCore/Catalog/interface/InputFileCatalog.h b/FWCore/Catalog/interface/InputFileCatalog.h index 638cad95e7589..aecceed4881cb 100644 --- a/FWCore/Catalog/interface/InputFileCatalog.h +++ b/FWCore/Catalog/interface/InputFileCatalog.h @@ -19,7 +19,7 @@ namespace edm { class FileCatalogItem { public: - FileCatalogItem(std::vector const& pfns, std::string const& lfn) : pfns_(pfns), lfn_(lfn) {} + FileCatalogItem(std::vector pfns, std::string lfn) : pfns_(std::move(pfns)), lfn_(std::move(lfn)) {} std::string const& fileName(unsigned iCatalog) const { return pfns_[iCatalog]; } std::string const& logicalFileName() const { return lfn_; } @@ -54,7 +54,6 @@ namespace edm { bool useLFNasPFNifLFNnotFound, edm::CatalogType catType); std::vector logicalFileNames_; - std::vector fileNames_; std::vector fileCatalogItems_; edm::propagate_const> overrideFileLocator_; diff --git a/FWCore/Catalog/src/InputFileCatalog.cc b/FWCore/Catalog/src/InputFileCatalog.cc index c3eddb052f96a..27bbf39db7384 100644 --- a/FWCore/Catalog/src/InputFileCatalog.cc +++ b/FWCore/Catalog/src/InputFileCatalog.cc @@ -21,7 +21,7 @@ namespace edm { std::string const& override, bool useLFNasPFNifLFNnotFound, edm::CatalogType catType) - : logicalFileNames_(fileNames), fileNames_(fileNames), fileCatalogItems_(), overrideFileLocator_() { + : logicalFileNames_(fileNames), fileCatalogItems_(), overrideFileLocator_() { init(override, useLFNasPFNifLFNnotFound, catType); } @@ -123,32 +123,31 @@ namespace edm { throw ex; } - for (iter it = fileNames_.begin(), lt = logicalFileNames_.begin(), itEnd = fileNames_.end(); it != itEnd; - ++it, ++lt) { - boost::trim(*it); + for (auto& lfn : logicalFileNames_) { + boost::trim(lfn); std::vector pfns; - if (it->empty()) { + if (lfn.empty()) { cms::Exception ex("FileCatalog"); ex << "An empty string specified in the fileNames parameter for input source"; ex.addContext("Calling edm::InputFileCatalog::init()"); throw ex; } - if (isPhysical(*it)) { - if (it->back() == ':') { + if (isPhysical(lfn)) { + if (lfn.back() == ':') { cms::Exception ex("FileCatalog"); ex << "An empty physical file name specified in the fileNames parameter for input source"; ex.addContext("Calling edm::InputFileCatalog::init()"); throw ex; } - pfns.push_back(*it); + pfns.push_back(lfn); // Clear the LFN. - lt->clear(); + lfn.clear(); } else { - boost::trim(*lt); - findFile(*lt, pfns, useLFNasPFNifLFNnotFound, catType); + findFile(lfn, pfns, useLFNasPFNifLFNnotFound, catType); } + lfn.shrink_to_fit(); // try to release memory - fileCatalogItems_.push_back(FileCatalogItem(pfns, *lt)); + fileCatalogItems_.emplace_back(std::move(pfns), lfn); } } From 3b2822e6bb456ac59ee5d79b9d2b89a1e933d827 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 19 Dec 2024 01:03:02 +0100 Subject: [PATCH 405/418] Remove InputFileCatalog::logicalFileNames as unnecessary The logicalFileNames() was not used, so removing the member allows avoiding one copy of the LFNs. --- FWCore/Catalog/interface/InputFileCatalog.h | 7 +++--- FWCore/Catalog/src/InputFileCatalog.cc | 11 +++++---- FWCore/Catalog/test/InputFileCatalog_t.cpp | 24 ------------------- FWCore/Sources/interface/FromFiles.h | 1 - .../interface/ProducerSourceFromFiles.h | 1 - .../interface/RawInputSourceFromFiles.h | 1 - 6 files changed, 10 insertions(+), 35 deletions(-) diff --git a/FWCore/Catalog/interface/InputFileCatalog.h b/FWCore/Catalog/interface/InputFileCatalog.h index aecceed4881cb..2bdf2c39cd4da 100644 --- a/FWCore/Catalog/interface/InputFileCatalog.h +++ b/FWCore/Catalog/interface/InputFileCatalog.h @@ -42,18 +42,19 @@ namespace edm { ~InputFileCatalog(); std::vector const& fileCatalogItems() const { return fileCatalogItems_; } - std::vector const& logicalFileNames() const { return logicalFileNames_; } std::vector fileNames(unsigned iCatalog) const; bool empty() const { return fileCatalogItems_.empty(); } static bool isPhysical(std::string const& name) { return (name.empty() || name.find(':') != std::string::npos); } private: - void init(std::string const& override, bool useLFNasPFNifLFNnotFound, edm::CatalogType catType); + void init(std::vector logicalFileNames, + std::string const& override, + bool useLFNasPFNifLFNnotFound, + edm::CatalogType catType); void findFile(std::string const& lfn, std::vector& pfns, bool useLFNasPFNifLFNnotFound, edm::CatalogType catType); - std::vector logicalFileNames_; std::vector fileCatalogItems_; edm::propagate_const> overrideFileLocator_; diff --git a/FWCore/Catalog/src/InputFileCatalog.cc b/FWCore/Catalog/src/InputFileCatalog.cc index 27bbf39db7384..2f85e71855d43 100644 --- a/FWCore/Catalog/src/InputFileCatalog.cc +++ b/FWCore/Catalog/src/InputFileCatalog.cc @@ -21,8 +21,8 @@ namespace edm { std::string const& override, bool useLFNasPFNifLFNnotFound, edm::CatalogType catType) - : logicalFileNames_(fileNames), fileCatalogItems_(), overrideFileLocator_() { - init(override, useLFNasPFNifLFNnotFound, catType); + : fileCatalogItems_(), overrideFileLocator_() { + init(fileNames, override, useLFNasPFNifLFNnotFound, catType); } InputFileCatalog::~InputFileCatalog() {} @@ -36,7 +36,8 @@ namespace edm { return tmp; } - void InputFileCatalog::init(std::string const& inputOverride, + void InputFileCatalog::init(std::vector logicalFileNames, + std::string const& inputOverride, bool useLFNasPFNifLFNnotFound, edm::CatalogType catType) { typedef std::vector::iterator iter; @@ -123,7 +124,7 @@ namespace edm { throw ex; } - for (auto& lfn : logicalFileNames_) { + for (auto& lfn : logicalFileNames) { boost::trim(lfn); std::vector pfns; if (lfn.empty()) { @@ -147,7 +148,7 @@ namespace edm { } lfn.shrink_to_fit(); // try to release memory - fileCatalogItems_.emplace_back(std::move(pfns), lfn); + fileCatalogItems_.emplace_back(std::move(pfns), std::move(lfn)); } } diff --git a/FWCore/Catalog/test/InputFileCatalog_t.cpp b/FWCore/Catalog/test/InputFileCatalog_t.cpp index 52edef9f9d3bc..571db9956fd44 100644 --- a/FWCore/Catalog/test/InputFileCatalog_t.cpp +++ b/FWCore/Catalog/test/InputFileCatalog_t.cpp @@ -25,14 +25,6 @@ TEST_CASE("InputFileCatalog with Rucio data catalog", "[FWCore/Catalog]") { edm::InputFileCatalog catalog(std::vector{"/store/foo/bar", " file:/foo/bar", "root://foobar "}, ""); - SECTION("logicalFileNames") { - auto const& lfns = catalog.logicalFileNames(); - REQUIRE(lfns.size() == 3); - CHECK(lfns[0] == "/store/foo/bar"); - CHECK(lfns[1] == ""); // was PFN - CHECK(lfns[2] == ""); // was PFN - } - SECTION("fileNames") { SECTION("Catalog 0") { auto const names = catalog.fileNames(0); @@ -76,14 +68,6 @@ TEST_CASE("InputFileCatalog with Rucio data catalog", "[FWCore/Catalog]") { edm::InputFileCatalog catalog(std::vector{"/store/foo/bar", " file:/foo/bar", "root://foobar "}, "T1_US_FNAL,,T1_US_FNAL,FNAL_dCache_EOS,XRootD"); - SECTION("logicalFileNames") { - auto const& lfns = catalog.logicalFileNames(); - REQUIRE(lfns.size() == 3); - CHECK(lfns[0] == "/store/foo/bar"); - CHECK(lfns[1] == ""); // was PFN - CHECK(lfns[2] == ""); // was PFN - } - SECTION("fileNames") { auto const names = catalog.fileNames(0); REQUIRE(names.size() == 3); @@ -116,14 +100,6 @@ TEST_CASE("InputFileCatalog with Rucio data catalog", "[FWCore/Catalog]") { edm::InputFileCatalog catalog( std::vector{"/store/foo/bar", "/tmp/foo/bar", "root://foobar "}, "", true); - SECTION("logicalFileNames") { - auto const& lfns = catalog.logicalFileNames(); - REQUIRE(lfns.size() == 3); - CHECK(lfns[0] == "/store/foo/bar"); - CHECK(lfns[1] == "/tmp/foo/bar"); - CHECK(lfns[2] == ""); // was PFN - } - SECTION("fileNames") { SECTION("Catalog 0") { auto const names = catalog.fileNames(0); diff --git a/FWCore/Sources/interface/FromFiles.h b/FWCore/Sources/interface/FromFiles.h index c54af177b4406..f756e914ce53c 100644 --- a/FWCore/Sources/interface/FromFiles.h +++ b/FWCore/Sources/interface/FromFiles.h @@ -18,7 +18,6 @@ namespace edm { FromFiles(ParameterSet const& pset); ~FromFiles(); - std::vector const& logicalFileNames() const { return catalog_.logicalFileNames(); } std::vector fileNames(unsigned iCatalog) const { return catalog_.fileNames(iCatalog); } InputFileCatalog& catalog() { return catalog_; } diff --git a/FWCore/Sources/interface/ProducerSourceFromFiles.h b/FWCore/Sources/interface/ProducerSourceFromFiles.h index 9f70f5b7a1a30..49150c030d25f 100644 --- a/FWCore/Sources/interface/ProducerSourceFromFiles.h +++ b/FWCore/Sources/interface/ProducerSourceFromFiles.h @@ -21,7 +21,6 @@ namespace edm { using FromFiles::catalog; using FromFiles::fileNames; - using FromFiles::logicalFileNames; static void fillDescription(ParameterSetDescription& desc); diff --git a/FWCore/Sources/interface/RawInputSourceFromFiles.h b/FWCore/Sources/interface/RawInputSourceFromFiles.h index 8b0f7e3f73c0e..843e562d4232d 100644 --- a/FWCore/Sources/interface/RawInputSourceFromFiles.h +++ b/FWCore/Sources/interface/RawInputSourceFromFiles.h @@ -20,7 +20,6 @@ namespace edm { ~RawInputSourceFromFiles() override; using FromFiles::catalog; - using FromFiles::logicalFileNames; static void fillDescription(ParameterSetDescription& desc); From 5a33632f21701ec679604d9cc9e140f294e5055c Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 7 Jan 2025 22:03:36 +0100 Subject: [PATCH 406/418] jetTools: do not run svClustering for pfDeepCSV{*}TagInfos --- PhysicsTools/PatAlgos/python/tools/jetTools.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/PhysicsTools/PatAlgos/python/tools/jetTools.py b/PhysicsTools/PatAlgos/python/tools/jetTools.py index 69b098ac03c76..a88e080082c21 100644 --- a/PhysicsTools/PatAlgos/python/tools/jetTools.py +++ b/PhysicsTools/PatAlgos/python/tools/jetTools.py @@ -461,22 +461,16 @@ def setupBTagging(process, jetSource, pfCandidates, explicitJTA, pvSource, svSou btag.pfDeepCSVTagInfos.clone( svTagInfos = cms.InputTag(btagPrefix+'pfInclusiveSecondaryVertexFinderTagInfos'+labelName+postfix)), process, task) - if svClustering or fatJets != cms.InputTag(''): - setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets) if btagInfo == 'pfDeepCSVNegativeTagInfos': addToProcessAndTask(btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCSVNegativeTagInfos.clone( svTagInfos = cms.InputTag(btagPrefix+'pfInclusiveSecondaryVertexFinderNegativeTagInfos'+labelName+postfix)), process, task) - if svClustering or fatJets != cms.InputTag(''): - setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets) if btagInfo == 'pfDeepCSVPositiveTagInfos': addToProcessAndTask(btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCSVPositiveTagInfos.clone( svTagInfos = cms.InputTag(btagPrefix+'pfInclusiveSecondaryVertexFinderTagInfos'+labelName+postfix)), process, task) - if svClustering or fatJets != cms.InputTag(''): - setupSVClustering(getattr(process, btagPrefix+btagInfo+labelName+postfix), svClustering, algo, rParam, fatJets, groomedFatJets) if btagInfo == 'pfDeepCMVATagInfos': addToProcessAndTask(btagPrefix+btagInfo+labelName+postfix, btag.pfDeepCMVATagInfos.clone( From 974bebf1fdeacc88863b80b13d5e39a076e5cc71 Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 8 Jan 2025 10:27:53 +0100 Subject: [PATCH 407/418] update customiseHybrid to comply with new definition of siStripClusters --- .../SiStripZeroSuppression/python/customiseHybrid.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py b/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py index 42efe243f56cc..7415d7a64ad0c 100644 --- a/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py +++ b/RecoLocalTracker/SiStripZeroSuppression/python/customiseHybrid.py @@ -8,9 +8,15 @@ def runOnHybridZS(process): zsInputs = process.siStripZeroSuppression.RawDigiProducersList clusInputs = process.siStripClusters.DigiProducersList unpackedZS = cms.InputTag("siStripDigis", "ZeroSuppressed") + + # Convert string elements to cms.InputTag objects if necessary + clusInputs = [cms.InputTag(x) if isinstance(x, str) else x for x in clusInputs] + zsInputs.append(unpackedZS) - clusInputs.remove(unpackedZS) - clusInputs.append(cms.InputTag("siStripZeroSuppression","ZeroSuppressed")) + if unpackedZS in clusInputs: + clusInputs.remove(unpackedZS) + clusInputs.append(cms.InputTag("siStripZeroSuppression", "ZeroSuppressed")) + # for on-demand clusterizer from FWCore.ParameterSet.MassReplace import massReplaceParameter massReplaceParameter(process, "HybridZeroSuppressed", cms.bool(False), cms.bool(True)) From a3a73717bb77969d091d79377f8af56547cbe42e Mon Sep 17 00:00:00 2001 From: mmusich Date: Mon, 6 Jan 2025 13:04:34 +0100 Subject: [PATCH 408/418] improve GeneralPurposeVertexAnalyzer --- .../plugins/GeneralPurposeVertexAnalyzer.cc | 113 +++++++++++++++++- 1 file changed, 109 insertions(+), 4 deletions(-) diff --git a/Alignment/OfflineValidation/plugins/GeneralPurposeVertexAnalyzer.cc b/Alignment/OfflineValidation/plugins/GeneralPurposeVertexAnalyzer.cc index 53acc760566d2..a87f00871727d 100644 --- a/Alignment/OfflineValidation/plugins/GeneralPurposeVertexAnalyzer.cc +++ b/Alignment/OfflineValidation/plugins/GeneralPurposeVertexAnalyzer.cc @@ -52,6 +52,50 @@ using reco::TrackCollection; +namespace gpVertexAnalyzer { + void setBinLog(TAxis *axis) { + int bins = axis->GetNbins(); + float from = axis->GetXmin(); + float to = axis->GetXmax(); + float width = (to - from) / bins; + std::vector new_bins(bins + 1, 0); + for (int i = 0; i <= bins; i++) { + new_bins[i] = TMath::Power(10, from + i * width); + } + axis->Set(bins, new_bins.data()); + } + + void setBinLogX(TH1 *h) { + TAxis *axis = h->GetXaxis(); + setBinLog(axis); + } + + void setBinLogY(TH1 *h) { + TAxis *axis = h->GetYaxis(); + setBinLog(axis); + } + + template + TProfile *makeProfileIfLog(const edm::Service &fs, bool logx, bool logy, Args &&...args) { + auto prof = fs->make(std::forward(args)...); + if (logx) + setBinLogX(prof); + if (logy) + setBinLogY(prof); + return prof; + } + + template + TH1D *makeTH1IfLog(const edm::Service &fs, bool logx, bool logy, Args &&...args) { + auto h1 = fs->make(std::forward(args)...); + if (logx) + setBinLogX(h1); + if (logy) + setBinLogY(h1); + return h1; + } +} // namespace gpVertexAnalyzer + class GeneralPurposeVertexAnalyzer : public edm::one::EDAnalyzer { public: explicit GeneralPurposeVertexAnalyzer(const edm::ParameterSet &); @@ -73,9 +117,9 @@ class GeneralPurposeVertexAnalyzer : public edm::one::EDAnalyzer fs); @@ -128,7 +172,7 @@ class GeneralPurposeVertexAnalyzer : public edm::one::EDAnalyzer("EtaMin"); double EtaMax = config.getParameter("EtaMax"); + int PtBin = config.getParameter("PtBin"); + double PtMin = config.getParameter("PtMin") * pTcut_; + double PtMax = config.getParameter("PtMax") * pTcut_; + IP_ = fs->make(fmt::format("d{}_pt{}", varname_, pTcut_).c_str(), fmt::format("PV tracks (p_{{T}} > {} GeV) d_{{{}}} (#mum)", pTcut_, varname_).c_str(), VarBin, @@ -169,6 +217,13 @@ void GeneralPurposeVertexAnalyzer::IPMonitoring::bookIPMonitor(const edm::Parame 0., (varname_.find("xy") != std::string::npos) ? 2000. : 10000.); + IPPull_ = fs->make( + fmt::format("d{}Pull_pt{}", varname_, pTcut_).c_str(), + fmt::format("PV tracks (p_{{T}} > {} GeV) d_{{{}}}/#sigma_{{d_{{{}}}}}", pTcut_, varname_, varname_).c_str(), + 100, + -5., + 5.); + IPVsPhi_ = fs->make(fmt::format("d{}VsPhi_pt{}", varname_, pTcut_).c_str(), fmt::format("PV tracks (p_{{T}} > {}) d_{{{}}} VS track #phi", pTcut_, varname_).c_str(), @@ -193,6 +248,21 @@ void GeneralPurposeVertexAnalyzer::IPMonitoring::bookIPMonitor(const edm::Parame IPVsEta_->SetXTitle("PV track (p_{T} > 1 GeV) #eta"); IPVsEta_->SetYTitle(fmt::format("PV tracks (p_{{T}} > {} GeV) d_{{{}}} (#mum)", pTcut_, varname_).c_str()); + IPVsPt_ = gpVertexAnalyzer::makeProfileIfLog( + fs, + true, /* x-axis */ + false, /* y-axis */ + fmt::format("d{}VsPt_pt{}", varname_, pTcut_).c_str(), + fmt::format("PV tracks (p_{{T}} > {}) d_{{{}}} VS track p_{{T}}", pTcut_, varname_).c_str(), + PtBin, + log10(PtMin), + log10(PtMax), + VarMin, + VarMax, + ""); + IPVsPt_->SetXTitle("PV track (p_{T} > 1 GeV) p_{T} [GeV]"); + IPVsPt_->SetYTitle(fmt::format("PV tracks (p_{{T}} > {} GeV) d_{{{}}} (#mum)", pTcut_, varname_).c_str()); + IPErrVsPhi_ = fs->make(fmt::format("d{}ErrVsPhi_pt{}", varname_, pTcut_).c_str(), fmt::format("PV tracks (p_{{T}} > {}) d_{{{}}} error VS track #phi", pTcut_, varname_).c_str(), @@ -217,6 +287,21 @@ void GeneralPurposeVertexAnalyzer::IPMonitoring::bookIPMonitor(const edm::Parame IPErrVsEta_->SetXTitle("PV track (p_{T} > 1 GeV) #eta"); IPErrVsEta_->SetYTitle(fmt::format("PV tracks (p_{{T}} > {} GeV) d_{{{}}} error (#mum)", pTcut_, varname_).c_str()); + IPErrVsPt_ = gpVertexAnalyzer::makeProfileIfLog( + fs, + true, /* x-axis */ + false, /* y-axis */ + fmt::format("d{}ErrVsPt_pt{}", varname_, pTcut_).c_str(), + fmt::format("PV tracks (p_{{T}} > {}) d_{{{}}} error VS track p_{{T}}", pTcut_, varname_).c_str(), + PtBin, + log10(PtMin), + log10(PtMax), + VarMin, + VarMax, + ""); + IPErrVsPt_->SetXTitle("PV track (p_{T} > 1 GeV) p_{T} [GeV]"); + IPErrVsPt_->SetYTitle(fmt::format("PV tracks (p_{{T}} > {} GeV) d_{{{}}} error (#mum)", pTcut_, varname_).c_str()); + IPVsEtaVsPhi_ = fs->make( fmt::format("d{}VsEtaVsPhi_pt{}", varname_, pTcut_).c_str(), fmt::format("PV tracks (p_{{T}} > {}) d_{{{}}} VS track #eta VS track #phi", pTcut_, varname_).c_str(), @@ -294,6 +379,7 @@ GeneralPurposeVertexAnalyzer::GeneralPurposeVertexAnalyzer(const edm::ParameterS bsBeamWidthX(nullptr), bsBeamWidthY(nullptr), bsType(nullptr), + trackpt(nullptr), sumpt(nullptr), ntracks(nullptr), weight(nullptr), @@ -411,6 +497,8 @@ void GeneralPurposeVertexAnalyzer::pvTracksPlots(const reco::Vertex &v) { } const float pt = t->pt(); + trackpt->Fill(pt); + if (pt < 1.f) { continue; } @@ -435,22 +523,28 @@ void GeneralPurposeVertexAnalyzer::pvTracksPlots(const reco::Vertex &v) { phi_pt1->Fill(phi); eta_pt1->Fill(eta); + // dxy pT>1 + dxy_pt1.IP_->Fill(Dxy); dxy_pt1.IPVsPhi_->Fill(phi, Dxy); dxy_pt1.IPVsEta_->Fill(eta, Dxy); dxy_pt1.IPVsEtaVsPhi_->Fill(eta, phi, Dxy); dxy_pt1.IPErr_->Fill(DxyErr); + dxy_pt1.IPPull_->Fill(Dxy / DxyErr); dxy_pt1.IPErrVsPhi_->Fill(phi, DxyErr); dxy_pt1.IPErrVsEta_->Fill(eta, DxyErr); dxy_pt1.IPErrVsEtaVsPhi_->Fill(eta, phi, DxyErr); + // dz pT>1 + dz_pt1.IP_->Fill(Dz); dz_pt1.IPVsPhi_->Fill(phi, Dz); dz_pt1.IPVsEta_->Fill(eta, Dz); dz_pt1.IPVsEtaVsPhi_->Fill(eta, phi, Dz); dz_pt1.IPErr_->Fill(DzErr); + dz_pt1.IPPull_->Fill(Dz / DzErr); dz_pt1.IPErrVsPhi_->Fill(phi, DzErr); dz_pt1.IPErrVsEta_->Fill(eta, DzErr); dz_pt1.IPErrVsEtaVsPhi_->Fill(eta, phi, DzErr); @@ -459,22 +553,28 @@ void GeneralPurposeVertexAnalyzer::pvTracksPlots(const reco::Vertex &v) { phi_pt10->Fill(phi); eta_pt10->Fill(eta); + // dxy pT>10 + dxy_pt10.IP_->Fill(Dxy); dxy_pt10.IPVsPhi_->Fill(phi, Dxy); dxy_pt10.IPVsEta_->Fill(eta, Dxy); dxy_pt10.IPVsEtaVsPhi_->Fill(eta, phi, Dxy); dxy_pt10.IPErr_->Fill(DxyErr); + dxy_pt10.IPPull_->Fill(Dxy / DxyErr); dxy_pt10.IPErrVsPhi_->Fill(phi, DxyErr); dxy_pt10.IPErrVsEta_->Fill(eta, DxyErr); dxy_pt10.IPErrVsEtaVsPhi_->Fill(eta, phi, DxyErr); + // dz pT>10 + dz_pt10.IP_->Fill(Dz); dz_pt10.IPVsPhi_->Fill(phi, Dz); dz_pt10.IPVsEta_->Fill(eta, Dz); dz_pt10.IPVsEtaVsPhi_->Fill(eta, phi, Dz); dz_pt10.IPErr_->Fill(DzErr); + dz_pt10.IPPull_->Fill(Dz / DzErr); dz_pt10.IPErrVsPhi_->Fill(phi, DzErr); dz_pt10.IPErrVsEta_->Fill(eta, DzErr); dz_pt10.IPErrVsEtaVsPhi_->Fill(eta, phi, DzErr); @@ -649,6 +749,8 @@ void GeneralPurposeVertexAnalyzer::beginJob() { dxy2 = book("dxyzoom", fmt::sprintf("%s d_{xy} (#mum)", s_1).c_str(), dxyBin_, dxyMin_ / 5., dxyMax_ / 5.); + trackpt = gpVertexAnalyzer::makeTH1IfLog( + fs_, true, false, "pt_track", "PV tracks p_{T};PV tracks p_{T} [GeV];#tracks", 49, log10(1.), log10(50.)); phi_pt1 = book("phi_pt1", fmt::sprintf("%s #phi; PV tracks #phi;#tracks", s_1).c_str(), phiBin_, phiMin_, phiMax_); eta_pt1 = @@ -701,6 +803,9 @@ void GeneralPurposeVertexAnalyzer::fillDescriptions(edm::ConfigurationDescriptio desc.add("EtaBin2D", 8); desc.add("EtaMin", -2.7); desc.add("EtaMax", 2.7); + desc.add("PtBin", 49); + desc.add("PtMin", 1.); + desc.add("PtMax", 50.); descriptions.addWithDefaultLabel(desc); } From 90f00248e34ef9685b484c074738acf7bdc85628 Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 7 Jan 2025 11:22:45 +0100 Subject: [PATCH 409/418] add Generic Validation as dataset validation tool --- Alignment/OfflineValidation/bin/BuildFile.xml | 1 + .../OfflineValidation/bin/GenericVmerge.cc | 73 ++++++ .../python/TkAlAllInOneTool/GenericV.py | 96 ++++++++ .../python/TkAlAllInOneTool/GenericV_cfg.py | 223 ++++++++++++++++++ .../scripts/validateAlignments.py | 8 + .../OfflineValidation/test/BuildFile.xml | 3 + .../test/testingScripts/test_unitGeneric.sh | 16 ++ .../OfflineValidation/test/unit_test.json | 17 ++ .../OfflineValidation/test/unit_test.yaml | 18 ++ 9 files changed, 455 insertions(+) create mode 100644 Alignment/OfflineValidation/bin/GenericVmerge.cc create mode 100644 Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV.py create mode 100644 Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV_cfg.py create mode 100755 Alignment/OfflineValidation/test/testingScripts/test_unitGeneric.sh diff --git a/Alignment/OfflineValidation/bin/BuildFile.xml b/Alignment/OfflineValidation/bin/BuildFile.xml index 023f203f5c619..b565094c92cb2 100644 --- a/Alignment/OfflineValidation/bin/BuildFile.xml +++ b/Alignment/OfflineValidation/bin/BuildFile.xml @@ -18,6 +18,7 @@ + diff --git a/Alignment/OfflineValidation/bin/GenericVmerge.cc b/Alignment/OfflineValidation/bin/GenericVmerge.cc new file mode 100644 index 0000000000000..5d1b7f3ad1dfc --- /dev/null +++ b/Alignment/OfflineValidation/bin/GenericVmerge.cc @@ -0,0 +1,73 @@ +#include +#include +#include +#include +#include + +#include "exceptions.h" +#include "toolbox.h" +#include "Options.h" + +#include "boost/filesystem.hpp" +#include "boost/property_tree/ptree.hpp" +#include "boost/property_tree/json_parser.hpp" +#include "boost/optional.hpp" + +#include "TString.h" +#include "TASImage.h" +#include "TGraph.h" + +#include "Alignment/OfflineValidation/macros/loopAndPlot.C" +#include "Alignment/OfflineValidation/interface/TkAlStyle.h" + +using namespace std; +using namespace AllInOneConfig; + +namespace pt = boost::property_tree; + +int merge(int argc, char* argv[]) { + // parse the command line + + Options options; + options.helper(argc, argv); + options.parser(argc, argv); + + //Read in AllInOne json config + pt::ptree main_tree; + pt::read_json(options.config, main_tree); + + pt::ptree alignments = main_tree.get_child("alignments"); + pt::ptree validation = main_tree.get_child("validation"); + + TString filesAndLabels; + for (const auto& childTree : alignments) { + // Print node name and its attributes + // std::cout << "Node: " << childTree.first << std::endl; + // for (const auto& attr : childTree.second) { + // std::cout << " Attribute: " << attr.first << " = " << attr.second.data() << std::endl; + // } + + std::string file = childTree.second.get("file"); + std::cout << file << std::endl; + std::cout << childTree.second.get("title") << std::endl; + + // Check if the file contains "/eos/cms/" and add the prefix accordingly + std::string prefixToAdd = file.find("/eos/cms/") != std::string::npos ? "root://eoscms.cern.ch/" : ""; + std::string toAdd = prefixToAdd + file + "/GenericValidation.root=" + childTree.second.get("title") + ","; + filesAndLabels += toAdd; + } + + if (filesAndLabels.Length() > 0) { + filesAndLabels.Remove(filesAndLabels.Length() - 1); // Remove the last character + } + + std::cout << "filesAndLabels: " << filesAndLabels << std::endl; + + loopAndPlot(filesAndLabels); + + return EXIT_SUCCESS; +} + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +int main(int argc, char* argv[]) { return exceptions(argc, argv); } +#endif diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV.py new file mode 100644 index 0000000000000..cfb66d903537e --- /dev/null +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV.py @@ -0,0 +1,96 @@ +import copy +import os + +def GenericV(config, validationDir): + ##List with all jobs + jobs = [] + GenericVType = "single" + + ##List with all wished IOVs + IOVs = [] + + ##Start with single GenericV jobs + if not GenericVType in config["validations"]["Generic"]: + raise Exception("No 'single' key word in config for GenericV") + + for singleName in config["validations"]["Generic"][GenericVType]: + for IOV in config["validations"]["Generic"][GenericVType][singleName]["IOV"]: + ##Save IOV to loop later for merge jobs + if not IOV in IOVs: + IOVs.append(IOV) + + for alignment in config["validations"]["Generic"][GenericVType][singleName]["alignments"]: + ##Work directory for each IOV + workDir = "{}/GenericV/{}/{}/{}/{}".format(validationDir, GenericVType, singleName, alignment, IOV) + + ##Write local config + local = {} + local["output"] = "{}/{}/GenericV/{}/{}/{}/{}".format(config["LFS"], config["name"], GenericVType, alignment, singleName, IOV) + local["alignment"] = copy.deepcopy(config["alignments"][alignment]) + local["validation"] = copy.deepcopy(config["validations"]["Generic"][GenericVType][singleName]) + local["validation"].pop("alignments") + local["validation"]["IOV"] = IOV + if "dataset" in local["validation"]: + local["validation"]["dataset"] = local["validation"]["dataset"].format(IOV) + if "goodlumi" in local["validation"]: + local["validation"]["goodlumi"] = local["validation"]["goodlumi"].format(IOV) + + ##Write job info + job = { + "name": "GenericV_{}_{}_{}_{}".format(GenericVType, alignment, singleName, IOV), + "dir": workDir, + "exe": "cmsRun", + "cms-config": "{}/src/Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV_cfg.py".format(os.environ["CMSSW_BASE"]), + "run-mode": "Condor", + "dependencies": [], + "config": local, + } + + jobs.append(job) + + ##Do merge GenericV if wished + if "merge" in config["validations"]["Generic"]: + ##List with merge jobs, will be expanded to jobs after looping + mergeJobs = [] + GenericVType = "merge" + + ##Loop over all merge jobs/IOVs which are wished + for mergeName in config["validations"]["Generic"][GenericVType]: + for IOV in IOVs: + ##Work directory for each IOV + workDir = "{}/GenericV/{}/{}/{}".format(validationDir, GenericVType, mergeName, IOV) + + ##Write job info + local = {} + + job = { + "name": "GenericV_{}_{}_{}".format(GenericVType, mergeName, IOV), + "dir": workDir, + "exe": "GenericVmerge", + "run-mode": "Condor", + "dependencies": [], + "config": local, + } + + for alignment in config["alignments"]: + ##Deep copy necessary things from global config + local.setdefault("alignments", {}) + if alignment in config["validations"]["Generic"]["single"][mergeName]["alignments"]: + local["alignments"][alignment] = copy.deepcopy(config["alignments"][alignment]) + local["validation"] = copy.deepcopy(config["validations"]["Generic"][GenericVType][mergeName]) + local["output"] = "{}/{}/GenericV/{}/{}/{}".format(config["LFS"], config["name"], GenericVType, mergeName, IOV) + + ##Loop over all single jobs + for singleJob in jobs: + ##Get single job info and append to merge job if requirements fullfilled + alignment, singleName, singleIOV = singleJob["name"].split("_")[2:] + + if int(singleIOV) == IOV and singleName in config["validations"]["Generic"][GenericVType][mergeName]["singles"]: + local["alignments"][alignment]["file"] = singleJob["config"]["output"] + job["dependencies"].append(singleJob["name"]) + + mergeJobs.append(job) + + jobs.extend(mergeJobs) + + return jobs diff --git a/Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV_cfg.py b/Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV_cfg.py new file mode 100644 index 0000000000000..80107d9510e63 --- /dev/null +++ b/Alignment/OfflineValidation/python/TkAlAllInOneTool/GenericV_cfg.py @@ -0,0 +1,223 @@ +import json +import os +import FWCore.ParameterSet.Config as cms +import FWCore.PythonUtilities.LumiList as LumiList +from Alignment.OfflineValidation.TkAlAllInOneTool.defaultInputFiles_cff import filesDefaultMC_NoPU +from FWCore.ParameterSet.VarParsing import VarParsing + +################################################################### +# Define process +################################################################### +process = cms.Process("GenericTrackAndVertexValidation") + +################################################################### +# Argument parsing +################################################################### +options = VarParsing() +options.register("config", "", VarParsing.multiplicity.singleton, VarParsing.varType.string , "AllInOne config") +options.parseArguments() + +################################################################### +# Read in AllInOne config in JSON format +################################################################### +if options.config == "": + config = {"validation": {}, + "alignment": {}} +else: + with open(options.config, "r") as configFile: + config = json.load(configFile) + +################################################################### +# Read filenames from given TXT file and define input source +################################################################### +readFiles = [] + +if "dataset" in config["validation"]: + with open(config["validation"]["dataset"], "r") as datafiles: + for fileName in datafiles.readlines(): + readFiles.append(fileName.replace("\n", "")) + + process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring(readFiles), + skipEvents = cms.untracked.uint32(0) + ) +else: + print(">>>>>>>>>> GenericV_cfg.py: msg%-i: config not specified! Loading default MC simulation -> filesDefaultMC_NoPU!") + process.source = cms.Source("PoolSource", + fileNames = filesDefaultMC_NoPU, + skipEvents = cms.untracked.uint32(0) + ) + +################################################################### +# Get good lumi section and load data or handle MC +################################################################### +if "goodlumi" in config["validation"]: + if os.path.isfile(config["validation"]["goodlumi"]): + goodLumiSecs = cms.untracked.VLuminosityBlockRange(LumiList.LumiList(filename = config["validation"]["goodlumi"]).getCMSSWString().split(',')) + else: + print("Does not exist: {}. Continue without good lumi section file.") + goodLumiSecs = cms.untracked.VLuminosityBlockRange() + +else: + goodLumiSecs = cms.untracked.VLuminosityBlockRange() + +################################################################### +# Runs and events +################################################################### +runboundary = config["validation"].get("runboundary", 1) +isMultipleRuns=False +if(isinstance(runboundary, (list, tuple))): + isMultipleRuns=True + print("Multiple Runs are selected") +if(isMultipleRuns): + process.source.firstRun = cms.untracked.uint32(runboundary[0]) +else: + process.source.firstRun = cms.untracked.uint32(runboundary) + +################################################################### +# Default set to 1 for unit tests +################################################################### +process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(config["validation"].get("maxevents", 1))) + +################################################################### +# Bookeeping +################################################################### +process.options = cms.untracked.PSet( + wantSummary = cms.untracked.bool(False), + Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal + fileMode = cms.untracked.string('NOMERGE'), # no ordering needed, but calls endRun/beginRun etc. at file boundaries +) + +################################################################### +# Messages +################################################################### +process.load("FWCore.MessageLogger.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = 1000 +process.MessageLogger.cout.enableStatistics = cms.untracked.bool(True) + +################################################################### +# Basic modules +################################################################### +process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff") +process.load("Configuration.Geometry.GeometryDB_cff") +process.load('Configuration.StandardSequences.Services_cff') +process.load("Configuration.StandardSequences.MagneticField_cff") + +#################################################################### +# Load and Configure Track refitter +#################################################################### +process.load("RecoTracker.TrackProducer.TrackRefitters_cff") +process.TrackRefitter.src = config["validation"].get("trackcollection", "generalTracks") +process.TrackRefitter.TTRHBuilder = config["validation"].get("tthrbuilder", "WithAngleAndTemplate") +process.TrackRefitter.NavigationSchool = "" + +#################################################################### +# Global tag +#################################################################### +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, config["alignment"].get("globaltag", "auto:phase1_2017_realistic")) + +#################################################################### +# Load conditions if wished +#################################################################### +if "conditions" in config["alignment"]: + from CalibTracker.Configuration.Common.PoolDBESSource_cfi import poolDBESSource + + for condition in config["alignment"]["conditions"]: + setattr(process, "conditionsIn{}".format(condition), poolDBESSource.clone( + connect = cms.string(str(config["alignment"]["conditions"][condition]["connect"])), + toGet = cms.VPSet( + cms.PSet( + record = cms.string(str(condition)), + tag = cms.string(str(config["alignment"]["conditions"][condition]["tag"])) + ) + ) + ) + ) + + setattr(process, "prefer_conditionsIn{}".format(condition), cms.ESPrefer("PoolDBESSource", "conditionsIn{}".format(condition))) + +################################################################### +# TFileService +################################################################### +process.TFileService = cms.Service("TFileService", + fileName = cms.string("{}/GenericValidation.root".format(config.get("output", os.getcwd()))), + closeFileFast = cms.untracked.bool(True)) + +print("Saving the output at %s" % process.TFileService.fileName.value()) + +################################################################### +# Primary Vertex refit +################################################################### +process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi") +from RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi import offlinePrimaryVertices as _offlinePVs +process.offlinePrimaryVerticesFromRefittedTrks = _offlinePVs.clone( + TrackLabel = "TrackRefitter", + TkFilterParameters = dict( + maxNormalizedChi2 = 20, + minSiliconLayersWithHits = 5, + maxD0Significance = 5.0, + maxD0Error = 1.0, + maxDzError = 1.0, + minPixelLayersWithHits = 2 + ) +) + +################################################################### +# The analysis modules +################################################################### +process.trackanalysis = cms.EDAnalyzer("GeneralPurposeTrackAnalyzer", + TkTag = cms.InputTag("TrackRefitter"), + isCosmics = cms.bool(config["validation"].get("isCosmics", False)) + ) + +process.vertexanalysis = cms.EDAnalyzer('GeneralPurposeVertexAnalyzer', + ndof = cms.int32(4), + vertexLabel = cms.InputTag('offlinePrimaryVerticesFromRefittedTrks'), + beamSpotLabel = cms.InputTag('offlineBeamSpot'), + Xpos = cms.double(0.1), + Ypos = cms.double(0), + TkSizeBin = cms.int32(100), + TkSizeMin = cms.double(499.5), + TkSizeMax = cms.double(-0.5), + DxyBin = cms.int32(100), + DxyMin = cms.double(5000), + DxyMax = cms.double(-5000), + DzBin = cms.int32(100), + DzMin = cms.double(-2000), + DzMax = cms.double(2000), + PhiBin = cms.int32(32), + PhiBin2D = cms.int32(12), + PhiMin = cms.double(-3.1415926535897931), + PhiMax = cms.double(3.1415926535897931), + EtaBin = cms.int32(26), + EtaBin2D = cms.int32(8), + EtaMin = cms.double(-2.7), + EtaMax = cms.double(2.7)) + +process.theValidSequence = cms.Sequence(process.offlineBeamSpot + + process.TrackRefitter + + process.offlinePrimaryVerticesFromRefittedTrks + + process.trackanalysis + + process.vertexanalysis) + +################################################################### +# The trigger filter module +################################################################### +from HLTrigger.HLTfilters.triggerResultsFilter_cfi import * +process.theHLTFilter = triggerResultsFilter.clone( + triggerConditions = cms.vstring(config["validation"].get("triggerBits", "*")), + hltResults = cms.InputTag( "TriggerResults", "", "HLT" ), + l1tResults = cms.InputTag( "" ), + throw = cms.bool(False) +) + +HLTSel = config["validation"].get("HLTselection", False) + +if (HLTSel): + process.p = cms.Path(process.theHLTFilter + process.theValidSequence) +else: + process.p = cms.Path(process.theValidSequence) + +print("Done") diff --git a/Alignment/OfflineValidation/scripts/validateAlignments.py b/Alignment/OfflineValidation/scripts/validateAlignments.py index 55469cfcda309..b6848ada4d3e6 100755 --- a/Alignment/OfflineValidation/scripts/validateAlignments.py +++ b/Alignment/OfflineValidation/scripts/validateAlignments.py @@ -20,6 +20,7 @@ import Alignment.OfflineValidation.TkAlAllInOneTool.DiMuonV as DiMuonV import Alignment.OfflineValidation.TkAlAllInOneTool.MTS as MTS import Alignment.OfflineValidation.TkAlAllInOneTool.PixBary as PixBary +import Alignment.OfflineValidation.TkAlAllInOneTool.GenericV as GenericV ############################################## def parser(): @@ -264,12 +265,19 @@ def main(): elif validation == "JetHT": jobs.extend(JetHT.JetHT(config, validationDir)) + elif validation == "DiMuonV": jobs.extend(DiMuonV.DiMuonV(config, validationDir)) + elif validation == "MTS": jobs.extend(MTS.MTS(config, validationDir)) + elif validation == "PixBary": jobs.extend(PixBary.PixBary(config, validationDir, args.verbose)) + + elif validation == "Generic": + jobs.extend(GenericV.GenericV(config, validationDir)) + else: raise Exception("Unknown validation method: {}".format(validation)) diff --git a/Alignment/OfflineValidation/test/BuildFile.xml b/Alignment/OfflineValidation/test/BuildFile.xml index f37c002324c15..a37e4904ab810 100644 --- a/Alignment/OfflineValidation/test/BuildFile.xml +++ b/Alignment/OfflineValidation/test/BuildFile.xml @@ -27,6 +27,9 @@ + + + diff --git a/Alignment/OfflineValidation/test/testingScripts/test_unitGeneric.sh b/Alignment/OfflineValidation/test/testingScripts/test_unitGeneric.sh new file mode 100755 index 0000000000000..8877d23f3569d --- /dev/null +++ b/Alignment/OfflineValidation/test/testingScripts/test_unitGeneric.sh @@ -0,0 +1,16 @@ +#! /bin/bash + +function die { echo $1: status $2 ; exit $2; } + +echo "TESTING Alignment/Generic single configuration with json..." +pushd test_yaml/GenericV/single/testUnits/unitTest/1/ +./cmsRun validation_cfg.py config=validation.json || die "Failure running Generic single configuration with json" $? + +echo "TESTING Alignment/Generic single configuration standalone..." +./cmsRun validation_cfg.py || die "Failure running PV single configuration standalone" $? +popd + +echo "TESTING SplotV merge step" +pushd test_yaml/GenericV/merge/testUnits/1/ +./GenericVmerge validation.json --verbose || die "Failure running PV merge step" $? +popd diff --git a/Alignment/OfflineValidation/test/unit_test.json b/Alignment/OfflineValidation/test/unit_test.json index cde695aa859b3..f98590e6b4c0d 100644 --- a/Alignment/OfflineValidation/test/unit_test.json +++ b/Alignment/OfflineValidation/test/unit_test.json @@ -192,6 +192,23 @@ } } }, + "Generic": { + "merge": { + "testUnits": { + "singles": ["testUnits"] + } + }, + "single": { + "testUnits": { + "IOV": ["1"], + "alignments": ["unitTest"], + "trackcollection": "generalTracks", + "HLTSelection": "False", + "triggerBits" : "HLT_*", + "maxevents": "10" + } + } + }, "DiMuonV" : { "merge": { "testUnits": { diff --git a/Alignment/OfflineValidation/test/unit_test.yaml b/Alignment/OfflineValidation/test/unit_test.yaml index 92519e519172c..dc1a73476d1e7 100644 --- a/Alignment/OfflineValidation/test/unit_test.yaml +++ b/Alignment/OfflineValidation/test/unit_test.yaml @@ -187,6 +187,24 @@ validations: HLTSelection: False triggerBits: HLT_* maxevents: 10 + + Generic: + merge: + testUnits: + singles: + - testUnits + + single: + testUnits: + IOV: + - 1 + alignments: + - unitTest + trackcollection: generalTracks + HLTSelection: False + triggerBits: HLT_* + maxevents: 10 + DiMuonV: merge: testUnits: From b6031b080a70e0a7d9f0fac50766eed2ac721960 Mon Sep 17 00:00:00 2001 From: mmusich Date: Wed, 8 Jan 2025 11:16:18 +0100 Subject: [PATCH 410/418] add documentation for Generic Validation --- Alignment/OfflineValidation/README.md | 6 +++ Alignment/OfflineValidation/README_Generic.md | 39 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 Alignment/OfflineValidation/README_Generic.md diff --git a/Alignment/OfflineValidation/README.md b/Alignment/OfflineValidation/README.md index d7c4554d9812d..499ca94d70660 100644 --- a/Alignment/OfflineValidation/README.md +++ b/Alignment/OfflineValidation/README.md @@ -117,5 +117,11 @@ For details read [`README_JetHT.md`](https://github.com/cms-sw/cmssw/blob/master ## MTS validation For details read [`README_MTS.md`](https://github.com/cms-sw/cmssw/blob/master/Alignment/OfflineValidation/README_MTS.md) +## Pixel BaryCenter +For details read [`README_MTS.md`](https://github.com/cms-sw/cmssw/blob/master/Alignment/OfflineValidation/README_PixBary.md) + +## Generic validation (dataset validation) +For details read [`README_Generic.md`](https://github.com/cms-sw/cmssw/blob/master/Alignment/OfflineValidation/README_Generic.md) + ## General info about IOV/run arguments For details read [`README_IOV.md`](https://github.com/cms-sw/cmssw/blob/master/Alignment/OfflineValidation/README_IOV.md) diff --git a/Alignment/OfflineValidation/README_Generic.md b/Alignment/OfflineValidation/README_Generic.md new file mode 100644 index 0000000000000..aa84a9693abd6 --- /dev/null +++ b/Alignment/OfflineValidation/README_Generic.md @@ -0,0 +1,39 @@ +# Generic Validation + +## General info +``` +validations: + Generic: + : + : + +``` + +Generic validation runs in 2 possible types of steps: + - single (validation analysis by GenericV_cfg.py) + - (optional) merge (GenericVmerge macro) +Step name is and arbitrary string which will be used as a reference for consequent steps. +Merge job awill only start if all corresponding single jobs are done. +Merge jobs can run in parallel. + +## Single Generic jobs +Single jobs can be specified per run (IoV as well). In case of MC, IoV is specified to arbitrary 1. + +Variable | Default value | Explanation/Options +-------- | ------------- | -------------------- +IOV | None | List of IOVs/runs defined by integer value. IOV 1 is reserved for MC. +Alignments | None | List of alignments. Will create separate directory for each. +dataset | See defaultInputFiles_cff.py | Path to txt file containing list of datasets to be used. If file is missing at EOS or is corrupted - job will eventually fail (most common issue). +goodlumi | cms.untracked.VLuminosityBlockRange() | Path to json file containing lumi information about selected IoV - must contain list of runs under particular IoV with lumiblock info. Format: `IOV_Vali_{}.json` +maxevents | 1 | Maximum number of events before cmsRun terminates. +trackcollection | "generalTracks" | Track collection to be specified here, e.g. "ALCARECOTkAlMuonIsolated" or "ALCARECOTkAlMinBias" ... +tthrbuilder | "WithAngleAndTemplate" | Specify TTRH Builder + +## Merge Generic job +Its name do not need to match single job name but option `singles` must list all single jobs to be merged. +Generic merged plot style can be adjusted from global plotting style. + +Variable | Default value | Explanation/Options +-------- | ------------- | -------------------- +singles | None | List of strings matching single job names to be merged in one plot. +customrighttitle | "" | Top right title. Reserved word "IOV" will be replaced for given IOV/run in the list. From e49a6fb940f985bd429e10ace19c9e3bc43cc680 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Tue, 7 Jan 2025 15:39:08 -0600 Subject: [PATCH 411/418] Removed TFWLiteSelector system This has not been actively used in over a decade --- FWCore/Skeletons/doc/man/skeletons.1 | 2 - .../mkTemplates/TSelector/BuildFile.xml | 5 - .../mkTemplates/TSelector/Driver.dir | 5 - .../mkTemplates/TSelector/TSelector.cc | 112 ---- .../mkTemplates/TSelector/TSelector.h | 48 -- .../Skeletons/mkTemplates/TSelector/classes.h | 1 - .../mkTemplates/TSelector/classes_def.xml | 4 - FWCore/Skeletons/scripts/mktsel | 46 -- FWCore/Skeletons/test/runtests.sh | 3 - FWCore/TFWLiteSelector/BuildFile.xml | 10 - FWCore/TFWLiteSelector/doc/proofNotes.txt | 147 ----- .../interface/TFWLiteSelector.h | 82 --- .../interface/TFWLiteSelectorBasic.h | 104 ---- .../src/TFWLiteSelectorBasic.cc | 510 ------------------ FWCore/TFWLiteSelector/src/classes.h | 1 - FWCore/TFWLiteSelector/src/classes_def.xml | 3 - FWCore/TFWLiteSelector/test/BuildFile.xml | 1 - .../test/TestRunnerFWCoreTFWLiteSelector.cpp | 3 - FWCore/TFWLiteSelector/test/gen_things_cfg.py | 24 - FWCore/TFWLiteSelector/test/proof_remote.C | 6 - FWCore/TFWLiteSelector/test/run_all_t.sh | 20 - FWCore/TFWLiteSelector/test/thing2_sel.C | 15 - FWCore/TFWLiteSelector/test/thing_sel.C | 15 - FWCore/TFWLiteSelectorTest/BuildFile.xml | 9 - .../src/ThingsTSelector.cc | 98 ---- .../TFWLiteSelectorTest/src/ThingsTSelector.h | 36 -- .../src/ThingsTSelector2.cc | 92 ---- .../src/ThingsTSelector2.h | 36 -- FWCore/TFWLiteSelectorTest/src/classes.h | 2 - .../TFWLiteSelectorTest/src/classes_def.xml | 5 - .../scripts/duplicateReflexLibrarySearch.py | 1 - 31 files changed, 1446 deletions(-) delete mode 100644 FWCore/Skeletons/mkTemplates/TSelector/BuildFile.xml delete mode 100644 FWCore/Skeletons/mkTemplates/TSelector/Driver.dir delete mode 100644 FWCore/Skeletons/mkTemplates/TSelector/TSelector.cc delete mode 100644 FWCore/Skeletons/mkTemplates/TSelector/TSelector.h delete mode 100644 FWCore/Skeletons/mkTemplates/TSelector/classes.h delete mode 100644 FWCore/Skeletons/mkTemplates/TSelector/classes_def.xml delete mode 100755 FWCore/Skeletons/scripts/mktsel delete mode 100644 FWCore/TFWLiteSelector/BuildFile.xml delete mode 100644 FWCore/TFWLiteSelector/doc/proofNotes.txt delete mode 100644 FWCore/TFWLiteSelector/interface/TFWLiteSelector.h delete mode 100644 FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h delete mode 100644 FWCore/TFWLiteSelector/src/TFWLiteSelectorBasic.cc delete mode 100644 FWCore/TFWLiteSelector/src/classes.h delete mode 100644 FWCore/TFWLiteSelector/src/classes_def.xml delete mode 100644 FWCore/TFWLiteSelector/test/BuildFile.xml delete mode 100644 FWCore/TFWLiteSelector/test/TestRunnerFWCoreTFWLiteSelector.cpp delete mode 100644 FWCore/TFWLiteSelector/test/gen_things_cfg.py delete mode 100644 FWCore/TFWLiteSelector/test/proof_remote.C delete mode 100755 FWCore/TFWLiteSelector/test/run_all_t.sh delete mode 100644 FWCore/TFWLiteSelector/test/thing2_sel.C delete mode 100644 FWCore/TFWLiteSelector/test/thing_sel.C delete mode 100644 FWCore/TFWLiteSelectorTest/BuildFile.xml delete mode 100644 FWCore/TFWLiteSelectorTest/src/ThingsTSelector.cc delete mode 100644 FWCore/TFWLiteSelectorTest/src/ThingsTSelector.h delete mode 100644 FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.cc delete mode 100644 FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.h delete mode 100644 FWCore/TFWLiteSelectorTest/src/classes.h delete mode 100644 FWCore/TFWLiteSelectorTest/src/classes_def.xml diff --git a/FWCore/Skeletons/doc/man/skeletons.1 b/FWCore/Skeletons/doc/man/skeletons.1 index 920359e8066ed..42c7501c02732 100644 --- a/FWCore/Skeletons/doc/man/skeletons.1 +++ b/FWCore/Skeletons/doc/man/skeletons.1 @@ -58,8 +58,6 @@ The following CMS commands is available for your needs: \fBmkrecord\fP generates code based on Record template .IP \(bu 2 \fBmkskel\fP generates code based on Skeleton template -.IP \(bu 2 -\fBmktsel\fP generate code based on TSelector template .UNINDENT .sp The \fBmkrecord\fP and \fBmkskel\fP scripts will run anywhere on your system, while diff --git a/FWCore/Skeletons/mkTemplates/TSelector/BuildFile.xml b/FWCore/Skeletons/mkTemplates/TSelector/BuildFile.xml deleted file mode 100644 index c66ff2cc3f667..0000000000000 --- a/FWCore/Skeletons/mkTemplates/TSelector/BuildFile.xml +++ /dev/null @@ -1,5 +0,0 @@ -@example_track - - - - diff --git a/FWCore/Skeletons/mkTemplates/TSelector/Driver.dir b/FWCore/Skeletons/mkTemplates/TSelector/Driver.dir deleted file mode 100644 index c3737695246b1..0000000000000 --- a/FWCore/Skeletons/mkTemplates/TSelector/Driver.dir +++ /dev/null @@ -1,5 +0,0 @@ -BuildFile.xml -src/TSelector.cc -interface/TSelector.h -interface/classes.h -interface/classes_def.xml diff --git a/FWCore/Skeletons/mkTemplates/TSelector/TSelector.cc b/FWCore/Skeletons/mkTemplates/TSelector/TSelector.cc deleted file mode 100644 index 018121772b828..0000000000000 --- a/FWCore/Skeletons/mkTemplates/TSelector/TSelector.cc +++ /dev/null @@ -1,112 +0,0 @@ -// -*- C++ -*- -// -// Package: __subsys__/__pkgname__ -// Class: __class__ -// -/* - - Description: [one line class summary] - - Implementation: - [Notes on implementation] -*/ -// -// Original Author: __author__ -// Created: __date__ -// -// - -// system include files -#include -#include - -#include "TCanvas.h" -// user include files -#include "__subsys__/__pkgname__/interface/__class__.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" - -@example_track#include "DataFormats/TrackReco/interface/Track.h" -@example_track#include "DataFormats/TrackReco/interface/TrackFwd.h" -// -// constants shared between the Selector and the Workers -// -@example_trackconst char* const kPt = "pt"; -//const char* const kA = "a"; - -//=============================================== -//A worker processes the events. -// A new worker is created each time the events are processed -//=============================================== - -// ------------ constructed for each PROOF Node ------------ -// The arguments are -// fromSelector: these are copies of values set in the selector and sent to all workers -// out: these are the items which will be passed back to the selector (e.g. histograms) -__class__Worker::__class__Worker(const TList* fromSelector, TList& out) { - //h_a = new TH1F( kA , "a" , 100, 0, 20 ); - //out.Add(h_a); -@example_track h_pt = new TH1F(kPt, "P_t", 100, 0, 100); -@example_track out.Add(h_pt); -} - -__class__Worker::~__class__Worker() {} - -// ------------ method called for each event ------------ -void __class__Worker::process(const edm::Event& iEvent) { - using namespace edm; -@example_track using reco::TrackCollection; -@example_track -@example_track Handle tracks; -@example_track iEvent.getByLabel("ctfWithMaterialTracks", tracks); -@example_track for (const auto& track : *tracks) { -@example_track h_pt->Fill(track.pt()); -@example_track } - - //using namespace edmtest; - //edm::Handle hThings; - //iEvent.getByLabel("Thing", hThings); - //for (const auto& thing : *hThings) { - // h_a ->Fill(it->a); - //} -} - -// ------------ called after processing the events ------------ -// The argument is the same as for the constructor -void __class__Worker::postProcess(TList& out) {} - -//=============================================== -//Only one Selector is made per job. It gets all the results from each worker. -//=============================================== -__class__::__class__() {} - -__class__::~__class__() {} - -// ------------ called just before all workers are constructed ------------ -void __class__::begin(TList*& toWorkers) {} - -// ------------ called after all workers have finished ------------ -// The argument 'fromWorkers' contains the accumulated output of all Workers -void __class__::terminate(TList& fromWorkers) { - using namespace std; - auto canvas = std::make_unique(); - //{ - // TObject* hist = fromWorkers.FindObject(kA); - // if (nullptr != hist) { - // hist->Draw(); - // canvas->SaveAs("a.jpg"); - // } else { - // cout << "no '" << kA << "' histogram" << endl; - // } - // -@example_track -@example_track { -@example_track TObject* hist = fromWorkers.FindObject(kPt); -@example_track if (nullptr != hist) { -@example_track hist->Draw(); -@example_track canvas->SaveAs("pt.jpg"); -@example_track } else { -@example_track cout << "no '" << kPt << "' histogram" << endl; -@example_track } -@example_track } -} diff --git a/FWCore/Skeletons/mkTemplates/TSelector/TSelector.h b/FWCore/Skeletons/mkTemplates/TSelector/TSelector.h deleted file mode 100644 index 319e56c44b2ff..0000000000000 --- a/FWCore/Skeletons/mkTemplates/TSelector/TSelector.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef __subsys_____pkgname_____class___h -#define __subsys_____pkgname_____class___h -// -*- C++ -*- -// -// Package: __subsys__/__pkgname__ -// Class: __class__ -// -/**\class __class__ __class__.h __subsys__/__pkgname__/plugins/__class__.h - -Description: [one line class summary] - -Implementation: -[Notes on implementation] -*/ -// -// Original Author: __author__ -// Created: __date__ -// -// -#include -#include "FWCore/TFWLiteSelector/interface/TFWLiteSelector.h" - -//A worker processes the events. When using PROOF there is one Worker per PROOF CPU Node. -struct __class__Worker { - __class__Worker(const TList*, TList&); - ~__class__Worker(); - void process(const edm::Event& iEvent); - void postProcess(TList&); - //Place histograms, etc that you want to fill here - //TH1F* h_a; -@example_track TH1F* h_pt; -}; - -//Only one Selector is made per job. It gets all the results from each worker. -class __class__ : public TFWLiteSelector<__class__Worker> { -public: - __class__(); - ~__class__() override; - void begin(TList*&) override; - void terminate(TList&) override; - -private: - __class__(__class__ const&); - __class__ operator=(__class__ const&); - - ClassDef(__class__, 2) -}; -#endif diff --git a/FWCore/Skeletons/mkTemplates/TSelector/classes.h b/FWCore/Skeletons/mkTemplates/TSelector/classes.h deleted file mode 100644 index a6c1436a72d87..0000000000000 --- a/FWCore/Skeletons/mkTemplates/TSelector/classes.h +++ /dev/null @@ -1 +0,0 @@ -#include "__subsys__/__class__/src/__class__.h" diff --git a/FWCore/Skeletons/mkTemplates/TSelector/classes_def.xml b/FWCore/Skeletons/mkTemplates/TSelector/classes_def.xml deleted file mode 100644 index f7f8689f3be08..0000000000000 --- a/FWCore/Skeletons/mkTemplates/TSelector/classes_def.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/FWCore/Skeletons/scripts/mktsel b/FWCore/Skeletons/scripts/mktsel deleted file mode 100755 index ef933d6d4bed8..0000000000000 --- a/FWCore/Skeletons/scripts/mktsel +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env python3 -#-*- coding: utf-8 -*- -#pylint: disable-msg= -""" -File : mktsel -Author : Valentin Kuznetsov -Description: mktsel code -""" - -# system modules -import sys - -if sys.version_info < (2, 6): - raise Exception("This script requires python 2.6 or greater") - -# package modules -from FWCore.Skeletons.cms import generate, config - -def pkg_help(): - "mktsel help function" - msg = '\nmktsel script generates CMS TSelector code' - msg += '\nUsage : mktsel ProducerName -author "FirstName LastName"' - msg += ' ' - msg += '\nOutput : ' - msg += """ - MyTSel/ - |-- BuildFile.xml - | src/ - | |-- MyTSel.cc - | interface/ - | |-- MyTSel.h - | |-- classes.h - | |-- classes_def.xml - """ - msg += '\nExample:' - msg += '\n # create new TSelector code' - msg += '\n mktsel MyTSel' - msg += '\n # create new TSelector code with given author' - msg += '\n mktsel MyTSel -author "First Last"' - msg += '\n # create new TSelector code with myparticle example' - msg += '\n mktsel MyTSel example_track' - msg += '\n' - return msg - -if __name__ == '__main__': - generate(config('TSelector', pkg_help())) diff --git a/FWCore/Skeletons/test/runtests.sh b/FWCore/Skeletons/test/runtests.sh index 78f68303a423c..856dd2fafa49c 100755 --- a/FWCore/Skeletons/test/runtests.sh +++ b/FWCore/Skeletons/test/runtests.sh @@ -53,9 +53,6 @@ mkdatapkg TestDataPackage -author "Test Author" mkskel TestSkeleton -author "Test Author" -mktsel TestSelector -author "Test Author" -mktsel TestSelectorTrack example_track -author "Test Author" - popd git add TestSubsystem git commit -a -m "Other skeletong code" diff --git a/FWCore/TFWLiteSelector/BuildFile.xml b/FWCore/TFWLiteSelector/BuildFile.xml deleted file mode 100644 index 4d44f61a0987a..0000000000000 --- a/FWCore/TFWLiteSelector/BuildFile.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/FWCore/TFWLiteSelector/doc/proofNotes.txt b/FWCore/TFWLiteSelector/doc/proofNotes.txt deleted file mode 100644 index 8994d46b834e0..0000000000000 --- a/FWCore/TFWLiteSelector/doc/proofNotes.txt +++ /dev/null @@ -1,147 +0,0 @@ -To get use proof from root: - -REFERENCE MATERIAL -================== -The twiki might prove useful if you have difficulties below: - - http://higweb.lns.mit.edu/twikis/proof/bin/view/Proof/ProofDocs - $ROOTSYS/README/README.PROOF - -ON INSTALLING PROOF -=================== - -Install proof according to the instructions in - -$ROOTSYS/README/README.PROOF - -One problem we had was that we needed to give the proofd the LD_LIBRARY_PATH -where it can find the library with our TSelector that we were testing. -For example, - export LD_LIBRARY_PATH=/mylogin/CMSSW_0_9_0/lib:$LD_LIBRARY_PATH -The best way to determine the proper LD_LIBRARY_PATH is to look for LD_LIBRARY_PATH -issued by the command 'scramv1 run -csh'. - -This is unfortunate for several reasons: -1) Once you start the proofd, it will only use libraries for the software - release pointed to by that LD_LIBRARY_PATH. -2) There isn't a way to ensure that the release used by proofd is consistent - with the release you are using. -3) Anyone making a new shared library for the release used by proofd has to - install it somewhere in the LD_LIBRARY_PATH used to start all the proofd daemons. - -If you want reasonably open access, make a suitably writable directory for people to -install their shared libraries and add it to the LD_LIBRARY_PATH of proofd. - -Proofd also needs access (e.g., via NFS or AFS) to the binary you -want to run. So when setting up your proof.conf file, make sure it -has access to your binaries. We did this by configuring the proofd -machines with NFS images. - -There may be some other way of getting the binaries and libraries to the -proof daemons for execution, but we haven't found it yet. - -For our simple test setup, we used the same host for master and workers. -It has 2 CPUs, so we set up two workers. -Our $ROOTSYS/proof/etc/proof.conf file contains: - -master hostie.lns.cornell.edu image=nfs -worker hostie.lns.cornell.edu perf=100 image=nfs -worker hostie.lns.cornell.edu perf=100 image=nfs - -Note, you don't need to start the proofd from /etc/inetd.conf for an -initial test. You can just log in to the master proof server and run - -$ROOTSYS/bin/proofd $ROOTSYS & - -The output will be logged to the screen where you started it, which is -what you probably want for a quick test. - -You need a password to access proof. Create that as follows, replacing -the string secret_passwd with the password that you want. - -$ROOTSYS/proof/utils/crypt secret_passwd > $HOME/.rootdpass -chmod 0600 $HOME/.rootdpass - -Note: this appears to provides no security of any value.Anybody who can - access your master proofd host can issue themselves a password and - start using your system. - -Now you can start root. - -$ROOTSYS/bin/root - -At the root prompt, issue the following command, replacing proof-master-host -with the fully qualified name of the host running the proofd master. - - gROOT->Proof("proof-master-host") - -for example, - - gROOT->Proof("hostie.lns.cornell.edu"); - -You will get a pop-up dialog asking for your password. It is really -annoying that it doesn't ask for the password at the CLI where you -were already typing. -If all went well, type - - gProof->print() - -This will print 20-30 lines of helpful information that will enlighten you. - -RUNNING A ROOT JOB USING PROOF -============================== - -Now you will want to do something useful, like run a TSelector. -This turned out to be quite tricky. Here is an example. -We made a ThingsTSelector, which we put into libFWCoreTFWLiteSelectorTest. -To ensure that our TSelector was auto-loaded we loaded libFWCoreFWLite -and then enabled fwlite. -NOTE WELL: libFWCoreTFWLiteSelectorTest.so must be in the LD_LIBRARY_PATH -for all the proofd's you are running. - -After that, our library was correctly loaded. Next we made a TDSet. -In non-proof code you would make a TChain, but for proof you make a TDSet. -We added a file to the TDSet and were able to read in our data. The sequence -of root commands is as follows. - -First make a file called proof_remote.C with the following code to make -everything load properly on the remote proof host(s). - - { - // This makes the TSelectors in the library available to the - // remote proof session - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - gSystem->Load("libFWCoreTFWLiteSelectorTest"); - } - -Now make proof_local.C - - { - // Setup the connection to the proof server - gROOT->Proof( "lnx7108.lns.cornell.edu" ); - - // You need this to allow ROOT to be able to use a ThingsTSelector - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - - gSystem->Load("libFWCoreTFWLiteSelectorTest"); - - // This makes sure the TSelector library and dictionary are properly - // installed in the remote PROOF servers - gProof->Exec( ".x proof_remote.C" ); - - // This creates the 'data set' which defines what files we need to process - // NOTE: the files given must be accessible by the remote systems. - TDSet c( "TTree", "Events"); - c.Add("/mylogin/CMSSW_0_9_0/src/FWCore/TFWLiteSelector/test/test.root"); - - //This makes the actual processing happen - c.Process( "ThingsTSelector" ); - } - -Start root and at the root command prompt run the command - - .x proof_local.C - -This should execute on several proof hosts. diff --git a/FWCore/TFWLiteSelector/interface/TFWLiteSelector.h b/FWCore/TFWLiteSelector/interface/TFWLiteSelector.h deleted file mode 100644 index 3491915ef2de7..0000000000000 --- a/FWCore/TFWLiteSelector/interface/TFWLiteSelector.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef FWCore_TFWLiteSelector_TFWLiteSelector_h -#define FWCore_TFWLiteSelector_TFWLiteSelector_h -// -*- C++ -*- -// -// Package: TFWLiteSelector -// Class : TFWLiteSelector -// -/**\class TFWLiteSelector TFWLiteSelector.h FWCore/TFWLiteSelector/interface/TFWLiteSelector.h - - Description: A 'safe' form of a TSelector which uses a Worker helper class to do the processing - - Usage: - This is a safe form of a TSelector which separates the processing (which could happen on many - computers when using PROOF) from the handling of the final result (which only happens on the - original computer which is running the ROOT job). - - The processing is handled by a worker class. This class is expected to have the following methods - 1) a constructor which takes a 'const TList*' and a 'TList&' as its arguments. The 'const TList*' holds - objects The 'TList&' is used to hold all the - 'TObject' items (e.g. histograms) you want to access for the final result (e.g. the sum of all - histograms created by the many Workers running on different computers). You should create the - items in the constructor, hold onto them as member data in the Worker and 'Add' them to the TList. - In addition, the 'TList&' can hold items sent to the workers from the TFWLiteSelector. - 2) a method called 'process(const edm::Event&)' - this is called for each Event - 3) a destructor which does what ever you want to have done after all the Events have finished - - You should inherit from TFWLiteSelector<...> where the template argument should be the worker you want - to use. You need to implement the following methods - 1) 'begin(const TList*& itemsForProcessing)' - this is called before processing has started and before any workers get created. If you want to pass data to - your workers, you can create a new TList and assign it to 'itemsForProcessing' and then add the objects you - want passed into that list. - NOTE: you are responsible for deleting the created TList and for deleting all items held by the TList. The easiest - way to do this is to add a 'std::unique_ptr' member data to your Selector and then call 'SetOwner()' on the TList. - 2) 'terminate(TList&)' - this is called after all processing has finished. The TList& contains all the accumulated information - from all the workers. -*/ -// -// Original Author: Chris Jones -// Created: Fri Jun 30 21:04:46 CDT 2006 -// - -// system include files -#include - -class TList; - -// user include files - -#include "FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h" -#include "FWCore/Utilities/interface/propagate_const.h" - -// forward declarations -template -class TFWLiteSelector : public TFWLiteSelectorBasic { -public: - TFWLiteSelector() : worker_() {} - ~TFWLiteSelector() override {} - - // ---------- const member functions --------------------- - - // ---------- static member functions -------------------- - - // ---------- member functions --------------------------- - -private: - TFWLiteSelector(const TFWLiteSelector&); // stop default - - const TFWLiteSelector& operator=(const TFWLiteSelector&); // stop default - - void preProcessing(const TList* in, TList& out) override { worker_ = std::make_shared(in, out); } - void process(const edm::Event& iEvent) override { worker_->process(iEvent); } - void postProcessing(TList& out) override { worker_->postProcess(out); } - - // ---------- member data -------------------------------- - edm::propagate_const> worker_; - ClassDefOverride(TFWLiteSelector, 2) -}; - -#endif diff --git a/FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h b/FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h deleted file mode 100644 index 1a5f7cbb0bfd5..0000000000000 --- a/FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h +++ /dev/null @@ -1,104 +0,0 @@ -#ifndef FWCore_TFWLiteSelector_TFWLiteSelectorBasic_h -#define FWCore_TFWLiteSelector_TFWLiteSelectorBasic_h -// -*- C++ -*- -// -// Package: TFWLiteSelector -// Class : TFWLiteSelectorBasic -// -/**\class TFWLiteSelectorBasic TFWLiteSelectorBasic.h FWCore/FWLite/interface/TFWLiteSelectorBasic.h - - Description: A ROOT TSelector which accesses data using an edm::Event - - Usage: - By inheriting from this class one can make a TSelector for ROOT which works with PROOF and which -allows you to access data using an edm::Event. - -*/ -// -// Original Author: Chris Jones -// Created: Tue Jun 27 16:37:27 EDT 2006 -// - -// system include files -#include -#include "TSelector.h" - -// user include files -#include "FWCore/Utilities/interface/propagate_const.h" - -// forward declarations -class TFile; -class TList; -class TTree; - -namespace edm { - class Event; - - namespace root { - struct TFWLiteSelectorMembers; - } -} // namespace edm - -class TFWLiteSelectorBasic : public TSelector { -public: - TFWLiteSelectorBasic(); - ~TFWLiteSelectorBasic() override; - - // ---------- const member functions --------------------- - - // ---------- static member functions -------------------- - - // ---------- member functions --------------------------- - /**Called each time the 'client' begins processing (remote 'slaves' do not see this message) - \param in an assignable pointer to a list of objects you want passed to 'preProcessing'. This - list is used to communicate with remote slaves. NOTE: you are responsible for deleting this TList - and its content once you are done with it. - */ - virtual void begin(TList*& in) = 0; - - /**Called each time the 'slave' is about to start processing - \param in a pointer to the list of objects created in 'begin()'. The pointer can be 0 - \param out a list of objects that are the result of processing (e.g. histograms). - You should call 'Add()' for each object you want sent to the 'terminate' method. - */ - virtual void preProcessing(const TList* in, TList& out) = 0; - - /**Call each time the 'slave' gets a new Event - \param event a standard edm::Event which works just like it does in cmsRun - */ - virtual void process(const edm::Event& event) = 0; - - /**Called each time the 'slave' has seen all the events - \param out the list of objects that will be sent to 'terminate'. - You can Add() additional objects to 'out' at this point as well. - */ - virtual void postProcessing(TList& out) = 0; - - /**Called each time the 'client' has finished processing. - \param out contains the accumulated output of all slaves. - */ - virtual void terminate(TList& out) = 0; - -private: - TFWLiteSelectorBasic(const TFWLiteSelectorBasic&); // stop default - - const TFWLiteSelectorBasic& operator=(const TFWLiteSelectorBasic&); // stop default - - void Begin(TTree*) override; - void SlaveBegin(TTree*) override; - void Init(TTree*) override; - Bool_t Notify() override; - Bool_t Process(Long64_t /*entry*/) override; - void SlaveTerminate() override; - void Terminate() override; - Int_t Version() const override { return 1; } - - void setupNewFile(TFile&); - // ---------- member data -------------------------------- - edm::propagate_const> m_; - bool everythingOK_; - - ClassDefOverride(TFWLiteSelectorBasic, 2) -}; - -#endif diff --git a/FWCore/TFWLiteSelector/src/TFWLiteSelectorBasic.cc b/FWCore/TFWLiteSelector/src/TFWLiteSelectorBasic.cc deleted file mode 100644 index d3ff96802e7fd..0000000000000 --- a/FWCore/TFWLiteSelector/src/TFWLiteSelectorBasic.cc +++ /dev/null @@ -1,510 +0,0 @@ -// -*- C++ -*- - -// -// Package: TFWLiteSelector -// Class : TFWLiteSelectorBasic -// -// Implementation: -// -// -// Original Author: Chris Jones -// Created: Tue Jun 27 17:58:10 EDT 2006 -// - -// user include files -#include "FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h" - -#include "DataFormats/Common/interface/RefCoreStreamer.h" -#include "DataFormats/Common/interface/setIsMergeable.h" -#include "DataFormats/Provenance/interface/BranchDescription.h" -#include "DataFormats/Provenance/interface/BranchIDList.h" -#include "DataFormats/Provenance/interface/BranchIDListHelper.h" -#include "DataFormats/Provenance/interface/BranchListIndex.h" -#include "FWCore/Framework/interface/ProductProvenanceRetriever.h" -#include "DataFormats/Provenance/interface/BranchType.h" -#include "DataFormats/Provenance/interface/EventAuxiliary.h" -#include "DataFormats/Provenance/interface/EventEntryDescription.h" // kludge to allow compilation -#include "DataFormats/Provenance/interface/EventSelectionID.h" -#include "DataFormats/Provenance/interface/EventToProcessBlockIndexes.h" -#include "DataFormats/Provenance/interface/FileFormatVersion.h" -#include "DataFormats/Provenance/interface/LuminosityBlockAuxiliary.h" -#include "DataFormats/Provenance/interface/ModuleDescription.h" -#include "DataFormats/Provenance/interface/ParameterSetBlob.h" -#include "DataFormats/Provenance/interface/ProcessConfiguration.h" -#include "DataFormats/Provenance/interface/ProcessHistory.h" -#include "DataFormats/Provenance/interface/ProcessHistoryRegistry.h" -#include "DataFormats/Provenance/interface/ProductRegistry.h" -#include "DataFormats/Provenance/interface/RunAuxiliary.h" -#include "DataFormats/Provenance/interface/ThinnedAssociationsHelper.h" -#include "FWCore/Framework/interface/DelayedReader.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventPrincipal.h" -#include "FWCore/Framework/interface/LuminosityBlockPrincipal.h" -#include "FWCore/Framework/interface/RunPrincipal.h" -#include "FWCore/ParameterSet/interface/Registry.h" -#include "FWCore/Utilities/interface/EDMException.h" -#include "FWCore/Utilities/interface/FriendlyName.h" -#include "FWCore/Reflection/interface/ObjectWithDict.h" -#include "FWCore/Reflection/interface/TypeWithDict.h" -#include "FWCore/Utilities/interface/WrappedClassName.h" -#include "FWCore/Utilities/interface/get_underlying_safe.h" - -// system include files -#include "TBranch.h" -#include "TChain.h" -#include "TFile.h" -#include "TTree.h" - -#include -#include -#include -#include -#include - -namespace edm { - namespace root { - class FWLiteDelayedReader : public DelayedReader { - public: - FWLiteDelayedReader() : entry_(-1), eventTree_(nullptr) {} - void setEntry(Long64_t iEntry) { entry_ = iEntry; } - void setTree(TTree* iTree) { eventTree_ = iTree; } - void set(std::shared_ptr> iMap) { - bidToDesc_ = std::move(iMap); - } - - private: - std::unique_ptr getTheProduct(BranchID const& k) const; - std::shared_ptr getProduct_(BranchID const& k, EDProductGetter const* ep) override; - virtual std::unique_ptr getProvenance_(BranchKey const&) const { - return std::unique_ptr(); - } - void mergeReaders_(DelayedReader*) override {} - void reset_() override {} - - signalslot::Signal const* preEventReadFromSourceSignal() - const override { - return nullptr; - } - signalslot::Signal const* postEventReadFromSourceSignal() - const override { - return nullptr; - }; - - Long64_t entry_; - TTree* eventTree_; - std::shared_ptr> bidToDesc_; - }; - - std::shared_ptr FWLiteDelayedReader::getProduct_(BranchID const& k, EDProductGetter const* /*ep*/) { - return getTheProduct(k); - } - - std::unique_ptr FWLiteDelayedReader::getTheProduct(BranchID const& k) const { - auto itFind = bidToDesc_->find(k.id()); - if (itFind == bidToDesc_->end()) { - throw Exception(errors::ProductNotFound) << "could not find entry for product " << k; - } - BranchDescription const& bDesc = *(itFind->second); - - TBranch* branch = eventTree_->GetBranch(bDesc.branchName().c_str()); - if (nullptr == branch) { - throw cms::Exception("MissingBranch") << "could not find branch named '" << bDesc.branchName() << "'" - << "\n Perhaps the data being requested was not saved in this file?"; - } - //find the class type - std::string const fullName = wrappedClassName(bDesc.className()); - TypeWithDict classType = TypeWithDict::byName(fullName); - if (!bool(classType)) { - throw cms::Exception("MissingDictionary") << "could not find dictionary for type '" << fullName << "'" - << "\n Please make sure all the necessary libraries are available."; - } - - //create an instance of it - ObjectWithDict wrapperObj = classType.construct(); - if (nullptr == wrapperObj.address()) { - throw cms::Exception("FailedToCreate") << "could not create an instance of '" << fullName << "'"; - } - void* address = wrapperObj.address(); - branch->SetAddress(&address); - ObjectWithDict edProdObj = wrapperObj.castObject(TypeWithDict::byName("edm::WrapperBase")); - - WrapperBase* prod = reinterpret_cast(edProdObj.address()); - - if (nullptr == prod) { - throw cms::Exception("FailedConversion") << "failed to convert a '" << fullName << "' to a edm::WrapperBase." - << "Please contact developers since something is very wrong."; - } - branch->GetEntry(entry_); - return std::unique_ptr(prod); - } - - struct TFWLiteSelectorMembers { - TFWLiteSelectorMembers() - : tree_(nullptr), - reg_(new ProductRegistry()), - bidToDesc_(std::make_shared>()), - phreg_(new ProcessHistoryRegistry()), - branchIDListHelper_(new BranchIDListHelper()), - // Note that thinned collections are not supported yet, the next - // line just makes it compile but when the Ref or Ptr tries to - // find the thinned collection it will report them not found. - // More work needed here if this is needed (we think no one - // is using TFWLiteSelector anymore and intend to implement - // this properly if it turns out we are wrong) - thinnedAssociationsHelper_(new ThinnedAssociationsHelper()), - processNames_(), - reader_(new FWLiteDelayedReader), - prov_(), - pointerToBranchBuffer_(), - provRetriever_(new edm::ProductProvenanceRetriever(0)) { - reader_->set(get_underlying_safe(bidToDesc_)); - } - void setTree(TTree* iTree) { - tree_ = iTree; - reader_->setTree(iTree); - } - - TTree const* tree() const { return get_underlying_safe(tree_); } - TTree*& tree() { return get_underlying_safe(tree_); } - std::shared_ptr reg() const { return get_underlying_safe(reg_); } - std::shared_ptr& reg() { return get_underlying_safe(reg_); } - std::shared_ptr branchIDListHelper() const { - return get_underlying_safe(branchIDListHelper_); - } - std::shared_ptr& branchIDListHelper() { return get_underlying_safe(branchIDListHelper_); } - std::shared_ptr thinnedAssociationsHelper() const { - return get_underlying_safe(thinnedAssociationsHelper_); - } - std::shared_ptr& thinnedAssociationsHelper() { - return get_underlying_safe(thinnedAssociationsHelper_); - } - - edm::propagate_const tree_; - edm::propagate_const> reg_; - edm::propagate_const>> bidToDesc_; - edm::propagate_const> phreg_; - edm::propagate_const> branchIDListHelper_; - edm::propagate_const> thinnedAssociationsHelper_; - ProcessHistory processNames_; - edm::propagate_const> reader_; - std::vector prov_; - std::vector pointerToBranchBuffer_; - FileFormatVersion fileFormatVersion_; - - edm::propagate_const> provRetriever_; - edm::ProcessConfiguration pc_; - edm::propagate_const> ep_; - edm::ModuleDescription md_; - }; - } // namespace root -} // namespace edm - -// -// constants, enums and typedefs -// - -// -// static data member definitions -// - -// -// constructors and destructor -// -TFWLiteSelectorBasic::TFWLiteSelectorBasic() : m_(new edm::root::TFWLiteSelectorMembers), everythingOK_(false) {} - -// TFWLiteSelectorBasic::TFWLiteSelectorBasic(TFWLiteSelectorBasic const& rhs) -// { -// // do actual copying here; -// } - -TFWLiteSelectorBasic::~TFWLiteSelectorBasic() {} - -// -// assignment operators -// -// TFWLiteSelectorBasic const& TFWLiteSelectorBasic::operator=(TFWLiteSelectorBasic const& rhs) -// { -// //An exception safe implementation is -// TFWLiteSelectorBasic temp(rhs); -// swap(rhs); -// -// return *this; -// } - -// -// member functions -// -void TFWLiteSelectorBasic::Begin(TTree* iTree) { - Init(iTree); - begin(fInput); -} - -void TFWLiteSelectorBasic::SlaveBegin(TTree* iTree) { - Init(iTree); - preProcessing(fInput, *fOutput); -} - -void TFWLiteSelectorBasic::Init(TTree* iTree) { - if (iTree == nullptr) - return; - m_->setTree(iTree); -} - -Bool_t TFWLiteSelectorBasic::Notify() { - //std::cout << "Notify start" << std::endl; - //we have switched to a new file - //get new file from Tree - if (nullptr == m_->tree_) { - std::cout << "No tree" << std::endl; - return kFALSE; - } - TFile* file = m_->tree_->GetCurrentFile(); - if (nullptr == file) { - //When in Rome, do as the Romans - TChain* chain = dynamic_cast(m_->tree()); - if (nullptr == chain) { - std::cout << "No file" << std::endl; - return kFALSE; - } - file = chain->GetFile(); - if (nullptr == file) { - std::cout << "No file" << std::endl; - return kFALSE; - } - } - setupNewFile(*file); - return everythingOK_ ? kTRUE : kFALSE; -} - -namespace { - struct Operate { - Operate(edm::EDProductGetter const* iGetter) : old_(setRefCoreStreamer(iGetter)) {} - - ~Operate() { setRefCoreStreamer(old_); } - - private: - edm::EDProductGetter const* old_; - }; -} // namespace - -Bool_t TFWLiteSelectorBasic::Process(Long64_t iEntry) { - //std::cout << "Process start" << std::endl; - if (everythingOK_) { - std::unique_ptr eaux = std::make_unique(); - edm::EventAuxiliary& aux = *eaux; - edm::EventAuxiliary* pAux = eaux.get(); - TBranch* branch = m_->tree_->GetBranch(edm::BranchTypeToAuxiliaryBranchName(edm::InEvent).c_str()); - - branch->SetAddress(&pAux); - branch->GetEntry(iEntry); - - //NEW m_->processNames_ = aux.processHistory(); - - // std::cout << "ProcessNames\n"; - // for(auto const& name : m_->processNames_) { - // std::cout << " " << name << std::endl; - // } - - edm::EventSelectionIDVector eventSelectionIDs; - edm::EventSelectionIDVector* pEventSelectionIDVector = &eventSelectionIDs; - TBranch* eventSelectionsBranch = m_->tree_->GetBranch(edm::poolNames::eventSelectionsBranchName().c_str()); - if (!eventSelectionsBranch) { - throw edm::Exception(edm::errors::FatalRootError) << "Failed to find event Selections branch in event tree"; - } - eventSelectionsBranch->SetAddress(&pEventSelectionIDVector); - eventSelectionsBranch->GetEntry(iEntry); - - edm::BranchListIndexes branchListIndexes; - edm::BranchListIndexes* pBranchListIndexes = &branchListIndexes; - TBranch* branchListIndexBranch = m_->tree_->GetBranch(edm::poolNames::branchListIndexesBranchName().c_str()); - if (!branchListIndexBranch) { - throw edm::Exception(edm::errors::FatalRootError) << "Failed to find branch list index branch in event tree"; - } - branchListIndexBranch->SetAddress(&pBranchListIndexes); - branchListIndexBranch->GetEntry(iEntry); - m_->branchIDListHelper_->fixBranchListIndexes(branchListIndexes); - edm::EventToProcessBlockIndexes dummyEventToProcessBlockIndexes; - - try { - m_->reader_->setEntry(iEntry); - auto rp = std::make_shared(m_->reg(), m_->pc_, nullptr, 0); - rp->setAux(edm::RunAuxiliary(aux.run(), aux.time(), aux.time())); - auto lbp = std::make_shared(m_->reg(), m_->pc_, nullptr, 0); - lbp->setAux(edm::LuminosityBlockAuxiliary(rp->run(), 1, aux.time(), aux.time())); - auto history = m_->phreg_->getMapped(eaux->processHistoryID()); - m_->ep_->fillEventPrincipal(*eaux, - history, - std::move(eventSelectionIDs), - std::move(branchListIndexes), - dummyEventToProcessBlockIndexes, - *(m_->provRetriever_), - m_->reader_.get()); - lbp->setRunPrincipal(rp); - m_->ep_->setLuminosityBlockPrincipal(lbp.get()); - m_->processNames_ = m_->ep_->processHistory(); - - edm::Event event(*m_->ep_, m_->md_, nullptr); - - //Make the event principal accessible to edm::Ref's - Operate sentry(m_->ep_->prodGetter()); - process(event); - } catch (std::exception const& iEx) { - std::cout << "While processing entry " << iEntry << " the following exception was caught \n" - << iEx.what() << std::endl; - } catch (...) { - std::cout << "While processing entry " << iEntry << " an unknown exception was caught" << std::endl; - } - } - return everythingOK_ ? kTRUE : kFALSE; -} - -void TFWLiteSelectorBasic::SlaveTerminate() { postProcessing(*fOutput); } - -void TFWLiteSelectorBasic::Terminate() { terminate(*fOutput); } - -void TFWLiteSelectorBasic::setupNewFile(TFile& iFile) { - //look up meta-data - //get product registry - - //std::vector eventProcessHistoryIDs_; - TTree* metaDataTree = dynamic_cast(iFile.Get(edm::poolNames::metaDataTreeName().c_str())); - if (!metaDataTree) { - std::cout << "could not find TTree " << edm::poolNames::metaDataTreeName() << std::endl; - everythingOK_ = false; - return; - } - edm::FileFormatVersion* fftPtr = &(m_->fileFormatVersion_); - if (metaDataTree->FindBranch(edm::poolNames::fileFormatVersionBranchName().c_str()) != nullptr) { - metaDataTree->SetBranchAddress(edm::poolNames::fileFormatVersionBranchName().c_str(), &fftPtr); - } - - edm::ProductRegistry* pReg = &(*m_->reg_); - metaDataTree->SetBranchAddress(edm::poolNames::productDescriptionBranchName().c_str(), &(pReg)); - - typedef std::map PsetMap; - PsetMap psetMap; - PsetMap* psetMapPtr = &psetMap; - if (metaDataTree->FindBranch(edm::poolNames::parameterSetMapBranchName().c_str()) != nullptr) { - metaDataTree->SetBranchAddress(edm::poolNames::parameterSetMapBranchName().c_str(), &psetMapPtr); - } else { - TTree* psetTree = dynamic_cast(iFile.Get(edm::poolNames::parameterSetsTreeName().c_str())); - if (nullptr == psetTree) { - throw edm::Exception(edm::errors::FileReadError) - << "Could not find tree " << edm::poolNames::parameterSetsTreeName() << " in the input file.\n"; - } - typedef std::pair IdToBlobs; - IdToBlobs idToBlob; - IdToBlobs* pIdToBlob = &idToBlob; - psetTree->SetBranchAddress(edm::poolNames::idToParameterSetBlobsBranchName().c_str(), &pIdToBlob); - for (long long i = 0; i != psetTree->GetEntries(); ++i) { - psetTree->GetEntry(i); - psetMap.insert(idToBlob); - } - } - - edm::ProcessHistoryRegistry::vector_type pHistVector; - edm::ProcessHistoryRegistry::vector_type* pHistVectorPtr = &pHistVector; - if (metaDataTree->FindBranch(edm::poolNames::processHistoryBranchName().c_str()) != nullptr) { - metaDataTree->SetBranchAddress(edm::poolNames::processHistoryBranchName().c_str(), &pHistVectorPtr); - } - - edm::ProcessConfigurationVector procConfigVector; - edm::ProcessConfigurationVector* procConfigVectorPtr = &procConfigVector; - if (metaDataTree->FindBranch(edm::poolNames::processConfigurationBranchName().c_str()) != nullptr) { - metaDataTree->SetBranchAddress(edm::poolNames::processConfigurationBranchName().c_str(), &procConfigVectorPtr); - } - - auto branchIDListsHelper = std::make_shared(); - edm::BranchIDLists const* branchIDListsPtr = &branchIDListsHelper->branchIDLists(); - if (metaDataTree->FindBranch(edm::poolNames::branchIDListBranchName().c_str()) != nullptr) { - metaDataTree->SetBranchAddress(edm::poolNames::branchIDListBranchName().c_str(), &branchIDListsPtr); - } - - metaDataTree->GetEntry(0); - - for (auto& prod : m_->reg_->productListUpdator()) { - prod.second.init(); - setIsMergeable(prod.second); - } - - // Merge into the registries. For now, we do NOT merge the product registry. - edm::pset::Registry& psetRegistry = *edm::pset::Registry::instance(); - for (auto const& entry : psetMap) { - edm::ParameterSet pset(entry.second.pset()); - pset.setID(entry.first); - psetRegistry.insertMapped(pset); - } - - for (auto const& ph : pHistVector) { - m_->phreg_->registerProcessHistory(ph); - } - - m_->pointerToBranchBuffer_.erase(m_->pointerToBranchBuffer_.begin(), m_->pointerToBranchBuffer_.end()); - - std::unique_ptr newReg = std::make_unique(); - - edm::ProductRegistry::ProductList& prodList = m_->reg_->productListUpdator(); - { - for (auto& item : prodList) { - edm::BranchDescription& prod = item.second; - //std::cout << "productname = " << item.second << " end " << std::endl; - std::string newFriendlyName = edm::friendlyname::friendlyName(prod.className()); - if (newFriendlyName == prod.friendlyClassName()) { - newReg->copyProduct(prod); - } else { - if (m_->fileFormatVersion_.splitProductIDs()) { - throw edm::Exception(edm::errors::UnimplementedFeature) - << "Cannot change friendly class name algorithm without more development work\n" - << "to update BranchIDLists. Contact the framework group.\n"; - } - edm::BranchDescription newBD(prod); - newBD.updateFriendlyClassName(); - newReg->copyProduct(newBD); - } - prod.init(); - } - - m_->reg().reset(newReg.release()); - } - - edm::ProductRegistry::ProductList& prodList2 = m_->reg_->productListUpdator(); - std::vector temp(prodList2.size(), edm::EventEntryDescription()); - m_->prov_.swap(temp); - m_->pointerToBranchBuffer_.reserve(prodList2.size()); - - for (auto& item : prodList2) { - edm::BranchDescription& prod = item.second; - if (prod.branchType() == edm::InEvent) { - prod.init(); - //NEED to do this and check to see if branch exists - if (m_->tree_->GetBranch(prod.branchName().c_str()) == nullptr) { - prod.setDropped(true); - } - prod.setOnDemand(true); - - //std::cout << "id " << it->first << " branch " << it->second << std::endl; - //m_->pointerToBranchBuffer_.push_back(&(*itB)); - //void* tmp = &(m_->pointerToBranchBuffer_.back()); - //edm::EventEntryDescription* tmp = &(*itB); - //CDJ need to fix provenance and be backwards compatible, for now just don't read the branch - //m_->metaTree_->SetBranchAddress(prod.branchName().c_str(), tmp); - } - } - m_->branchIDListHelper_->updateFromInput(*branchIDListsPtr); - m_->reg_->setFrozen(); - m_->bidToDesc_->clear(); - for (auto const& p : m_->reg_->productList()) { - m_->bidToDesc_->emplace(p.second.branchID().id(), &p.second); - } - m_->ep_ = std::make_shared( - m_->reg(), m_->branchIDListHelper(), m_->thinnedAssociationsHelper(), m_->pc_, nullptr); - everythingOK_ = true; -} - -// -// const member functions -// - -// -// static member functions -// diff --git a/FWCore/TFWLiteSelector/src/classes.h b/FWCore/TFWLiteSelector/src/classes.h deleted file mode 100644 index 2d89adb3f7f3c..0000000000000 --- a/FWCore/TFWLiteSelector/src/classes.h +++ /dev/null @@ -1 +0,0 @@ -#include "FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h" diff --git a/FWCore/TFWLiteSelector/src/classes_def.xml b/FWCore/TFWLiteSelector/src/classes_def.xml deleted file mode 100644 index e5f10a341c674..0000000000000 --- a/FWCore/TFWLiteSelector/src/classes_def.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/FWCore/TFWLiteSelector/test/BuildFile.xml b/FWCore/TFWLiteSelector/test/BuildFile.xml deleted file mode 100644 index 1c88252224884..0000000000000 --- a/FWCore/TFWLiteSelector/test/BuildFile.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/FWCore/TFWLiteSelector/test/TestRunnerFWCoreTFWLiteSelector.cpp b/FWCore/TFWLiteSelector/test/TestRunnerFWCoreTFWLiteSelector.cpp deleted file mode 100644 index b2991bd18ae57..0000000000000 --- a/FWCore/TFWLiteSelector/test/TestRunnerFWCoreTFWLiteSelector.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include "FWCore/Utilities/interface/TestHelper.h" - -RUNTEST() diff --git a/FWCore/TFWLiteSelector/test/gen_things_cfg.py b/FWCore/TFWLiteSelector/test/gen_things_cfg.py deleted file mode 100644 index 12f5902078ebc..0000000000000 --- a/FWCore/TFWLiteSelector/test/gen_things_cfg.py +++ /dev/null @@ -1,24 +0,0 @@ -# Configuration file for RefTest_t - -import FWCore.ParameterSet.Config as cms - -process = cms.Process("TEST") - -process.load("FWCore.Framework.test.cmsExceptionsFatal_cff") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(2) -) - -process.source = cms.Source("EmptySource") - -process.Thing = cms.EDProducer("ThingProducer") - -process.OtherThing = cms.EDProducer("OtherThingProducer") - -process.out = cms.OutputModule("PoolOutputModule", - fileName = cms.untracked.string('testTFWLiteSelector.root') -) - -process.p = cms.Path(process.Thing*process.OtherThing) -process.o = cms.EndPath(process.out) diff --git a/FWCore/TFWLiteSelector/test/proof_remote.C b/FWCore/TFWLiteSelector/test/proof_remote.C deleted file mode 100644 index 7658f031af9fc..0000000000000 --- a/FWCore/TFWLiteSelector/test/proof_remote.C +++ /dev/null @@ -1,6 +0,0 @@ -{ - //This make the TSelectors in the library available to the remote proof session - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - gSystem->Load("libFWCoreTFWLiteSelectorTest"); -} diff --git a/FWCore/TFWLiteSelector/test/run_all_t.sh b/FWCore/TFWLiteSelector/test/run_all_t.sh deleted file mode 100755 index b4eba6671e9af..0000000000000 --- a/FWCore/TFWLiteSelector/test/run_all_t.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# Pass in name and status -function die { echo $1: status $2 ; exit $2; } - -LOCAL_TEST_DIR=${SCRAM_TEST_PATH} -export TMPDIR=`pwd` -cmsRun ${LOCAL_TEST_DIR}/gen_things_cfg.py || die 'Failed generating test root file' $? - -rm -f a.jpg refA.jpg -root -b -n -q ${LOCAL_TEST_DIR}/thing_sel.C || die 'Failed tfwliteselectortest::ThingsTSelector test' $? -[ -s a.jpg ] && [ -s refA.jpg ] || die 'Failed tfwliteselectortest::ThingsTSelector test, no histograms' 20 - -rm -f a.jpg refA.jpg -root -b -n -q ${LOCAL_TEST_DIR}/thing2_sel.C || die 'Failed tfwliteselectortest::ThingsTSelector2 test' $? -[ -s a.jpg ] && [ -s refA.jpg ] || die 'Failed tfwliteselectortest::ThingsTSelector2 test, no histograms' 20 - -rm -f a.jpg refA.jpg - -exit 0 diff --git a/FWCore/TFWLiteSelector/test/thing2_sel.C b/FWCore/TFWLiteSelector/test/thing2_sel.C deleted file mode 100644 index e273de19921f7..0000000000000 --- a/FWCore/TFWLiteSelector/test/thing2_sel.C +++ /dev/null @@ -1,15 +0,0 @@ -{ - //Need this to allow ROOT to be able to use a ThingsTSelector - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - gSystem->Load("libFWCoreTFWLiteSelectorTest"); - - TSelector* sel = new tfwliteselectortest::ThingsTSelector2(); - - //This holds the list of files and 'TTree' to process - TChain c("Events"); - c.Add("testTFWLiteSelector.root"); - - //This actually processes the data - c.Process(sel); -} diff --git a/FWCore/TFWLiteSelector/test/thing_sel.C b/FWCore/TFWLiteSelector/test/thing_sel.C deleted file mode 100644 index 0201a43aaa729..0000000000000 --- a/FWCore/TFWLiteSelector/test/thing_sel.C +++ /dev/null @@ -1,15 +0,0 @@ -{ - //Need this to allow ROOT to be able to use a ThingsTSelector - gSystem->Load("libFWCoreFWLite"); - FWLiteEnabler::enable(); - gSystem->Load("libFWCoreTFWLiteSelectorTest"); - - TSelector* sel = new tfwliteselectortest::ThingsTSelector(); - - //This holds the list of files and 'TTree' to process - TChain c("Events"); - c.Add("testTFWLiteSelector.root"); - - //This actually processes the data - c.Process(sel); -} diff --git a/FWCore/TFWLiteSelectorTest/BuildFile.xml b/FWCore/TFWLiteSelectorTest/BuildFile.xml deleted file mode 100644 index 21a7647fa4433..0000000000000 --- a/FWCore/TFWLiteSelectorTest/BuildFile.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/FWCore/TFWLiteSelectorTest/src/ThingsTSelector.cc b/FWCore/TFWLiteSelectorTest/src/ThingsTSelector.cc deleted file mode 100644 index d3c155d655a18..0000000000000 --- a/FWCore/TFWLiteSelectorTest/src/ThingsTSelector.cc +++ /dev/null @@ -1,98 +0,0 @@ -#include "FWCore/TFWLiteSelectorTest/src/ThingsTSelector.h" -#include -#include -#include "Rtypes.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/TestObjects/interface/OtherThingCollection.h" -#include "DataFormats/TestObjects/interface/ThingCollection.h" -#include "FWCore/Utilities/interface/thread_safety_macros.h" - -using namespace tfwliteselectortest; - -static const char* kA = "a"; -static const char* kRefA = "refA"; -void ThingsTSelector::begin(TList*&) {} - -void ThingsTSelector::preProcessing(const TList*, TList& out) { - if (nullptr != h_a) { - out.Remove(h_a); - delete h_a.get(); - h_a = nullptr; - } - h_a = new TH1F(kA, "a", 100, 0, 20); - out.Add(h_a); - - if (nullptr != h_refA) { - out.Remove(h_refA); - delete h_refA.get(); - h_refA = nullptr; - } - h_refA = new TH1F(kRefA, "refA", 100, 0, 20); - out.Add(h_refA); -} - -void ThingsTSelector::process(const edm::Event& iEvent) { - std::cout << "processing event " << std::endl; - // chain->GetEntry( entry ); - using namespace edmtest; - edm::Handle hOThings; - // In case of an exception prints the message and aborts the process - CMS_SA_ALLOW try { - iEvent.getByLabel("OtherThing", "testUserTag", hOThings); - std::cout << ">> other things found:" << hOThings->size() << std::endl; - - for (size_t i = 0; i < hOThings->size(); ++i) { - const OtherThing& thing = (*hOThings)[i]; - h_refA->Fill(thing.ref->a); - std::cout << ">> ref->a: " << thing.ref->a << std::endl; - } - - edm::Handle hThings; - iEvent.getByLabel("Thing", hThings); - const ThingCollection& things = *hThings; - std::cout << ">> things found:" << things.size() << std::endl; - for (size_t i = 0; i < things.size(); ++i) { - const Thing& thing = things[i]; - h_a->Fill(thing.a); - std::cout << ">> a: " << thing.a << std::endl; - } - } catch (cms::Exception& x) { - std::cout << std::endl << "Failed with cms::Exception: " << std::endl; - std::cout << x.what() << std::endl; - abort(); - } catch (std::exception& x) { - std::cout << std::endl << "Failed with std::exception" << std::endl; - std::cout << x.what() << std::endl; - abort(); - } catch (...) { - std::cout << std::endl << "Failed with unknown exception" << std::endl; - abort(); - } -} - -void ThingsTSelector::postProcessing(TList&) {} - -void ThingsTSelector::terminate(TList& out) { - std::cout << "terminate" << std::endl; - TCanvas* canvas = new TCanvas(); - { - TObject* hist = out.FindObject(kA); - if (nullptr != hist) { - hist->Draw(); - canvas->SaveAs("a.jpg"); - } else { - std::cout << "no '" << kA << "' histogram" << std::endl; - } - } - { - TObject* hist = out.FindObject(kRefA); - if (nullptr != hist) { - hist->Draw(); - canvas->SaveAs("refA.jpg"); - } else { - std::cout << "no '" << kRefA << "' histogram" << std::endl; - } - } - delete canvas; -} diff --git a/FWCore/TFWLiteSelectorTest/src/ThingsTSelector.h b/FWCore/TFWLiteSelectorTest/src/ThingsTSelector.h deleted file mode 100644 index fbaa2591aa68e..0000000000000 --- a/FWCore/TFWLiteSelectorTest/src/ThingsTSelector.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef ThingsTSelector_h -#define ThingsTSelector_h -/** \class ThingsTSelector - * - * Simple interactive analysis example based on TSelector - * accessing EDM data - * - * \author Luca Lista, INFN - * - */ -#include "TH1.h" -#include "FWCore/TFWLiteSelector/interface/TFWLiteSelectorBasic.h" -#include "FWCore/Utilities/interface/propagate_const.h" - -namespace tfwliteselectortest { - class ThingsTSelector : public TFWLiteSelectorBasic { - public: - ThingsTSelector() : h_a(nullptr), h_refA(nullptr) {} - void begin(TList*&) override; - void preProcessing(const TList*, TList&) override; - void process(const edm::Event&) override; - void postProcessing(TList&) override; - void terminate(TList&) override; - - private: - /// histograms - edm::propagate_const h_a; - edm::propagate_const h_refA; - - ThingsTSelector(ThingsTSelector const&); - ThingsTSelector operator=(ThingsTSelector const&); - - ClassDefOverride(ThingsTSelector, 2) - }; -} // namespace tfwliteselectortest -#endif diff --git a/FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.cc b/FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.cc deleted file mode 100644 index 5c008bb1b30e3..0000000000000 --- a/FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.cc +++ /dev/null @@ -1,92 +0,0 @@ -#include "FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.h" -#include -#include -#include "Rtypes.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/Event.h" -#include "DataFormats/TestObjects/interface/OtherThingCollection.h" -#include "DataFormats/TestObjects/interface/ThingCollection.h" -#include "FWCore/Utilities/interface/thread_safety_macros.h" - -using namespace tfwliteselectortest; - -//Names used in common between the worker and the Selector -static const char* kA = "a"; -static const char* kRefA = "refA"; - -ThingsWorker::ThingsWorker(const TList*, TList& out) { - std::cout << "begin" << std::endl; - h_a = new TH1F(kA, "a", 100, 0, 20); - out.Add(h_a); - - h_refA = new TH1F(kRefA, "refA", 100, 0, 20); - out.Add(h_refA); -} - -void ThingsWorker::process(const edm::Event& iEvent) { - std::cout << "processing event " << std::endl; - // chain->GetEntry( entry ); - using namespace edmtest; - edm::Handle hOThings; - // In case of an exception prints the message and aborts the process - CMS_SA_ALLOW try { - iEvent.getByLabel("OtherThing", "testUserTag", hOThings); - - std::cout << ">> other things found:" << hOThings->size() << std::endl; - for (size_t i = 0; i < hOThings->size(); ++i) { - const OtherThing& thing = (*hOThings)[i]; - h_refA->Fill(thing.ref->a); - std::cout << ">> ref->a: " << thing.ref->a << std::endl; - } - - edm::Handle hThings; - iEvent.getByLabel("Thing", hThings); - const ThingCollection& things = *hThings; - std::cout << ">> things found:" << things.size() << std::endl; - for (size_t i = 0; i < things.size(); ++i) { - const Thing& thing = things[i]; - h_a->Fill(thing.a); - std::cout << ">> a: " << thing.a << std::endl; - } - } catch (cms::Exception& x) { - std::cout << std::endl << "Failed with cms::Exception: " << std::endl; - std::cout << x.what() << std::endl; - abort(); - } catch (std::exception& x) { - std::cout << std::endl << "Failed with std::exception" << std::endl; - std::cout << x.what() << std::endl; - abort(); - } catch (...) { - std::cout << std::endl << "Failed with unknown exception" << std::endl; - abort(); - } -} - -void ThingsWorker::postProcess(TList&) {} - -void ThingsTSelector2::begin(TList*&) {} - -void ThingsTSelector2::terminate(TList& out) { - std::cout << "terminate" << std::endl; - TCanvas* canvas = new TCanvas(); - { - TObject* hist = out.FindObject(kA); - if (nullptr != hist) { - hist->Draw(); - canvas->SaveAs("a.jpg"); - } else { - std::cout << "no '" << kA << "' histogram" << std::endl; - } - } - std::cout << "refA" << std::endl; - { - TObject* hist = out.FindObject(kRefA); - if (nullptr != hist) { - hist->Draw(); - canvas->SaveAs("refA.jpg"); - } else { - std::cout << "no '" << kRefA << "' histogram" << std::endl; - } - } - delete canvas; -} diff --git a/FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.h b/FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.h deleted file mode 100644 index 5ddcb396366a9..0000000000000 --- a/FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef ThingsTSelector2_h -#define ThingsTSelector2_h -/** \class ThingsTSelector2 - * - * Simple interactive analysis example based on TSelector - * accessing EDM data - * - * \author Luca Lista, INFN - * - */ -#include "TH1.h" -#include "FWCore/TFWLiteSelector/interface/TFWLiteSelector.h" - -namespace tfwliteselectortest { - struct ThingsWorker { - ThingsWorker(const TList*, TList&); - void process(const edm::Event& iEvent); - void postProcess(TList&); - edm::propagate_const h_a; - edm::propagate_const h_refA; - }; - - class ThingsTSelector2 : public TFWLiteSelector { - public: - ThingsTSelector2() {} - void begin(TList*&) override; - void terminate(TList&) override; - - private: - ThingsTSelector2(ThingsTSelector2 const&); - ThingsTSelector2 operator=(ThingsTSelector2 const&); - - ClassDefOverride(ThingsTSelector2, 2) - }; -} // namespace tfwliteselectortest -#endif diff --git a/FWCore/TFWLiteSelectorTest/src/classes.h b/FWCore/TFWLiteSelectorTest/src/classes.h deleted file mode 100644 index ca4ddccb89560..0000000000000 --- a/FWCore/TFWLiteSelectorTest/src/classes.h +++ /dev/null @@ -1,2 +0,0 @@ -#include "FWCore/TFWLiteSelectorTest/src/ThingsTSelector.h" -#include "FWCore/TFWLiteSelectorTest/src/ThingsTSelector2.h" diff --git a/FWCore/TFWLiteSelectorTest/src/classes_def.xml b/FWCore/TFWLiteSelectorTest/src/classes_def.xml deleted file mode 100644 index dd233f782c0c4..0000000000000 --- a/FWCore/TFWLiteSelectorTest/src/classes_def.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py b/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py index 2312960db78fb..00d4d034cb228 100755 --- a/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py +++ b/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py @@ -71,7 +71,6 @@ {'PhysicsToolsObjects' : ['PhysicsTools::Calibration']}, {'TrackReco' : ['reco::Track','reco::TrackRef']}, {'VertexReco' : ['reco::Vertex']}, - {'TFWLiteSelectorTest' : ['tfwliteselectortest']}, {'TauReco' : ['reco::PFJetRef']}, {'JetReco' : ['reco::.*Jet','reco::.*Jet(Collection|Ref)']}, {'HGCDigi' : ['HGCSample']}, From 5744eaa1862738f0934b26a6a209c181376faaa7 Mon Sep 17 00:00:00 2001 From: Matti Kortelainen Date: Thu, 19 Dec 2024 15:05:39 +0100 Subject: [PATCH 412/418] Take fileNames by value in InputFileCatalog constructor The constructor makes a copy of the fileNames anyway. For the cases where InputFileCatalog is constructed with temporary or moved vector, this change allows to avoid copying that vector. The Sources tend to pass in directly a temporary vector from the ParameterSet, so there could be a visible reduction in memory churn. --- FWCore/Catalog/interface/InputFileCatalog.h | 2 +- FWCore/Catalog/src/InputFileCatalog.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/FWCore/Catalog/interface/InputFileCatalog.h b/FWCore/Catalog/interface/InputFileCatalog.h index 2bdf2c39cd4da..ec99b1eb218be 100644 --- a/FWCore/Catalog/interface/InputFileCatalog.h +++ b/FWCore/Catalog/interface/InputFileCatalog.h @@ -33,7 +33,7 @@ namespace edm { class InputFileCatalog { public: - InputFileCatalog(std::vector const& fileNames, + InputFileCatalog(std::vector fileNames, std::string const& override, bool useLFNasPFNifLFNnotFound = false, //switching between two catalog types diff --git a/FWCore/Catalog/src/InputFileCatalog.cc b/FWCore/Catalog/src/InputFileCatalog.cc index 2f85e71855d43..fab27a17c1059 100644 --- a/FWCore/Catalog/src/InputFileCatalog.cc +++ b/FWCore/Catalog/src/InputFileCatalog.cc @@ -17,12 +17,12 @@ namespace edm { - InputFileCatalog::InputFileCatalog(std::vector const& fileNames, + InputFileCatalog::InputFileCatalog(std::vector fileNames, std::string const& override, bool useLFNasPFNifLFNnotFound, edm::CatalogType catType) : fileCatalogItems_(), overrideFileLocator_() { - init(fileNames, override, useLFNasPFNifLFNnotFound, catType); + init(std::move(fileNames), override, useLFNasPFNifLFNnotFound, catType); } InputFileCatalog::~InputFileCatalog() {} From 3dfb412cf31b70d2075df514d56eaceae09743df Mon Sep 17 00:00:00 2001 From: Andrea Perrotta Date: Wed, 8 Jan 2025 17:09:39 +0100 Subject: [PATCH 413/418] Update SiPixelAliHGRcd_prod.json --- CondFormats/Common/data/SiPixelAliHGRcd_prod.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CondFormats/Common/data/SiPixelAliHGRcd_prod.json b/CondFormats/Common/data/SiPixelAliHGRcd_prod.json index 2a5edc42cc561..c5472bde8999e 100644 --- a/CondFormats/Common/data/SiPixelAliHGRcd_prod.json +++ b/CondFormats/Common/data/SiPixelAliHGRcd_prod.json @@ -1,8 +1,8 @@ { "destinationDatabase": "oracle://cms_orcon_prod/CMS_CONDITIONS", "destinationTags": { - "SiPixelAli_PCL_v0_hlt": {}, - "TrackerAlignment_PCL_byRun_v2_express": {} + "SiPixelAliHG_PCL_v0_hlt": {}, + "TrackerAlignmentHG_PCL_byRun_v2_express": {} }, "inputTag": "SiPixelAliHG_pcl", "since": null, From 2950fe0b35083076d0d3fb0f9f73ce64454fe001 Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Thu, 19 Dec 2024 17:33:47 -0800 Subject: [PATCH 414/418] use concrete type ThreeThresholdAlgorithm in ClusterFromRaw; keep benefiting from .cc inlines --- .../interface/ThreeThresholdAlgorithm.h | 8 ++---- .../plugins/ClustersFromRawProducer.cc | 25 +++++++++++++------ .../src/ThreeThresholdAlgorithm.cc | 13 ++++++++++ 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h b/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h index 2c4551ef40550..78fb892404dbf 100644 --- a/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h +++ b/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h @@ -16,13 +16,9 @@ class ThreeThresholdAlgorithm final : public StripClusterizerAlgorithm { void stripByStripAdd(State& state, uint16_t strip, uint8_t adc, std::vector& out) const override; void stripByStripEnd(State& state, std::vector& out) const override; - void stripByStripAdd(State& state, uint16_t strip, uint8_t adc, output_t::TSFastFiller& out) const override { - if (candidateEnded(state, strip)) - endCandidate(state, out); - addToCandidate(state, strip, adc); - } + void stripByStripAdd(State& state, uint16_t strip, uint8_t adc, output_t::TSFastFiller& out) const override; - void stripByStripEnd(State& state, output_t::TSFastFiller& out) const override { endCandidate(state, out); } + void stripByStripEnd(State& state, output_t::TSFastFiller& out) const override; private: template diff --git a/RecoLocalTracker/SiStripClusterizer/plugins/ClustersFromRawProducer.cc b/RecoLocalTracker/SiStripClusterizer/plugins/ClustersFromRawProducer.cc index 8622f0c32a929..327b79744ff57 100644 --- a/RecoLocalTracker/SiStripClusterizer/plugins/ClustersFromRawProducer.cc +++ b/RecoLocalTracker/SiStripClusterizer/plugins/ClustersFromRawProducer.cc @@ -4,6 +4,7 @@ #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingFactory.h" #include "RecoLocalTracker/SiStripClusterizer/interface/StripClusterizerAlgorithm.h" +#include "RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h" #include "RecoLocalTracker/SiStripZeroSuppression/interface/SiStripRawProcessingAlgorithms.h" #include "DataFormats/SiStripCluster/interface/SiStripCluster.h" @@ -91,7 +92,7 @@ namespace { class ClusterFiller final : public StripClusterizerAlgorithm::output_t::Getter { public: ClusterFiller(const FEDRawDataCollection& irawColl, - StripClusterizerAlgorithm& iclusterizer, + const ThreeThresholdAlgorithm& iclusterizer, SiStripRawProcessingAlgorithms& irawAlgos, bool idoAPVEmulatorCheck, bool legacy, @@ -118,7 +119,7 @@ namespace { const FEDRawDataCollection& rawColl; - StripClusterizerAlgorithm& clusterizer; + const ThreeThresholdAlgorithm& clusterizer; const SiStripClusterizerConditions& conditions; SiStripRawProcessingAlgorithms& rawAlgos; @@ -194,8 +195,13 @@ class SiStripClusterizerFromRaw final : public edm::stream::EDProducer<> { std::unique_ptr > output( onDemand ? new edmNew::DetSetVector( - std::shared_ptr::Getter>(std::make_shared( - *rawData, *clusterizer_, *rawAlgos_, doAPVEmulatorCheck_, legacy_, hybridZeroSuppressed_)), + std::shared_ptr::Getter>( + std::make_shared(*rawData, + dynamic_cast(*clusterizer_), + *rawAlgos_, + doAPVEmulatorCheck_, + legacy_, + hybridZeroSuppressed_)), clusterizer_->conditions().allDetIds()) : new edmNew::DetSetVector()); @@ -265,7 +271,12 @@ void SiStripClusterizerFromRaw::initialize(const edm::EventSetup& es) { } void SiStripClusterizerFromRaw::run(const FEDRawDataCollection& rawColl, edmNew::DetSetVector& output) { - ClusterFiller filler(rawColl, *clusterizer_, *rawAlgos_, doAPVEmulatorCheck_, legacy_, hybridZeroSuppressed_); + ClusterFiller filler(rawColl, + dynamic_cast(*clusterizer_), + *rawAlgos_, + doAPVEmulatorCheck_, + legacy_, + hybridZeroSuppressed_); // loop over good det in cabling for (auto idet : clusterizer_->conditions().allDetIds()) { @@ -287,7 +298,7 @@ namespace { typedef void pointer; typedef void reference; - StripByStripAdder(StripClusterizerAlgorithm& clusterizer, + StripByStripAdder(const ThreeThresholdAlgorithm& clusterizer, StripClusterizerAlgorithm::State& state, StripClusterizerAlgorithm::output_t::TSFastFiller& record) : clusterizer_(clusterizer), state_(state), record_(record) {} @@ -302,7 +313,7 @@ namespace { StripByStripAdder& operator++(int) { return *this; } private: - StripClusterizerAlgorithm& clusterizer_; + const ThreeThresholdAlgorithm& clusterizer_; StripClusterizerAlgorithm::State& state_; StripClusterizerAlgorithm::output_t::TSFastFiller& record_; }; diff --git a/RecoLocalTracker/SiStripClusterizer/src/ThreeThresholdAlgorithm.cc b/RecoLocalTracker/SiStripClusterizer/src/ThreeThresholdAlgorithm.cc index c2cf5b8962896..92e5af1e7f135 100644 --- a/RecoLocalTracker/SiStripClusterizer/src/ThreeThresholdAlgorithm.cc +++ b/RecoLocalTracker/SiStripClusterizer/src/ThreeThresholdAlgorithm.cc @@ -150,6 +150,19 @@ void ThreeThresholdAlgorithm::stripByStripAdd(State& state, addToCandidate(state, SiStripDigi(strip, adc)); } +void ThreeThresholdAlgorithm::stripByStripAdd(State& state, + uint16_t strip, + uint8_t adc, + output_t::TSFastFiller& out) const { + if (candidateEnded(state, strip)) + endCandidate(state, out); + addToCandidate(state, strip, adc); +} + void ThreeThresholdAlgorithm::stripByStripEnd(State& state, std::vector& out) const { endCandidate(state, out); } + +void ThreeThresholdAlgorithm::stripByStripEnd(State& state, output_t::TSFastFiller& out) const { + endCandidate(state, out); +} From 0cbff7f767f54a1819f4154bc1ee6f2bd4b4cc58 Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Fri, 20 Dec 2024 10:35:45 -0800 Subject: [PATCH 415/418] use concrete type ThreeThresholdAlgorithm in ClusterFromRaw; move inlines to the .h --- .../interface/ThreeThresholdAlgorithm.h | 125 ++++++++++++++++- .../src/ThreeThresholdAlgorithm.cc | 127 ------------------ 2 files changed, 123 insertions(+), 129 deletions(-) diff --git a/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h b/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h index 78fb892404dbf..2696b0da295b6 100644 --- a/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h +++ b/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h @@ -1,8 +1,16 @@ #ifndef RecoLocalTracker_SiStripClusterizer_ThreeThresholdAlgorithm_h #define RecoLocalTracker_SiStripClusterizer_ThreeThresholdAlgorithm_h + +#include "DataFormats/SiStripCluster/interface/SiStripCluster.h" +#include "DataFormats/SiStripCluster/interface/SiStripClusterTools.h" +#include "DataFormats/SiStripDigi/interface/SiStripDigi.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "RecoLocalTracker/SiStripClusterizer/interface/StripClusterizerAlgorithm.h" #include "RecoLocalTracker/SiStripClusterizer/interface/SiStripApvShotCleaner.h" +#include +#include + class ThreeThresholdAlgorithm final : public StripClusterizerAlgorithm { friend class StripClusterizerAlgorithmFactory; @@ -16,9 +24,13 @@ class ThreeThresholdAlgorithm final : public StripClusterizerAlgorithm { void stripByStripAdd(State& state, uint16_t strip, uint8_t adc, std::vector& out) const override; void stripByStripEnd(State& state, std::vector& out) const override; - void stripByStripAdd(State& state, uint16_t strip, uint8_t adc, output_t::TSFastFiller& out) const override; + void stripByStripAdd(State& state, uint16_t strip, uint8_t adc, output_t::TSFastFiller& out) const override { + if (candidateEnded(state, strip)) + endCandidate(state, out); + addToCandidate(state, strip, adc); + } - void stripByStripEnd(State& state, output_t::TSFastFiller& out) const override; + void stripByStripEnd(State& state, output_t::TSFastFiller& out) const override { endCandidate(state, out); } private: template @@ -60,4 +72,113 @@ class ThreeThresholdAlgorithm final : public StripClusterizerAlgorithm { float minGoodCharge; }; +template +inline void ThreeThresholdAlgorithm::clusterizeDetUnit_(const digiDetSet& digis, output_t::TSFastFiller& output) const { + const auto& cond = conditions(); + if (cond.isModuleBad(digis.detId())) + return; + + auto const& det = cond.findDetId(digis.detId()); + if (!det.valid()) + return; + +#ifdef EDM_ML_DEBUG + if (!cond.isModuleUsable(digis.detId())) + edm::LogWarning("ThreeThresholdAlgorithm") << " id " << digis.detId() << " not usable???" << std::endl; +#endif + + typename digiDetSet::const_iterator scan(digis.begin()), end(digis.end()); + + SiStripApvShotCleaner ApvCleaner; + if (RemoveApvShots) { + ApvCleaner.clean(digis, scan, end); + } + + output.reserve(16); + State state(det); + while (scan != end) { + while (scan != end && !candidateEnded(state, scan->strip())) + addToCandidate(state, *scan++); + endCandidate(state, output); + } +} + +inline bool ThreeThresholdAlgorithm::candidateEnded(State const& state, const uint16_t& testStrip) const { + uint16_t holes = testStrip - state.lastStrip - 1; + return (((!state.ADCs.empty()) & // a candidate exists, and + (holes > MaxSequentialHoles) // too many holes if not all are bad strips, and + ) && + (holes > MaxSequentialBad || // (too many bad strips anyway, or + !state.det().allBadBetween(state.lastStrip, testStrip) // not all holes are bad strips) + )); +} + +inline void ThreeThresholdAlgorithm::addToCandidate(State& state, uint16_t strip, uint8_t adc) const { + float Noise = state.det().noise(strip); + if (adc < static_cast(Noise * ChannelThreshold) || state.det().bad(strip)) + return; + + if (state.candidateLacksSeed) + state.candidateLacksSeed = adc < static_cast(Noise * SeedThreshold); + if (state.ADCs.empty()) + state.lastStrip = strip - 1; // begin candidate + while (++state.lastStrip < strip) + state.ADCs.push_back(0); // pad holes + + if (state.ADCs.size() <= MaxClusterSize) + state.ADCs.push_back(adc); + state.noiseSquared += Noise * Noise; +} + +inline void ThreeThresholdAlgorithm::clusterizeDetUnit(const edmNew::DetSet& digis, + output_t::TSFastFiller& output) const { + clusterizeDetUnit_(digis, output); +} + +template +inline void ThreeThresholdAlgorithm::endCandidate(State& state, T& out) const { + if (candidateAccepted(state)) { + applyGains(state); + if (MaxAdjacentBad > 0) + appendBadNeighbors(state); + if (minGoodCharge <= 0 || + siStripClusterTools::chargePerCM(state.det().detId, state.ADCs.begin(), state.ADCs.end()) > minGoodCharge) + out.push_back(std::move(SiStripCluster(firstStrip(state), state.ADCs.begin(), state.ADCs.end()))); + } + clearCandidate(state); +} + +inline bool ThreeThresholdAlgorithm::candidateAccepted(State const& state) const { + return (!state.candidateLacksSeed && state.ADCs.size() <= MaxClusterSize && + state.noiseSquared * ClusterThresholdSquared <= + std::pow(float(std::accumulate(state.ADCs.begin(), state.ADCs.end(), int(0))), 2.f)); +} + +inline void ThreeThresholdAlgorithm::applyGains(State& state) const { + uint16_t strip = firstStrip(state); + for (auto& adc : state.ADCs) { +#ifdef EDM_ML_DEBUG + // if(adc > 255) throw InvalidChargeException( SiStripDigi(strip,adc) ); +#endif + // if(adc > 253) continue; //saturated, do not scale + auto charge = int(float(adc) * state.det().weight(strip++) + 0.5f); //adding 0.5 turns truncation into rounding + if (adc < 254) + adc = (charge > 1022 ? 255 : (charge > 253 ? 254 : charge)); + } +} + +inline void ThreeThresholdAlgorithm::appendBadNeighbors(State& state) const { + uint8_t max = MaxAdjacentBad; + while (0 < max--) { + if (state.det().bad(firstStrip(state) - 1)) { + state.ADCs.insert(state.ADCs.begin(), 0); + } + if (state.det().bad(state.lastStrip + 1)) { + state.ADCs.push_back(0); + state.lastStrip++; + } + } +} + + #endif diff --git a/RecoLocalTracker/SiStripClusterizer/src/ThreeThresholdAlgorithm.cc b/RecoLocalTracker/SiStripClusterizer/src/ThreeThresholdAlgorithm.cc index 92e5af1e7f135..329e6310993b5 100644 --- a/RecoLocalTracker/SiStripClusterizer/src/ThreeThresholdAlgorithm.cc +++ b/RecoLocalTracker/SiStripClusterizer/src/ThreeThresholdAlgorithm.cc @@ -1,11 +1,4 @@ #include "RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h" -#include "DataFormats/SiStripDigi/interface/SiStripDigi.h" -#include "DataFormats/SiStripCluster/interface/SiStripCluster.h" -#include -#include -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "DataFormats/SiStripCluster/interface/SiStripClusterTools.h" ThreeThresholdAlgorithm::ThreeThresholdAlgorithm( const edm::ESGetToken& conditionsToken, @@ -29,117 +22,10 @@ ThreeThresholdAlgorithm::ThreeThresholdAlgorithm( RemoveApvShots(removeApvShots), minGoodCharge(minGoodCharge) {} -template -inline void ThreeThresholdAlgorithm::clusterizeDetUnit_(const digiDetSet& digis, output_t::TSFastFiller& output) const { - const auto& cond = conditions(); - if (cond.isModuleBad(digis.detId())) - return; - - auto const& det = cond.findDetId(digis.detId()); - if (!det.valid()) - return; - -#ifdef EDM_ML_DEBUG - if (!cond.isModuleUsable(digis.detId())) - edm::LogWarning("ThreeThresholdAlgorithm") << " id " << digis.detId() << " not usable???" << std::endl; -#endif - - typename digiDetSet::const_iterator scan(digis.begin()), end(digis.end()); - - SiStripApvShotCleaner ApvCleaner; - if (RemoveApvShots) { - ApvCleaner.clean(digis, scan, end); - } - - output.reserve(16); - State state(det); - while (scan != end) { - while (scan != end && !candidateEnded(state, scan->strip())) - addToCandidate(state, *scan++); - endCandidate(state, output); - } -} - -inline bool ThreeThresholdAlgorithm::candidateEnded(State const& state, const uint16_t& testStrip) const { - uint16_t holes = testStrip - state.lastStrip - 1; - return (((!state.ADCs.empty()) & // a candidate exists, and - (holes > MaxSequentialHoles) // too many holes if not all are bad strips, and - ) && - (holes > MaxSequentialBad || // (too many bad strips anyway, or - !state.det().allBadBetween(state.lastStrip, testStrip) // not all holes are bad strips) - )); -} - -inline void ThreeThresholdAlgorithm::addToCandidate(State& state, uint16_t strip, uint8_t adc) const { - float Noise = state.det().noise(strip); - if (adc < static_cast(Noise * ChannelThreshold) || state.det().bad(strip)) - return; - - if (state.candidateLacksSeed) - state.candidateLacksSeed = adc < static_cast(Noise * SeedThreshold); - if (state.ADCs.empty()) - state.lastStrip = strip - 1; // begin candidate - while (++state.lastStrip < strip) - state.ADCs.push_back(0); // pad holes - - if (state.ADCs.size() <= MaxClusterSize) - state.ADCs.push_back(adc); - state.noiseSquared += Noise * Noise; -} - -template -inline void ThreeThresholdAlgorithm::endCandidate(State& state, T& out) const { - if (candidateAccepted(state)) { - applyGains(state); - if (MaxAdjacentBad > 0) - appendBadNeighbors(state); - if (minGoodCharge <= 0 || - siStripClusterTools::chargePerCM(state.det().detId, state.ADCs.begin(), state.ADCs.end()) > minGoodCharge) - out.push_back(std::move(SiStripCluster(firstStrip(state), state.ADCs.begin(), state.ADCs.end()))); - } - clearCandidate(state); -} - -inline bool ThreeThresholdAlgorithm::candidateAccepted(State const& state) const { - return (!state.candidateLacksSeed && state.ADCs.size() <= MaxClusterSize && - state.noiseSquared * ClusterThresholdSquared <= - std::pow(float(std::accumulate(state.ADCs.begin(), state.ADCs.end(), int(0))), 2.f)); -} - -inline void ThreeThresholdAlgorithm::applyGains(State& state) const { - uint16_t strip = firstStrip(state); - for (auto& adc : state.ADCs) { -#ifdef EDM_ML_DEBUG - // if(adc > 255) throw InvalidChargeException( SiStripDigi(strip,adc) ); -#endif - // if(adc > 253) continue; //saturated, do not scale - auto charge = int(float(adc) * state.det().weight(strip++) + 0.5f); //adding 0.5 turns truncation into rounding - if (adc < 254) - adc = (charge > 1022 ? 255 : (charge > 253 ? 254 : charge)); - } -} - -inline void ThreeThresholdAlgorithm::appendBadNeighbors(State& state) const { - uint8_t max = MaxAdjacentBad; - while (0 < max--) { - if (state.det().bad(firstStrip(state) - 1)) { - state.ADCs.insert(state.ADCs.begin(), 0); - } - if (state.det().bad(state.lastStrip + 1)) { - state.ADCs.push_back(0); - state.lastStrip++; - } - } -} - void ThreeThresholdAlgorithm::clusterizeDetUnit(const edm::DetSet& digis, output_t::TSFastFiller& output) const { clusterizeDetUnit_(digis, output); } -void ThreeThresholdAlgorithm::clusterizeDetUnit(const edmNew::DetSet& digis, - output_t::TSFastFiller& output) const { - clusterizeDetUnit_(digis, output); -} void ThreeThresholdAlgorithm::stripByStripAdd(State& state, uint16_t strip, @@ -150,19 +36,6 @@ void ThreeThresholdAlgorithm::stripByStripAdd(State& state, addToCandidate(state, SiStripDigi(strip, adc)); } -void ThreeThresholdAlgorithm::stripByStripAdd(State& state, - uint16_t strip, - uint8_t adc, - output_t::TSFastFiller& out) const { - if (candidateEnded(state, strip)) - endCandidate(state, out); - addToCandidate(state, strip, adc); -} - void ThreeThresholdAlgorithm::stripByStripEnd(State& state, std::vector& out) const { endCandidate(state, out); } - -void ThreeThresholdAlgorithm::stripByStripEnd(State& state, output_t::TSFastFiller& out) const { - endCandidate(state, out); -} From 022301564fe562ff0f839fa629fe99eb54f06b1b Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Mon, 6 Jan 2025 15:51:59 -0800 Subject: [PATCH 416/418] preserve ability to use non-ThreeThresholdAlgorithm with templates --- .../interface/ThreeThresholdAlgorithm.h | 1 - .../plugins/ClustersFromRawProducer.cc | 83 ++++++++++++------- 2 files changed, 52 insertions(+), 32 deletions(-) diff --git a/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h b/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h index 2696b0da295b6..268aac8451306 100644 --- a/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h +++ b/RecoLocalTracker/SiStripClusterizer/interface/ThreeThresholdAlgorithm.h @@ -180,5 +180,4 @@ inline void ThreeThresholdAlgorithm::appendBadNeighbors(State& state) const { } } - #endif diff --git a/RecoLocalTracker/SiStripClusterizer/plugins/ClustersFromRawProducer.cc b/RecoLocalTracker/SiStripClusterizer/plugins/ClustersFromRawProducer.cc index 327b79744ff57..7a02ba9887df7 100644 --- a/RecoLocalTracker/SiStripClusterizer/plugins/ClustersFromRawProducer.cc +++ b/RecoLocalTracker/SiStripClusterizer/plugins/ClustersFromRawProducer.cc @@ -89,10 +89,11 @@ namespace { return buffer; } + template class ClusterFiller final : public StripClusterizerAlgorithm::output_t::Getter { public: ClusterFiller(const FEDRawDataCollection& irawColl, - const ThreeThresholdAlgorithm& iclusterizer, + const AlgoT& iclusterizer, SiStripRawProcessingAlgorithms& irawAlgos, bool idoAPVEmulatorCheck, bool legacy, @@ -119,7 +120,7 @@ namespace { const FEDRawDataCollection& rawColl; - const ThreeThresholdAlgorithm& clusterizer; + const AlgoT& clusterizer; const SiStripClusterizerConditions& conditions; SiStripRawProcessingAlgorithms& rawAlgos; @@ -181,7 +182,7 @@ class SiStripClusterizerFromRaw final : public edm::stream::EDProducer<> { legacy_(conf.getParameter("LegacyUnpacker")), hybridZeroSuppressed_(conf.getParameter("HybridZeroSuppressed")) { productToken_ = consumes(conf.getParameter("ProductLabel")); - produces >(); + produces>(); assert(clusterizer_.get()); assert(rawAlgos_.get()); } @@ -193,17 +194,23 @@ class SiStripClusterizerFromRaw final : public edm::stream::EDProducer<> { edm::Handle rawData; ev.getByToken(productToken_, rawData); - std::unique_ptr > output( - onDemand ? new edmNew::DetSetVector( - std::shared_ptr::Getter>( - std::make_shared(*rawData, - dynamic_cast(*clusterizer_), - *rawAlgos_, - doAPVEmulatorCheck_, - legacy_, - hybridZeroSuppressed_)), - clusterizer_->conditions().allDetIds()) - : new edmNew::DetSetVector()); + const ThreeThresholdAlgorithm* clusterizer3 = dynamic_cast(clusterizer_.get()); + std::unique_ptr> output; + if (onDemand) { + if (clusterizer3 == nullptr) + output = std::make_unique>(edmNew::DetSetVector( + std::shared_ptr::Getter>( + std::make_shared>( + *rawData, *clusterizer_, *rawAlgos_, doAPVEmulatorCheck_, legacy_, hybridZeroSuppressed_)), + clusterizer_->conditions().allDetIds())); + else + output = std::make_unique>(edmNew::DetSetVector( + std::shared_ptr::Getter>( + std::make_shared>( + *rawData, *clusterizer3, *rawAlgos_, doAPVEmulatorCheck_, legacy_, hybridZeroSuppressed_)), + clusterizer_->conditions().allDetIds())); + } else + output = std::make_unique>(edmNew::DetSetVector()); if (onDemand) assert(output->onDemand()); @@ -271,25 +278,38 @@ void SiStripClusterizerFromRaw::initialize(const edm::EventSetup& es) { } void SiStripClusterizerFromRaw::run(const FEDRawDataCollection& rawColl, edmNew::DetSetVector& output) { - ClusterFiller filler(rawColl, - dynamic_cast(*clusterizer_), - *rawAlgos_, - doAPVEmulatorCheck_, - legacy_, - hybridZeroSuppressed_); + const ThreeThresholdAlgorithm* clusterizer3 = dynamic_cast(clusterizer_.get()); + if (clusterizer3 == nullptr) { + ClusterFiller filler( + rawColl, *clusterizer_, *rawAlgos_, doAPVEmulatorCheck_, legacy_, hybridZeroSuppressed_); - // loop over good det in cabling - for (auto idet : clusterizer_->conditions().allDetIds()) { - StripClusterizerAlgorithm::output_t::TSFastFiller record(output, idet); + // loop over good det in cabling + for (auto idet : clusterizer_->conditions().allDetIds()) { + StripClusterizerAlgorithm::output_t::TSFastFiller record(output, idet); - filler.fill(record); + filler.fill(record); - if (record.empty()) - record.abort(); - } // end loop over dets + if (record.empty()) + record.abort(); + } // end loop over dets + } else { + ClusterFiller filler( + rawColl, *clusterizer3, *rawAlgos_, doAPVEmulatorCheck_, legacy_, hybridZeroSuppressed_); + + // loop over good det in cabling + for (auto idet : clusterizer_->conditions().allDetIds()) { + StripClusterizerAlgorithm::output_t::TSFastFiller record(output, idet); + + filler.fill(record); + + if (record.empty()) + record.abort(); + } // end loop over dets + } } namespace { + template class StripByStripAdder { public: typedef std::output_iterator_tag iterator_category; @@ -298,7 +318,7 @@ namespace { typedef void pointer; typedef void reference; - StripByStripAdder(const ThreeThresholdAlgorithm& clusterizer, + StripByStripAdder(const AlgoT& clusterizer, StripClusterizerAlgorithm::State& state, StripClusterizerAlgorithm::output_t::TSFastFiller& record) : clusterizer_(clusterizer), state_(state), record_(record) {} @@ -313,7 +333,7 @@ namespace { StripByStripAdder& operator++(int) { return *this; } private: - const ThreeThresholdAlgorithm& clusterizer_; + const AlgoT& clusterizer_; StripClusterizerAlgorithm::State& state_; StripClusterizerAlgorithm::output_t::TSFastFiller& record_; }; @@ -336,7 +356,8 @@ namespace { }; } // namespace -void ClusterFiller::fill(StripClusterizerAlgorithm::output_t::TSFastFiller& record) const { +template +void ClusterFiller::fill(StripClusterizerAlgorithm::output_t::TSFastFiller& record) const { try { // edmNew::CapacityExaustedException incReady(); @@ -403,7 +424,7 @@ void ClusterFiller::fill(StripClusterizerAlgorithm::output_t::TSFastFiller& reco using namespace sistrip; if LIKELY (fedchannelunpacker::isZeroSuppressed(mode, legacy_, lmode)) { - auto perStripAdder = StripByStripAdder(clusterizer, state, record); + auto perStripAdder = StripByStripAdder(clusterizer, state, record); const auto isNonLite = fedchannelunpacker::isNonLiteZS(mode, legacy_, lmode); const uint8_t pCode = (isNonLite ? buffer->packetCode(legacy_, fedCh) : 0); auto st_ch = fedchannelunpacker::StatusCode::SUCCESS; From 49e294beac0e90310001977ec2b7c31b86e3d765 Mon Sep 17 00:00:00 2001 From: Slava Krutelyov Date: Wed, 8 Jan 2025 07:37:04 -0800 Subject: [PATCH 417/418] precompute strip noise and quality in SiStripClusterizerConditions --- .../interface/SiStripClusterizerConditions.h | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/CalibFormats/SiStripObjects/interface/SiStripClusterizerConditions.h b/CalibFormats/SiStripObjects/interface/SiStripClusterizerConditions.h index 35d07be8c8587..9323e81474f1a 100644 --- a/CalibFormats/SiStripObjects/interface/SiStripClusterizerConditions.h +++ b/CalibFormats/SiStripObjects/interface/SiStripClusterizerConditions.h @@ -14,18 +14,21 @@ class SiStripClusterizerConditions { struct Det { bool valid() const { return ind != invalidI; } - uint16_t rawNoise(const uint16_t strip) const { return SiStripNoises::getRawNoise(strip, noiseRange); } - float noise(const uint16_t strip) const { return SiStripNoises::getNoise(strip, noiseRange); } + uint16_t rawNoise(const uint16_t strip) const { return rawNoises[strip]; } + float noise(const uint16_t strip) const { return 0.1f * float(rawNoises[strip]); } float weight(const uint16_t strip) const { return m_weight[strip / 128]; } - bool bad(const uint16_t strip) const { return quality->IsStripBad(qualityRange, strip); } + bool bad(const uint16_t strip) const { return qualityBits[strip]; } bool allBadBetween(uint16_t L, const uint16_t& R) const { while (++L < R && bad(L)) { }; return L == R; } + static constexpr uint16_t kMaxStrips = 768; SiStripQuality const* quality; - SiStripNoises::Range noiseRange; SiStripQuality::Range qualityRange; + std::array qualityBits = {}; + SiStripNoises::Range noiseRange; + std::array rawNoises = {}; float m_weight[6]; uint32_t detId = 0; unsigned short ind = invalidI; @@ -72,7 +75,15 @@ class SiStripClusterizerConditions { auto& det = m_dets.emplace_back(); det.quality = m_quality; det.qualityRange = qualityRange; + for (uint16_t s = 0U; s < det.kMaxStrips; ++s) + det.qualityBits[s] = m_quality->IsStripBad(qualityRange, s); det.noiseRange = noiseRange; + auto maxRange8 = (noiseRange.second - noiseRange.first) * 8; + for (uint16_t s = 0U; s < det.kMaxStrips; ++s) { + if (9 * s >= maxRange8) + break; + det.rawNoises[s] = SiStripNoises::getRawNoise(s, noiseRange); + } for (uint32_t i = 0; i != invGains.size(); ++i) { det.m_weight[i] = invGains[i]; } From a2cd3684506132d1301b0cef833be5df56fc2fcd Mon Sep 17 00:00:00 2001 From: mmusich Date: Tue, 7 Jan 2025 22:26:43 +0100 Subject: [PATCH 418/418] re-organize RecoMuon/L3TrackFinder such that all plugins are defined in plugins folder --- .../interface/HLTMuonL2SelectorForL3IO.h | 50 ------------ .../interface/MuonCkfTrajectoryBuilder.h | 43 ---------- .../interface/Phase2HLTMuonSelectorForL3.h | 80 ------------------- .../{src => plugins}/EtaPhiEstimator.h | 0 .../HLTMuonL2SelectorForL3IO.cc | 44 ++++++++-- .../MuonCkfTrajectoryBuilder.cc | 61 +++++++++++--- .../Phase2HLTMuonSelectorForL3.cc | 72 ++++++++++++++++- RecoMuon/L3TrackFinder/plugins/SealModules.cc | 11 --- 8 files changed, 157 insertions(+), 204 deletions(-) delete mode 100644 RecoMuon/L3TrackFinder/interface/HLTMuonL2SelectorForL3IO.h delete mode 100644 RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h delete mode 100644 RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h rename RecoMuon/L3TrackFinder/{src => plugins}/EtaPhiEstimator.h (100%) rename RecoMuon/L3TrackFinder/{src => plugins}/HLTMuonL2SelectorForL3IO.cc (77%) rename RecoMuon/L3TrackFinder/{src => plugins}/MuonCkfTrajectoryBuilder.cc (84%) rename RecoMuon/L3TrackFinder/{src => plugins}/Phase2HLTMuonSelectorForL3.cc (76%) delete mode 100644 RecoMuon/L3TrackFinder/plugins/SealModules.cc diff --git a/RecoMuon/L3TrackFinder/interface/HLTMuonL2SelectorForL3IO.h b/RecoMuon/L3TrackFinder/interface/HLTMuonL2SelectorForL3IO.h deleted file mode 100644 index 6a6a2cb76e5ec..0000000000000 --- a/RecoMuon/L3TrackFinder/interface/HLTMuonL2SelectorForL3IO.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef RecoMuon_HLTMuonL2SelectorForL3IO_HLTMuonL2SelectorForL3IO_H -#define RecoMuon_HLTMuonL2SelectorForL3IO_HLTMuonL2SelectorForL3IO_H - -/** \class HLTMuonL2SelectorForL3IO - * - * L2 muon selector for L3 IO: - * finds L2 muons not previous converted into (good) L3 muons - * - * \author Benjamin Radburn-Smith, Santiago Folgueras - Purdue University - */ - -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "DataFormats/MuonReco/interface/MuonTrackLinks.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" -#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" - -namespace edm { - class ParameterSet; - class Event; - class EventSetup; -} // namespace edm - -class HLTMuonL2SelectorForL3IO : public edm::stream::EDProducer<> { -public: - /// constructor with config - HLTMuonL2SelectorForL3IO(const edm::ParameterSet&); - - /// destructor - ~HLTMuonL2SelectorForL3IO() override; - - /// default values - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - - /// select muons - void produce(edm::Event&, const edm::EventSetup&) override; - -private: - const edm::EDGetTokenT l2Src_; - const edm::EDGetTokenT l3OISrc_; - const edm::EDGetTokenT l3linkToken_; - const bool applyL3Filters_; - const double max_NormalizedChi2_, max_PtDifference_; - const int min_Nhits_, min_NmuonHits_; -}; - -#endif diff --git a/RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h b/RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h deleted file mode 100644 index 932d56d73cfc0..0000000000000 --- a/RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef RecoMuon_L3TrackFinder_MuonCkfTrajectoryBuilder_H -#define RecoMuon_L3TrackFinder_MuonCkfTrajectoryBuilder_H - -#include "FWCore/Framework/interface/ESWatcher.h" -#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h" - -class TrackingComponentsRecord; - -class MuonCkfTrajectoryBuilder : public CkfTrajectoryBuilder { -public: - MuonCkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC); - ~MuonCkfTrajectoryBuilder() override; - - static void fillPSetDescription(edm::ParameterSetDescription& iDesc); - -protected: - void setEvent_(const edm::Event& iEvent, const edm::EventSetup& iSetup) override; - - void collectMeasurement(const DetLayer* layer, - const std::vector& nl, - const TrajectoryStateOnSurface& currentState, - std::vector& result, - int& invalidHits, - const Propagator*) const; - - void findCompatibleMeasurements(const TrajectorySeed& seed, - const TempTrajectory& traj, - std::vector& result) const override; - - //and other fields - bool theUseSeedLayer; - double theRescaleErrorIfFail; - const double theDeltaEta; - const double theDeltaPhi; - const std::string theProximityPropagatorName; - const Propagator* theProximityPropagator; - const edm::ESGetToken thePropagatorToken; - edm::ESWatcher theEstimatorWatcher; - std::unique_ptr theEtaPhiEstimator; -}; - -#endif diff --git a/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h b/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h deleted file mode 100644 index 7a29b42c52082..0000000000000 --- a/RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef RecoMuon_L3TrackFinder_phase2HLTMuonSelectorForL3_H -#define RecoMuon_L3TrackFinder_phase2HLTMuonSelectorForL3_H - -/** \class Phase2HLTMuonSelectorForL3 - * - * Phase-2 L3 selector for Muons - * This module allows to choose whether to perform - * Inside-Out or Outside-In reconstruction first for L3 Muons, - * performing the second pass only on candidates that were not - * reconstructed or whose quality was not good enough. Required - * quality criteria are configurable, the default parameters - * match the requests of HLT Muon ID. - * When Inside-Out reconstruction is performed first, the resulting - * L3 Tracks are filtered and geometrically matched with L2 - * Standalone Muons. If either the match is unsuccessful, or - * the L3 track is not of good-enough quality, the associated - * Standalone Muon will be re-used to seed the Outside-In step. - * The Outside-In first approach follows a similar logic by - * matching the L3 tracks directly with L1 Tracker Muons. - * Then, when either the match fails or the track is not of - * good-enough quality, the L1 Tracker Muon is re-used to seed - * the Inside-Out reconstruction. - * - * \author Luca Ferragina (INFN BO), 2024 - */ - -#include "FWCore/Framework/interface/stream/EDProducer.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "FWCore/Utilities/interface/ESGetToken.h" -#include "FWCore/Utilities/interface/InputTag.h" - -#include "DataFormats/L1TMuonPhase2/interface/TrackerMuon.h" -#include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" - -namespace edm { - class ParameterSet; - class Event; - class EventSetup; -} // End namespace edm - -class Phase2HLTMuonSelectorForL3 : public edm::stream::EDProducer<> { -public: - // Constructor - Phase2HLTMuonSelectorForL3(const edm::ParameterSet&); - - // Destructor - ~Phase2HLTMuonSelectorForL3() override = default; - - // Default values - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - - // Select objects to be reused - void produce(edm::Event&, const edm::EventSetup&) override; - -private: - const edm::EDGetTokenT l1TkMuCollToken_; - const edm::EDGetTokenT l2MuCollectionToken_; - const edm::EDGetTokenT l3TrackCollectionToken_; - - const bool IOFirst_; - const double matchingDr_; - const bool applyL3Filters_; - const double maxNormalizedChi2_, maxPtDifference_; - const int minNhits_, minNhitsMuons_, minNhitsPixel_, minNhitsTracker_; - - // Check L3 inner track quality parameters - const bool rejectL3Track(l1t::TrackerMuonRef l1TkMuRef, reco::TrackRef l3TrackRef) const; -}; - -#endif diff --git a/RecoMuon/L3TrackFinder/src/EtaPhiEstimator.h b/RecoMuon/L3TrackFinder/plugins/EtaPhiEstimator.h similarity index 100% rename from RecoMuon/L3TrackFinder/src/EtaPhiEstimator.h rename to RecoMuon/L3TrackFinder/plugins/EtaPhiEstimator.h diff --git a/RecoMuon/L3TrackFinder/src/HLTMuonL2SelectorForL3IO.cc b/RecoMuon/L3TrackFinder/plugins/HLTMuonL2SelectorForL3IO.cc similarity index 77% rename from RecoMuon/L3TrackFinder/src/HLTMuonL2SelectorForL3IO.cc rename to RecoMuon/L3TrackFinder/plugins/HLTMuonL2SelectorForL3IO.cc index 9932b278bed30..c092b7091eb11 100644 --- a/RecoMuon/L3TrackFinder/src/HLTMuonL2SelectorForL3IO.cc +++ b/RecoMuon/L3TrackFinder/plugins/HLTMuonL2SelectorForL3IO.cc @@ -1,17 +1,47 @@ /** \class HLTMuonL2SelectorForL3IO * * L2 muon selector for L3 IO: - * finds L2 muons not previous converted into (good) L3 muons + * finds L2 muons not previous converted into (good) L3 muons * * \author Benjamin Radburn-Smith, Santiago Folgueras - Purdue University */ -#include "RecoMuon/L3TrackFinder/interface/HLTMuonL2SelectorForL3IO.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "DataFormats/Math/interface/deltaR.h" +#include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "DataFormats/MuonReco/interface/MuonTrackLinks.h" #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeed.h" #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeedCollection.h" +#include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" +#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +class HLTMuonL2SelectorForL3IO : public edm::stream::EDProducer<> { +public: + /// constructor with config + HLTMuonL2SelectorForL3IO(const edm::ParameterSet&); + + /// destructor + ~HLTMuonL2SelectorForL3IO() override = default; + + /// default values + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + + /// select muons + void produce(edm::Event&, const edm::EventSetup&) override; + +private: + const edm::EDGetTokenT l2Src_; + const edm::EDGetTokenT l3OISrc_; + const edm::EDGetTokenT l3linkToken_; + const bool applyL3Filters_; + const double max_NormalizedChi2_, max_PtDifference_; + const int min_Nhits_, min_NmuonHits_; +}; /// constructor with config HLTMuonL2SelectorForL3IO::HLTMuonL2SelectorForL3IO(const edm::ParameterSet& iConfig) @@ -27,9 +57,6 @@ HLTMuonL2SelectorForL3IO::HLTMuonL2SelectorForL3IO(const edm::ParameterSet& iCon produces(); } -/// destructor -HLTMuonL2SelectorForL3IO::~HLTMuonL2SelectorForL3IO() {} - /// create collection of L2 muons not already reconstructed as L3 muons void HLTMuonL2SelectorForL3IO::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { const std::string metname = "Muon|RecoMuon|HLTMuonL2SelectorForL3IO"; @@ -109,3 +136,6 @@ void HLTMuonL2SelectorForL3IO::fillDescriptions(edm::ConfigurationDescriptions& desc.add("MaxPtDifference", 999.0); //relative difference descriptions.add("HLTMuonL2SelectorForL3IO", desc); } + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(HLTMuonL2SelectorForL3IO); diff --git a/RecoMuon/L3TrackFinder/src/MuonCkfTrajectoryBuilder.cc b/RecoMuon/L3TrackFinder/plugins/MuonCkfTrajectoryBuilder.cc similarity index 84% rename from RecoMuon/L3TrackFinder/src/MuonCkfTrajectoryBuilder.cc rename to RecoMuon/L3TrackFinder/plugins/MuonCkfTrajectoryBuilder.cc index b95c59f37f79b..80a1df931b0fa 100644 --- a/RecoMuon/L3TrackFinder/src/MuonCkfTrajectoryBuilder.cc +++ b/RecoMuon/L3TrackFinder/plugins/MuonCkfTrajectoryBuilder.cc @@ -1,19 +1,59 @@ -#include "RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h" +#include +#include "FWCore/Framework/interface/ESWatcher.h" +#include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" -#include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h" -#include "TrackingTools/PatternTools/interface/TrajMeasLessEstim.h" +#include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilderFactory.h" +#include "RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h" #include "RecoTracker/MeasurementDet/interface/MeasurementTracker.h" #include "RecoTracker/MeasurementDet/interface/MeasurementTrackerEvent.h" -#include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h" +#include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h" +#include "TrackingTools/DetLayers/interface/NavigationSchool.h" #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimatorBase.h" -#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" +#include "TrackingTools/MeasurementDet/interface/LayerMeasurements.h" +#include "TrackingTools/PatternTools/interface/TrajMeasLessEstim.h" #include "TrackingTools/PatternTools/interface/TransverseImpactPointExtrapolator.h" -#include "TrackingTools/DetLayers/interface/NavigationSchool.h" -#include "RecoMuon/L3TrackFinder/src/EtaPhiEstimator.h" -#include +#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" +#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" + +#include "EtaPhiEstimator.h" + +class TrackingComponentsRecord; + +class MuonCkfTrajectoryBuilder : public CkfTrajectoryBuilder { +public: + MuonCkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC); + ~MuonCkfTrajectoryBuilder() override; + + static void fillPSetDescription(edm::ParameterSetDescription& iDesc); + +protected: + void setEvent_(const edm::Event& iEvent, const edm::EventSetup& iSetup) override; + + void collectMeasurement(const DetLayer* layer, + const std::vector& nl, + const TrajectoryStateOnSurface& currentState, + std::vector& result, + int& invalidHits, + const Propagator*) const; + + void findCompatibleMeasurements(const TrajectorySeed& seed, + const TempTrajectory& traj, + std::vector& result) const override; + + //and other fields + bool theUseSeedLayer; + double theRescaleErrorIfFail; + const double theDeltaEta; + const double theDeltaPhi; + const std::string theProximityPropagatorName; + const Propagator* theProximityPropagator; + const edm::ESGetToken thePropagatorToken; + edm::ESWatcher theEstimatorWatcher; + std::unique_ptr theEtaPhiEstimator; +}; MuonCkfTrajectoryBuilder::MuonCkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC) : CkfTrajectoryBuilder(conf, iC), @@ -233,3 +273,6 @@ void MuonCkfTrajectoryBuilder::findCompatibleMeasurements(const TrajectorySeed& //analyseMeasurements( result, traj); } + +#include "FWCore/ParameterSet/interface/ValidatedPluginMacros.h" +DEFINE_EDM_VALIDATED_PLUGIN(BaseCkfTrajectoryBuilderFactory, MuonCkfTrajectoryBuilder, "MuonCkfTrajectoryBuilder"); diff --git a/RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc b/RecoMuon/L3TrackFinder/plugins/Phase2HLTMuonSelectorForL3.cc similarity index 76% rename from RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc rename to RecoMuon/L3TrackFinder/plugins/Phase2HLTMuonSelectorForL3.cc index 97009a7121e36..bcb7d02553f08 100644 --- a/RecoMuon/L3TrackFinder/src/Phase2HLTMuonSelectorForL3.cc +++ b/RecoMuon/L3TrackFinder/plugins/Phase2HLTMuonSelectorForL3.cc @@ -1,15 +1,76 @@ /** \class Phase2HLTMuonSelectorForL3 - * See header file for a description of this class + * + * Phase-2 L3 selector for Muons + * This module allows to choose whether to perform + * Inside-Out or Outside-In reconstruction first for L3 Muons, + * performing the second pass only on candidates that were not + * reconstructed or whose quality was not good enough. Required + * quality criteria are configurable, the default parameters + * match the requests of HLT Muon ID. + * When Inside-Out reconstruction is performed first, the resulting + * L3 Tracks are filtered and geometrically matched with L2 + * Standalone Muons. If either the match is unsuccessful, or + * the L3 track is not of good-enough quality, the associated + * Standalone Muon will be re-used to seed the Outside-In step. + * The Outside-In first approach follows a similar logic by + * matching the L3 tracks directly with L1 Tracker Muons. + * Then, when either the match fails or the track is not of + * good-enough quality, the L1 Tracker Muon is re-used to seed + * the Inside-Out reconstruction. + * * \author Luca Ferragina (INFN BO), 2024 */ -#include "RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DataFormats/L1TMuonPhase2/interface/TrackerMuon.h" #include "DataFormats/Math/interface/deltaR.h" +#include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/ESGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" #include +class Phase2HLTMuonSelectorForL3 : public edm::stream::EDProducer<> { +public: + // Constructor + Phase2HLTMuonSelectorForL3(const edm::ParameterSet&); + + // Destructor + ~Phase2HLTMuonSelectorForL3() override = default; + + // Default values + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + + // Select objects to be reused + void produce(edm::Event&, const edm::EventSetup&) override; + +private: + const edm::EDGetTokenT l1TkMuCollToken_; + const edm::EDGetTokenT l2MuCollectionToken_; + const edm::EDGetTokenT l3TrackCollectionToken_; + + const bool IOFirst_; + const double matchingDr_; + const bool applyL3Filters_; + const double maxNormalizedChi2_, maxPtDifference_; + const int minNhits_, minNhitsMuons_, minNhitsPixel_, minNhitsTracker_; + + // Check L3 inner track quality parameters + const bool rejectL3Track(l1t::TrackerMuonRef l1TkMuRef, reco::TrackRef l3TrackRef) const; +}; + // Constructor Phase2HLTMuonSelectorForL3::Phase2HLTMuonSelectorForL3(const edm::ParameterSet& iConfig) : l1TkMuCollToken_(consumes(iConfig.getParameter("l1TkMuons"))), @@ -202,3 +263,6 @@ const bool Phase2HLTMuonSelectorForL3::rejectL3Track(l1t::TrackerMuonRef l1TkMuR LogDebug(metname) << "Reject L3 Track: " << reject; return reject; } + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(Phase2HLTMuonSelectorForL3); diff --git a/RecoMuon/L3TrackFinder/plugins/SealModules.cc b/RecoMuon/L3TrackFinder/plugins/SealModules.cc deleted file mode 100644 index f1edc80af9233..0000000000000 --- a/RecoMuon/L3TrackFinder/plugins/SealModules.cc +++ /dev/null @@ -1,11 +0,0 @@ -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ValidatedPluginMacros.h" - -#include "RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h" -#include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilderFactory.h" -#include "RecoMuon/L3TrackFinder/interface/HLTMuonL2SelectorForL3IO.h" -#include "RecoMuon/L3TrackFinder/interface/Phase2HLTMuonSelectorForL3.h" - -DEFINE_EDM_VALIDATED_PLUGIN(BaseCkfTrajectoryBuilderFactory, MuonCkfTrajectoryBuilder, "MuonCkfTrajectoryBuilder"); -DEFINE_FWK_MODULE(HLTMuonL2SelectorForL3IO); -DEFINE_FWK_MODULE(Phase2HLTMuonSelectorForL3);