Difference between revisions of "Ttbar analysis skeleton"

From Atlas Wiki
Jump to navigation Jump to search
Line 59: Line 59:
 
   
 
   
 
step 1)  
 
step 1)  
After reading the full event information into memory, we proceed by filling vectors
+
Reading the full event information into memory
of analysis objects (electrons, muons, photons, jets)
 
  
 
step 2)  
 
step 2)  
 +
The function fill <font color=red>AllVectors()</font> fills vectors of 'pseudo particles' (electrons, muons, photons, jets) to make the analysis more abstract and easily readable.
 +
 +
For each type of 'pseudo particle' TWO vectors of TlorentzVectors-with-index are filled. For electrons we have for example ElectronVec and GoodElectronVec.
 +
 +
 +
Then some standard plots are produced for the various analyses objects. These are the routines you
 +
can use to compute efficiencies or simply check what are the characteristics of the objects you have
 +
selected:
 +
<font color=red> electronQA(i_event), muonQA(i_event), jetQA(i_event) and EtmissQA(i_event)</font>.
  
 
step 3)  
 
step 3)  
Line 68: Line 76:
 
step 4)  
 
step 4)  
  
step 5)  
+
step 5)
 
 
  
 
== What is produced ==
 
== What is produced ==
  
 
At the end of the Ntuple, all histograms are written to file
 
At the end of the Ntuple, all histograms are written to file

Revision as of 13:35, 25 August 2005

The analysis of the Ntuples for the Rome data was done in ROOT. On this page the Analysis Skeleton is presented and instructions on how to use it.

The 3 files that make up the Analysis Skeleton

The Analysis of the Root ntuple proceeds in a very straightforward way. Inside ROOT we used MakeClass() to get the .h and .C files. These were extended to our needs and together the following three files form the analysis skeleton:

1) simpleTTbarAnalysis.h

The standard header file extended with the implementation of a few routines the user is not expected to change often. Also a new class is introduced: TLorentzVectorWIdx, which is a TLorentzVector that has an additional index that points back to it's position in the original list so we can access it's additional characteristics if we wish to do so.

2) simpleTTbarAnalysis.C

The user analysis-file where the user:
o reads in the event
o fills vectors with 'good' physics objects (leptons, jets, photons etc. passing the user's quality requirements)
o performs the top-analysis. The resulting histograms will be written out in a separate root file

3) simpleNtupleTTbarAnalysis.C

The small steering-file containing the location of the ntuples and a function that decides:
o what ntuples to process (fast/full/background simulation)
o how many events to process
o name of the output file

How to run the Analysis Skeleton in ROOT

The first step is to correctly set the location of your ntuples in the file simpleNtupleTTbarAnalysis.C. Then, to analyse the first 100 events in ntuple-set 1 (full simulation) and to store the output histograms in a file called summary_ttbar_full_test.root simply open a root session and type:

  Root>  .L simpleTTbarAnalysis.C++;

  Root>  .x  simpleNtupleTTbarAnalysis.C(1,100,"test");

When setting the number of events to "-1", all events are processed. If you want to analyze all events in ntuple-set 2 (W+4jets background) and to store the output histograms in a file called summary_wjets_full_test.root simly execute the following line:

  Root>  .x  simpleNtupleTTbarAnalysis.C(2,-1,"test");

Structure of the program

The '.C'-file is documented and should speak for itself. Nevertheless it is always nice to get a little bit more information on the logic behind the program:

step 1) Reading the full event information into memory

step 2) The function fill AllVectors() fills vectors of 'pseudo particles' (electrons, muons, photons, jets) to make the analysis more abstract and easily readable.

For each type of 'pseudo particle' TWO vectors of TlorentzVectors-with-index are filled. For electrons we have for example ElectronVec and GoodElectronVec.


Then some standard plots are produced for the various analyses objects. These are the routines you can use to compute efficiencies or simply check what are the characteristics of the objects you have selected: electronQA(i_event), muonQA(i_event), jetQA(i_event) and EtmissQA(i_event).

step 3)

step 4)

step 5)

What is produced

At the end of the Ntuple, all histograms are written to file