Multiple issues fixed + --addPileupToSignal#32
Conversation
…ith pu+noise thresholds
…addPileupToSignal
|
Hello Coralie, |
|
Hi Clement, |
zaborowska
left a comment
There was a problem hiding this comment.
Hi Coralie,
I attach the inline comments.
Anna
| Detailed analysis and this scaling is done with FCC_calo_analysis_cpp toolkit. | ||
|
|
||
| - apply estimated noise levels at the cluster level for sliding window reconstruction or layer by layer for the topological clusters (**--addPileupNoise**). | ||
| - apply estimated noise levels at the cluster level for sliding window reconstruction or per cell for the topological clusters (**--addPileupNoise**). |
There was a problem hiding this comment.
I thought for the topological clusters you do apply noise in a layer so that the correlation is properly taken into account (while to build the clusters you consider the values per cell)
There was a problem hiding this comment.
Hi Anna, the pileup noise is added per cell dependent on its layer and eta, without any corrections due to correlations.
There was a problem hiding this comment.
So the results you are showing do not take into account any correlations?
What about the study you did where you tried to parametrise the pileup noise for each layer as a function of the number of cells used from this layer (to build a cluster) ? This would at least take into account the correlations within one layer.
| - cells that are later passed to the reconstruction (**--mergePileup**) | ||
|
|
||
| - or clusters that can be directly analysed (not yet supported) | ||
| 2.1. merge MinBias events (**--mergePileup**) |
There was a problem hiding this comment.
2.1. and 2.2 are both sub-cases of -- cells that are later passed to the reconstruction (**--mergePileup**).
Please put them there (you can make -- cells->2.1 cells and 2.1->2.1.1 and 2.2->2.1.2 and -- or clusters->2.2 or clusters
There was a problem hiding this comment.
i don't see the need to add a case of 2.2, as long as it is not there. But i have added the 2.1.1/2. points.
There was a problem hiding this comment.
it's to complete the picture. You yourself implemented in PR to FCCSW both the cell merging and the cluster merging.
| - or clusters that can be directly analysed (not yet supported) | ||
| 2.1. merge MinBias events (**--mergePileup**) | ||
|
|
||
| 2.2. merge signal and PU events that are later passed to the reconstruction (**--addPileupToSignal**) |
There was a problem hiding this comment.
I believe we said there is no need to write out that file and it may be immediately passed to reconstruction?
But if you do use it separately, can you explain why do you need a separate config file instead of using overlayPileup.py? Isn't what's here enough?
There was a problem hiding this comment.
yes, and i tried to produce them on the fly, but this took extemely long, such that the jobs would be killed.. so i added the intermediate step. For the new config file, this is way more easy, then trying to include this in the overlayPileup.py becasue the input is passed differently. you only have to define the process of your signal and the pu events are added. The input of the overlayPileup.py is the primary process itself, so it would not be trivial to add the signal in a consistent way.
There was a problem hiding this comment.
So you are saying that you duplicated the whole configuration just because the flags --inName and --inSignalName are refering to pileup and signal, respectively? (in overlayPileup.py)
Why don't you rename them to inPileupName and inName? The pileup needs to be passed anyway in a special format as the input. This way you can have signal event passed as usual. (However make sure that mergePileup still works as expected)
| @@ -0,0 +1,224 @@ | |||
| import argparse, os | |||
There was a problem hiding this comment.
I believe this config is not needed, see my prev comment
| simparser.add_argument('--winPhi', type=int, default=19, help='Size of the final cluster in phi') | ||
| simparser.add_argument('--enThreshold', type=float, default=3., help='Energy threshold of the seeding clusters [GeV]') | ||
| simparser.add_argument('--mu', type=int, default=1000, help='Pileup scenario') | ||
| simparser.add_argument('--mu', type=int, default=0, help='Pileup scenario') |
There was a problem hiding this comment.
It is applied in the correction algorithm as a post step, so it does not influence the reconstruction process. Please leave the default value at 1000.
There was a problem hiding this comment.
To me, the output was confusing, since it always writes out that pileup scenario: = 1000.. even though thats not true.
There was a problem hiding this comment.
If you'd include the CorrectCluster algorithm (hence use inits/pileup.py), it would not be confusing. But ok, I can change that in the next PR.
| print "LHE: ", LHE | ||
| print "jet pt: ", pt | ||
| job_dir += "etaTo0.5/" + str(pt) + "GeV/" | ||
| job_dir += "etaTo"+str(args.etaMax)+"/" + str(pt) + "GeV/" |
There was a problem hiding this comment.
this name doesn't correspond to the hard-coded values in lines 517-529.
There was a problem hiding this comment.
true, i think Clement wanted to replace the hardcoded values. i just added this for the reco to be able to run on earlier produced simu files. but i think we can use the --etaMax to set this also for the physics simulations.
What do you say, @clementhelsens ?
| num_jobs = instatus | ||
| warning("Directory contains only " + str(instatus) + " files, using all for the reconstruction") | ||
|
|
||
| if args.addPileupToSignal: |
There was a problem hiding this comment.
Please try to combine it with lines 395-397. It should be fairly similar with the exception of running once again getInputFiles. Also it misses the comments to explain why this additional step is needed.
| common_fccsw_command += ' --detectorPath ' + path_to_FCCSW | ||
| if args.mergePileup: | ||
| common_fccsw_command += ' --pileup ' + str(args.pileup) | ||
| if args.physics: |
There was a problem hiding this comment.
Why do you say it is valid only for physics? Can't signal be a single particle?
| print "Name of the input file: ", infile | ||
| if args.addPileupToSignal : | ||
| pileupinfile = os.path.basename(pileup_input_files[i]) | ||
| print "Name of the input file for pileup events: ", pileupinfile |
There was a problem hiding this comment.
it's not true, further down you pass all_pileup_inputs and not just this one file.
| if args.mergePileup: | ||
| frun.write('%s --inName %s\n'%(common_fccsw_command, all_inputs)) | ||
| elif args.addPileupToSignal: | ||
| frun.write('%s --inName %s --mu %i --inPileupFileNames %s\n'%( common_fccsw_command, input_files[i], args.pileup, all_pileup_inputs)) |
There was a problem hiding this comment.
you already pass value of pileup in line 498
| import platform, os | ||
| if platform.system()=='Darwin': | ||
| gSystem.Load(os.environ['/cvmfs/sft.cern.ch/lcg/releases/DD4hep/01-05-2396f/x86_64-slc6-gcc62-opt/lib/']) | ||
| gSystem.Load(os.environ['/cvmfs/sft.cern.ch/lcg/releases/DD4hep/01-05-2396f/x86_64-slc6-gcc62-opt/lib/']) |
There was a problem hiding this comment.
Since if was unnecessary, you should remove that Load along with it.
Uh oh!
There was an error while loading. Please reload this page.