Closed tomeichlersmith closed 1 year ago
Yes, all of the new files are a result of PR #366 on which this is based, so any discussion about how we are storing the MG generation type should be done there.
I think this is a good PR to request you to add idm_job.py to python/jobs and make an idm example in the examples directory
I have been able to confirm that this displacement is picked up by slic. The following plot is draw from the histogram filled by hpstr in the hps-mc job below. Since both electron and positron have the same vertex, only one is visible.
idm_job.py
from hpsmc.generators import MG5
from hpsmc.tools import SLIC, Unzip, DisplaceUni, BeamCoords, FilterBunches, JobManager
job.description = 'iDM generation'
job.add([
MG5(name='idm', event_types=['unweighted']),
Unzip(inputs=['idm_unweighted_events.lhe.gz'], outputs=['idm.lhe']),
DisplaceUni(inputs=['idm.lhe'], outputs=['idm.stdhep']),
BeamCoords(),
SLIC(),
HPSTR(cfg = 'tuplize', inputs='idm_rot.slcio', outputs='idm_rot.root'),
HPSTR(cfg = 'fill', inputs='idm_rot.root', outputs='h_idm_rot.root'),
FilterBunches(),
JobManager(steering='readout'),
JobManager(steering='recon')
])
job.json
{
"nevents": 10000,
"run_params": "2pt3",
"Map": 300.0,
"mchi": 100.0,
"dmchi": 10.0,
"seed": 879483,
"target_thickness": 0.002,
"beam_energy": 2300.0,
"num_electrons": 1500,
"target_z": -4.3,
"run_number": 7800,
"detector": "HPS-PhysicsRun2016-Pass2",
"steering_files": {
"readout": "/org/hps/steering/readout/PhysicsRun2016TrigPairs1.lcsim",
"recon": "/org/hps/steering/recon/PhysicsRun2016FullReconMC.lcsim"
},
"config_files": {
"tuplize" : "mcTuple_cfg.py",
"fill" : "anaMCTuple_cfg.py"
}
}
The iDM model I've developed has different PDG numbers compared to the previous dark photon and SIMP models so a small edit needs to be made to the displacement program. Besides this inclusion, I also did a very small amount of code cleanup: removing unused variables and updating comments.
Evidence
I ran
hps-mc-job run -d working idm_job.py job.json
with this branch usingidm_job.py
job.json
and then I could print out the stdhep file and see the produced electrons have a displacement.
Lack of Side Effects
This will not affect nominal A' and SIMP production since neither of those models have a particle with the PDG that iDM requires so simply including it in an OR clause will support both production methods without effecting those.
Now, there are models with a PDG matching this particle - the MSSM models have a neutralino with this PDG - so if supporting displacement of these models with this program is necessary I would need to update it.