Closed francescobrivio closed 11 months ago
In order to help with this step
- [ ] Include the new tags in the MC GTs
- Need to check:
- Which GTs should actually be updated, only Run3 or also Run2 and Run1?
- The correct correspondence between GT <-> tag
and hence make progress with https://github.com/cms-sw/cmssw/pull/42664 I started to compile the coupling Global Tag <-> SimBeamSpot
tag for each simulation GT key of autoCond
(as of CMSSW_13_3_X_2023-08-25-2300
), in order to decide which tags to move from the preparation to the production database.
You can find it below:
While compiling this list, one issue with this approach that occurred to me, is that the current SimBeamSpotObjects
CondFormat assumes that the simulation step happens via the BetafuncEvtVtxGenerator, while there are instead use cases that use a different functional form (e.g. in the case of the design simulation the GaussEvtVtxGenerator or in the case of phase-2 simulation the HLLHCEvtVtxGenerator).
These use a different set of parameters that cannot be translated into the existing SimBeamSpotObjects
data layout.
I guess it's up to discussion if (given that currently there is no tag associated to this C++ class in the production database) if it's appropriate to amend the class layout to allow these parameters, or if otherwise devise entirely different classes (and hence EventSetup
records).
Below the list of PSets
in IOMC/EventVertexGenerators/python/VtxSmearedParameters_cfi.py affected by this problem:
GaussVtxSigmaZ4cmSmearingParameters : cms.PSet(
MeanX = cms.double(0.0),
MeanY = cms.double(0.0),
MeanZ = cms.double(0.0),
SigmaX = cms.double(0.0015),
SigmaY = cms.double(0.0015),
SigmaZ = cms.double(4.0),
TimeOffset = cms.double(0.0)
)
GaussVtxSmearingParameters : cms.PSet(
MeanX = cms.double(0.0),
MeanY = cms.double(0.0),
MeanZ = cms.double(0.0),
SigmaX = cms.double(0.0015),
SigmaY = cms.double(0.0015),
SigmaZ = cms.double(5.3),
TimeOffset = cms.double(0.0)
)
HLLHCCrabKissingVtxSmearingParameters : cms.PSet(
BeamProfile = cms.string('Flat'),
BetaStarCrossingPlaneInm = cms.double(0.3),
BetaStarParallelPlaneInm = cms.double(0.075),
CrabAngleCrossingPlaneInurad = cms.double(200.0),
CrabAngleParallelPlaneInurad = cms.double(100.0),
CrabFrequencyCrossingPlaneInMHz = cms.double(400.0),
CrabFrequencyParallelPlaneInMHz = cms.double(400.0),
EprotonInGeV = cms.double(6500.0),
HalfCrossingAngleInurad = cms.double(200.0),
MeanXIncm = cms.double(0.0),
MeanYIncm = cms.double(0.0),
MeanZIncm = cms.double(0.0),
NormalizedEmittanceCrossingPlaneInum = cms.double(2.5),
NormalizedEmittanceParallelPlaneInum = cms.double(2.5),
TimeOffsetInns = cms.double(0.0),
ZsizeInm = cms.double(0.15)
)
HLLHCVtxSmearingParameters : cms.PSet(
BetaCrossingPlaneInm = cms.double(0.2),
BetaSeparationPlaneInm = cms.double(0.2),
BunchLengthInm = cms.double(0.09),
CrabFrequencyInMHz = cms.double(400.0),
CrabbingAngleCrossingInurad = cms.double(380.0),
CrabbingAngleSeparationInurad = cms.double(0.0),
CrossingAngleInurad = cms.double(510.0),
EprotonInGeV = cms.double(6500.0),
HorizontalEmittance = cms.double(2.5e-06),
MeanXIncm = cms.double(0.0),
MeanYIncm = cms.double(0.0),
MeanZIncm = cms.double(0.0),
RF800 = cms.bool(False),
TimeOffsetInns = cms.double(0.0),
VerticalEmittance = cms.double(2.05e-06)
)
Run3FlatOpticsGaussVtxSigmaZ4p2cmSmearingParameters : cms.PSet(
MeanX = cms.double(0.0107682),
MeanY = cms.double(0.041722),
MeanZ = cms.double(0.035748),
SigmaX = cms.double(0.00118),
SigmaY = cms.double(0.00055),
SigmaZ = cms.double(4.2),
TimeOffset = cms.double(0.0)
)
Run3FlatOpticsGaussVtxSigmaZ5p3cmSmearingParameters : cms.PSet(
MeanX = cms.double(0.0107682),
MeanY = cms.double(0.041722),
MeanZ = cms.double(0.035748),
SigmaX = cms.double(0.0015),
SigmaY = cms.double(0.0013),
SigmaZ = cms.double(5.3),
TimeOffset = cms.double(0.0)
)
@mmusich , would be correct if we will try to resolve the issue in the next release cycle? The dead-line for 13_3 is too close.
@civanch
would be correct if we will try to resolve the issue in the next release cycle? The dead-line for 13_3 is too close.
Personally, I don't mind. I am waiting the alca people to comment on the points above. @saumyaphor4252 @francescobrivio
may I ask where we stand with this issue . @saumyaphor4252 @francescobrivio
I plan to take a look this afternoon, sorry for the delay!
Thanks @mmusich for compiling the list and pointing out the missing ingredients! Regarding:
if it's appropriate to amend the class layout to allow these parameters, or if otherwise devise entirely different classes (and hence EventSetup records).
I compiled a list of all the members that would be needed:
fX0 // for BetafuncEvtVtxGenerator only
fY0
fZ0
fbetastar
femittance
fPhi
fAlpha
fSigmaZ // for BetafuncEvtVtxGenerator and GaussEvtVtxGenerator
fSigmaX // for GaussEvtVtxGenerator only
fSigmaY
fMeanX // for GaussEvtVtxGenerator and HLLHCEvtVtxGenerator
fMeanY
fMeanZ
momeV // for HLLHCEvtVtxGenerator only
phi
wcc
RF800
betx
bets
epsxn
epssn
sigs
alphax
alphay
fTimeOffset // for all three generators
So, given that the original SimBeamSpotObjects
alraedy includes 9 of them, we can update it to include them all.
But there are a few parameters defined in HLLHCCrabKissingVtxSmearingParameters
:
BeamProfile = cms.string('Flat'),
BetaStarCrossingPlaneInm = cms.double(0.3),
BetaStarParallelPlaneInm = cms.double(0.075),
CrabAngleCrossingPlaneInurad = cms.double(200.0),
CrabAngleParallelPlaneInurad = cms.double(100.0),
CrabFrequencyCrossingPlaneInMHz = cms.double(400.0),
CrabFrequencyParallelPlaneInMHz = cms.double(400.0),
HalfCrossingAngleInurad = cms.double(200.0),
NormalizedEmittanceCrossingPlaneInum = cms.double(2.5),
NormalizedEmittanceParallelPlaneInum = cms.double(2.5),
ZsizeInm = cms.double(0.15)
That are not used in any .cc/.h
file (as a matter of fact they are not used anywhere as this example search in cmssw shows), so I'm not sure how to treat those...
Alternatively one could think about updating the current simBS object with the parameters needed by the GaussEvtVtxGenerator now, and postpone this migration for the Phase2 GT to later, by making an entirely new record/object for the HLLHC case. Would this be technically doable (i.e. to decaouple the Phase2 GT update)?
What do you think? I'm open to suggestions!
Alternatively one could think about updating the current simBS object with the parameters needed by the GaussEvtVtxGenerator now, and postpone this migration for the Phase2 GT to later, by making an entirely new record/object for the HLLHC case. Would this be technically doable (i.e. to decaouple the Phase2 GT update)?
I think it's probably better to settle the question now that the record is "virgin" (never used in production). About the parameters never referenced in the source code we should follow up with the developers that created the configuration in the first place.
Dear @lgray, sorry to drag you into this discussion, but from github history it seems like you were the last one to update the HL-LHC beamspot parameters in CMSSW!
We are trying to migrate the vertex smearing parameters to the GT (see issue description and the following discussion for details), and we noticed that in https://github.com/cms-sw/cmssw/pull/16942 you removed some of the parameters used by IOMC/EventVertexGenerators/interface/HLLHCEvtVtxGenerator.h
, but the same parameters were never cleaned up in the HLLHCCrabKissingVtxSmearingParameters
configuration, see:
https://github.com/cms-sw/cmssw/blob/2cd78edfb8f8a002926332e7cd5eedbd000501b6/IOMC/EventVertexGenerators/python/VtxSmearedParameters_cfi.py#L1080-L1098
Was that done on purpose? Or simply forgotten?
Thanks a lot!
Cheers, Francesco
First part of this issue, regarding Run-1/2/3 GTs, is almost done, see: https://cms-talk.web.cern.ch/t/mc-new-simbeamspotobjectsrcd-tags-for-run1-2-3-mc-gts/31292
For the Phase-2 GT: the work to define a new CondFormat is ongoing in https://github.com/cms-sw/cmssw/pull/43186
Run-1/2/3 MC GTs are being updated in https://github.com/cms-sw/cmssw/pull/43197
my take is that this issue can be closed. Is there anything outstanding @francescobrivio ?
my take is that this issue can be closed. Is there anything outstanding @francescobrivio ?
The only remaining open point is the HL-LHC case (GT, CondFormat. etc...). We can probably move that to a new issue for bookkeeping.
Oh the reasoning from back in the day was that those parameterizations did not need those parameters. I didn't remove them from the python config because I was lazy. :-)
Oh the reasoning from back in the day was that those parameterizations did not need those parameters. I didn't remove them from the python config because I was lazy. :-)
Thanks for the feedback @lgray! No problem I can take care of the cleanup!
If you don't mind, could you have a look at https://github.com/cms-sw/cmssw/pull/43186 and provide any feedback in case you have it?
Closing in favor of https://github.com/cms-AlCaDB/AlCaTools/issues/95 which will be used to track the remaining open points for the HL-LHC case.
Multi-step solution for https://github.com/cms-sw/cmssw/issues/41894:
SimBeamSpotObjects
codeWhich GTs should actually be updated, only Run3 or also Run2 and Run1?done hereThe correct correspondence between GT <-> tagdone hereThis is probably already implemented, but I need to find where exactly in the codedone in https://github.com/cms-sw/cmssw/pull/43242