Skip to content

Multiple issues fixed + --addPileupToSignal#32

Closed
CoralieNeubueser wants to merge 30 commits into
FCC-hh-framework:masterfrom
CoralieNeubueser:addPileupToSignal
Closed

Multiple issues fixed + --addPileupToSignal#32
CoralieNeubueser wants to merge 30 commits into
FCC-hh-framework:masterfrom
CoralieNeubueser:addPileupToSignal

Conversation

@CoralieNeubueser
Copy link
Copy Markdown

@CoralieNeubueser CoralieNeubueser commented Jun 1, 2018

  • positions using dd4hep decoder directly -> independent on some local 'privat' SW and urgent because recPositions does not work due to different root versions.
  • sliding window with "old" granularity + seeding window of half the size of final -> tested on pions, 100% efficiency
  • --addPileupToSignal functionality to create simuPU.. samples, these can then used as input for topo-clusters by --pileup ...
  • use --etaMax to specify the max. eta for physics simulations in the reco

@clementhelsens
Copy link
Copy Markdown

Hello Coralie,
Is it in state to be reviewed?

@CoralieNeubueser
Copy link
Copy Markdown
Author

Hi Clement,
yes it is. Please go ahead.
Cheers,
Coralie

Copy link
Copy Markdown

@zaborowska zaborowska left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Coralie,
I attach the inline comments.
Anna

Comment thread README.md
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**).
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Anna, the pileup noise is added per cell dependent on its layer and eta, without any corrections due to correlations.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread README.md Outdated
- 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**)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's to complete the picture. You yourself implemented in PR to FCCSW both the cell merging and the cluster merging.

Comment thread README.md Outdated
- 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**)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this config is not needed, see my prev comment

Comment thread config/recSlidingWindow.py Outdated
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')
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me, the output was confusing, since it always writes out that pileup scenario: = 1000.. even though thats not true.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread python/send.py
print "LHE: ", LHE
print "jet pt: ", pt
job_dir += "etaTo0.5/" + str(pt) + "GeV/"
job_dir += "etaTo"+str(args.etaMax)+"/" + str(pt) + "GeV/"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this name doesn't correspond to the hard-coded values in lines 517-529.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 ?

Comment thread python/send.py Outdated
num_jobs = instatus
warning("Directory contains only " + str(instatus) + " files, using all for the reconstruction")

if args.addPileupToSignal:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread python/send.py Outdated
common_fccsw_command += ' --detectorPath ' + path_to_FCCSW
if args.mergePileup:
common_fccsw_command += ' --pileup ' + str(args.pileup)
if args.physics:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you say it is valid only for physics? Can't signal be a single particle?

Comment thread python/send.py Outdated
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
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's not true, further down you pass all_pileup_inputs and not just this one file.

Comment thread python/send.py Outdated
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))
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you already pass value of pileup in line 498

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

true

Comment thread python/Convert.py Outdated
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/'])
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since if was unnecessary, you should remove that Load along with it.

@CoralieNeubueser CoralieNeubueser deleted the addPileupToSignal branch August 30, 2018 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants