This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
2013:groups:tools:substructure [2013/06/06 11:31] loch.peter [Software version 1] |
2013:groups:tools:substructure [2013/06/07 15:46] andy.buckley [Software version 1] Link to Bitbucket, etc. |
||
---|---|---|---|
Line 39: | Line 39: | ||
==== Software version 1 ==== | ==== Software version 1 ==== | ||
- | Pile-up can be added dynamically using this **{{:2013:groups:tools:anal02.tar.gz| software}}**. The main concept here is that the ROOT based raw data is converted into an ''Event'' obejct containing lists of ''PseudoJet''s (from ''Fastjet'') representing | + | Pile-up can be added dynamically using Peter's eventmanager software. All the software for the LH pile-up/substructure studies is being developed through a [[https://bitbucket.org/andybuckley/lh2013pileup/overview|Bitbucket repository]]: you can check out without an account. Send a request for access if you want to commit (push) to the main code repository. |
+ | |||
+ | (Previous version of software as a {{:2013:groups:tools:anal02.tar.gz| tarball}}.) | ||
+ | |||
+ | The main concept here is that the ROOT based raw data is converted into an ''Event'' object containing lists of ''PseudoJet''s (from ''Fastjet'') representing | ||
* the total particle (hadron) level event (signal + pile-up) | * the total particle (hadron) level event (signal + pile-up) | ||
Line 45: | Line 49: | ||
* the particle (hadron) level pile-up event | * the particle (hadron) level pile-up event | ||
- | The code is not very convenient to use in this version. After unpacking with | + | The code is not very convenient to use in this version. On most systems I expect a |
- | <code> | + | |
- | tar zxvf <archive>.tar.gz | + | |
- | </code> | + | |
- | on most systems I expect a | + | |
<code>make all</code> should work to compile the library and the example in ''anal02.C''. For implementing your own analysis, please check the ''anal02.C'' and ''Zprime_Py8::analyze(Event& rEvt)'' (your playground) in ''Zprime_Py8.C'' as examples. The program supports a few command line arguments | <code>make all</code> should work to compile the library and the example in ''anal02.C''. For implementing your own analysis, please check the ''anal02.C'' and ''Zprime_Py8::analyze(Event& rEvt)'' (your playground) in ''Zprime_Py8.C'' as examples. The program supports a few command line arguments | ||
<code> | <code> | ||
Line 60: | Line 60: | ||
* ''--mu=<mu>'' expects the number of interactions per event. if ''<mu> < 0'', exactly ''|<mu>|'' interactions are collected into one event. ''<mu> > 0'' means a Poisson-distributed number of pile-up interactions will be collected from the pile-up (minimum bias) event samples. | * ''--mu=<mu>'' expects the number of interactions per event. if ''<mu> < 0'', exactly ''|<mu>|'' interactions are collected into one event. ''<mu> > 0'' means a Poisson-distributed number of pile-up interactions will be collected from the pile-up (minimum bias) event samples. | ||
* if you specify both signal and pile-up input, ''<mu>'' should be the number of pile-up events to be added to one signal event | * if you specify both signal and pile-up input, ''<mu>'' should be the number of pile-up events to be added to one signal event | ||
+ | * ''--sigflist=<file>'' specifies a text file (no "" around file name!) with a list of signal files to be processed. If this list is not given, ''Zprime_Py8::analyze(...)'' will not be invoked. | ||
+ | * ''--puflist=<file>'' specifies a text file (no "" around file name!) with a list of pile-up files to be processed. If this list is not given, only signal events are analyzed (you should set ''--mu=1'' in this case!). | ||
===== Methods ===== | ===== Methods ===== | ||
+ | The idea is to test filtering/grooming techniques as a way to reduce the sensiticity to bsoft backgrounds (initially the filter used with the BDRS tagger was meant to reduce the sensitivity to the UE). | ||
+ | |||
+ | Following the Filter tool in FastJet3, we need (i) a jet definition to break the jet into subjets and (ii) a selection criterion that decides what subjets are kept. We'll consider 3 options: | ||
+ | |||
+ | * "Filtering": | ||
+ | * cluster with Cambridge/Aachen, $R_{\rm filt} = \eta_{\rm filt} R_{\rm jet}$ [$\eta_{\rm filt}$ between 1/3 and 1/2 sounds about right] | ||
+ | * keep the $n_{\rm filt}$ hardest subjets [$n_{\rm filt}$=2.3.4] | ||
+ | * "Trimming": | ||
+ | * cluster with Cambridge/Aachen, $R_{\rm filt} = 0.2$ | ||
+ | * keep all subjets with $p_{t,\rm sub} > f p_{t,jet}$ [$f$ between 0.01 and 0.05 should be fine] | ||
+ | * "Area-filtering": | ||
+ | * cluster with Cambridge/Aachen, $R_{\rm filt} = 0.2$ | ||
+ | * keep all subjets with $p_{t,\rm sub} > \rho A_{\rm sub} + n \sigma \sqrt{A_{\rm sub}}$ [$n$ between 2 and 5] | ||
+ | |||
+ | The 3rd option is new and based on the idea that the PU scales $\rho$ and $\sigma$ should set the scale of the PU/noise removal. | ||
+ | |||
+ | For pileup sutraction, one usually want to first subtract the average PU contamination ($\rho A_{\rm sub}$) from each subjet before deciding which subjets are to be kept. This is implemented in the fastjet::Filter. Note that with "Area-filtering" you should then cut with $p_{t,\rm sub} > n \sigma \sqrt{A_{\rm sub}}$ since the baseline has already been subtracted. | ||
- | |||