You should use root version 5.34 or above. The input format for the analysis are the FHD3PDs which are a slimmed/skimmed version of the official TopD3PDs. You do NOT NEED RootCore or TopRootCore to run the code. The data and MC files are located on the grid and also replicated to MPPMU_LOCALGROUPDISK in Garching. It is recommended to run the analysis code on the machines at RZG in Garching (mppuiN.t2.rzg.mpg.de, N=1,2,3).

Getting the code

The analysis code is locate in the svn area:
You can either check out the trunk version
svn co svn+ssh://svn.cern.ch/reps/atlasinst/Institutes/MPI/HEC/analysis/FullHadronicTopAnalysis/trunk FullHadronicTopAnalysis
or a tagged version (RECOMMENDED)
svn co svn+ssh://svn.cern.ch/reps/atlasinst/Institutes/MPI/HEC/analysis/FullHadronicTopAnalysis/tags/FullHadronicTopAnalysis-12-00-10 FullHadronicTopAnalysis
The latest tagged version is normally the one to be used. If in doubt, contact us. You can browse the trunk and tag versions of the code here: FullHadronicTopAnalysis on SVN

Compiling the code

To compile the code setup root (once in a new shell), cd into the where you installed the package (normally cd FullHadronicTopAnalysis if you are still in the dir where you issued the svn command) and type
cd cmt; make
If everything went fine there will be the executable FHAnalysisExe.exe in the base dir (i.e. cd .. to run it).

Running the code

There are three main steps involved when running the local analysis. By simply typing ./FHAnalysisExe.exe you can run the code, but note that by default all steps are turned off; you can specify which steps you would like turned on by using two of several input parameters. These input parameters are used to steer the code (this list might get larger) and avoid having to re-compile just by turning options on or off. You can type
./FHAnalysisExe.exe -usage
to see the list:
  • Which steps to run: options specifying which of the three main steps you wish to run (again note that these steps are all off (0) by default):
    • -runAll: runs all steps of the analysis (this is how it should be run!), so turns on several of the separate steps below and runs in the correct order [0 or 1, default = 0]
    • -runMCSignalMassVariation: runs over MC FHD3PD fast sim samples for 7 different generator mtop values. Output is txt file with slopes and intercepts of reconstructed R32 shape parameters vs generator top mass which is used later on. Also saved is a root file with these initial fits, covariance matrices, etc. for the signal shapes (global fit is then performed in final step). (Required for full analysis). [0 or 1, default = 0]
    • -runAnalysisInitial: runs over all events in MC and data from the FHD3PDs input ntuples, does basic event selection (trigger, jet isolation cut, minimum number of required jets, etc.) as well as top reconstruction (the MinChiSquared is used by default), but no cuts are done - just to have the top candidates in place and to do the jet-quark assignment. Corrected jets (adding muon 4-vectors to the jets) are used to determine the jet-quark associations, but strictly for this purpose (i.e. the original jet 4-vectors are used in all other places in the program). (Required for full analysis). [0 or 1, default = 0]
    • -runAnalysisFinal: runs over the output from the -runInitial step above, performs the final event selection, does the ABCDEF method for background estimation, produces a final output root file with data histo and also the background shape fit parameters and covariance matrix from the fit. (Required for full analysis) [0 or 1, default = 0]
    • -runFinalTopMassExtraction: runs at the very end to perform the final chi2 minimization to extract the measured values of mtop and Fbkgd with statistical uncertainties (Required for full analysis).
    • -runJetResponseResolution: runs over MC FHD3PD which have had no cuts applied. It creates an output (txt file) which has b- and light-jet responses and resolutions as a function of jet eta and energy or transverse momentum. The point at which these are calculated is right before the event reconstruction so that one has a good sense of what the true response and resolution are as well as the mW and mTop distributions. It is this information that is fed into the Chi2 reconstruction (for any stage of the analysis). This should be run if you want to re-generate the txt file, but otherwise it's included in the package. Matched muons are added to jets for the response and resolution and they are added to jets to do the jet-quark assignment in the reconstruction, but not in the final analysis - it is similar in this sense to the transfer functions of the KLFitter. This improves the top reconstruction purity a small amount. [0 or 1, default = 0]
    • -runMCSignalFullPlots: runs over MC FHD3PD (with no cuts applied upstream) to produce a more exhaustive list of plots of jet kinematics including trigger turn-on curves. [0 or 1, default = 0]
    • -runPLCDerivation: runs over MC FHD3PD ntuple to derive jet parton-level correction factors for jets (as a function of reco jet energy and pseudorapidity). The output is a .txt file located in /files containing the jet energy and eta bin ranges as well as the actual correction factors. These are then later read in (if desired) and applied to jets in the analysis (NB: this does now not need to be run at all - it still can be but it is not considered part of the official analysis). Note that by default this really computes correction factors vs quark-level pT or E, and then uses numerical inversion to convert to corrections vs reco-level jet pT or E. DO NOT USE FOR NOW [0 or 1, default = 0]

  • Specify inputs/outputs: options to specify names of input and output files to be used (all set by default, so do not have to be changed):
    • -inFileMC: input file path for MC (do not use together with -inFileTxt) [runInitial]
    • -inFileData: input file path for Data (do not use together with -inFileTxt) [runInitial]
    • -initialOutFile: initial program output file path (default: tTNtuple_InclTopRecoIndices(MC/Data)_nominal.root [runInitial]
    • -inFileFinalMC: input file path for final run MC (default: tTNtuple_InclTopRecoIndicesMC_nominal.root) [runFinal]
    • -inFileFinalData: input file path for final run Data (default: tTNtuple_InclTopRecoIndicesData_nominal.root) [runFinal]
    • -inFileJetCF: input txt file containing jet correction factors to be applied in final stage (default = files/JetCF_nominal.txt) [runFinal] -- do not use
  • Additional options for final analysis: options to turn on/off several extra features in the final analysis (more are available but currently hard-coded):
    • -applySLBJetVeto: cut on top candidates with b-jet suspected to have decayed semileptonically [0 or 1, default = 1] -- do not use
    • -applyJetPLCOption: apply parton-level correction factors to jet 4-vectors ["X","A","B", "C", "D", default = "X" which means not applied] -- do not use
    • -sysType: string identifier for particular run (nominal or systematic) [default = "nominal"]

Examples of how to run the code

  • To run over everything with all four main steps steps - mc mass variation (to get slopes and intercepts), initial run (which does some extra pre-selection runs top reco as well), final (to do ABCDEF method and produce final plots) and also the final chi2 minimization taking into account signal and bkgd parameter uncertainties and correlations:
./FHAnalysisExe.exe -runAll 1 -inFileTxt FileLists/filelist_RZG_nominal.txt -isBatch 1
  • To do the final stage only (ABCD method), but not re-do the mass variation, initial stage, etc.:
./FHAnalysisExe.exe -runAnalysisFinal 1 -inFileTxt FileLists/filelist_RZG_nominal.txt -isBatch 1
  • To run the analysis to be able to get all of the extra MC signal plots (including the top reconstruction response/resolutions and b-tagging efficiency, etc), you need to do (from the beginning, i.e. not just the final step at the end):
./FHAnalysisExe.exe -runJetResponseResolution 1 -runMCSignalFullPlots 1 -inFileTxt FileLists/filelist_RZG_nominal.txt -isBatch 1

Getting the FHD3PDs to run locally

The slimmed FHD3PDs are only available on the grid for a short time, then they are auto-deleted. At the moment we keep three copies of the ntuples. One at RZG in Garching, one at MPP and one at Carleton (up in Canada where the bears are at home). Have a look at the text files in FileLists to see where they are located and copy them from there if you need them elsewhere (i.e. on you laptop). Create a separate filelist for these and use it in the run examples.

Content of the analysis package

There are several files/classes in the package
  • physics.h/.C ... this is the base class to read the ntuple. It was created with root MakeClass mechanism and should not be edited.
  • physicsFinal.h/C ... same as above but is used to be able to read the input for the final stage (based on the output ntuple from the initial stage)
  • FHAnalysisLoop.h/.C ... inherits from physics and implements the actual event loop. It can access all variables of the slimmed FHD3PD ntuple directly. This is where the base event selection and top reconstruction is done.
  • FHAnalysisLoopFinal.h/C ... inherits from physicsFinal and implements the final event loop. It also calls functions from the CombinedPlots helper class to produce final plots (with mc signal, data and the estimated background from the ABCDEF method) or background-subtracted plots
  • PlotStylesAndFits.h/C ... is a helper class for setting up 1d and 2d histograms, setting labels for plots, the fit functions used by various programs, etc.
  • PartonLevelJetCorrection.h/C ... is a larger bit of code containing everything needed to do the parton-level jet correction derivation (based on the iterative W method for light jets) - do not use
  • FHAnalysisExe.C ... the top level file implementing the main() method. It deals with the input and processes the command line arguements.
  • TopReco.h/.C ... this is a helper class to reconstruct the tops.
  • CombinedPlots.h/.C ... helper class to produce the final data plots / and data/MC comparison, ABCDEF plots, etc. It is called in FHAnalysisLoopFinal.
  • EventSelectionTools.h/.C ... all event selection is controlled here (except the pre-selection which is done at the slimming stage).
  • JetResponseResolution.h/.C ... as described above
  • LorentzVectorTools.h/.C ... for operations on TLorentzVectors, or vectors of such objects as well as iterative look-up of jet PLC values when deriving or applying the parton-level jet corrections.
  • SignalPlotLoop.h/.C ... large file in which all plots for MC signal including mass variation, jet kinematics, b-tagging, trigger, etc. are created. The reason it's all in one file is that for each event it prepares vectors of all of the objects, does top reco, etc. so that that is all in place before filling various histos.

More info

For more info you can also checkout the talks from MPI hadronic top analysis meetings:
Meeting on 23 January 2013
Meeting on 11 January 2013

Example of Program Flow Outputs to Expect

Recipe for cut value studies

Log in in Garching, go to some directory of your choice and check out the framework
svn co svn+ssh://svn.cern.ch/reps/atlasinst/Institutes/MPI/HEC/analysis/FullHadronicTopAnalysis/trunk FullHadronicTopAnalysis

Setup the ATLAS environment and ROOT:
localSetupROOT 5.34.24-x86_64-slc6-gcc48-opt

Compile the framework:
cd FullHadronicTopAnalysis
cd cmt

Now you are ready to run (locally or on batch).

On batch:
make sure ROOT is setup.
cd rzgbatch

There is a file in this dir called:

open the file and modify those two lines (close to top):
emailAddress = 'wildauer@mppmu.mpg.de'
cutSetup = '-CutVal_Njet 12 -CutVal_Jet5pT 60 -CutVal_Jet6pT 25'

The second line specifies the cut setup to be used. The values shown are default.
Note that - for the moment - one can only run one setup at a time (previous run will be overwritten).

Explanation of cut setup:
-CutVal_Njet 12 ... means use 6 to 12 jets. If you put e.g. 7 it will only consider events with 6 or 7 jets.
-CutVal_Jet5pT 60 ... pt in GeV of the first 5 jets
-CutVal_Jet6pT 25 ... pt in GeV of the 6th jet

After you modified the file type:
python ./createBatchScriptsAndPbsFiles.py

It will create several scripts and two folders (log and pbsFiles).

To run on batch all you need to do is execute first:
this will submit one job to batch which runs baseline analyses (needed for the next job(s)).

Once it is finished (you will get an email, will take several hours) you can execute
this will submit many jobs to the batch to run in parallel for all the systematics. Each job will take 1-2 hours or less.

When all these are finished execute the final step which calculates all systematics and produces latex tables aso.
There is no batch job needed for this. In the top level dir of the framework just execute

It will only take a few minutes.

Ongoing Analysis Tasks

Description of Task Priority Assigned To Status
Update ABCD correlation plots so that they are (data-signal) rather than data (to reflect expected correlation in multi-jet background) Medium Tom Completed
Perform closure tests when drawing pseudo events from 2D R32 distribution and look at pull mean and width plots Medium Tom Completed
Adjust fitting procedure for signal shape to allow for tighter cuts as per Sven's suggestion (two-step fitting process) Medium Tom In Progress
Add input argument to allow for different ABCD options (ABCD, ABCDEF, ABEF, CDEF) Medium Tom Completed
Investigate data/MC agreement in top quark pT as per Jim's suggestion and investigate effect on measurement Medium Tom Not yet begun
Investigate disagreement in template shape fits for R32 values near 2.6 for some mass samples Medium Tom Not yet begun
Produce normalized histos comparing the nominal signal vs JER systematic to show size of expected broadening of R32 Medium Tom Completed
Investigate statistical component of systematic uncertainties (using Barlow reference) Medium unassigned Began investigating through toy MC
Replace 0th order polynom fit with 1st order to investigate slope (for pull tests) Medium unassigned Not yet begun
Adjust framework to be able to run on only 5 mass points for new FS mass variation samples (involved and needs to remain backwards-compatible) Medium unassigned Not yet begun
Produce quark-gluon flavour root file to feed into JES uncertainty provided (so as to use all-hadronic ttbar-specific q-g fractions rather than defaults) Low unassigned Not yet begun
Validate adding muon four-vectors to jets by performing study on simulated ttbar events with different b-quark fragmentation if such samples are available, otherwise will likely have to discontinue adding muons in this way Medium unassigned Not yet begun
Edit | Attach | Watch | Print version | History: r34 | r30 < r29 < r28 < r27 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r28 - 2015-04-09 - ThomasMcCarthy
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback