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 08:56] loch.peter [Configurations] |
2013:groups:tools:substructure [2013/06/07 15:46] (current) andy.buckley [Software version 1] Link to Bitbucket, etc. |
||
---|---|---|---|
Line 31: | Line 31: | ||
- | ===== Configurations ===== | + | ===== Configurations & Software ===== |
+ | |||
+ | The following configurations for the (average) number of pile-up interactions $\langle\mu\rangle$ are suggested | ||
+ | $$ \langle\mu\rangle = \{ 30, 60, 120, 240 \} $$ | ||
+ | The actual number of pile-up interactions added to the signal event is taken from a Poisson distribution around $\langle\mu\rangle$. | ||
+ | |||
+ | ==== Software version 1 ==== | ||
+ | |||
+ | 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 particle (hadron) level signal event | ||
+ | * the particle (hadron) level pile-up event | ||
+ | |||
+ | The code is not very convenient to use in this version. 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> | ||
+ | anal02.exe --help --mu=<mu> --nevts=<number of (signal) events> | ||
+ | --sigflist=<text file with list of signal files> | ||
+ | --puflist=<text file with list of pile-up files> | ||
+ | </code> | ||
+ | Some hints: | ||
+ | * ''--help'' prints a brief usage instruction (which I think is not up-to-date, so please ignore!) | ||
+ | * ''--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 | ||
+ | * ''--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!). | ||
- | Pile-up can be added dynamically using this **{{:2013:groups:tools:anal02.tar.gz| software}}**. The following configurations for the (average) number of pile-up interactions $\langle\mu\rangle$ are suggested | ||
- | $$ \langle\mu\rangle = \{ 30, 60, 120, 240 \} $$ | ||
===== 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. | ||
- | |||