Skip to content

Commit

Permalink
Merge pull request #45683 from stahlleiton/Phase2_PbPb_CMSSW_14_1_X
Browse files Browse the repository at this point in the history
Add Phase2 PbPb reco process modifier
  • Loading branch information
cmsbuild authored Aug 19, 2024
2 parents f529d2a + d4adc0b commit af34144
Show file tree
Hide file tree
Showing 10 changed files with 78 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import FWCore.ParameterSet.Config as cms

from Configuration.Generator.Pyquen2015Settings_cff import *

generator = cms.EDFilter("HydjetGeneratorFilter",
collisionParameters5519GeV,
qgpParameters2023,
hydjetParameters2023,
hydjetMode = cms.string('kHydroQJets'),
PythiaParameters = cms.PSet(pyquenPythiaDefaultBlock,
# Quarkonia and Weak Bosons added back upon dilepton group's request.
parameterSets = cms.vstring('pythiaUESettings',
'hydjetPythiaDefault',
'myParameters',
'pythiaJets',
'pythiaPromptPhotons',
'pythiaZjets',
'pythiaBottomoniumNRQCD',
'pythiaCharmoniumNRQCD',
'pythiaQuarkoniaSettings',
'pythiaWeakBosons'
)
),
cFlag = cms.int32(1),
bMin = cms.double(0),
bMax = cms.double(30),
bFixed = cms.double(0)
)
4 changes: 4 additions & 0 deletions Configuration/Generator/python/Pyquen2015Settings_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
comEnergy = cms.double(5362.0)
)

collisionParameters5519GeV = cms.PSet(aBeamTarget = cms.double(208.0), ## beam/target atomic number
comEnergy = cms.double(5519.0)
)

qgpParameters = cms.PSet(qgpInitialTemperature = cms.double(1.1), ## initial temperature of QGP; allowed range [0.2,2.0]GeV;
qgpProperTimeFormation = cms.double(0.1), ## proper time of QGP formation; allowed range [0.01,10.0]fm/c;
hadronFreezoutTemperature = cms.double(0.125),
Expand Down
3 changes: 3 additions & 0 deletions Configuration/ProcessModifiers/python/phase2_pp_on_AA_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import FWCore.ParameterSet.Config as cms

phase2_pp_on_AA = cms.Modifier()
1 change: 1 addition & 0 deletions Configuration/PyReleaseValidation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ The offsets currently in use are:
* 0.78: Complete L1 workflow
* 0.8: BPH Parking (Run-2)
* 0.81: Running also HeavyFlavor DQM
* 0.85: Phase-2 Heavy Ion
* 0.9: Vector hits
* 0.12: Neutron background
* 0.13: MLPF algorithm
Expand Down
1 change: 1 addition & 0 deletions Configuration/PyReleaseValidation/python/relval_2026.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
numWFIB.extend([prefixDet+96.0]) #CloseByPGun CE_E_Front_120um
numWFIB.extend([prefixDet+100.0]) #CloseByPGun CE_H_Coarse_Scint
numWFIB.extend([prefixDet+61.0]) #Nu Gun
#numWFIB.extend([prefixDet+151.85]) #Heavy ion reconstruction
#Default Phase-2 Det PU
numWFIB.extend([prefixDet+261.97]) #premixing stage1 (NuGun+PU)
numWFIB.extend([prefixDet+234.99]) #premixing combined stage1+stage2 ttbar+PU200
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2821,6 +2821,29 @@ def condition(self, fragment, stepList, key, hasHarvest):
offset = 0.9001,
)

class UpgradeWorkflow_Phase2_HeavyIon(UpgradeWorkflow):
def setup_(self, step, stepName, stepDict, k, properties):
stepDict[stepName][k] = merge([{'--procModifiers': 'phase2_pp_on_AA'}, stepDict[step][k]])
if 'GenSim' in step:
stepDict[stepName][k] = merge([{'--conditions': stepDict[step][k]["--conditions"].replace('_13TeV',''), '-n': 1}, stepDict[stepName][k]])
elif 'Digi' in step:
stepDict[stepName][k] = merge([{'-s': stepDict[step][k]["-s"].replace("DIGI:pdigi_valid","DIGI:pdigi_hi"), '--pileup': 'HiMixNoPU'}, stepDict[stepName][k]])
def condition(self, fragment, stepList, key, hasHarvest):
return fragment=='HydjetQMinBias_5519GeV' and '2026' in key and 'PU' not in key

upgradeWFs['Phase2_HeavyIon'] = UpgradeWorkflow_Phase2_HeavyIon(
steps = [
'GenSimHLBeamSpot',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal',
'ALCAPhase2'
],
PU = [],
suffix = '_hi',
offset = 0.85,
)

# check for duplicates in offsets or suffixes
offsets = [specialWF.offset for specialType,specialWF in upgradeWFs.items()]
suffixes = [specialWF.suffix for specialType,specialWF in upgradeWFs.items()]
Expand Down Expand Up @@ -3370,5 +3393,6 @@ def __init__(self, howMuch, dataset):
('LbToJpsiXiK0sPi_JMM_Filter_DGamma0_TuneCP5_13p6TeV-pythia8-evtgen_cfi',UpgradeFragment(Mby(50,500000),'LbToJpsiXiK0sPr_DGamma0_13p6TeV')), #0.6%
('OmegaMinus_13p6TeV_SoftQCDInel_TuneCP5_cfi',UpgradeFragment(Mby(100,1000000),'OmegaMinus_13p6TeV')), #0.1%
('Hydjet_Quenched_MinBias_5020GeV_cfi', UpgradeFragment(U2000by1,'HydjetQMinBias_5020GeV')),
('Hydjet_Quenched_MinBias_5362GeV_cfi', UpgradeFragment(U2000by1,'HydjetQMinBias_5362GeV'))
('Hydjet_Quenched_MinBias_5362GeV_cfi', UpgradeFragment(U2000by1,'HydjetQMinBias_5362GeV')),
('Hydjet_Quenched_MinBias_5519GeV_cfi', UpgradeFragment(U2000by1,'HydjetQMinBias_5519GeV')),
])
2 changes: 2 additions & 0 deletions Configuration/StandardSequences/python/Reconstruction_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,8 @@
pp_on_AA.toReplaceWith(highlevelrecoTask,highlevelrecoTask.copyAndExclude([PFTauTask]))
from Configuration.Eras.Modifier_ppRef_2024_cff import ppRef_2024
ppRef_2024.toReplaceWith(highlevelrecoTask, cms.Task(highlevelrecoTask.copy(), hiClusterCompatibility))
from Configuration.ProcessModifiers.phase2_pp_on_AA_cff import phase2_pp_on_AA
phase2_pp_on_AA.toReplaceWith(highlevelrecoTask, cms.Task(highlevelrecoTask.copy(), hiClusterCompatibility, hiCentrality))

# not commisoned and not relevant in FastSim (?):
_fastSim_highlevelrecoTask = highlevelrecoTask.copyAndExclude([muoncosmichighlevelrecoTask])
Expand Down
5 changes: 4 additions & 1 deletion RecoHI/HiCentralityAlgos/plugins/CentralityProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ namespace reco {
const double trackEtaCut_;
const double hfEtaCut_;

const bool isPhase2_;
const bool reuseAny_;
const bool useQuality_;
const reco::TrackBase::TrackQuality trackQuality_;
Expand Down Expand Up @@ -128,6 +129,7 @@ namespace reco {
trackPtCut_(iConfig.getParameter<double>("trackPtCut")),
trackEtaCut_(iConfig.getParameter<double>("trackEtaCut")),
hfEtaCut_(iConfig.getParameter<double>("hfEtaCut")),
isPhase2_(iConfig.getParameter<bool>("isPhase2")),
reuseAny_(iConfig.getParameter<bool>("reUseCentrality")),
useQuality_(iConfig.getParameter<bool>("useQuality")),
trackQuality_(TrackBase::qualityByName(iConfig.getParameter<std::string>("trackQuality"))),
Expand Down Expand Up @@ -210,7 +212,7 @@ namespace reco {
const CaloTower& tower = (*towers)[i];
double eta = tower.eta();
if (produceHFtowers_) {
bool isHF = tower.ietaAbs() > 29;
bool isHF = tower.ietaAbs() > (isPhase2_ ? 16 : 29);
if (isHF && eta > 0) {
creco->etHFtowerSumPlus_ += tower.pt();
if (tower.energy() > 1.5)
Expand Down Expand Up @@ -539,6 +541,7 @@ namespace reco {
desc.add<double>("hfEtaCut", 4)->setComment("hf above the absolute value of this cut is used");
desc.add<double>("midRapidityRange", 1);
desc.add<bool>("lowGainZDC", true);
desc.add<bool>("isPhase2", false);

descriptions.addDefault(desc);
}
Expand Down
9 changes: 8 additions & 1 deletion RecoHI/HiCentralityAlgos/python/HiCentrality_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
hfEtaCut = cms.double(4), #hf above the absolute value of this cut is used
midRapidityRange = cms.double(1),
lowGainZDC = cms.bool(True),
isPhase2 = cms.bool(False),

)

Expand All @@ -45,4 +46,10 @@
srcTracks = "generalTracks",
srcVertex = "offlinePrimaryVertices"
)

from Configuration.ProcessModifiers.phase2_pp_on_AA_cff import phase2_pp_on_AA
phase2_pp_on_AA.toModify(hiCentrality,
isPhase2 = True,
producePixelTracks = False,
srcTracks = "generalTracks",
srcVertex = "offlinePrimaryVertices"
)
3 changes: 2 additions & 1 deletion RecoJets/Configuration/python/RecoJets_EventContent_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,13 @@
from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
from Configuration.Eras.Modifier_run3_upc_cff import run3_upc
from Configuration.Eras.Modifier_ppRef_2024_cff import ppRef_2024
from Configuration.ProcessModifiers.phase2_pp_on_AA_cff import phase2_pp_on_AA
#products from regular pp which does not fit the normal AOD
for e in [pA_2016, peripheralPbPb, pp_on_XeXe_2017, pp_on_AA]:
e.toModify( RecoJetsAOD.outputCommands,
func=lambda outputCommands: outputCommands.extend(['keep *_towerMaker_*_*'])
)
for e in [pp_on_XeXe_2017, pp_on_AA, run3_upc]:
for e in [pp_on_XeXe_2017, pp_on_AA, run3_upc, phase2_pp_on_AA]:
e.toModify( RecoJetsAOD.outputCommands,
func=lambda outputCommands: outputCommands.extend(['keep recoCentrality*_hiCentrality_*_*',
'keep recoClusterCompatibility*_hiClusterCompatibility_*_*'
Expand Down

0 comments on commit af34144

Please sign in to comment.