Contents
Quicklinks
Proposed structure
The following sketch is a proposed structure of the packages:
CommonAnalysis |___SFrame |___Common | |___D3PDVariables | |___SelectionTools | |___DesyUtilities | |___LeptonEfficiency | |___... |___External | |___GoodRunsLists | |___... |___Top | |___TopCommonSelection | |___AntiElectrons | |___... |___Zmumu | |___TagNProbe | |___... |___...
First conceptual draft
Physics objects
- For now: containers for electrons, muons, jets, MET, vertices
- Thin wrapper around ntuple variables, only mapping ntuple indices
- challenge: decouple access to ntuple variables from individual analysis
Could have switches to connect only to subset of ntuple variables -> faster
- Electrons, muons: need to provide efficiencies or scale factors that depend on object kinematics (and more?)
- Jets: need to provide things like JES corrections, B-tagging scale factors, mistag probability
- All of the above factors: supplied from external database class = wrapper around one or more text files, ROOT files, ...
- MET may have to be re-calculated, e.g. with JES changes
- Vertices: need at least positions of all primary vertices
- Other objects (gamma, tau, track, ...): low priority
MC input samples
- ttbar: MC@NLO (default), POWHEG (cross-check), ISR/FSR samples (AcerMC?), ...
- single top: t channel and Wt channel, s channel probably negligible
- W/Z+jets: ALPGEN with light and heavy flavor (bias through generator cuts?) Sherpa?
- Diboson: WW, WZ, ZZ (ALPGEN?)
- QCD: ALPGEN samples, ultimately from data
Data input samples
- list of runs and trigger streams to be defined
Tools outside event loop
- Lumi calculator: produces text file from trigger stream and good run list (GRL)
- Application of GRLs in SFrame (Clemens)
see GoodRunsLists for usage and example
- PDF reweighting (Sascha)
- Scripting environment to run large number of systematics samples
- Event display: VP1 needs Athena + run/event number, ROOT needs only 4-vectors
Event overlap removal: same event may end up in >1 trigger stream
Tools inside event loop
- Particle classes (see above)
- DB access class (see above)
- Kinematics (TLorentzVector-based), e.g. event shape class by Robert/Thomas
- Manage per-object and per-event weights, combine per-object weights
- Histogram manager: fill the same set of histograms after every cut
- Ntuple dumper: write out a few variables for the "end game" (available in SFrame)
Main code pieces
- SingleTopDPDs from AODs (Clemens to write documentation and train others)
Two-step selection in SFrame: object selection -> combination of objects
"End game" depends a lot on specific analysis -> standalone code, don't fix now
- plots? fitters? limit calculation? multivariate analysis?