Difference: AtlasDataAnalysis (1 vs. 161)

Revision 1612015-07-16 - GavinKirby

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Est_12_120.eps
<-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
Line: 1086 to 1086
 
Changed:
<
<
>
>
  • CutWordListv9.ods: Cutmasks for tth, WH and ZH version 9 – NB this is obsolete with respect to GlaNtp tag 72! Follow bit spec in GlaNtp's steering files, NOT this spreadsheet.
 
META FILEATTACHMENT attachment="FlatStack_1.eps" attr="" comment="" date="1248433975" name="FlatStack_1.eps" path="FlatStack_1.eps" size="92277" stream="FlatStack_1.eps" tmpFilename="/usr/tmp/CGItemp38062" user="GavinKirby" version="1"
META FILEATTACHMENT attachment="FlatStack_2.eps" attr="" comment="" date="1248437170" name="FlatStack_2.eps" path="FlatStack_2.eps" size="111640" stream="FlatStack_2.eps" tmpFilename="/usr/tmp/CGItemp42033" user="GavinKirby" version="1"

Revision 1602014-05-20 - GavinKirby

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Est_12_120.eps
<-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
Line: 31 to 31
  The key feature of a neural network is its ability to be "trained" to recognise patterns in data, allowing high efficiency algorithms to be developed with relative ease. This training is typically done with sample data which has been generated artificially, resulting in an algorithm that is very effective at recognising certain patterns in data sets. The only shortcoming is the danger of "over-training" an ANN, meaning that it becomes overly discriminating and searches across a narrower range of patterns than is desired (one countermeasure is to add extra noise to training data).
Changed:
<
<
Computentp :- Simply running the code as above will result in less than optimal Neural Net training. The training procedure requires equal numbers of events from signal and from background (in this case it results in half of the signal events being used in training, half for testing). However, the above code will take events from the background signal samples in proportion to the file sizes - these result in proportions not quite in accordance with physical ratios. As the Neural Net weights results according to information about the cross-section of the process and so on stored in the tree, the final result is that while the outputs are weighted in a physical fashion, the Net is not trained to the same ratios, and so is not optimally trained. To solve this problem, Computentp is used to mix together all background and signal samples., and assign TrainWeights to them, so that the events are weighted correctly for the Net's training.
>
>
Computentp – Simply running the code as above will result in less than optimal Neural Net training. The training procedure requires equal numbers of events from signal and from background (in this case it results in half of the signal events being used in training, half for testing). However, the above code will take events from the background signal samples in proportion to the file sizes - these result in proportions not quite in accordance with physical ratios. As the Neural Net weights results according to information about the cross-section of the process and so on stored in the tree, the final result is that while the outputs are weighted in a physical fashion, the Net is not trained to the same ratios, and so is not optimally trained. To solve this problem, Computentp is used to mix together all background and signal samples and assign TrainWeights to them, so that the events are weighted correctly for the Net's training.
 

Preparing samples for the Neural Net

Line: 45 to 45
  These cross-sections are for the overall process, at √s = 7 TeV.
Changed:
<
<
The ttH sample cross-sections are provided for the overall process - the MC is divided into two samples with W+ and W- independent of one another. These two samples are merged before being put through the ANN.
>
>
The ttH sample cross-sections are provided for the overall process – the MC is divided into two samples with W+ and W- independent of one another. These two samples are merged before being put through the ANN.
 
Changed:
<
<
The tt samples were initially generated to produce the equivalent of 75 fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8 fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40fb-1. Divide this by 40 to get the number of events in 1fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 - so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy - simply divide by 40.8.... You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.
>
>
The tt samples were initially generated to produce the equivalent of 75 fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8 fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8 fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40 fb-1. Divide this by 40 to get the number of events in 1 fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 – so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy – simply divide by 40.8. You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.
  **IMPORTANT** The Filter Efficiency for these samples was calculated based on a no-pileup sample. The filter is generator level, and one of the things it will cut an event for is not enough jets. However, pileup adds jets, but these are added well after the filter. The net result is that a number of events that failed the filter would have passed, had the pileup been added earlier in the process. This means the filter efficiency (and thus the cross-sections) are incorrect, by a yet to determined amount....

Revision 1592014-04-29 - GavinKirby

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Est_12_120.eps
<-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
Line: 19 to 19
  this will set up the environment for working in a v17 release of Athena, and it will make available the GlaNtp commands in the current working environment.
Changed:
<
<
Note that an overview of the GlaNtp framework, made in doxygen, may be found here.
>
>
Note that an overview of the GlaNtp framework, made in doxygen, may be found here.
 

Project Aims

Revision 1582014-04-04 - GavinKirby

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Est_12_120.eps
<-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
Line: 47 to 47
  The ttH sample cross-sections are provided for the overall process - the MC is divided into two samples with W+ and W- independent of one another. These two samples are merged before being put through the ANN.
Changed:
<
<
The tt samples were initially generated to produce the equivalent of 75fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40fb-1. Divide this by 40 to get the number of events in 1fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 - so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy - simply divide by 40.8.... You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.
>
>
The tt samples were initially generated to produce the equivalent of 75 fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8 fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40fb-1. Divide this by 40 to get the number of events in 1fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 - so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy - simply divide by 40.8.... You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.
  **IMPORTANT** The Filter Efficiency for these samples was calculated based on a no-pileup sample. The filter is generator level, and one of the things it will cut an event for is not enough jets. However, pileup adds jets, but these are added well after the filter. The net result is that a number of events that failed the filter would have passed, had the pileup been added earlier in the process. This means the filter efficiency (and thus the cross-sections) are incorrect, by a yet to determined amount....

Revision 1572014-03-24 - GavinKirby

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Est_12_120.eps
<-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
Line: 17 to 17
 
source ./setup_glantp.sh -v 00-00-72 -b /afs/phas.gla.ac.uk/user/a/atlasmgr/physics/GlaNtp/ -s GlaNtp\
Packagev17 -a 17.0.5.5.2
Changed:
<
<
this will make available the GlaNtp commands in the current working environment.
>
>
this will set up the environment for working in a v17 release of Athena, and it will make available the GlaNtp commands in the current working environment.
  Note that an overview of the GlaNtp framework, made in doxygen, may be found here.

Revision 1562014-03-21 - GavinKirby

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Est_12_120.eps
<-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
Line: 6 to 6
 

Computentp, Neural Nets and MCLIMITS

Changed:
<
<
This page has been substantially rewritten (and remains a work in progress) to focus just on the information required for a successful run of the Computentp and Neural Net package, to deliver exclusions. For information on results obtained using inputs created in v12 of athena, please refer to the archive. This page also describes how to run on GlaNtp - the version of the code set up for use in Glasgow, with no CDF dependencies. To use the previous version of the code (there are some important differences) refer to r93 and earlier.
>
>
This page has been substantially rewritten (and remains a work in progress) to focus just on the information required for a successful run of the Computentp and Neural Net package, to deliver exclusions. For information on results obtained using inputs created in v12 of Athena, please refer to the archive. This page also describes how to run on GlaNtp – the version of the code set up for use in Glasgow, with no CDF dependencies. To use the previous version of the code (there are some important differences) refer to r93 and earlier.
 
Changed:
<
<
To set up the current version of GlaNtp, create a symbolic link to the setup script:
>
>
To set up the current version of GlaNtp on Glasgow AFS, create a symbolic link to the setup script:
 
ln -s setup_glantp.sh /afs/phas.gla.ac.uk/user/a/atlasmgr/physics/GlaNtp/setup_glantp.sh
Line: 19 to 19
  this will make available the GlaNtp commands in the current working environment.
Added:
>
>
Note that an overview of the GlaNtp framework, made in doxygen, may be found here.
 

Project Aims

Revision 1552014-03-11 - GavinKirby

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Est_12_120.eps
<-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
Line: 8 to 8
  This page has been substantially rewritten (and remains a work in progress) to focus just on the information required for a successful run of the Computentp and Neural Net package, to deliver exclusions. For information on results obtained using inputs created in v12 of athena, please refer to the archive. This page also describes how to run on GlaNtp - the version of the code set up for use in Glasgow, with no CDF dependencies. To use the previous version of the code (there are some important differences) refer to r93 and earlier.
Added:
>
>
To set up the current version of GlaNtp, create a symbolic link to the setup script:

ln -s setup_glantp.sh /afs/phas.gla.ac.uk/user/a/atlasmgr/physics/GlaNtp/setup_glantp.sh

then set up the environment:

source ./setup_glantp.sh -v 00-00-72 -b /afs/phas.gla.ac.uk/user/a/atlasmgr/physics/GlaNtp/ -s GlaNtp\
Packagev17 -a 17.0.5.5.2

this will make available the GlaNtp commands in the current working environment.

 

Project Aims

Revision 1542013-12-17 - AndrewPickford

Line: 1 to 1
 
META TOPICPARENT name="WebHome"
Est_12_120.eps
<-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
Line: 199 to 199
 
  • The BASEBATCHDIR is now set automatically to the working directory when the script is executed.

Getting a copy of GlaNtp

Changed:
<
<
  • Set yourself up for access into SVN (using a proxy to access SVN, as described here)

>
>
  • Set yourself up for access into SVN (using a proxy to access SVN, as described here)

 source /data/ppe01/sl5x/x86_64/grid/glite-ui/latest/external/etc/profile.d/grid-env.sh svn-grid-proxy-init

  • Create the directory where you want to set up your copy, and get a copy of the setup script (afraid the best place to get this script is from the scripts area of the GlaNtp code you're checking out. I am aware of the tautology of getting a script from the package so you can get the package, but that's the way it is. Just download this one file and go from there - you can delete it later when you've got the whole thing. (The code below assumes you're checking out from the trunk. Generally better to check out a specific tag, but the latest tag and the trunk should be the same, so you should just be able to copy and paste the below code.)

Line: 207 to 207
 cd /home/ahgemmell/GlaNtp svn co https://ppesvn.physics.gla.ac.uk/svn/atlas/GlaNtp/trunk/scripts/GlaNtpScript.sh
Changed:
<
<
  • You then need to set up your environment ready for the validation. This is done with the setup_glantp.sh script, which is available within the NNFitter package. (Yes, I know - another case of getting the code before getting the code...) You run the script (which is also used for debugging the code) with

    source setup_glantp.sh
>
>
  • You then need to set up your environment ready for the validation. This is done with the setup_glantp.sh script, which is available within the NNFitter package. (Yes, I know - another case of getting the code before getting the code...) You run the script (which is also used for debugging the code) with

    source setup_glantp.sh
 
  • Make a directory to hold the code itself:

    mkdir GlaNtpPackage

  • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. setup_glantp.sh sets up the environment variables so the validation data can be found.

  • You now run the script in the parent directory of GlaNtpPackage, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

    ./GlaNtpScript.sh SVN 00-00-10
Line: 251 to 251
 

Variables used by the GlaNtp package

Changed:
<
<
The variables used by the package can be divided into two sets. The first are those variables that are constant throughout the sample - the 'global' variables (e.g. cross-section of the sample). These can be specified in their own tree, where they will be recorded (and read by GlaNtp) once only. If desired, these variables can be defined within the main tree of the input file - however, then they will be recorded once per event, and read in once per event. This is obviously a bit wasteful, but for historical reasons it can be done. To determine which of these behaviours you use, set LoadGlobalOnEachEvent in FlatPlotter and FlatReader to 1 for the events to be read in on an event-by-event basis, or 0 to be read in once from the global tree (or from the first event only). For more information on this switch, refer to this. The other variables are those that change on an event-by-event basis. These variables include both the variables we are going to train the Neural Net on (more information relevant to those variables is given in the relevant section of this TWiki), and other useful variables, such as filter flags (that tell GlaNtp whether an event is sensible or not). All of these variables are listed in the file VariableTreeToNTPATLASttHSemiLeptonic-v15.txt
>
>
The variables used by the package can be divided into two sets. The first are those variables that are constant throughout the sample - the 'global' variables (e.g. cross-section of the sample). These can be specified in their own tree, where they will be recorded (and read by GlaNtp) once only. If desired, these variables can be defined within the main tree of the input file - however, then they will be recorded once per event, and read in once per event. This is obviously a bit wasteful, but for historical reasons it can be done. To determine which of these behaviours you use, set LoadGlobalOnEachEvent in FlatPlotter and FlatReader to 1 for the events to be read in on an event-by-event basis, or 0 to be read in once from the global tree (or from the first event only). For more information on this switch, refer to this. The other variables are those that change on an event-by-event basis. These variables include both the variables we are going to train the Neural Net on (more information relevant to those variables is given in the relevant section of this TWiki), and other useful variables, such as filter flags (that tell GlaNtp whether an event is sensible or not). All of these variables are listed in the file VariableTreeToNTPATLASttHSemiLeptonic-v15.txt
  The file maps logical values to their branch/leaf. The tree can be the global tree or the event tree.
Line: 327 to 327
 

Specifying files as Signal/Background or as real data

Changed:
<
<
The input datasets need to be specified in a number of peripheral files, so that the ANN can distinguish between signal and background MC files or real data files. There is only one place where data files need to be specified differently to MC - FlatAtlastthPhysicsProc1.txt - and if you are running the fit with data and not pseudodata, this is determined through one single flag, set in genemflat - see here. Errors for each process also need to be specified - how this is done is detailed in that section. The relevant files for adding processes are atlastth_histlist_flat-v15.txt, AtlasttHRealTitles.txt, FlatAtlastthPhysicsProc1.txt and FlatSysSetAtlastth1.txt. There are also some files that are produced through the action of genemflat_batch_Complete2_SL5.sh. At several points in these files, there are common structures for inputting data, relating to ListParameter and ColumnParameter:
>
>
The input datasets need to be specified in a number of peripheral files, so that the ANN can distinguish between signal and background MC files or real data files. There is only one place where data files need to be specified differently to MC - FlatAtlastthPhysicsProc1.txt - and if you are running the fit with data and not pseudodata, this is determined through one single flag, set in genemflat - see here. Errors for each process also need to be specified - how this is done is detailed in that section. The relevant files for adding processes are atlastth_histlist_flat-v15.txt, AtlasttHRealTitles.txt, FlatAtlastthPhysicsProc1.txt and FlatSysSetAtlastth1.txt. There are also some files that are produced through the action of genemflat_batch_Complete2_SL5.sh. At several points in these files, there are common structures for inputting data, relating to ListParameter and ColumnParameter:
 
ListParameter <tag> <onoff> <colon-separated-parameter-list>
Line: 691 to 691
  Computentp120.log
Changed:
<
<
The log file from Computentp -- more information about the information contained within it is found here
>
>
The log file from Computentp -- more information about the information contained within it is found here
 
  • stackedinput/StackInput/tth120

  • Line: 756 to 756
      OnOff : 1 Process : 2.19001e-314 SorB : 0
    Changed:
    <
    <
    These reflect the parameters as set in TMVAsteer.txt (created via genemflat_batch_Complete2_SL5_sh). Note that the number following 'Process' is nonsense (and in later releases of GlaNtp is not present) - that parameter is there in the steering file simply to make it more human-readable. However, the code still tries to read it in, but can only handle doubles - the net result varies from run to run, but can always be safely ignored.
  • >
    >
    These reflect the parameters as set in TMVAsteer.txt (created via genemflat_batch_Complete2_SL5_sh). Note that the number following 'Process' is nonsense (and in later releases of GlaNtp is not present) - that parameter is there in the steering file simply to make it more human-readable. However, the code still tries to read it in, but can only handle doubles - the net result varies from run to run, but can always be safely ignored.
  •   templates/out/FlatPlotter${prefix}.out

    Revision 1532012-05-16 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 477 to 477
      This is just for the plotting scripts (but if you're training on variables, you should probably want them plotted as well...). The number after the SpecifyHist string (in this case 0) needs to be different for each entry. OnOff decides whether the variable is to be plotted or not, and must be specified. Min and Max specifiy the range of the x-axis (for energy / mass, this is in units of MeV), and unless specified defaults to 0 and 200 respectively. NBin specifies the number of bins in the histogram, with the default of 50.
    Deleted:
    <
    <

    ATLAStthDiscrToLabel.txt

    ListParameter   DiscrToLabel:7  1 my_NN_BJet12_M:M^{BJet}_{12}\(MeV/c^{2}),MeV/c^{2}

    This is to make the axes titles in the plots easier on the eye. The ordering of variables and the numbering matches that in VariableTreeToNTPATLASttHSemiLeptonic-v16.txt. The final string is composed of two parts. The first is the variable name, and then after the semicolon comes the version you want on the plot axis, using root's LaTeX markup.

     

    TMVAvarset.txt (genemflat_batch_Complete2_SL5.sh)

    This is for the templating - a nice and simple list of all the variables you want to train on. Simples.

    Line: 495 to 489
      Called by the FlatStack files. It allows for more instructive axes labels.
    ListParameter   DiscrToLabel:7  1 my_NN_BJet12_M:M^{BJet}_{12}\(MeV/c^{2}),MeV/c^{2}
    Changed:
    <
    <
    The number number following DiscrToLabel must match that given in VariableTreeToNTPATLASttHSemiLeptonic-v16.txt. Then comes the real variable name - the name that the code deals with. Following the semicolon is the x-axis label, written in LaTeX style formatting. The backslash denotes a space in the axis label (the parameter must be one long continuous stream). The bit after the comma is optional, but if used specifies the units for the y-axis (e.g. # events per MeV).
    >
    >
    The number number following DiscrToLabel must match that given in VariableTreeToNTPATLASttHSemiLeptonic-v16.txt. Then comes the real variable name - the name that the code deals with. Following the semicolon is the x-axis label, written in LaTeX style formatting. The backslash denotes a space in the axis label (the parameter must be one long continuous stream). The bit after the comma is optional, but if used specifies the units for the y-axis (e.g. # events per MeV). These labels are written using Root's LaTeX markup.
     

    Setting Systematic Uncertainties

    Revision 1522012-05-04 - RichardStDenis

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 1079 to 1079
     
    Added:
    >
    >
     
    META FILEATTACHMENT attachment="FlatStack_1.eps" attr="" comment="" date="1248433975" name="FlatStack_1.eps" path="FlatStack_1.eps" size="92277" stream="FlatStack_1.eps" tmpFilename="/usr/tmp/CGItemp38062" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="FlatStack_2.eps" attr="" comment="" date="1248437170" name="FlatStack_2.eps" path="FlatStack_2.eps" size="111640" stream="FlatStack_2.eps" tmpFilename="/usr/tmp/CGItemp42033" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" attr="" comment="" date="1248437178" name="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" path="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" size="17392" stream="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" tmpFilename="/usr/tmp/CGItemp41936" user="GavinKirby" version="1"
    Line: 1088 to 1090
     
    META FILEATTACHMENT attachment="Report-FINAL.pdf" attr="" comment="" date="1254221251" name="Report-FINAL.pdf" path="Report-FINAL.pdf" size="207168" stream="Report-FINAL.pdf" tmpFilename="/usr/tmp/CGItemp39289" user="ChrisCollins" version="1"
    META FILEATTACHMENT attachment="FlatStackParams.txt" attr="" comment="Description of the parameters that can be set in the plotting control." date="1331136419" name="FlatStackParams.txt" path="FlatStackParams.txt" size="4980" stream="FlatStackParams.txt" tmpFilename="/usr/tmp/CGItemp30631" user="AdrianBuzatu" version="1"
    META FILEATTACHMENT attachment="CutWordListv8.ods" attr="" comment="CutWordList version 8" date="1336040985" name="CutWordListv8.ods" path="CutWordListv8.ods" size="75287" stream="CutWordListv8.ods" tmpFilename="/usr/tmp/CGItemp33345" user="AdrianBuzatu" version="1"
    Added:
    >
    >
    META FILEATTACHMENT attachment="CutWordListv9.ods" attr="" comment="Cutmasks for tth, WH and ZH version 9" date="1336123064" name="CutWordListv9.ods" path="CutWordListv9.ods" size="75540" stream="CutWordListv9.ods" tmpFilename="/usr/tmp/CGItemp9152" user="RichardStDenis" version="1"

    Revision 1512012-05-03 - AdrianBuzatu

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 1087 to 1087
     
    META FILEATTACHMENT attachment="score_12_120.eps" attr="" comment="" date="1248437206" name="score_12_120.eps" path="score_12_120.eps" size="29195" stream="score_12_120.eps" tmpFilename="/usr/tmp/CGItemp41862" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="Report-FINAL.pdf" attr="" comment="" date="1254221251" name="Report-FINAL.pdf" path="Report-FINAL.pdf" size="207168" stream="Report-FINAL.pdf" tmpFilename="/usr/tmp/CGItemp39289" user="ChrisCollins" version="1"
    META FILEATTACHMENT attachment="FlatStackParams.txt" attr="" comment="Description of the parameters that can be set in the plotting control." date="1331136419" name="FlatStackParams.txt" path="FlatStackParams.txt" size="4980" stream="FlatStackParams.txt" tmpFilename="/usr/tmp/CGItemp30631" user="AdrianBuzatu" version="1"
    Added:
    >
    >
    META FILEATTACHMENT attachment="CutWordListv8.ods" attr="" comment="CutWordList version 8" date="1336040985" name="CutWordListv8.ods" path="CutWordListv8.ods" size="75287" stream="CutWordListv8.ods" tmpFilename="/usr/tmp/CGItemp33345" user="AdrianBuzatu" version="1"

    Revision 1502012-04-11 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 632 to 632
     
    • 120 is the min. Higgs mass

    • 120 is the max. Higgs mass

    • 6 is the number of jets in the events you want to run over (i.e. this is an exclusive 6 jet analysis - events with 7 jets are excluded)

    Changed:
    <
    <
    • Higgs controls which cutMask and invertWord you wish to use, as specified in TreeSpecATLAStth-v16_global.txt. Current options are 'Higgs' and 'NoJetCut'

    >
    >
    • Higgs controls which cutMask and invertWord you wish to use, as specified in TreeSpecATLAStth-v16_global.txt. Current options are 'Higgs' and 'NoCuts'

     
    • 00-00-45 is the release of GlaNtp that you are using for your run

    • /data/atlas07/stdenis/v16-r13/bjet2 is the directory where the input ntuples are located (having my_failEvent bits set for ( 65536 for >0 sensible states) and ( 131072 for 4 tight b-tagged jets)

    • agemmell@cern.ch is your email address, so the batch system can let you know when the jobs are done

    Revision 1492012-04-11 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 614 to 614
     

    teststeerFlatReaderATLAStthSemileptonic-v16.txt

    GeneralParameter string 1 ControlRegion=Higgs
    Changed:
    <
    <
    Specifies which cutMask and invertWord are to be used from TreeSpecATLAStth_global.txt. This might be soon able to be altered from the command-line at runtime - check the section on running to see.
    >
    >
    Specifies which cutMask and invertWord are to be used from TreeSpecATLAStth_global.txt. This is changed at runtime with one of the parameters
     

    Running

    To run the script, first log into the batch system (ppepbs).

    The genemflat_batch_Complete2_SL5.sh (NNFitter 00-00-21 version) script can be executed with the command (the last argument can be optional):

    Changed:
    <
    <
    ./genemflat_batch_Complete2_SL5.sh 12 400 1.04 tth 120 120 6 00-00-45 /data/atlas07/stdenis/v16-r13/bjet2 agemmell@cern.ch srv001 ahgemmell ppepc23.physics.gla.ac.uk
    >
    >
    ./genemflat_batch_Complete2_SL5.sh 12 400 1.04 tth 120 120 6 Higgs 00-00-45 /data/atlas07/stdenis/v16-r13/bjet2 agemmell@cern.ch srv001 ahgemmell ppepc23.physics.gla.ac.uk
      These options denote:
    Line: 632 to 632
     
    • 120 is the min. Higgs mass

    • 120 is the max. Higgs mass

    • 6 is the number of jets in the events you want to run over (i.e. this is an exclusive 6 jet analysis - events with 7 jets are excluded)

    Added:
    >
    >
    • Higgs controls which cutMask and invertWord you wish to use, as specified in TreeSpecATLAStth-v16_global.txt. Current options are 'Higgs' and 'NoJetCut'

     
    • 00-00-45 is the release of GlaNtp that you are using for your run

    • /data/atlas07/stdenis/v16-r13/bjet2 is the directory where the input ntuples are located (having my_failEvent bits set for ( 65536 for >0 sensible states) and ( 131072 for 4 tight b-tagged jets)

    • agemmell@cern.ch is your email address, so the batch system can let you know when the jobs are done

    Revision 1482012-04-11 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 473 to 473
     

    teststeerFlatPlotterATLAStthSemileptonic-v16.txt

    Changed:
    <
    <
    ColumnParameter   SpecifyHist:my_NN_BJetWeight_Jet1    0  OnOff=1:Min=-5:Max=10
    >
    >
    ColumnParameter   SpecifyHist:my_NN_BJetWeight_Jet1    0  OnOff=1:Min=-5:Max=10:NBin=25
     
    Changed:
    <
    <
    This is just for the plotting scripts (but if you're training on variables, you should probably want them plotted as well...). The number after the SpecifyHist string (in this case 0) needs to be different for each entry. The following string is fairly self-explanatory.
    >
    >
    This is just for the plotting scripts (but if you're training on variables, you should probably want them plotted as well...). The number after the SpecifyHist string (in this case 0) needs to be different for each entry. OnOff decides whether the variable is to be plotted or not, and must be specified. Min and Max specifiy the range of the x-axis (for energy / mass, this is in units of MeV), and unless specified defaults to 0 and 200 respectively. NBin specifies the number of bins in the histogram, with the default of 50.
     

    ATLAStthDiscrToLabel.txt

    Line: 487 to 487
      This is for the templating - a nice and simple list of all the variables you want to train on. Simples.
    Added:
    >
    >

    FlatStackInputSteer.txt / FlatStackInputSteerLog.txt

    Parameters for the templating and the making of the stacked plots. Individual paramters are commented within the file itself.

    ATLAStthDiscrToLabel.txt

    Called by the FlatStack files. It allows for more instructive axes labels.

    ListParameter   DiscrToLabel:7  1 my_NN_BJet12_M:M^{BJet}_{12}\(MeV/c^{2}),MeV/c^{2}
    The number number following DiscrToLabel must match that given in VariableTreeToNTPATLASttHSemiLeptonic-v16.txt. Then comes the real variable name - the name that the code deals with. Following the semicolon is the x-axis label, written in LaTeX style formatting. The backslash denotes a space in the axis label (the parameter must be one long continuous stream). The bit after the comma is optional, but if used specifies the units for the y-axis (e.g. # events per MeV).
     

    Setting Systematic Uncertainties

    The fitting code can take into account two different types of systematic uncertainty - rate and shape. The basic method to obtain both these uncertainties is that you should make your input samples for both your nominal sample, and for the two bounds of a given error (e.g. Initial State Radiation, ISR). Repeat this for all of the errors you wish to consider. The rate systematic uncertainty is simply how the number of events change that pass your preselection cuts etc. (you can only consider this, if you like). To obtain the shape uncertainty, you should pass each of the resulting datasets through the ANN (up to and including the templating, so that you have ANN results for both the nominal results, and as a result of varying each background). These ANN outputs can then be used to produce the rate uncertainties based on their integrals, before being normalised to the nominal cross-section so as to find the shape uncertainty - a measure of the percentage change in the bin-by-bin distribution for each error.

    Line: 576 to 586
     

    Filters

    Changed:
    <
    <
    It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts - general cleaning cuts and the like. (There was a previous version of our inputs where we also required 'sensible states' - for each candidate event we required it to reconstruct tops and Ws with vaguely realistic masses. However - this is a Neural Net analysis, so it has been decided to remove these cuts - they will after all in effect be reintroduced by the net itself if they would have been useful, and by not applying them ourselves, we are passing more information to the net.) We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in TMVAsteer.txt (created in genemflat_batch_Complete2.sh) (not currently used, as explained below) and TreeSpecATLAStth.txt.
    >
    >
    It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts - general cleaning cuts and the like. (There was a previous version of our inputs where we also required 'sensible states' - for each candidate event we required it to reconstruct tops and Ws with vaguely realistic masses. However - this is a Neural Net analysis, so it has been decided to remove these cuts - they will after all in effect be reintroduced by the net itself if they would have been useful, and by not applying them ourselves, we are passing more information to the net.) We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in TMVAsteer.txt (created in genemflat_batch_Complete2.sh) (not currently used, as explained below) and TreeSpecATLAStth_global.txt.
     

    VariableTreeToNTPATLASttHSemiLeptonic-v16.txt

    Line: 584 to 594
      This sets the variable we wish to use in our filter - it interfaces with the cutMask and invertWord as specified in TreeSpecATLAStth.txt. Note that depending on the number of jets you wish to run your analysis on (set as a command line argument during the running of the script), this is edited with genemflat.
    Changed:
    <
    <

    TreeSpecATLAStth.txt

    >
    >

    TreeSpecATLAStth_global.txt

      In TreeSpecATLAStth.txt, we establish the filters which control what is used for the templating, and Computentp:

    ListParameter SpecifyVariable:Higgs:cutMask 1 Type:int:Default:3
    ListParameter SpecifyVariable:Higgs:invertWord 1 Type:int:Default:0
    Changed:
    <
    <
    InvertWord is used to invert the relevant bits (in this case no bits are inverted) before the cut from cutMask is applied. The cutMask tells the filter which bits we care about (we use a binary filter). So, for example, if cutMask is set to 6 (110 in binary), we are telling the filter that we wish the second and third bit to be equal to one in cutWord - we don't care about the first bit.
    >
    >
    InvertWord is used to invert the relevant bits (in this case no bits are inverted) before the cut from cutMask is applied. The cutMask tells the filter which bits we care about (we use a binary filter). So, for example, if cutMask is set to 6 (110 in binary), we are telling the filter that we wish the second and third bit to be equal to one in cutWord - we don't care about the first bit. It is possible to specify multiple options of the cutMask and invertWord in the same file, distinguished by the word after SpecifyVariable (in this case Higgs). Which ones are used are determined by teststeerFlatReaderATLAStthSemileptonic-v16.txt.
     

    TMVAsteer.txt (genemflat_batch_Complete2.sh)

    Line: 601 to 611
      **If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.**
    Added:
    >
    >

    teststeerFlatReaderATLAStthSemileptonic-v16.txt

    GeneralParameter string 1 ControlRegion=Higgs
    Specifies which cutMask and invertWord are to be used from TreeSpecATLAStth_global.txt. This might be soon able to be altered from the command-line at runtime - check the section on running to see.
     

    Running

    To run the script, first log into the batch system (ppepbs).

    Revision 1472012-03-22 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 457 to 457
     

    Setting which variables to plot and train on

    Changed:
    <
    <
    You need to let GlaNtp know where tha variables you are interested in are. It is also possible to merely plot some variables you're interested in without adding them to the training just yet. You need to provide GlaNtp with the location of the variables in all cases - this is done in VariableTreeToNTPATLASttHSemiLeptonic-v16.txt and TreeSpecATLAStth-v16_event.txt (or TreeSpecATLAStth-v16_global.txt as applicable).
    >
    >
    You need to let GlaNtp know where the variables you are interested in are. It is also possible to merely plot some variables you're interested in without adding them to the training just yet. You need to provide GlaNtp with the location of the variables in all cases - this is done in VariableTreeToNTPATLASttHSemiLeptonic-v16.txt and TreeSpecATLAStth-v16_event.txt (or TreeSpecATLAStth-v16_global.txt as applicable).
     

    VariableTreeToNTPATLASttHSemiLeptonic-v16.txt

    Line: 475 to 475
     
    ColumnParameter   SpecifyHist:my_NN_BJetWeight_Jet1    0  OnOff=1:Min=-5:Max=10
    Changed:
    <
    <
    This is just for the plotting scripts (but if you're training on variables, you should probably want them plotted as well...). The number after the SpecifyHist string (in this case 0) needs to be different for each entry. The following string is fairly self-explanatory
    >
    >
    This is just for the plotting scripts (but if you're training on variables, you should probably want them plotted as well...). The number after the SpecifyHist string (in this case 0) needs to be different for each entry. The following string is fairly self-explanatory.

    ATLAStthDiscrToLabel.txt

    ListParameter   DiscrToLabel:7  1 my_NN_BJet12_M:M^{BJet}_{12}\(MeV/c^{2}),MeV/c^{2}

    This is to make the axes titles in the plots easier on the eye. The ordering of variables and the numbering matches that in VariableTreeToNTPATLASttHSemiLeptonic-v16.txt. The final string is composed of two parts. The first is the variable name, and then after the semicolon comes the version you want on the plot axis, using root's LaTeX markup.

     

    TMVAvarset.txt (genemflat_batch_Complete2_SL5.sh)

    Revision 1462012-03-21 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 599 to 599
      To run the script, first log into the batch system (ppepbs).
    Changed:
    <
    <
    The genemflat_batch_Complete2_SL5.sh (NNFitter 00-00-21 version) script can be executed with the command:
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 6 00-00-17 /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed
    >
    >
    The genemflat_batch_Complete2_SL5.sh (NNFitter 00-00-21 version) script can be executed with the command (the last argument can be optional):
    ./genemflat_batch_Complete2_SL5.sh 12 400 1.04 tth 120 120 6 00-00-45 /data/atlas07/stdenis/v16-r13/bjet2 agemmell@cern.ch srv001 ahgemmell ppepc23.physics.gla.ac.uk
      These options denote:

    • 12 is the run number

    Changed:
    <
    <
    • 480 is the jobstart - this is a potentially redundant parameter to do with the PBS queue.

    • 1.0 is the luminosity that will be normalised to (in fb^-1).

    >
    >
    • 400 is the jobstart - this is a potentially redundant parameter to do with the PBS queue.

    • 1.04 is the luminosity that will be normalised to (in fb^-1).

     
    • tth is the process type - aim to develop this to incorporate other processes, e.g. lbb

    • 120 is the min. Higgs mass

    • 120 is the max. Higgs mass

    • 6 is the number of jets in the events you want to run over (i.e. this is an exclusive 6 jet analysis - events with 7 jets are excluded)

    Changed:
    <
    <
    • 00-00-17 is the release of GlaNtp that you are using for your run

    • /data/atlas07/ahgemmell/NTuple-v15-30Aug is the directory where the input ntuples are located (having my_failEvent bits set for ( 65536 for >0 sensible states) and ( 131072 for 4 tight b-tagged jets)

    Once the job has been completed you will receive an email summarising the outcome.

    >
    >
    • 00-00-45 is the release of GlaNtp that you are using for your run

    • /data/atlas07/stdenis/v16-r13/bjet2 is the directory where the input ntuples are located (having my_failEvent bits set for ( 65536 for >0 sensible states) and ( 131072 for 4 tight b-tagged jets)

    • agemmell@cern.ch is your email address, so the batch system can let you know when the jobs are done

    • srv001 is the Neurobayes server you want to run (if you're running a TMVA run, this is less important. There are 10 servers, 001-010. Servers 001-005 are on ppepc23, servers 006-010 are on ppepc39. This is related to the last argument you can pass to the script.

    • ahgemmell is your Glasgow username, used for Neurobayes servers

    • ppepc23.physics.gla.ac.uk is the machine your Neurobayes server is located on. If you don't provide this argument, it defaults to ppepc23.

      Running:

    Revision 1452012-03-20 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 845 to 845
     NLOAccep : -0.0627014 0.727165 pdf : -0.0106981 0.99073 xsec : 0.00620052 0.923289
    Changed:
    <
    <
    These values come from a Minuit fit, so should be taken with a pinch of salt. The 'Value' compares the results of the pseudoexperiment for all the various errors, and compares it to what you told it. E.g. if you said you had 1fb-1 for luminosity, but the pseudodata suggested a luminosity of 1.01, then Value would be 0.01 - you are 'out' by 1%. 'Error' says how much of your proposed error you have 'used' - if you say you have a 10% error on your luminosity, but the fit suggests at 1% error, then 'Error' would be 0.10 - you are using 10% of your 'allowed' error.
  • >
    >
    These values come from a Minuit fit, so should be taken with a pinch of salt. The 'Value' compares the results of the pseudoexperiment for all the various errors, and compares it to what you told it. E.g. if you said you had 1fb-1 for luminosity, but the pseudodata suggested a luminosity of 1.01, then Value would be 0.01 - you are 'out' by 1%. 'Error' says how much of your proposed error you have 'used' - if you say you have a 10% error on your luminosity, but the fit suggests at 1% error, then 'Error' would be 0.10 - you are using 10% of your 'allowed' error. These are calculated against data, seeing how much the various backgrounds are allowed to vary according to the systematics before they are no longer compatible with data.
  •   drivetestFlatFitAtlastth.rootUnscaledTemplates.root.

    Revision 1442012-03-07 - AdrianBuzatu

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    Changed:
    <
    <
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    >
    >
    Est_12_120.eps
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
     
    Line: 122 to 122
     

    Overview of the process

    Changed:
    <
    <
    >
    >
     
    Line: 209 to 209
     
    • You then need to set up your environment ready for the validation. This is done with the setup_glantp.sh script, which is available within the NNFitter package. (Yes, I know - another case of getting the code before getting the code...) You run the script (which is also used for debugging the code) with

      source setup_glantp.sh
    • Make a directory to hold the code itself:

      mkdir GlaNtpPackage

    Changed:
    <
    <
    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. setup_glantp.sh sets up the environment variables so the validation data can be found.

    >
    >
    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. setup_glantp.sh sets up the environment variables so the validation data can be found.

     
    • You now run the script in the parent directory of GlaNtpPackage, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

      ./GlaNtpScript.sh SVN 00-00-10
    Changed:
    <
    <
    • This will check out everything, and run a few simple validations - the final output should look like this (i.e. don't be worried that not everything seems to have passed validation!):

    >
    >
    • This will check out everything, and run a few simple validations - the final output should look like this (i.e. don't be worried that not everything seems to have passed validation!):

     
    HwwFlatFitATLAS Validation succeeded
    Done with core tests
    Line: 247 to 247
     Result of FlatAscii validation: OK Result of FlatAscii_global validation: OK Result of FlatTRntp validation: OK
    Changed:
    <
    <

    >
    >
     

    Variables used by the GlaNtp package

    Line: 268 to 268
     
    ListParameter   EvInfoTree:1  1 NN_BJetWeight_Jet1:NN_BJetWeight_Jet1/NN_BJetWeight_Jet1
    
    Deleted:
    <
    <
    If you want a parameter to be found in the output, best to list it here....
     
    Added:
    >
    >
    If you want a parameter to be found in the output, best to list it here....
     

    Calculating my_integral (The Magic Formula)

    Changed:
    <
    <
    1. Check the critical formula: The most important forumla is the first thing to check:

    weight*= GetSF()*GetXsect()*GetBrFrac()*GetFilterEff()*GetLumiForType()/GetNGenForType(); my_brFrac my_filterEff my_xSect my_lumiForType my_nGenForType

    >
    >
    1. Check the critical formula: The most important forumla is the first thing to check:
     
    Added:
    >
    >
    weight*= GetSF()*GetXsect()*GetBrFrac()*GetFilterEff()*GetLumiForType()/GetNGenForType(); my_brFrac my_filterEff my_xSect my_lumiForType my_nGenForType
      You need a scale factor: my_sf?
    Added:
    >
    >
    2. Check the stuff that FlatReader uses. This is documented in GlaNtp/NtpAna/test/VariableTreeToNtp.txt. Variable Tree to Ntp is the one that maps logical values to their physical branch/leaf. Anything prefaced with FlatTupleVar needs to be specified or is useful to specify.
     
    Changed:
    <
    <
    2. Check the stuff that FlatReader uses. This is documented in GlaNtp/NtpAna/test/VariableTreeToNtp.txt. Variable Tree to Ntp is the one that maps logical values to their physical branch/leaf. Anything prefaced with FlatTupleVar needs to be specified or is useful to specify.

    Values are divided in to those that can change on each event (kept in the "ev" tree) and those that are the same for a file (kept in the "global" tree). As you know you can set the tree names. You really should create a global tree for the global file values now. We have procrastinated on this a long time.

    >
    >
    Values are divided in to those that can change on each event (kept in the "ev" tree) and those that are the same for a file (kept in the "global" tree). As you know you can set the tree names. You really should create a global tree for the global file values now. We have procrastinated on this a long time.
     
    Changed:
    <
    <
    There you see # # Values that are required from global # GeneralParameter string 1 FlatTupleVar/BrFrac=globalInfo/BrFrac GeneralParameter string 1 FlatTupleVar/FilterEff=globalInfo/FilterEff GeneralParameter string 1 FlatTupleVar/Fraction=Fraction/Fraction GeneralParameter string 1 FlatTupleVar/Integral=Integral/Integral GeneralParameter string 1 FlatTupleVar/XSect=globalInfo/Xsect
    >
    >
    There you see # # Values that are required from global # GeneralParameter string 1 FlatTupleVar/BrFrac=globalInfo/BrFrac GeneralParameter string 1 FlatTupleVar/FilterEff=globalInfo/FilterEff GeneralParameter string 1 FlatTupleVar/Fraction=Fraction/Fraction GeneralParameter string 1 FlatTupleVar/Integral=Integral/Integral GeneralParameter string 1 FlatTupleVar/XSect=globalInfo/Xsect
     
    Changed:
    <
    <
    # This specifies the name of the leaf for the cutmask and invert word. #Again, these are global values for a file. GeneralParameter string 1 CutMaskString=cutMask GeneralParameter string 1 InvertWordString=invertWord
    >
    >
    # This specifies the name of the leaf for the cutmask and invert word. #Again, these are global values for a file. GeneralParameter string 1 CutMaskString=cutMask GeneralParameter string 1 InvertWordString=invertWord
     
    Changed:
    <
    <
    This confirms that Fraction and Integral are needed. my_fraction my_integral
    >
    >
    This confirms that Fraction and Integral are needed. my_fraction my_integral
     
    Changed:
    <
    <
    Here are the ones that are required for ev: # # Values that are required from ev # GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll GeneralParameter string 1 FlatTupleVar/Entry=evInfo/ientry GeneralParameter string 1 FlatTupleVar/Event=evInfo/eventNumber GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E GeneralParameter string 1 FlatTupleVar/LumiForType=evInfo/lumiForType GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW GeneralParameter string 1 FlatTupleVar/NGenForType=evInfo/nGenForType GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand GeneralParameter string 1 FlatTupleVar/Run=evInfo/runNumber GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight GeneralParameter string 1 FlatTupleVar/cutWord=evInfo/cutWord GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type GeneralParameter string 1 FlatTupleVar/sf=evInfo/sf

    Some can be used with the default values that FlatTuple gives: GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type

    Some are ok to leave if you dont want to use it: there are switches that turn on the use of these GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight

    >
    >
    Here are the ones that are required for ev: # # Values that are required from ev # GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll GeneralParameter string 1 FlatTupleVar/Entry=evInfo/ientry GeneralParameter string 1 FlatTupleVar/Event=evInfo/eventNumber GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E GeneralParameter string 1 FlatTupleVar/LumiForType=evInfo/lumiForType GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW GeneralParameter string 1 FlatTupleVar/NGenForType=evInfo/nGenForType GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand GeneralParameter string 1 FlatTupleVar/Run=evInfo/runNumber GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight GeneralParameter string 1 FlatTupleVar/cutWord=evInfo/cutWord GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type GeneralParameter string 1 FlatTupleVar/sf=evInfo/sf
     
    Changed:
    <
    <
    Some are useful for plotting: GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets
    >
    >
    Some can be used with the default values that FlatTuple gives: GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type
     
    Added:
    >
    >
    Some are ok to leave if you dont want to use it: there are switches that turn on the use of these GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight
     
    Changed:
    <
    <
    I think you have my_Eventtype as channel my_failEvent as cutword
    >
    >
    Some are useful for plotting: GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets
     
    Added:
    >
    >
    I think you have my_Eventtype as channel my_failEvent as cutword
     

    Variables that must be listed in the event (not the global) tree

    Line: 477 to 410
     ColumnParameter SignalList 1 ttH=1 ColumnParameter DataList 1 Data=11
    Changed:
    <
    <
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList, SignalList or DataList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but it must be sequential, running from 0 to n-1 (where you have n samples) - apart from for DataList entries (as shown above). It also does not need to correspond to my_Eventtype, however, for completeness' sake within this file I have set it as such. The number at the end of this declaration (tt0j=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples). It must match up with the numbers provided in atlastth_histlist_flat-v16.txt and AtlasttHRealTitles.txt so that processes and data can be matched to the various individual files.
    >
    >
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList, SignalList or DataList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but it must be sequential, running from 0 to n-1 (where you have n samples) - apart from for DataList entries (as shown above). It also does not need to correspond to my_Eventtype, however, for completeness' sake within this file I have set it as such. The number at the end of this declaration (tt0j=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples). It must match up with the numbers provided in atlastth_histlist_flat-v16.txt and AtlasttHRealTitles.txt so that processes and data can be matched to the various individual files.
     
    ColumnParameter PseudoDataList 0 tt0j=0
    Line: 732 to 667
     Determines if you have a separate global tree or not. If you do not, set this equal to one, and the relevant global values will be read out anew for each event from the event tree.

    Important notes about running parts of the code (not a complete run - for debugging, replotting etc)

    Changed:
    <
    <
    1. When you want to only make stacked input plots (e.g. when you've decided you want to change the scale of one plot), you must also redo the templating. Just redoing the stacked inputs on their own does nothing new. The histograms for the stacked inputs are booked during the templating.
    >
    >
    1. When you want to only make stacked input plots (e.g. when you've decided you want to change the scale of one plot), you must also redo the templating. Just redoing the stacked inputs on their own does nothing new. The histograms for the stacked inputs are booked during the templating.
     

    Where the output is stored

    Line: 805 to 738
      OnOff : 1 Process : 2.19001e-314 SorB : 0
    Changed:
    <
    <
    These reflect the parameters as set in TMVAsteer.txt (created via genemflat_batch_Complete2_SL5_sh). Note that the number following 'Process' is nonsense (and in later releases of GlaNtp is not present) - that parameter is there in the steering file simply to make it more human-readable. However, the code still tries to read it in, but can only handle doubles - the net result varies from run to run, but can always be safely ignored.
  • >
    >
    These reflect the parameters as set in TMVAsteer.txt (created via genemflat_batch_Complete2_SL5_sh). Note that the number following 'Process' is nonsense (and in later releases of GlaNtp is not present) - that parameter is there in the steering file simply to make it more human-readable. However, the code still tries to read it in, but can only handle doubles - the net result varies from run to run, but can always be safely ignored.
  •   templates/out/FlatPlotter${prefix}.out
    Line: 896 to 827
     
    Channel: SemiLeptonic(0) Process: eFake(10)
    ib= 1 0.88551 1.50073 wgt=      0.88551 wgtE=     1.50073 wgtEsum2= 2.2522
    Changed:
    <
    <
    The first number is the bin number being considered. wgt is the weighted integral of that bin, and all preceding bins (i.e. the total integral up to that point)
    >
    >
    The first number is the bin number being considered. wgt is the weighted integral of that bin, and all preceding bins (i.e. the total integral up to that point)
      Immediately following this is the record of generating the first pseudoexperiment. It lists the weighted contents of each of the bins of a neural net histogram, assuming background only, with poisson fluctuations. It then gives the integral of this pseudoexperiment:
    Changed:
    <
    <
    Pseudodata Integral: 11506
    For obvious reasons this should be similar to the projected background yield.
    >
    >
    Pseudodata Integral: 11506
    For obvious reasons this should be similar to the projected background yield.
      Later on, at the start of the fitting we also have the following:
    Line: 916 to 845
     NLOAccep : -0.0627014 0.727165 pdf : -0.0106981 0.99073 xsec : 0.00620052 0.923289
    Changed:
    <
    <
    These values come from a Minuit fit, so should be taken with a pinch of salt. The 'Value' compares the results of the pseudoexperiment for all the various errors, and compares it to what you told it. E.g. if you said you had 1fb-1 for luminosity, but the pseudodata suggested a luminosity of 1.01, then Value would be 0.01 - you are 'out' by 1%. 'Error' says how much of your proposed error you have 'used' - if you say you have a 10% error on your luminosity, but the fit suggests at 1% error, then 'Error' would be 0.10 - you are using 10% of your 'allowed' error.
  • >
    >
    These values come from a Minuit fit, so should be taken with a pinch of salt. The 'Value' compares the results of the pseudoexperiment for all the various errors, and compares it to what you told it. E.g. if you said you had 1fb-1 for luminosity, but the pseudodata suggested a luminosity of 1.01, then Value would be 0.01 - you are 'out' by 1%. 'Error' says how much of your proposed error you have 'used' - if you say you have a 10% error on your luminosity, but the fit suggests at 1% error, then 'Error' would be 0.10 - you are using 10% of your 'allowed' error.
  •   drivetestFlatFitAtlastth.rootUnscaledTemplates.root.
    Line: 949 to 876
      ttH /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/ttH-v16.root 120 1 556 556 1 1
    Changed:
    <
    <
    Some of the values are established through steerComputentp.txt in the line
    ListParameter  Process:ttH       1 Filename:/data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/ttH-v16.root:File:120:IntLumi:1.0
    >
    >
    Some of the values are established through steerComputentp.txt in the line
    ListParameter  Process:ttH       1 Filename:/data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/ttH-v16.root:File:120:IntLumi:1.0
     
    Changed:
    <
    <
    1. Process Name / File Name : The mapping between these two is established in steerComputentp.txt
    2. File : The number which Computentp uses to differentiate between the various files it's processing - established in steerComputentp.txt
    3. IntLumi : The luminosity which Computentp is aiming to simulate by applying 'weight' to your samples - established in steerComputentp.txt
    4. Integral : The number of events you would expect that sample to have within your desired luminosity
    5. Alpha : This should equal TrainWeight
    >
    >
    1. Process Name / File Name : The mapping between these two is established in steerComputentp.txt
    2. File : The number which Computentp uses to differentiate between the various files it's processing - established in steerComputentp.txt
    3. IntLumi : The luminosity which Computentp is aiming to simulate by applying 'weight' to your samples - established in steerComputentp.txt
    4. Integral : The number of events you would expect that sample to have within your desired luminosity
    5. Alpha : This should equal TrainWeight
     

    Limitations

    Line: 1108 to 1024
     WtEvents:01 Passing Mask Selection for Higgs : 2.59829
    Changed:
    <
    <
    These entries correspond to the yields - the numbers of events expected in our specified luminosity.
    >
    >
    These entries correspond to the yields - the numbers of events expected in our specified luminosity.
      If you want to get more debugging from Computentp, then run it with another argument (doesn't matter what the argument is - in the example below it's simply 1):
    Line: 1146 to 1062
     
    META FILEATTACHMENT attachment="Est_12_120.eps" attr="" comment="" date="1248437193" name="Est_12_120.eps" path="Est_12_120.eps" size="16358" stream="Est_12_120.eps" tmpFilename="/usr/tmp/CGItemp41869" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="score_12_120.eps" attr="" comment="" date="1248437206" name="score_12_120.eps" path="score_12_120.eps" size="29195" stream="score_12_120.eps" tmpFilename="/usr/tmp/CGItemp41862" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="Report-FINAL.pdf" attr="" comment="" date="1254221251" name="Report-FINAL.pdf" path="Report-FINAL.pdf" size="207168" stream="Report-FINAL.pdf" tmpFilename="/usr/tmp/CGItemp39289" user="ChrisCollins" version="1"
    Added:
    >
    >
    META FILEATTACHMENT attachment="FlatStackParams.txt" attr="" comment="Description of the parameters that can be set in the plotting control." date="1331136419" name="FlatStackParams.txt" path="FlatStackParams.txt" size="4980" stream="FlatStackParams.txt" tmpFilename="/usr/tmp/CGItemp30631" user="AdrianBuzatu" version="1"

    Revision 1432012-03-05 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 121 to 121
     In the script used to make the webpage showing the results, the reference to H6AONN5MEMLP is hardwired. It should become a argument. It is the name of the method you give TMVA in the training, and so if it changes in one you should be able to change in the other

    Overview of the process

    Added:
    >
    >
     
    1. Computentp takes in the original root files from ${ntuple_area}, and is steered based on steerComputentp.txt (created by genemflat_batch) . Computentp calculates the TrainWeight etc based on nGenForType etc, stored within the root files - no external hard-coding (I think).

    Revision 1422012-02-16 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 969 to 969
     

    Limitations

    • It must also be run on a PBS machine because of the structure of the genemflat_batch_Complete2_SL5.sh file (i.e. PBS commands).

    Deleted:
    <
    <
    • The file <nop>teststeerFlatPlotterATLAStthSemileptonic.txt appears to contain an invalid range for the pseudorapidity (max. value = pi)

     
    • If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&

    • It would be desirable to adapt the code to be able to process different signals, e.g. lbb.

    Revision 1412012-02-13 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 1033 to 1033
     At any point you can check that the a given steering file can be read by GlaNtp by using testSteerrv5.exe - found inside your GlaNtp package:
    Changed:
    <
    <
    ./${GLANTPDIR}/bin/Linux2.6-GCC_4_1/testSteerrv5.exe
    >
    >
    testSteerrv5.exe
     
    Deleted:
    <
    <
    Please note that the
    Linux2.6-GCC_4_1
    may change depending on your system architecture. It is set during the installation of GlaNtp, and can be checked with the command
    echo $BFARCH
     Another debugging script checks you have defined the processes correctly:

    Revision 1402012-02-13 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 519 to 519
      FirstEvent and LastEvent allow you to specify a range of events to run over - this is liable only to be useful during debugging. (Note that these parameters are currently turned off). NEvent gives the maximum number of events processed for any given sample - take care with this, if you are running a particularly large sample through the code....
    Added:
    >
    >

    Setting which variables to plot and train on

    You need to let GlaNtp know where tha variables you are interested in are. It is also possible to merely plot some variables you're interested in without adding them to the training just yet. You need to provide GlaNtp with the location of the variables in all cases - this is done in VariableTreeToNTPATLASttHSemiLeptonic-v16.txt and TreeSpecATLAStth-v16_event.txt (or TreeSpecATLAStth-v16_global.txt as applicable).

    VariableTreeToNTPATLASttHSemiLeptonic-v16.txt

    ListParameter   EvInfoTree:1  1 my_NN_BJetWeight_Jet1:my_NN_BJetWeight_Jet1/my_NN_BJetWeight_Jet1

    This information must be provided for every variable you're interested in in any way. It provides the variable name, and a map to that variable name from the input tree. Note that the number after EvInfoTree must be unique for each entry (EvInfoTree:2, EvInfoTree:3, etc)

    TreeSpecATLAStth-v16_event.txt

    ListParameter    SpecifyVariable:my_NN_BJetWeight_Jet1  1 Type:double

    This is another compulsory piece of information for GlaNtp - telling it which tree the information is in (event or global) and the event type.

    teststeerFlatPlotterATLAStthSemileptonic-v16.txt

    ColumnParameter   SpecifyHist:my_NN_BJetWeight_Jet1    0  OnOff=1:Min=-5:Max=10

    This is just for the plotting scripts (but if you're training on variables, you should probably want them plotted as well...). The number after the SpecifyHist string (in this case 0) needs to be different for each entry. The following string is fairly self-explanatory

    TMVAvarset.txt (genemflat_batch_Complete2_SL5.sh)

    This is for the templating - a nice and simple list of all the variables you want to train on. Simples.

     

    Setting Systematic Uncertainties

    The fitting code can take into account two different types of systematic uncertainty - rate and shape. The basic method to obtain both these uncertainties is that you should make your input samples for both your nominal sample, and for the two bounds of a given error (e.g. Initial State Radiation, ISR). Repeat this for all of the errors you wish to consider. The rate systematic uncertainty is simply how the number of events change that pass your preselection cuts etc. (you can only consider this, if you like). To obtain the shape uncertainty, you should pass each of the resulting datasets through the ANN (up to and including the templating, so that you have ANN results for both the nominal results, and as a result of varying each background). These ANN outputs can then be used to produce the rate uncertainties based on their integrals, before being normalised to the nominal cross-section so as to find the shape uncertainty - a measure of the percentage change in the bin-by-bin distribution for each error.

    Revision 1392012-02-07 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 410 to 410
     

    atlastth_hislist_flat-v15.txt

    Changed:
    <
    <
    This file provides a map for the ANN, giving it the output file names (and in which directory they are to be stored, relative to ${template_area} - set in genemflat) and the tree structure where the final result of the ANN will be stored in the output (in the example below, the output file is ${template_area}/11602-filter.root, and the result graph will be FlatPlotter/NNScoreAny_0_0_0 0). The number to the left of the file name indicates which process it is - this is established using a file called TMVAsteer.txt, which is created through the running of genemflat_batch_Complete2_SL5.sh), and corresponds to the variable my_Eventtype in the input files (this can also be influenced in genemflat). Thus it is possible to assign multiple files to the same process (e.g. a file for the electron stream and muon stream are both assigned to Data), by giving them a common number at the start of the line.
    >
    >
    This file provides a map for the ANN, giving it the output file names (and in which directory they are to be stored, relative to ${template_area} - set in genemflat) and the tree structure where the final result of the ANN will be stored in the output (in the example below, the output file is ${template_area}/11602-filter.root, and the result graph will be FlatPlotter/NNScoreAny_0_0_0 0). The number to the left of the file name indicates which process it is - this is also used in the files AtlasttHRealTitles.txt and FlatAtlastthPhysicsProc1.txt, and needs to be consistent with them), and corresponds to the variable my_Eventtype in the input files (this can also be influenced in genemflat). Thus it is possible to assign multiple files to the same process (e.g. a file for the electron stream and muon stream are both assigned to Data), by giving them a common number at the start of the line.
     
    0 116102-filter.root    FlatPlotter/NNScoreAny_0_0_0 0
    Line: 424 to 424
     

    AtlasttHRealTitles.txt

    Changed:
    <
    <
    The list of signal/background processes can be found in AtlasttHRealTitles.txt (where the names are specified and associated with numbers). At present these are:
    >
    >
    The list of signal/background processes can be found in AtlasttHRealTitles.txt (where the names are specified and associated with process numbers - these process/number associations need to be the same as in atlastth_hislist_flat-v15.txt and FlatAtlastthPhysicsProc1.txt). At present these are:
     
    Process_0_0 TTjj:Semileptonic
    Line: 443 to 443
     
    GeneralParameter  string      1 FileString=my_Eventtype
    Changed:
    <
    <
    Indicates the leaf in the input file which shows which process the event belongs to - this is the same number as we've specified as in atlastth_hislist_flat-v15.txt and AtlasttHRealTitles.txt.
    >
    >
    Indicates the leaf in the input file which shows which process the event belongs to - this is the same number as we specify later in genemflat for steerComputentp.txt - it does not have to be consistent with the process numbers as defined in atlastth_hislist_flat-v15.txt, AtlasttHRealTitles.txt and FlatAtlastthPhysicsProc1.txt.
     
    ColumnParameter   File         1 OnOff=1:SorB=1:Process=tth
    Line: 474 to 474
     ColumnParameter SignalList 1 ttH=1 ColumnParameter DataList 1 Data=11
    Changed:
    <
    <
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList, SignalList or DataList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but it must be sequential, running from 0 to n-1 (where you have n samples) - apart from for DataList entries (as shown above). It also does not need to correspond to my_Eventtype, however, for completeness' sake within this file I have set it as such. The number at the end of this declaration (tt0j=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples). It must match up with the numbers provided in atlastth_histlist_flat-v16.txt so that processes and data can be matched to the various individual files.
    >
    >
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList, SignalList or DataList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but it must be sequential, running from 0 to n-1 (where you have n samples) - apart from for DataList entries (as shown above). It also does not need to correspond to my_Eventtype, however, for completeness' sake within this file I have set it as such. The number at the end of this declaration (tt0j=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples). It must match up with the numbers provided in atlastth_histlist_flat-v16.txt and AtlasttHRealTitles.txt so that processes and data can be matched to the various individual files.
     
    ColumnParameter PseudoDataList 0 tt0j=0
    Line: 1001 to 1001
     Before trying debugging, you should set up the environment in your terminal (when running the code normally, this is done automatically by tr${run}.job). This can be done by sourcing setup_glantp.sh, which automates setting of the relevant paths - remember to specify the release number of GlaNtp that you have in your area:
    Changed:
    <
    <
    source setup_glantp.sh 00-00-17
    >
    >
    source setup_glantp.sh 00-00-32
     

    At any point you can check that the a given steering file can be read by GlaNtp by using testSteerrv5.exe - found inside your GlaNtp package:

    Line: 1012 to 1012
      Please note that the
    Linux2.6-GCC_4_1
    may change depending on your system architecture. It is set during the installation of GlaNtp, and can be checked with the command
    echo $BFARCH
    Added:
    >
    >
    Another debugging script checks you have defined the processes correctly:

    testFlatProcessInforv5.exe FlatAtlastthPhysicsProc1.txt
    

    The output from the near the end of this is the important bit:

    Table of what category each process is falling under
    IP :       PN :       LB : B : D : S : P : O
     0 :       tt : t#bar{t} : 1 : 0 : 0 : 1 : 0
    

    IP is something or other (need to ask Rick to remind me), PN is process name, LB is the label of the process. B, D and S are whether or not the process is Background, Data or Signal respectively. P is whether or not that process is included in the manufacture of Pseudoexperiments, and O is the order in which that process is plotted.

     To debug the code further, two things need to be done - first, all the debug switches need to be turned on, and then you need to restrict the number of events to ~10 (for a Computentp run this will still manage to generate a 2 GB log file!). All of these switches are found in teststeerFlatReaderATLAStthSemileptonic.txt (the progenitor for all FlatReader files) and steerComputentp.txt (created by genemflat). The debug switches are:
    GeneralParameter bool 1 Debug=0
    GeneralParameter bool 1 DebugGlobalInfo=0
    
    

    Revision 1382012-02-06 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 702 to 702
     
    GeneralParameter bool   1 LoadGlobalOnEachEvent=0
    Determines if you have a separate global tree or not. If you do not, set this equal to one, and the relevant global values will be read out anew for each event from the event tree.
    Added:
    >
    >

    Important notes about running parts of the code (not a complete run - for debugging, replotting etc)

    1. When you want to only make stacked input plots (e.g. when you've decided you want to change the scale of one plot), you must also redo the templating. Just redoing the stacked inputs on their own does nothing new. The histograms for the stacked inputs are booked during the templating.
     

    Where the output is stored

    Revision 1372012-01-09 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 778 to 778
      templates/out/FlatPlotter${prefix}.out
    Changed:
    <
    <
    The output from the screen from the templating stage, where the Neural Net scores are actually produced, detailing errors etc.
    >
    >
    (Where ${prefix} is the process name.) The output from the screen from the templating stage, where the Neural Net scores are actually produced, detailing errors etc. It also contains a more detailed breakdown of the event numbers and the yields (event numbers in the specified luminosity) at various points:

    ****** FlatReader Info Start ******
    Entries examined : 2884
    Events:00 Seen : 2884
    Events:00 Seen Any : 2884
    Events:01 Passing Mask Selection for Higgs : 1800
    Events:01 Passing Mask Selection for Higgs Any : 1800
    Events:02 Passing DilPairType Selection for ALL : 1800
    Events:02 Passing DilPairType Selection for ALL Any : 1800
    Events:30 Passing Selection : 1800
    Events:30 Passing Selection Any : 1800
    Events:40 Passing Bad Lepton Energy Filter : 1800
    Events:40 Passing Bad Lepton Energy Filter Any : 1800
    Events:9999 Final Selection : 1800
    Events:9999 Final Selection Any : 1800
    No precomputed weight: Weight Difference not checked : 148336
    UPEvents: 00 Seen : 2884
    UPEvents: 00 SeenAny : 2884
    UPEvents:30 Passing Selection : 1800
    UPEvents:30 Passing SelectionAny : 1800
    UPWtEvents: 00 Seen : -2115.31
    UPWtEvents: 00 SeenAny : -2115.31
    UPWtEvents:30 Passing Selection : -1318.36
    UPWtEvents:30 Passing SelectionAny : -1318.36
    WtEvents:00 Seen : -2115.31
    WtEvents:00 Seen Any : -2115.31
    WtEvents:01 Passing Mask Selection for Higgs : -1318.36
    WtEvents:01 Passing Mask Selection for Higgs Any : -1318.36
    WtEvents:02 Passing DilPairType Selection for ALL : -1318.36
    WtEvents:02 Passing DilPairType Selection for ALL Any : -1318.36
    WtEvents:30 Passing Selection : -1318.36
    WtEvents:30 Passing Selection Any : -1318.36
    WtEvents:40 Passing Bad Lepton Energy Filter : -1318.36
    WtEvents:40 Passing Bad Lepton Energy Filter Any : -1318.36
    WtEvents:9999 Final Selection : -1318.36
    WtEvents:9999 Final Selection Any : -1318.36
    ****** FlatReader Info End ******
    

    In 'Events', the first number, the entries examined, is the number of entries in the MC sample being passed to the Neural Net. The Final Selection is the number of entries that make it past your cutmask etc to actually be passed to the Neural Net. The intervening numbers are at this stage rather meaningless. 'UPWtEvents' can be safely ignored in its entirety. 'WtEvents' provides the same numbers as in 'Events', but this time with Scale Weights etc applied - these are now the yields.

     
  • templates/ttH120/

  • Revision 1362011-12-20 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 389 to 389
      To set up a neural net for the analysis of a particular kind of data it is necessary to train it with sample data; this process will adjust the "weights" on each variable that the neural net analyses in the ntuple, in order to optimise performance. These weights can then be viewed as a scatter plot in ROOT.
    Changed:
    <
    <

    Specifying files as Signal/Background

    >
    >

    Specifying files as Signal/Background or as real data

     
    Changed:
    <
    <
    The input datasets need to be specified in a number of peripheral files, so that the ANN can distinguish between signal and background files. Errors for each process also need to be specified - how this is done is detailed in that section. The relevant files for adding processes are atlastth_histlist_flat-v15.txt, AtlasttHRealTitles.txt, FlatAtlastthPhysicsProc1.txt and FlatSysSetAtlastth1.txt. There are also some files that are produced through the action of genemflat_batch_Complete2_SL5.sh. At several points in these files, there are common structures for inputting data, relating to ListParameter and ColumnParameter:
    >
    >
    The input datasets need to be specified in a number of peripheral files, so that the ANN can distinguish between signal and background MC files or real data files. There is only one place where data files need to be specified differently to MC - FlatAtlastthPhysicsProc1.txt - and if you are running the fit with data and not pseudodata, this is determined through one single flag, set in genemflat - see here. Errors for each process also need to be specified - how this is done is detailed in that section. The relevant files for adding processes are atlastth_histlist_flat-v15.txt, AtlasttHRealTitles.txt, FlatAtlastthPhysicsProc1.txt and FlatSysSetAtlastth1.txt. There are also some files that are produced through the action of genemflat_batch_Complete2_SL5.sh. At several points in these files, there are common structures for inputting data, relating to ListParameter and ColumnParameter:
     
    ListParameter <tag> <onoff> <colon-separated-parameter-list>
    Line: 410 to 410
     

    atlastth_hislist_flat-v15.txt

    Changed:
    <
    <
    This file provides a map for the ANN, giving it the output file names (and in which directory they are to be stored, relative to ${template_area} - set in genemflat) and the tree structure where the final result of the ANN will be stored in the output (in the example below, the output file is ${template_area}/11602-filter.root, and the result graph will be FlatPlotter/NNScoreAny_0_0_0 0). The number to the left of the file name indicates which process it is - this is established using a file called TMVAsteer.txt, which is created through the running of genemflat_batch_Complete2_SL5.sh), and corresponds to the variable my_Eventtype in the input files (this can also be influenced in genemflat).
    >
    >
    This file provides a map for the ANN, giving it the output file names (and in which directory they are to be stored, relative to ${template_area} - set in genemflat) and the tree structure where the final result of the ANN will be stored in the output (in the example below, the output file is ${template_area}/11602-filter.root, and the result graph will be FlatPlotter/NNScoreAny_0_0_0 0). The number to the left of the file name indicates which process it is - this is established using a file called TMVAsteer.txt, which is created through the running of genemflat_batch_Complete2_SL5.sh), and corresponds to the variable my_Eventtype in the input files (this can also be influenced in genemflat). Thus it is possible to assign multiple files to the same process (e.g. a file for the electron stream and muon stream are both assigned to Data), by giving them a common number at the start of the line.
     
    0 116102-filter.root    FlatPlotter/NNScoreAny_0_0_0 0
    Line: 471 to 471
     This file contains various parameters:

    ColumnParameter BackgroundList 0 tt0j=0
    Changed:
    <
    <
    ColumnParameter SignalList 1 ttH=1
    >
    >
    ColumnParameter SignalList 1 ttH=1 ColumnParameter DataList 1 Data=11
     
    Changed:
    <
    <
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList or SignalList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but it must be sequential, running from 0 to n-1 (where you have n samples). It also does not need to correspond to my_Eventtype, however, for completeness' sake within this file I have set it as such. The number at the end of this declaration (ttjj=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples).
    >
    >
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList, SignalList or DataList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but it must be sequential, running from 0 to n-1 (where you have n samples) - apart from for DataList entries (as shown above). It also does not need to correspond to my_Eventtype, however, for completeness' sake within this file I have set it as such. The number at the end of this declaration (tt0j=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples). It must match up with the numbers provided in atlastth_histlist_flat-v16.txt so that processes and data can be matched to the various individual files.
     
    ColumnParameter PseudoDataList 0 tt0j=0
    Line: 690 to 691
      ***NOTE*** The flags DoTraining and DoTemplates had previously (until release 00-00-21) been set on the command line. They were moved from the command line when the other flags were introduced.
    Added:
    >
    >
    If you wish the fit to be run using data and not pseudodata, then the flag is set in FlatFitSteer.txt, which is created in genemflat:
    GeneralParameter  bool        1 PseudoData=1
    
    If this flag is set to 1 then pseudodata is used, 0 causes data to be used.
     

    teststeerFlatPlotterATLAStthSemileptonic-v16.txt and teststeerFlatReaderATLAStthSemileptonic-v16.txt

    GeneralParameter bool   1 LoadGlobalOnEachEvent=0

    Revision 1352011-12-20 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 796 to 796
     templates/fit/out_120.log

    This is the paydirt - the output to screen from the fitting stage. Look at the end of this file, and you shall see the exclusions generated by all the pseudoexperiments performed on the ANN output, in a little table, also giving +/- 1/2 sigma results.

    Added:
    >
    >
    From here you can also get a record of the yields of the various processes considered by the Neural Net (the number of events expected for each process after applying all our preselection cuts, cutmasks, etc in our specified luminosity):
    Print out Yield ================
      Channel   & tt       & ttH     & ttbb    & Wlnu     & Wbb     & Wc      & Wcc     & st_Wt   & st_schan & st_tchan & eFake    & Data\\
    
    SemiLeptonic& 2154.475 &   2.598 &  49.313 & 4140.901 & 160.634 & 498.841 & 322.464 &  83.942 &   3.265  &  18.288  & 4069.197 & 10616.000
           sum  & 2154.475 &   2.598 &  49.313 & 4140.901 & 160.634 & 498.841 & 322.464 &  83.942 &   3.265  &  18.288  & 4069.197 & 10616.000
    ======================================================
    NSig 2.59829 NBkg 11501.3 NData 10616
    ======================================================
    End Print out
    

    Just above this is information of the weighted histograms of the various processes (weighted such that the integral equals the yield).

    Channel: SemiLeptonic(0) Process: eFake(10)
    ib= 1 0.88551 1.50073 wgt=      0.88551 wgtE=     1.50073 wgtEsum2= 2.2522
    
    The first number is the bin number being considered. wgt is the weighted integral of that bin, and all preceding bins (i.e. the total integral up to that point)

    Immediately following this is the record of generating the first pseudoexperiment. It lists the weighted contents of each of the bins of a neural net histogram, assuming background only, with poisson fluctuations. It then gives the integral of this pseudoexperiment:

    Pseudodata Integral: 11506
    For obvious reasons this should be similar to the projected background yield.

    Later on, at the start of the fitting we also have the following:

    = After fit ==========================================
    Parameters fit: 7
    Name        Value        Error
    =========== ============ =========
    LumiTrigLepID : 0.0140496 0.903865
    JES : 0.00324431 0.980996
    Met : 0.00131664 0.99884
    btag : 0.0197434 0.649849
    NLOAccep : -0.0627014 0.727165
    pdf : -0.0106981 0.99073
    xsec : 0.00620052 0.923289
    
    These values come from a Minuit fit, so should be taken with a pinch of salt. The 'Value' compares the results of the pseudoexperiment for all the various errors, and compares it to what you told it. E.g. if you said you had 1fb-1 for luminosity, but the pseudodata suggested a luminosity of 1.01, then Value would be 0.01 - you are 'out' by 1%. 'Error' says how much of your proposed error you have 'used' - if you say you have a 10% error on your luminosity, but the fit suggests at 1% error, then 'Error' would be 0.10 - you are using 10% of your 'allowed' error.
     
  • drivetestFlatFitAtlastth.rootUnscaledTemplates.root.

  • Revision 1342011-12-19 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 433 to 433
     Process_3_0 QCD:Semileptonic
    Added:
    >
    >

    FlatStackInputSteer.txt / FlatStackInputSteerLog.txt

    These files create the stacked input plots. FlatStackInputSteer.txt creates plots with a linear y-scale, FlatStackInputSteerLog.txt is with a log y-scale. Comments are within the file to explain the meaning of a few parameters.

     

    genemflat_batch_Complete2_SL5.sh

    genemflat creates the file TMVAsteer.txt, which sets a number of parameters for the running of the ANN - the constraints on the events, the precise Neural Net structure and so on - for establishing the input files, we are interested in only a couple of these parameters:

    Line: 699 to 703
     The log file from Computentp -- more information about the information contained within it is found here
  • Added:
    >
    >
    stackedinput/StackInput/tth120

    A collection of root files and eps files showing pretty stacked plots of all the input variables.

  •  trees/NNInputs_120.root

    The output from Computentp - it is a copy of all of the input datasets, with the addition of the variables TrainWeight and weight.

    Revision 1332011-12-19 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 756 to 756
      Process : 2.19001e-314 SorB : 0
    Changed:
    <
    <
    These reflect the parameters as set in TMVAsteer.txt (created via genemflat_batch_Complete2_SL5_sh). Note that the number following 'Process' is nonsense - that parameter is there in the steering file simply to make it more human-readable. However, the code still tries to read it in, but can only handle doubles - the net result varies from run to run, but can always be safely ignored.
    >
    >
    These reflect the parameters as set in TMVAsteer.txt (created via genemflat_batch_Complete2_SL5_sh). Note that the number following 'Process' is nonsense (and in later releases of GlaNtp is not present) - that parameter is there in the steering file simply to make it more human-readable. However, the code still tries to read it in, but can only handle doubles - the net result varies from run to run, but can always be safely ignored.
     
  • templates/out/FlatPlotter${prefix}.out

  • Revision 1322011-12-16 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 414 to 414
     
    0 116102-filter.root    FlatPlotter/NNScoreAny_0_0_0 0
    Added:
    >
    >
    The file in general expects each line to contain an integer, 2 strings and another integer, separated by spaces. If the integers are less than one, then that line is ignored. Therefore, so long as you are careful to exclude spaces from your strings, and stick to the string/integer formula, it is possible to place comments in this file:

    -1 -------------------------------------------------------- x -1
    -1 ttH x -1
    -1 -------------------------------------------------------- x -1
    
     

    AtlasttHRealTitles.txt

    The list of signal/background processes can be found in AtlasttHRealTitles.txt (where the names are specified and associated with numbers). At present these are:

    Line: 937 to 945
     
    runFlatReader FlatReaderATLAStthNoNN.txt /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/ttH-v16.root
    Changed:
    <
    <
    This produces a lot of printout, so be sure to restrict the number of events as described above!
    >
    >
    This produces a lot of printout, so be sure to restrict the number of events as described above! An example of part of the output is

    ****** FlatReader Info Start ******
    Entries examined : 13307
    Events:00 Seen : 13307
    Events:00 Seen Any : 13307
    Events:01 Passing Mask Selection for Higgs : 5049
    

    The numbers correspond to first of all the number of entries in the input MC passing into the FlatReader (e.g. in our preselection we require at least 6 jets). The second number is in reference to the number of entries passing the cutMask (e.g. requiring exactly 6 jets). This is shortly followed by

    WtEvents:00 Seen : 6.17741
    WtEvents:00 Seen Any : 6.17741
    WtEvents:01 Passing Mask Selection for Higgs : 2.59829
    

    These entries correspond to the yields - the numbers of events expected in our specified luminosity.

      If you want to get more debugging from Computentp, then run it with another argument (doesn't matter what the argument is - in the example below it's simply 1):

    Revision 1312011-12-14 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 469 to 469
     
    ListParameter     ProcessLabels:1 1 tt0j:t#bar{t}0j
    Changed:
    <
    <
    The number after ProcessLabels again doesn't correspond to my_Eventtype - I have made it the same as the number after BackgroundList/SignalList and PseudoDataList. The important feature from this is that it tells the ANN what to label each of the various processes as in the results plots. Again, the numbers must run from 0 to n-1.
    >
    >
    The number after ProcessLabels again doesn't correspond to my_Eventtype - I have made it the same as the number after BackgroundList/SignalList and PseudoDataList. The important feature from this is that it tells the ANN what to label each of the various processes as in the results plots. The numbers must run from 1 to n.
     
    ColumnParameter UCSDPalette 0    tt0j=19

    Revision 1302011-12-12 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 207 to 207
     
    • You then need to set up your environment ready for the validation. This is done with the setup_glantp.sh script, which is available within the NNFitter package. (Yes, I know - another case of getting the code before getting the code...) You run the script (which is also used for debugging the code) with

      source setup_glantp.sh
    • Make a directory to hold the code itself:

      mkdir GlaNtpPackage

    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. setup_glantp.sh sets up the environment variables so the validation data can be found.

    Changed:
    <
    <
    • You now run the script in the parent directory of GlaNtpPackage, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

    ./GlaNtpScript.sh SVN 00-00-10

    *

    This will check out everything, and run a few simple validations - the final output should look like this (i.e. don't be worried that not everything seems to have passed validation!):

    >
    >
    • You now run the script in the parent directory of GlaNtpPackage, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

      ./GlaNtpScript.sh SVN 00-00-10
    • This will check out everything, and run a few simple validations - the final output should look like this (i.e. don't be worried that not everything seems to have passed validation!):

     
    HwwFlatFitATLAS Validation succeeded
    Done with core tests
    Line: 248 to 244
     Result of FlatAscii validation: OK Result of FlatAscii_global validation: OK Result of FlatTRntp validation: OK
    Changed:
    <
    <
    >
    >

     

    Variables used by the GlaNtp package

    Revision 1292011-11-30 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 465 to 465
     
    ColumnParameter BackgroundList 0 tt0j=0
    ColumnParameter SignalList     1 ttH=1
    Changed:
    <
    <
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList or SignalList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but does not need to correspond to my_Eventtype. However, for completeness' sake within this file I have set it as such. The number at the end of this declaration (ttjj=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples).
    >
    >
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList or SignalList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but it must be sequential, running from 0 to n-1 (where you have n samples). It also does not need to correspond to my_Eventtype, however, for completeness' sake within this file I have set it as such. The number at the end of this declaration (ttjj=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples).
     
    ColumnParameter PseudoDataList 0 tt0j=0

    Revision 1282011-11-18 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 635 to 635
     
    • 12 is the run number

    • 480 is the jobstart - this is a potentially redundant parameter to do with the PBS queue.

    Changed:
    <
    <
    • 1.0 is the luminosity will be normalised to (in fb^-1).

    >
    >
    • 1.0 is the luminosity that will be normalised to (in fb^-1).

     
    • tth is the process type - aim to develop this to incorporate other processes, e.g. lbb

    • 120 is the min. Higgs mass

    • 120 is the max. Higgs mass

    Revision 1272011-11-17 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 628 to 628
      To run the script, first log into the batch system (ppepbs).
    Changed:
    <
    <
    The genemflat_batch_Complete2_SL5.sh script can be executed with the command:
    >
    >
    The genemflat_batch_Complete2_SL5.sh (NNFitter 00-00-21 version) script can be executed with the command:
     
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 6 00-00-17 /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed

    These options denote:

    Revision 1262011-11-04 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 399 to 399
     
    ListParameter <tag> <onoff> <colon-separated-parameter-list>
    Changed:
    <
    <
    <onoff> - specifies whether this parameter will be taken into consideration (1) or ignored (0) - generally this should be set to 1.
    <tag> and <colon-seperated-parameter-list> - varies from process to process, will be explained for individual cases below. There can only be one instance of a <tag> active at any one time (i.e. you can write more than one version, but only one can be taken into consideration.
    >
    >
    <onoff> - specifies whether this parameter will be taken into consideration (1) or ignored (0) - generally this should be set to 1.
    <tag> and <colon-seperated-parameter-list> - varies from process to process, will be explained for individual cases below. There can only be one instance of a <tag> active at any one time (i.e. you can write more than one version, but only one can be taken into consideration).
     
    ColumnParameter <tag> <sequence> <keyword=doubleValue:keyword=doubleValue...>

    Revision 1252011-10-21 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 745 to 745
      train2.log
    Changed:
    <
    <
    A text summary of the training process. Mentions files used (how many files, numbers of events, if they signal/background, etc). Will refer to file 0, 1... - refer to Atlas ttHRealTitles.txt to work out which file is which. Use this to make sure the right numbers of events are getting though your filters.
    >
    >
    A text summary of the training process. Mentions files used (how many files, numbers of events, if they signal/background, etc). Will refer to file 0, 1... - refer to Atlas ttHRealTitles.txt to work out which file is which. Use this to make sure the right numbers of events are getting though your filters. At the start of the file is a summary listing some relevant information about the input files:
    ParamInfo: File:0
       OnOff : 1
       Process : 2.19001e-314
       SorB : 0
    
    These reflect the parameters as set in TMVAsteer.txt (created via genemflat_batch_Complete2_SL5_sh). Note that the number following 'Process' is nonsense - that parameter is there in the steering file simply to make it more human-readable. However, the code still tries to read it in, but can only handle doubles - the net result varies from run to run, but can always be safely ignored.
     
  • templates/out/FlatPlotter${prefix}.out

  • Revision 1242011-10-18 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 150 to 150
     For comparison to these null hypothesis datasets, for both signal and background an array of 10,000 templates is created, each of these templates being subjected to systematic and Poisson variation.
  • Changed:
    <
    <
    The pseudodata and the array are passed to the function cslimit, which uses them to calculate an exclusion for each pseudoexperimen.
    >
    >
    The pseudodata and the array are passed to the function cslimit, which uses them to calculate an exclusion for each pseudoexperiment.
     
  • Based on these 1,000 separate exclusions, we produce a final exclusion.

  • Revision 1232011-10-13 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 275 to 275
     

    Calculating my_integral (The Magic Formula)

    1. Check the critical formula:

    Changed:
    <
    <
    > The most important forumla is the first thing to check:
    >
    > weight*=
    > GetSF()*GetXsect()*GetBrFrac()*GetFilterEff()*GetLumiForType()/GetNGenForType();
    >> my_brFrac
    >> my_filterEff
    >> my_xSect
    >> my_lumiForType
    >> my_nGenForType
    >
    >
    > You need a scale factor: my_sf?
    >
    >
    > 2. Check the stuff that FlatReader uses. This is documented in
    > GlaNtp/NtpAna/test/VariableTreeToNtp.txt.
    > Variable Tree to Ntp is the one that maps logical values to their
    > physical branch/leaf. Anything prefaced with FlatTupleVar needs to
    > be specified or is useful to specify.
    >
    >
    > Values are divided in to those that can change on each event (kept
    > in the "ev" tree) and those that are the same for a file (kept in the
    > "global" tree). As you know you can set the tree names. You really
    > should create a global tree for the global file values now. We have
    > procrastinated on this a long time.
    >
    > There you see
    > #
    > # Values that are required from global
    > #
    > GeneralParameter string 1 FlatTupleVar/BrFrac=globalInfo/BrFrac
    > GeneralParameter string 1 FlatTupleVar/FilterEff=globalInfo/FilterEff
    > GeneralParameter string 1 FlatTupleVar/Fraction=Fraction/Fraction
    > GeneralParameter string 1 FlatTupleVar/Integral=Integral/Integral
    > GeneralParameter string 1 FlatTupleVar/XSect=globalInfo/Xsect
    >
    > # This specifies the name of the leaf for the cutmask and invert
    > word. #Again, these are global values for a file.
    > GeneralParameter string 1 CutMaskString=cutMask
    > GeneralParameter string 1 InvertWordString=invertWord
    >
    > This confirms that Fraction and Integral are needed.
    >> my_fraction
    >> my_integral
    >
    > Here are the ones that are required for ev:
    > #
    > # Values that are required from ev
    > #
    > GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel
    > GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll
    > GeneralParameter string 1 FlatTupleVar/Entry=evInfo/ientry
    > GeneralParameter string 1 FlatTupleVar/Event=evInfo/eventNumber
    > GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E
    > GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E
    > GeneralParameter string 1 FlatTupleVar/LumiForType=evInfo/lumiForType
    > GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW
    > GeneralParameter string 1 FlatTupleVar/NGenForType=evInfo/nGenForType
    > GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets
    > GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand
    > GeneralParameter string 1 FlatTupleVar/Run=evInfo/runNumber
    > GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight
    > GeneralParameter string 1 FlatTupleVar/cutWord=evInfo/cutWord
    > GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type
    > GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type
    > GeneralParameter string 1 FlatTupleVar/sf=evInfo/sf
    >
    >
    > Some can be used with the default values that FlatTuple gives:
    > GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel
    > GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll
    > GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW
    > GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand
    > GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type
    > GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type
    >
    > Some are ok to leave if you dont want to use it: there are switches
    > that turn on the use of these
    > GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E
    > GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E
    > GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight
    >
    > Some are useful for plotting:
    > GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets
    >
    >
    > I think you have my_Eventtype as channel
    > my_failEvent as cutword
    >
    >
    The most important forumla is the first thing to check:

    weight*= GetSF()*GetXsect()*GetBrFrac()*GetFilterEff()*GetLumiForType()/GetNGenForType(); my_brFrac my_filterEff my_xSect my_lumiForType my_nGenForType

    You need a scale factor: my_sf?

    2. Check the stuff that FlatReader uses. This is documented in GlaNtp/NtpAna/test/VariableTreeToNtp.txt. Variable Tree to Ntp is the one that maps logical values to their physical branch/leaf. Anything prefaced with FlatTupleVar needs to be specified or is useful to specify.

    Values are divided in to those that can change on each event (kept in the "ev" tree) and those that are the same for a file (kept in the "global" tree). As you know you can set the tree names. You really should create a global tree for the global file values now. We have procrastinated on this a long time.

    There you see # # Values that are required from global # GeneralParameter string 1 FlatTupleVar/BrFrac=globalInfo/BrFrac GeneralParameter string 1 FlatTupleVar/FilterEff=globalInfo/FilterEff GeneralParameter string 1 FlatTupleVar/Fraction=Fraction/Fraction GeneralParameter string 1 FlatTupleVar/Integral=Integral/Integral GeneralParameter string 1 FlatTupleVar/XSect=globalInfo/Xsect

    # This specifies the name of the leaf for the cutmask and invert word. #Again, these are global values for a file. GeneralParameter string 1 CutMaskString=cutMask GeneralParameter string 1 InvertWordString=invertWord

    This confirms that Fraction and Integral are needed. my_fraction my_integral

    Here are the ones that are required for ev: # # Values that are required from ev # GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll GeneralParameter string 1 FlatTupleVar/Entry=evInfo/ientry GeneralParameter string 1 FlatTupleVar/Event=evInfo/eventNumber GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E GeneralParameter string 1 FlatTupleVar/LumiForType=evInfo/lumiForType GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW GeneralParameter string 1 FlatTupleVar/NGenForType=evInfo/nGenForType GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand GeneralParameter string 1 FlatTupleVar/Run=evInfo/runNumber GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight GeneralParameter string 1 FlatTupleVar/cutWord=evInfo/cutWord GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type GeneralParameter string 1 FlatTupleVar/sf=evInfo/sf

    Some can be used with the default values that FlatTuple gives: GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type

    Some are ok to leave if you dont want to use it: there are switches that turn on the use of these GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight

    Some are useful for plotting: GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets

    I think you have my_Eventtype as channel my_failEvent as cutword

     

    Variables that must be listed in the event (not the global) tree

    Revision 1222011-10-12 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 271 to 271
      If you want a parameter to be found in the output, best to list it here....
    Added:
    >
    >

    Calculating my_integral (The Magic Formula)

    1. Check the critical formula: > The most important forumla is the first thing to check:
    >
    > weight*=
    > GetSF()*GetXsect()*GetBrFrac()*GetFilterEff()*GetLumiForType()/GetNGenForType();
    >> my_brFrac
    >> my_filterEff
    >> my_xSect
    >> my_lumiForType
    >> my_nGenForType
    >
    >
    > You need a scale factor: my_sf?
    >
    >
    > 2. Check the stuff that FlatReader uses. This is documented in
    > GlaNtp/NtpAna/test/VariableTreeToNtp.txt.
    > Variable Tree to Ntp is the one that maps logical values to their
    > physical branch/leaf. Anything prefaced with FlatTupleVar needs to
    > be specified or is useful to specify.
    >
    >
    > Values are divided in to those that can change on each event (kept
    > in the "ev" tree) and those that are the same for a file (kept in the
    > "global" tree). As you know you can set the tree names. You really
    > should create a global tree for the global file values now. We have
    > procrastinated on this a long time.
    >
    > There you see
    > #
    > # Values that are required from global
    > #
    > GeneralParameter string 1 FlatTupleVar/BrFrac=globalInfo/BrFrac
    > GeneralParameter string 1 FlatTupleVar/FilterEff=globalInfo/FilterEff
    > GeneralParameter string 1 FlatTupleVar/Fraction=Fraction/Fraction
    > GeneralParameter string 1 FlatTupleVar/Integral=Integral/Integral
    > GeneralParameter string 1 FlatTupleVar/XSect=globalInfo/Xsect
    >
    > # This specifies the name of the leaf for the cutmask and invert
    > word. #Again, these are global values for a file.
    > GeneralParameter string 1 CutMaskString=cutMask
    > GeneralParameter string 1 InvertWordString=invertWord
    >
    > This confirms that Fraction and Integral are needed.
    >> my_fraction
    >> my_integral
    >
    > Here are the ones that are required for ev:
    > #
    > # Values that are required from ev
    > #
    > GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel
    > GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll
    > GeneralParameter string 1 FlatTupleVar/Entry=evInfo/ientry
    > GeneralParameter string 1 FlatTupleVar/Event=evInfo/eventNumber
    > GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E
    > GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E
    > GeneralParameter string 1 FlatTupleVar/LumiForType=evInfo/lumiForType
    > GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW
    > GeneralParameter string 1 FlatTupleVar/NGenForType=evInfo/nGenForType
    > GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets
    > GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand
    > GeneralParameter string 1 FlatTupleVar/Run=evInfo/runNumber
    > GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight
    > GeneralParameter string 1 FlatTupleVar/cutWord=evInfo/cutWord
    > GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type
    > GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type
    > GeneralParameter string 1 FlatTupleVar/sf=evInfo/sf
    >
    >
    > Some can be used with the default values that FlatTuple gives:
    > GeneralParameter string 1 FlatTupleVar/Channel=evInfo/Channel
    > GeneralParameter string 1 FlatTupleVar/DilMass=evInfo/Mll
    > GeneralParameter string 1 FlatTupleVar/MEVal=LRInfo/LRHWW
    > GeneralParameter string 1 FlatTupleVar/Rand=evInfo/Rand
    > GeneralParameter string 1 FlatTupleVar/lep1_Type=evInfo/lep1_Type
    > GeneralParameter string 1 FlatTupleVar/lep2_Type=evInfo/lep2_Type
    >
    > Some are ok to leave if you dont want to use it: there are switches
    > that turn on the use of these
    > GeneralParameter string 1 FlatTupleVar/Lep1En=evInfo/lep1_E
    > GeneralParameter string 1 FlatTupleVar/Lep2En=evInfo/lep2_E
    > GeneralParameter string 1 FlatTupleVar/Weight=LRInfo/weight
    >
    > Some are useful for plotting:
    > GeneralParameter string 1 FlatTupleVar/Njets=evInfo/Njets
    >
    >
    > I think you have my_Eventtype as channel
    > my_failEvent as cutword

     

    Variables that must be listed in the event (not the global) tree

    nGenForType, LumiForType, Eventtype

    Revision 1212011-10-11 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 192 to 192
     To set up the neural net,
    • check out the latest version of the code running framework from subversion (check what this is on trac) using the command

      svn co https://ppesvn.physics.gla.ac.uk/svn/atlas/NNFitter/tags/NNFitter-00-00-0X %BR%

    • check out a version of the GlaNtp code into your home directory (or set up genemflat_batch_Complete2_SL5.sh to point at someone else's installation of the the code). The procedure for how to do this is described in the next section.

    Changed:
    <
    <
    • ensure you know the ntuple_area variable to be passed in at run-time to genemflat_batch_Complete2_SL5.sh. This will be the directory where the input ntuples are stored (currently /data/atlas07/ahgemmell/NTuple-v15-30Aug for ntuples which have sensible states, events passing preselection and events failing preselection having my_failEvent == 3, 1 and 0 respectively – note that by their very nature, sensible states have also passed preselection).

    >
    >
    • ensure you know the ntuple_area variable to be passed in at run-time to genemflat_batch_Complete2_SL5.sh. This will be the directory where the input ntuples are stored.

     
    • The BASEBATCHDIR is now set automatically to the working directory when the script is executed.

    Getting a copy of GlaNtp

    • Set yourself up for access into SVN (using a proxy to access SVN, as described here)

      source /data/ppe01/sl5x/x86_64/grid/glite-ui/latest/external/etc/profile.d/grid-env.sh
      svn-grid-proxy-init

    Changed:
    <
    <
    • Create the directory where you want to set up your copy, and copy in the setup script:

    >
    >
    • Create the directory where you want to set up your copy, and get a copy of the setup script (afraid the best place to get this script is from the scripts area of the GlaNtp code you're checking out. I am aware of the tautology of getting a script from the package so you can get the package, but that's the way it is. Just download this one file and go from there - you can delete it later when you've got the whole thing. (The code below assumes you're checking out from the trunk. Generally better to check out a specific tag, but the latest tag and the trunk should be the same, so you should just be able to copy and paste the below code.)

     mkdir /home/ahgemmell/GlaNtp cd /home/ahgemmell/GlaNtp
    Changed:
    <
    <
    cp /home/stdenis/GlaNtpScript.sh .
    >
    >
    svn co https://ppesvn.physics.gla.ac.uk/svn/atlas/GlaNtp/trunk/scripts/GlaNtpScript.sh
     
    Changed:
    <
    <
    • You then need to set up your environment ready for the validation. This is done with the setup_glantp.sh script, which is available within the NNFitter package. I am aware of the tautology of getting a script from the package so you can get the package, but that's the way it is. Just download this one file and go from there - you can delete it later when you've got the whole thing. You run the script (which is also used for DebuggingTheCode) with

      source setup_glantp.sh
    >
    >
    • You then need to set up your environment ready for the validation. This is done with the setup_glantp.sh script, which is available within the NNFitter package. (Yes, I know - another case of getting the code before getting the code...) You run the script (which is also used for debugging the code) with

      source setup_glantp.sh
     
    • Make a directory to hold the code itself:

      mkdir GlaNtpPackage

    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. setup_glantp.sh sets up the environment variables so the validation data can be found.

    • You now run the script in the parent directory of GlaNtpPackage, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

    Revision 1202011-10-11 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 207 to 207
     
    • You then need to set up your environment ready for the validation. This is done with the setup_glantp.sh script, which is available within the NNFitter package. I am aware of the tautology of getting a script from the package so you can get the package, but that's the way it is. Just download this one file and go from there - you can delete it later when you've got the whole thing. You run the script (which is also used for DebuggingTheCode) with

      source setup_glantp.sh
    • Make a directory to hold the code itself:

      mkdir GlaNtpPackage

    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. setup_glantp.sh sets up the environment variables so the validation data can be found.

    Changed:
    <
    <
    • You now run the script, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

    >
    >
    • You now run the script in the parent directory of GlaNtpPackage, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

     
    ./GlaNtpScript.sh SVN 00-00-10

    *

    Revision 1192011-10-06 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 788 to 788
     

    Debugging the code

    Changed:
    <
    <
    Before trying debugging, you should set up the environment in your terminal (when running the code normally, this is done automatically by tr${run}.job). This can be done by sourcing setup.sh, which automates the following lines of code:
    >
    >
    Before trying debugging, you should set up the environment in your terminal (when running the code normally, this is done automatically by tr${run}.job). This can be done by sourcing setup_glantp.sh, which automates setting of the relevant paths - remember to specify the release number of GlaNtp that you have in your area:
     
    Changed:
    <
    <
    # Set where your GlaNtp installation is GLANTPDIR=/home/ahgemmell/GlaNtp/GlaNtpPackage/GlaNtpSVN00-00-10
    >
    >
    source setup_glantp.sh 00-00-17

    At any point you can check that the a given steering file can be read by GlaNtp by using testSteerrv5.exe - found inside your GlaNtp package:

     
    Changed:
    <
    <
    source ~/GlaNtp/cleanpath3.sh export PATH=${PATH}:${GLANTPDIR}/bin/Linux2.6-GCC_4_1 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GLANTPDIR}/shlib/Linux2.6-GCC_4_1 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GLANTPDIR}/lib/Linux2.6-GCC_4_1
    >
    >
    ./${GLANTPDIR}/bin/Linux2.6-GCC_4_1/testSteerrv5.exe <file to be tested>
     
    Changed:
    <
    <
    To debug the code, two things need to be done - first, all the debug switches need to be turned on, and then you need to restrict the number of events to ~10 (for a Computentp run this will still manage to generate a 2 GB log file!). All of these switches are found in teststeerFlatReaderATLAStthSemileptonic.txt (the progenitor for all FlatReader files) and steerComputentp.txt (created by genemflat). The debug switches are:
    >
    >
    Please note that the
    Linux2.6-GCC_4_1
    may change depending on your system architecture. It is set during the installation of GlaNtp, and can be checked with the command
    echo $BFARCH

    To debug the code further, two things need to be done - first, all the debug switches need to be turned on, and then you need to restrict the number of events to ~10 (for a Computentp run this will still manage to generate a 2 GB log file!). All of these switches are found in teststeerFlatReaderATLAStthSemileptonic.txt (the progenitor for all FlatReader files) and steerComputentp.txt (created by genemflat). The debug switches are:

     
    GeneralParameter bool 1 Debug=0
    GeneralParameter bool 1 DebugGlobalInfo=0
    GeneralParameter bool 1 DebugEvInfo=0
    
    

    Revision 1182011-10-04 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 252 to 252
     

    Variables used by the GlaNtp package

    Changed:
    <
    <
    The variables used by the package can be divided into two sets. The first are those variables that are constant throughout the sample - the 'global' variables (e.g. cross-section of the sample). These can be specified in their own tree, where they will be recorded (and read by GlaNtp) once only. If desired, these variables can be defined within the main tree of the input file - however, then they will be recorded once per event, and read in once per event. This is obviously a bit wasteful, but for historical reasons it can be done. To determine which of these behaviours you use, set LoadGlobalOnEachEvent in FlatPlotter and FlatReader to 1 for the events to be read in on an event-by-event basis, or 0 to be read in once from the global tree (or from the first event only). For more information on this switch, refer to this. The other variables are those that change on an event-by-event basis. These variables include both the variables we are going to train the Neural Net on (more information relevant to those variables is given in the relevant section of this TWiki), and other useful variables, such as filter flags (that tell GlaNtp whether an event is sensible or not). All of these variables are listed in the file VariableTreeToNTPATLASttHSemiLeptonic-v15.txt
    >
    >
    The variables used by the package can be divided into two sets. The first are those variables that are constant throughout the sample - the 'global' variables (e.g. cross-section of the sample). These can be specified in their own tree, where they will be recorded (and read by GlaNtp) once only. If desired, these variables can be defined within the main tree of the input file - however, then they will be recorded once per event, and read in once per event. This is obviously a bit wasteful, but for historical reasons it can be done. To determine which of these behaviours you use, set LoadGlobalOnEachEvent in FlatPlotter and FlatReader to 1 for the events to be read in on an event-by-event basis, or 0 to be read in once from the global tree (or from the first event only). For more information on this switch, refer to this. The other variables are those that change on an event-by-event basis. These variables include both the variables we are going to train the Neural Net on (more information relevant to those variables is given in the relevant section of this TWiki), and other useful variables, such as filter flags (that tell GlaNtp whether an event is sensible or not). All of these variables are listed in the file VariableTreeToNTPATLASttHSemiLeptonic-v15.txt
      The file maps logical values to their branch/leaf. The tree can be the global tree or the event tree.
    Line: 271 to 271
      If you want a parameter to be found in the output, best to list it here....
    Added:
    >
    >

    Variables that must be listed in the event (not the global) tree

    nGenForType, LumiForType, Eventtype

     

    Variables used for training the Neural Net

    The list of variables on which the neural net is to train is set in the shell script, under TMVAvarset.txt (this file is created when the script runs). At present, these variables are:

    Line: 564 to 568
     

    Other switches to influence the running

    Changed:
    <
    <
    In genemflat_batch_Complete2_SL5.sh, at the start of the file there are a number of switches established:
    >
    >

    genemflat_batch_Complete2_SL5.sh

    At the start of the file there are a number of switches established:

     
    # Flags to limit the scope of the run if desired                                                                                                                                                               
    Line: 580 to 586
      ***NOTE*** The flags DoTraining and DoTemplates had previously (until release 00-00-21) been set on the command line. They were moved from the command line when the other flags were introduced.
    Added:
    >
    >

    teststeerFlatPlotterATLAStthSemileptonic-v16.txt and teststeerFlatReaderATLAStthSemileptonic-v16.txt

    GeneralParameter bool   1 LoadGlobalOnEachEvent=0
    Determines if you have a separate global tree or not. If you do not, set this equal to one, and the relevant global values will be read out anew for each event from the event tree.
     

    Where the output is stored

    Added:
    >
    >
    Computentp120.log

    The log file from Computentp -- more information about the information contained within it is found here

  •  trees/NNInputs_120.root

    The output from Computentp - it is a copy of all of the input datasets, with the addition of the variables TrainWeight and weight.

    Line: 682 to 698
     A useful little html page that one of Rick's scripts creates, showing a number of useful plots - the signal and background Net scores, distributions of input variables and their correlations, and so on.
    Added:
    >
    >

    Information found in log files

    Computentp120.log

    After looping over all the events, you will see a table like the one below:

     Process Name                                                                       File Name File     Scale    Events  Integral   IntLumi     Alpha
             ttjj /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/105200-29Aug.root    0         1       613       613         1  0.907015
              ttH      /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/ttH-v16.root  120         1       556       556         1         1
    

    Some of the values are established through steerComputentp.txt in the line

    ListParameter  Process:ttH       1 Filename:/data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/ttH-v16.root:File:120:IntLumi:1.0

    1. Process Name / File Name : The mapping between these two is established in steerComputentp.txt
    2. File : The number which Computentp uses to differentiate between the various files it's processing - established in steerComputentp.txt
    3. IntLumi : The luminosity which Computentp is aiming to simulate by applying 'weight' to your samples - established in steerComputentp.txt
    4. Integral : The number of events you would expect that sample to have within your desired luminosity
    5. Alpha : This should equal TrainWeight
     

    Limitations

    • It must also be run on a PBS machine because of the structure of the genemflat_batch_Complete2_SL5.sh file (i.e. PBS commands).

    Line: 811 to 859
      To enable you to specify the range and number of bins in the histogram showing the distribution of the pseudoexperiment exclusions. (Found in drivetestFlatFitAtlastth.rootUnscaledTemplates.root)
    Deleted:
    <
    <
    In both FlatReader and FlatPlotter:

    GeneralParameter bool 1 LoadGlobalOnEachEvent=1

    This needs to be set to one if you wish to load the global variables anew for each event. Otherwise the global variables will be loaded once only - from the Global tree if you have specified it, or from the first event if you haven't. Therefore, if your input datasets have non-sensible states and no global tree, this must be set to one. Otherwise, if the first entry is not sensible, or for some other reason has an unreasonable answer for this global value, a problem will develop. With this switch on, the values will be loaded each and every time – obviously this slows the code down – if the global values are safely stored in every entry, it might be best to set this to false.

     

    TMVAsteer.txt (genemflat_batch_Complete2_SL5.sh)

    H6AONN5MEMLP      MLP         1 !H:!V:NCycles=1000:HiddenLayers=N+1,N:RandomSeed=9876543

    Revision 1172011-10-02 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 529 to 529
     To run the script, first log into the batch system (ppepbs).

    The genemflat_batch_Complete2_SL5.sh script can be executed with the command:

    Changed:
    <
    <
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 6 00-00-17 /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed
    >
    >
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 6 00-00-17 /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed
      These options denote:
    Line: 540 to 540
     
    • 120 is the min. Higgs mass

    • 120 is the max. Higgs mass

    • 6 is the number of jets in the events you want to run over (i.e. this is an exclusive 6 jet analysis - events with 7 jets are excluded)

    Added:
    >
    >
    • 00-00-17 is the release of GlaNtp that you are using for your run

     
    • /data/atlas07/ahgemmell/NTuple-v15-30Aug is the directory where the input ntuples are located (having my_failEvent bits set for ( 65536 for >0 sensible states) and ( 131072 for 4 tight b-tagged jets)

    Once the job has been completed you will receive an email summarising the outcome.

    Revision 1162011-09-30 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 529 to 529
     To run the script, first log into the batch system (ppepbs).

    The genemflat_batch_Complete2_SL5.sh script can be executed with the command:

    Changed:
    <
    <
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 6 /data/atlas07/ahgemmell/NTuple-v15-30Aug 
    >
    >
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 6 00-00-17 /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed
      These options denote:

    Revision 1152011-09-30 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 196 to 196
     
    • The BASEBATCHDIR is now set automatically to the working directory when the script is executed.

    Getting a copy of GlaNtp

    Changed:
    <
    <
    • Set yourself up for access into SVN

      svn proxy init

    >
    >
    • Set yourself up for access into SVN (using a proxy to access SVN, as described here)

      source /data/ppe01/sl5x/x86_64/grid/glite-ui/latest/external/etc/profile.d/grid-env.sh
      svn-grid-proxy-init

     
    • Create the directory where you want to set up your copy, and copy in the setup script:

      mkdir /home/ahgemmell/GlaNtp
      cd /home/ahgemmell/GlaNtp

    Revision 1142011-09-30 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 196 to 196
     
    • The BASEBATCHDIR is now set automatically to the working directory when the script is executed.

    Getting a copy of GlaNtp

    Changed:
    <
    <
    • Set yourself up for access into SVN (e.g.

      svn proxy init

    • Create the directory where you want to set up your copy, and copy in the setup script:

    >
    >
    • Set yourself up for access into SVN

      svn proxy init

    • Create the directory where you want to set up your copy, and copy in the setup script:

     mkdir /home/ahgemmell/GlaNtp cd /home/ahgemmell/GlaNtp cp /home/stdenis/GlaNtpScript.sh .
    Changed:
    <
    <
    • To avoid any potential problems with previously set up aliases etc, clear them all (you will need to do this during the running of the code, so you might as well copy it into your directory):

    cp /home/stdenis/atlas/testGlaNtp/cleanpath3.sh
    source cleanpath3.sh
    
    >
    >
    • You then need to set up your environment ready for the validation. This is done with the setup_glantp.sh script, which is available within the NNFitter package. I am aware of the tautology of getting a script from the package so you can get the package, but that's the way it is. Just download this one file and go from there - you can delete it later when you've got the whole thing. You run the script (which is also used for DebuggingTheCode) with

      source setup_glantp.sh
     
    • Make a directory to hold the code itself:

      mkdir GlaNtpPackage

    Changed:
    <
    <
    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. You need to define the input for this:

    export GLANTP_DATA=/data/cdf01/stdenis/GlaNtpData
    
    >
    >
    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. setup_glantp.sh sets up the environment variables so the validation data can be found.

     
    • You now run the script, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

    ./GlaNtpScript.sh SVN 00-00-10

    Revision 1132011-09-21 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Line: 274 to 274
     GeneralParameter string 1 InvertWordString=invertWord
    Changed:
    <
    <
    There's also something about
    >
    >
    The structure of Computentp's output is specified by
     
    ListParameter   EvInfoTree:1  1 NN_BJetWeight_Jet1:NN_BJetWeight_Jet1/NN_BJetWeight_Jet1
    
    Changed:
    <
    <
    that I need to ask Rick about...
    >
    >
    If you want a parameter to be found in the output, best to list it here....
     

    Variables used for training the Neural Net

    Line: 761 to 760
     export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GLANTPDIR}/lib/Linux2.6-GCC_4_1
    Changed:
    <
    <
    To debug the code, two things need to be done - first, all the debug switches need to be turned on, and then you need to restrict the number of events to ~10 (for a Computentp run this will still manage to generate a 2 GB log file!). All of these switches are found in teststeerFlatReaderATLAStthSemileptonic.txt (the progenitor for all FlatReader files). The debug switches are:
    >
    >
    To debug the code, two things need to be done - first, all the debug switches need to be turned on, and then you need to restrict the number of events to ~10 (for a Computentp run this will still manage to generate a 2 GB log file!). All of these switches are found in teststeerFlatReaderATLAStthSemileptonic.txt (the progenitor for all FlatReader files) and steerComputentp.txt (created by genemflat). The debug switches are:
     
    GeneralParameter bool 1 Debug=0
    GeneralParameter bool 1 DebugGlobalInfo=0
    GeneralParameter bool 1 DebugEvInfo=0
    GeneralParameter int  1 ReportInterval=100
    Added:
    >
    >
    In steerComputentp.txt there is also one additional debug option:

    GeneralParameter bool   1 DebugFlatTRntp=1
     All the debug switches can be set to one (I'm not sure of the exact effect of each individual switch) - the report interval can be adapted depending on how many events are present in your input files and on how large you want your log files to be. To restrict the events you use
    #
    # Loop Control
    
    
    Line: 795 to 798
      This produces a lot of printout, so be sure to restrict the number of events as described above!
    Added:
    >
    >
    If you want to get more debugging from Computentp, then run it with another argument (doesn't matter what the argument is - in the example below it's simply 1):

    Computentp steerComputentp.txt 1

    Some error messages and how to fix them

    Double Variable: my_NN_BJet12_M not valid and hence saved : 1

    Look at VariableTreeToNTPATLASttHSemiLeptonic-v16.txt - are the names of the variables really consistent?

     

    Various other switches of interest

    In FlatReader:

    Revision 1122011-09-19 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->
    Added:
    >
    >
     

    Computentp, Neural Nets and MCLIMITS

    This page has been substantially rewritten (and remains a work in progress) to focus just on the information required for a successful run of the Computentp and Neural Net package, to deliver exclusions. For information on results obtained using inputs created in v12 of athena, please refer to the archive. This page also describes how to run on GlaNtp - the version of the code set up for use in Glasgow, with no CDF dependencies. To use the previous version of the code (there are some important differences) refer to r93 and earlier.

    Line: 25 to 28
     

    Current samples in use

    Changed:
    <
    <

    Input data and cross-sections

    >
    >

    Input data and cross-sections

      These cross-sections are for the overall process, at √s = 7 TeV.
    Line: 33 to 36
      The tt samples were initially generated to produce the equivalent of 75fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40fb-1. Divide this by 40 to get the number of events in 1fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 - so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy - simply divide by 40.8.... You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.
    Changed:
    <
    <
    **IMPORTANT** The Filter Efficiency for these samples was calculated based on a no-pileup sample. The filter is generator level, and one of the things it will cut an event for is not enough jets. However, pileup adds jets, but these are added well after the filter. The net result is that a number of events that failed the filter would have passed, had the pileup been added earlier in the process. This means the filter efficiency (and thus the cross-sections) are incorrect, by a yet to determined amount....
    >
    >
    **IMPORTANT** The Filter Efficiency for these samples was calculated based on a no-pileup sample. The filter is generator level, and one of the things it will cut an event for is not enough jets. However, pileup adds jets, but these are added well after the filter. The net result is that a number of events that failed the filter would have passed, had the pileup been added earlier in the process. This means the filter efficiency (and thus the cross-sections) are incorrect, by a yet to determined amount....
      For the other samples, however, we do need to worry about branching ratios - the quoted initial cross-section includes all final states, so we need to apply branching ratios to the cross-section to reduce it down, so that it reflects the sample we've generated. We then subsequently need to reduce the cross-section further so that it reflects the number of sensible states.
    Line: 77 to 80
     
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    Deleted:
    <
    <

      These cross-sections and branching ratios are correct as of 8 Feb 2011. qq→ttbb (EWK) is currently not being used, thanks to a bug in the production of the MC
    Changed:
    <
    <

    Number of events surviving preselection, weights and TrainWeights

    >
    >

    Number of events surviving preselection, weights and TrainWeights

      (See later in the TWiki for an explanation of weights and TrainWeights.) This table will be completed with all the relevant weights and TrainWeights at a later date - these values are to be compared to the output from Computentp to ensure everything is working as intended, and are calculated for the sensible cross-sections/events. (A quick check of the TrainWeight is to multiply the number so events of each background by their TrainWeight and sum them - by design, this should equal the number of entries in the ttH sample.)
    Line: 115 to 116
     

    Things to do

    Changed:
    <
    <
    *

    In the script used to make the webpage showing the results, the reference to H6AONN5MEMLP is hardwired. It should become a argument. It is the name of the method you give TMVA in the training, and so if it changes in one you should be able to change in the other

    >
    >
    *
     
    Added:
    >
    >
    In the script used to make the webpage showing the results, the reference to H6AONN5MEMLP is hardwired. It should become a argument. It is the name of the method you give TMVA in the training, and so if it changes in one you should be able to change in the other
     

    Overview of the process

    Line: 194 to 196
     
    • The BASEBATCHDIR is now set automatically to the working directory when the script is executed.

    Getting a copy of GlaNtp

    Changed:
    <
    <
    • Set yourself up for access into SVN (e.g.

      svn proxy init

    • Create the directory where you want to set up your copy, and copy in the setup script:

    >
    >
    • Set yourself up for access into SVN (e.g.

      svn proxy init

    • Create the directory where you want to set up your copy, and copy in the setup script:

     
    mkdir /home/ahgemmell/GlaNtp
    cd /home/ahgemmell/GlaNtp
    cp /home/stdenis/GlaNtpScript.sh .
    Changed:
    <
    <

    • To avoid any potential problems with previously set up aliases etc, clear them all (you will need to do this during the running of the code, so you might as well copy it into your directory):

    >
    >

    • To avoid any potential problems with previously set up aliases etc, clear them all (you will need to do this during the running of the code, so you might as well copy it into your directory):

     
    cp /home/stdenis/atlas/testGlaNtp/cleanpath3.sh
    source cleanpath3.sh
    Changed:
    <
    <

    • Make a directory to hold the code itself:

      mkdir GlaNtpPackage

    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. You need to define the input for this:

    >
    >

    • Make a directory to hold the code itself:

      mkdir GlaNtpPackage

    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. You need to define the input for this:

     
    export GLANTP_DATA=/data/cdf01/stdenis/GlaNtpData
    Changed:
    <
    <

    • You now run the script, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

    ./GlaNtpScript.sh SVN 00-00-10

    *

    This will check out everything, and run a few simple validations - the final output should look like this (i.e. don't be worried that not everything seems to have passed validation!):

    >
    >

    • You now run the script, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

    ./GlaNtpScript.sh SVN 00-00-10

    *

    This will check out everything, and run a few simple validations - the final output should look like this (i.e. don't be worried that not everything seems to have passed validation!):

     
    HwwFlatFitATLAS Validation succeeded
    Done with core tests
    Line: 249 to 257
     Result of FlatAscii validation: OK Result of FlatAscii_global validation: OK Result of FlatTRntp validation: OK
    Changed:
    <
    <

    >
    >
     

    Variables used by the GlaNtp package

    Added:
    >
    >
     The variables used by the package can be divided into two sets. The first are those variables that are constant throughout the sample - the 'global' variables (e.g. cross-section of the sample). These can be specified in their own tree, where they will be recorded (and read by GlaNtp) once only. If desired, these variables can be defined within the main tree of the input file - however, then they will be recorded once per event, and read in once per event. This is obviously a bit wasteful, but for historical reasons it can be done. To determine which of these behaviours you use, set LoadGlobalOnEachEvent in FlatPlotter and FlatReader to 1 for the events to be read in on an event-by-event basis, or 0 to be read in once from the global tree (or from the first event only). For more information on this switch, refer to this. The other variables are those that change on an event-by-event basis. These variables include both the variables we are going to train the Neural Net on (more information relevant to those variables is given in the relevant section of this TWiki), and other useful variables, such as filter flags (that tell GlaNtp whether an event is sensible or not). All of these variables are listed in the file VariableTreeToNTPATLASttHSemiLeptonic-v15.txt

    The file maps logical values to their branch/leaf. The tree can be the global tree or the event tree.

    Line: 275 to 285
      The list of variables on which the neural net is to train is set in the shell script, under TMVAvarset.txt (this file is created when the script runs). At present, these variables are:
    Changed:
    <
    <
    The b-weights for the six 'leading' jets - currently the jets are ranked according to their b-weights, but it is possible to rank them according to pT and energy. The decision about how to rank them is done in the AOD -> NTuple stage:
    NN_BJetWeight_Jet1
    NN_BJetWeight_Jet2
    NN_BJetWeight_Jet3
    NN_BJetWeight_Jet4
    NN_BJetWeight_Jet5
    NN_BJetWeight_Jet6
    >
    >
    The b-weights for the six 'leading' jets - currently the jets are ranked according to their b-weights, but it is possible to rank them according to pT and energy. The decision about how to rank them is done in the AOD -> NTuple stage:
    NN_BJetWeight_Jet1
    NN_BJetWeight_Jet2
    NN_BJetWeight_Jet3
    NN_BJetWeight_Jet4
    NN_BJetWeight_Jet5
    NN_BJetWeight_Jet6
     
    Changed:
    <
    <
    The masses and pT of the various jet combinations (only considering the four 'top' jets - i.e. if ranked by b-weights, the jets that we expect to really be b-jets in our signal:
    NN_BJet12_M
    NN_BJet13_M
    NN_BJet14_M
    NN_BJet23_M
    NN_BJet24_M
    NN_BJet34_M
    NN_BJet12_Pt
    NN_BJet13_Pt
    NN_BJet14_Pt
    NN_BJet23_Pt
    NN_BJet24_Pt
    NN_BJet34_Pt
    >
    >
    The masses and pT of the various jet combinations (only considering the four 'top' jets - i.e. if ranked by b-weights, the jets that we expect to really be b-jets in our signal:
    NN_BJet12_M
    NN_BJet13_M
    NN_BJet14_M
    NN_BJet23_M
    NN_BJet24_M
    NN_BJet34_M
    NN_BJet12_Pt
    NN_BJet13_Pt
    NN_BJet14_Pt
    NN_BJet23_Pt
    NN_BJet24_Pt
    NN_BJet34_Pt
     
    Changed:
    <
    <
    The sums of the eT of the two reconstructed tops, for each of the top three states:
    NN_State1_SumTopEt
    NN_State2_SumTopEt
    NN_State3_SumTopEt
    >
    >
    The sums of the eT of the two reconstructed tops, for each of the top three states:
    NN_State1_SumTopEt
    NN_State2_SumTopEt
    NN_State3_SumTopEt
     
    Changed:
    <
    <
    And the differences between the eta and phi of the two reconstructed tops, again from the top three states:
    NN_State1_DiffTopEta
    NN_State2_DiffTopEta
    NN_State3_DiffTopEta
    NN_State1_DiffTopPhi
    NN_State2_DiffTopPhi
    NN_State3_DiffTopPhi
    >
    >
    And the differences between the eta and phi of the two reconstructed tops, again from the top three states:
    NN_State1_DiffTopEta
    NN_State2_DiffTopEta
    NN_State3_DiffTopEta
    NN_State1_DiffTopPhi
    NN_State2_DiffTopPhi
    NN_State3_DiffTopPhi
     
    Changed:
    <
    <
    You also need to provide addresses to the Neural Net so that it can find the variables in the input trees. This is done inside VariableTreeToNTPATLASttHSemiLeptonic-v15.txt
    >
    >
    You also need to provide addresses to the Neural Net so that it can find the variables in the input trees. This is done inside VariableTreeToNTPATLASttHSemiLeptonic-v15.txt :
     
    ListParameter   EvInfoTree:1  1 NN_BJetWeight_Jet1:NN_BJetWeight_Jet1/NN_BJetWeight_Jet1
    Line: 526 to 532
      This controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first two bits are set, and not equal to zero), then the event is used for training. This filter is not used currently, as training of the net takes place based on the Computentp output - this Computentp output only contains sensible states (as specified in the TreeSpecATLAStth.txt file's filter). If further filtering is required, then care must be taken to ensure that my_failEvent (or whatever you wish to base your filter on) is specified in the VariableTreeToNTP file, so that Computentp will copy it into its output.
    Changed:
    <
    <
    **If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.**
    >
    >
    **If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.**
     

    Running

    Line: 543 to 549
     
    • tth is the process type - aim to develop this to incorporate other processes, e.g. lbb

    • 120 is the min. Higgs mass

    • 120 is the max. Higgs mass

    Changed:
    <
    <
    • 6 is the number of jets in the events you want to run over (i.e. this is an exclusive 6 jet analysis - events with 7 jets are excluded)

    >
    >
    • 6 is the number of jets in the events you want to run over (i.e. this is an exclusive 6 jet analysis - events with 7 jets are excluded)

     
    • /data/atlas07/ahgemmell/NTuple-v15-30Aug is the directory where the input ntuples are located (having my_failEvent bits set for ( 65536 for >0 sensible states) and ( 131072 for 4 tight b-tagged jets)

    Once the job has been completed you will receive an email summarising the outcome.

    Line: 581 to 587
      These control whether or not various parts of the code are run - the names of the flags are pretty self-explanatory about what parts of the code they control. For example, it is possible to omit the training in subsequent (templating) runs, if it has previously been done. This shortens the run time significantly.
    Changed:
    <
    <
    ***NOTE*** The flags DoTraining and DoTemplates had previously (until release 00-00-21) been set on the command line. They were moved from the command line when the other flags were introduced.
    >
    >
    ***NOTE*** The flags DoTraining and DoTemplates had previously (until release 00-00-21) been set on the command line. They were moved from the command line when the other flags were introduced.
     

    Where the output is stored

    Line: 787 to 793
     
    runFlatReader FlatReaderATLAStthNoNN.txt /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/ttH-v16.root
    Changed:
    <
    <
    This produces a lot of printout, so be sure to restrict the number of events as described above!
    >
    >
    This produces a lot of printout, so be sure to restrict the number of events as described above!
     

    Various other switches of interest

    Line: 812 to 818
      If the phrase 'H6AONN5MEMLP' is changed, then this change must also be propogated to the webpage plotter (e-mail from Rick 1 Mar 2011)
    Added:
    >
    >
     
    META FILEATTACHMENT attachment="FlatStack_1.eps" attr="" comment="" date="1248433975" name="FlatStack_1.eps" path="FlatStack_1.eps" size="92277" stream="FlatStack_1.eps" tmpFilename="/usr/tmp/CGItemp38062" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="FlatStack_2.eps" attr="" comment="" date="1248437170" name="FlatStack_2.eps" path="FlatStack_2.eps" size="111640" stream="FlatStack_2.eps" tmpFilename="/usr/tmp/CGItemp42033" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" attr="" comment="" date="1248437178" name="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" path="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" size="17392" stream="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" tmpFilename="/usr/tmp/CGItemp41936" user="GavinKirby" version="1"

    Revision 1112011-09-19 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 414 to 414
      FirstEvent and LastEvent allow you to specify a range of events to run over - this is liable only to be useful during debugging. (Note that these parameters are currently turned off). NEvent gives the maximum number of events processed for any given sample - take care with this, if you are running a particularly large sample through the code....
    Deleted:
    <
    <

    Passing preselection and sensible states

    Many of the generated events in our samples will not pass the preselection cuts we would use in our final analysis. Sometimes to pass preselection requires some mistakes on the part of the reconstruction (e.g. tt + 0j), othertimes to fail preselection requires either the final state particles to be inherently unsuitable for our reconstruction, or to be mis-reconstructed. However, even if an event passes preselection it is possible that the events as reconstructed give a nonsensical final state - for example, the the light jets might not be able to be combined in such a way as to give a reasonable value of the W mass. Based on a few simple mass cuts, an event passing preselection can be determined to have a sensible state or not.

    Currently, the type of event you are looking at is determined by looking at my_failEvent. States failing preselection have this equal to 0, passing preselection but not having a sensible final state equal 1 and passing preselection and having a sensible final state equal 3. These numbers are the basis of a number of bitwise tests - thus when setting your own my_failEvents, consider which bits in a binary string you want to represent various things, and then convert those to decimal.

     

    Setting Systematic Uncertainties

    The fitting code can take into account two different types of systematic uncertainty - rate and shape. The basic method to obtain both these uncertainties is that you should make your input samples for both your nominal sample, and for the two bounds of a given error (e.g. Initial State Radiation, ISR). Repeat this for all of the errors you wish to consider. The rate systematic uncertainty is simply how the number of events change that pass your preselection cuts etc. (you can only consider this, if you like). To obtain the shape uncertainty, you should pass each of the resulting datasets through the ANN (up to and including the templating, so that you have ANN results for both the nominal results, and as a result of varying each background). These ANN outputs can then be used to produce the rate uncertainties based on their integrals, before being normalised to the nominal cross-section so as to find the shape uncertainty - a measure of the percentage change in the bin-by-bin distribution for each error.

    Line: 511 to 505
      It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts - general cleaning cuts and the like. (There was a previous version of our inputs where we also required 'sensible states' - for each candidate event we required it to reconstruct tops and Ws with vaguely realistic masses. However - this is a Neural Net analysis, so it has been decided to remove these cuts - they will after all in effect be reintroduced by the net itself if they would have been useful, and by not applying them ourselves, we are passing more information to the net.) We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in TMVAsteer.txt (created in genemflat_batch_Complete2.sh) (not currently used, as explained below) and TreeSpecATLAStth.txt.
    Added:
    >
    >

    VariableTreeToNTPATLASttHSemiLeptonic-v16.txt

    GeneralParameter string 1 FlatTupleVar/cutWord=my_GoodJets_N/my_GoodJets_N

    This sets the variable we wish to use in our filter - it interfaces with the cutMask and invertWord as specified in TreeSpecATLAStth.txt. Note that depending on the number of jets you wish to run your analysis on (set as a command line argument during the running of the script), this is edited with genemflat.

     

    TreeSpecATLAStth.txt

    In TreeSpecATLAStth.txt, we establish the filters which control what is used for the templating, and Computentp:

    Line: 518 to 518
     
    ListParameter SpecifyVariable:Higgs:cutMask 1 Type:int:Default:3
    ListParameter SpecifyVariable:Higgs:invertWord 1 Type:int:Default:0
    Changed:
    <
    <
    InvertWord is used to invert the relevant bits (in this case no bits are inverted) before the cut from cutMask is applied. The cutMask will exclude from templating those events where the matching bits are equal to zero AFTER the inversion. So here, with no inversion applied, those events with my_failEvent == 3 will be used for templating.
    >
    >
    InvertWord is used to invert the relevant bits (in this case no bits are inverted) before the cut from cutMask is applied. The cutMask tells the filter which bits we care about (we use a binary filter). So, for example, if cutMask is set to 6 (110 in binary), we are telling the filter that we wish the second and third bit to be equal to one in cutWord - we don't care about the first bit.
     

    TMVAsteer.txt (genemflat_batch_Complete2.sh)

    Revision 1102011-09-19 - GavinKirby

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 275 to 275
      The list of variables on which the neural net is to train is set in the shell script, under TMVAvarset.txt (this file is created when the script runs). At present, these variables are:
    Changed:
    <
    <
    The b-weights for the six 'leading' jets - currently the jets are ranked according to their b-weights, but it is possible to rank them according to pT and energy. The decision about how to rank them is done in the AOD -> NTuple stage:
    >
    >
    The b-weights for the six 'leading' jets - currently the jets are ranked according to their b-weights, but it is possible to rank them according to pT and energy. The decision about how to rank them is done in the AOD -> NTuple stage:
     NN_BJetWeight_Jet1
    NN_BJetWeight_Jet2
    NN_BJetWeight_Jet3
    NN_BJetWeight_Jet4
    NN_BJetWeight_Jet5
    NN_BJetWeight_Jet6
    Changed:
    <
    <
    The masses and pT of the various jet combinations (only considering the four 'top' jets - i.e. if ranked by b-weights, the jets that we expect to really be b-jets in our signal:
    >
    >
    The masses and pT of the various jet combinations (only considering the four 'top' jets - i.e. if ranked by b-weights, the jets that we expect to really be b-jets in our signal:
     NN_BJet12_M
    NN_BJet13_M
    NN_BJet14_M
    NN_BJet23_M
    NN_BJet24_M
    NN_BJet34_M
    NN_BJet12_Pt
    NN_BJet13_Pt
    NN_BJet14_Pt
    NN_BJet23_Pt
    NN_BJet24_Pt
    NN_BJet34_Pt
    Changed:
    <
    <
    The sums of the eT of the two reconstructed tops, for each of the top three states:
    >
    >
    The sums of the eT of the two reconstructed tops, for each of the top three states:
     NN_State1_SumTopEt
    NN_State2_SumTopEt
    NN_State3_SumTopEt
    Changed:
    <
    <
    And the differences between the eta and phi of the two reconstructed tops, again from the top three states:
    >
    >
    And the differences between the eta and phi of the two reconstructed tops, again from the top three states:
     NN_State1_DiffTopEta
    NN_State2_DiffTopEta
    NN_State3_DiffTopEta
    NN_State1_DiffTopPhi
    NN_State2_DiffTopPhi
    NN_State3_DiffTopPhi

    You also need to provide addresses to the Neural Net so that it can find the variables in the input trees. This is done inside VariableTreeToNTPATLASttHSemiLeptonic-v15.txt

    Revision 1092011-09-12 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 750 to 750
     GLANTPDIR=/home/ahgemmell/GlaNtp/GlaNtpPackage/GlaNtpSVN00-00-10

    source ~/GlaNtp/cleanpath3.sh

    Changed:
    <
    <
    export PATH=\${PATH}:${GLANTPDIR}/bin/Linux2.6-GCC_4_1 export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:${GLANTPDIR}/shlib/Linux2.6-GCC_4_1 export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:${GLANTPDIR}/lib/Linux2.6-GCC_4_1
    >
    >
    export PATH=${PATH}:${GLANTPDIR}/bin/Linux2.6-GCC_4_1 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GLANTPDIR}/shlib/Linux2.6-GCC_4_1 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GLANTPDIR}/lib/Linux2.6-GCC_4_1
     

    To debug the code, two things need to be done - first, all the debug switches need to be turned on, and then you need to restrict the number of events to ~10 (for a Computentp run this will still manage to generate a 2 GB log file!). All of these switches are found in teststeerFlatReaderATLAStthSemileptonic.txt (the progenitor for all FlatReader files). The debug switches are:

    Revision 1082011-09-12 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 743 to 743
     

    Debugging the code

    Changed:
    <
    <
    Before trying debugging, you should set up the environment in your terminal (when running the code normally, this is done automatically by tr${run}.job)
    >
    >
    Before trying debugging, you should set up the environment in your terminal (when running the code normally, this is done automatically by tr${run}.job). This can be done by sourcing setup.sh, which automates the following lines of code:
     
    # Set where your GlaNtp installation is                                                                                                                                                                        
    Line: 761 to 761
     GeneralParameter bool 1 DebugEvInfo=0 GeneralParameter int 1 ReportInterval=100
    Changed:
    <
    <
    All the debug switches can be set to one (I'm not sure of the exact effect of each individual switch) - the report interval is probably best left at 100. To restrict the events you use
    >
    >
    All the debug switches can be set to one (I'm not sure of the exact effect of each individual switch) - the report interval can be adapted depending on how many events are present in your input files and on how large you want your log files to be. To restrict the events you use
     
    #
    # Loop Control
    #
    
    

    Revision 1072011-09-08 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 743 to 743
     

    Debugging the code

    Added:
    >
    >
    Before trying debugging, you should set up the environment in your terminal (when running the code normally, this is done automatically by tr${run}.job)

    # Set where your GlaNtp installation is                                                                                                                                                                        
    GLANTPDIR=/home/ahgemmell/GlaNtp/GlaNtpPackage/GlaNtpSVN00-00-10
    
    source ~/GlaNtp/cleanpath3.sh                                                                                                                                                                                  
    export PATH=\${PATH}:${GLANTPDIR}/bin/Linux2.6-GCC_4_1                                                                                                                                                         
    export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:${GLANTPDIR}/shlib/Linux2.6-GCC_4_1                                                                                                                                 
    export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:${GLANTPDIR}/lib/Linux2.6-GCC_4_1
    
     To debug the code, two things need to be done - first, all the debug switches need to be turned on, and then you need to restrict the number of events to ~10 (for a Computentp run this will still manage to generate a 2 GB log file!). All of these switches are found in teststeerFlatReaderATLAStthSemileptonic.txt (the progenitor for all FlatReader files). The debug switches are:
    GeneralParameter bool 1 Debug=0
    GeneralParameter bool 1 DebugGlobalInfo=0
    
    
    Line: 759 to 771
      The easiest switch is to set NEvent=10 - however, if desired you can run over a specified range, by switching of the NEvent switch (changing it to int 0 NEvent) and switching on the other two switches, using them to specify the events you wish to run over.
    Added:
    >
    >
    Then you can run a subset of a complete run, but altering the flags found in genemflat:

    # Flags to limit the scope of the run if desired                                                                                                                                                               
    Computentps=1
    DoTraining=0
    ComputeTMVA=0
    DoTemplates=0
    DoStackedPlots=0
    DoFit=0
    

    However, sometimes even this can not produce enough information., so there exist a few other options for checking your code. The first option is

    runFlatReader FlatReaderATLAStthNoNN.txt /data/atlas09/ahgemmell/NNInputFiles_v16/mergedfilesProcessed/ttH-v16.root

    This produces a lot of printout, so be sure to restrict the number of events as described above!

     

    Various other switches of interest

    In FlatReader:

    Revision 1062011-09-07 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 402 to 402
      The <sequence> parameter (in this case '0') is there so that you can specify the parameters for a given error for multiple channels, without falling foul of the uniqueness requirement for <tag>:<sequence>. We have chosen it so that it equals my_Eventtype for that process. 'Channel' is present just in case you're considering multiple channels. We're only considering the one channel in this case (SemiLeptonic). The final parameter (Process) is not actually used - the second parameter tells the ANN which errors are which, but this isn't very easily read by you, so feel free to add it in to help you keep track of the various errors! These final few parameters can be placed in any order, so long as they are separated by semicolons.
    Added:
    >
    >

    teststeerFlatReaderATLAStthSemileptonic-v16.txt

    This file contains parameters to control the loops over events.

    GeneralParameter int    1 NEvent=20000000
    GeneralParameter int    0 FirstEvent=1
    GeneralParameter int    0 LastEvent=10
    

    FirstEvent and LastEvent allow you to specify a range of events to run over - this is liable only to be useful during debugging. (Note that these parameters are currently turned off). NEvent gives the maximum number of events processed for any given sample - take care with this, if you are running a particularly large sample through the code....

     

    Passing preselection and sensible states

    Many of the generated events in our samples will not pass the preselection cuts we would use in our final analysis. Sometimes to pass preselection requires some mistakes on the part of the reconstruction (e.g. tt + 0j), othertimes to fail preselection requires either the final state particles to be inherently unsuitable for our reconstruction, or to be mis-reconstructed. However, even if an event passes preselection it is possible that the events as reconstructed give a nonsensical final state - for example, the the light jets might not be able to be combined in such a way as to give a reasonable value of the W mass. Based on a few simple mass cuts, an event passing preselection can be determined to have a sensible state or not.

    Revision 1052011-09-02 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 521 to 521
     To run the script, first log into the batch system (ppepbs).

    The genemflat_batch_Complete2_SL5.sh script can be executed with the command:

    Changed:
    <
    <
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 /data/atlas07/ahgemmell/NTuple-v15-30Aug 
    >
    >
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 6 /data/atlas07/ahgemmell/NTuple-v15-30Aug 
      These options denote:
    Line: 531 to 531
     
    • tth is the process type - aim to develop this to incorporate other processes, e.g. lbb

    • 120 is the min. Higgs mass

    • 120 is the max. Higgs mass

    Changed:
    <
    <
    • 1 indicates that training is to take place

    • 1 indicates that templating is to take place

    >
    >
    • 6 is the number of jets in the events you want to run over (i.e. this is an exclusive 6 jet analysis - events with 7 jets are excluded)

     
    • /data/atlas07/ahgemmell/NTuple-v15-30Aug is the directory where the input ntuples are located (having my_failEvent bits set for ( 65536 for >0 sensible states) and ( 131072 for 4 tight b-tagged jets)

    Once the job has been completed you will receive an email summarising the outcome.

    Revision 1042011-08-29 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 252 to 252
     

    Variables used by the GlaNtp package

    Changed:
    <
    <
    The variables used by the package can be divided into two sets. The first are those variables that are constant throughout the sample - the 'global' variables (e.g. cross-section of the sample). These can be specified in their own tree, where they will be recorded (and read by GlaNtp) once only. If desired, these variables can be defined within the main tree of the input file - however, then they will be recorded once per event, and read in once per event. This is obviously a bit wasteful, but for historical reasons it can be done. The other variables are those that change on an event-by-event basis. These variables include both the variables we are going to train the Neural Net on (more information relevant to those variables is given in the relevant section of this TWiki), and other useful variables, such as filter flags (that tell GlaNtp whether an event is sensible or not). All of these variables are listed in the file VariableTreeToNTPATLASttHSemiLeptonic-v15.txt
    >
    >
    The variables used by the package can be divided into two sets. The first are those variables that are constant throughout the sample - the 'global' variables (e.g. cross-section of the sample). These can be specified in their own tree, where they will be recorded (and read by GlaNtp) once only. If desired, these variables can be defined within the main tree of the input file - however, then they will be recorded once per event, and read in once per event. This is obviously a bit wasteful, but for historical reasons it can be done. To determine which of these behaviours you use, set LoadGlobalOnEachEvent in FlatPlotter and FlatReader to 1 for the events to be read in on an event-by-event basis, or 0 to be read in once from the global tree (or from the first event only). For more information on this switch, refer to this. The other variables are those that change on an event-by-event basis. These variables include both the variables we are going to train the Neural Net on (more information relevant to those variables is given in the relevant section of this TWiki), and other useful variables, such as filter flags (that tell GlaNtp whether an event is sensible or not). All of these variables are listed in the file VariableTreeToNTPATLASttHSemiLeptonic-v15.txt
      The file maps logical values to their branch/leaf. The tree can be the global tree or the event tree.
    Line: 763 to 763
      GeneralParameter bool 1 LoadGlobalOnEachEvent=1
    Changed:
    <
    <
    This needs to be set to one if your input datasets have non-sensible states. Otherwise, global variables are loaded on one occasion from the first entry in the file, and kept. If this entry is not sensible, or for some other reason has an unreasonable answer for this global value, a problem will develop. With this switch on, the values will be loaded each and every time – obviously this slows the code down – if the global values are safely stored in every entry, it might be best to set this to false.
    >
    >
    This needs to be set to one if you wish to load the global variables anew for each event. Otherwise the global variables will be loaded once only - from the Global tree if you have specified it, or from the first event if you haven't. Therefore, if your input datasets have non-sensible states and no global tree, this must be set to one. Otherwise, if the first entry is not sensible, or for some other reason has an unreasonable answer for this global value, a problem will develop. With this switch on, the values will be loaded each and every time – obviously this slows the code down – if the global values are safely stored in every entry, it might be best to set this to false.
     

    TMVAsteer.txt (genemflat_batch_Complete2_SL5.sh)

    Revision 1032011-08-29 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 19 to 19
     

    Preparing samples for the Neural Net

    Changed:
    <
    <
    Samples are produced for the Neural Net from AODs - results have previously been obtained for MC samples derived from v12 and v15 of athena. Current efforts are directed toward debugging the v15 results, and then upgrading to v16 input. The inputs are created from AODs using the TtHHbbDPDBasedAnalysis package (currently 00-04-18 and its branches are for v15, 00-04-19 is for v16).
    >
    >
    Previous work went into producing samples for the Neural Net from AODs - results have previously been obtained for MC samples derived from v12 and v15 of athena, with work directed toward upgrading this to v16. The inputs are created from AODs using the TtHHbbDPDBasedAnalysis package (currently 00-04-18 and its branches are for v15, 00-04-19 is for v16), which can be found here. However, the work on athena v16 ran into problems with application of trigger matching, and so was curtailed for the moment.

    Now inputs are produced in a two-step process from D3PDs. First, the desired D3PDs have cleaning cuts applied to them, and our desired event-by-event information is stored in a flat ntuple. This is performed by the code found here. Then we add in the global event variables (ones that are constant throughout the sample, such as luminosity and cross-section).

     

    Current samples in use

    Revision 1022011-08-17 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 519 to 519
     To run the script, first log into the batch system (ppepbs).

    The genemflat_batch_Complete2_SL5.sh script can be executed with the command:

    Changed:
    <
    <
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 1 1 /data/atlas07/ahgemmell/NTuple-v15-30Aug 
    >
    >
    ./genemflat_batch_Complete2_SL5.sh 12 480 1.0 tth 120 120 /data/atlas07/ahgemmell/NTuple-v15-30Aug 
      These options denote:
    Line: 533 to 533
     
    • 1 indicates that templating is to take place

    • /data/atlas07/ahgemmell/NTuple-v15-30Aug is the directory where the input ntuples are located (having my_failEvent bits set for ( 65536 for >0 sensible states) and ( 131072 for 4 tight b-tagged jets)

    Deleted:
    <
    <
    Note that it is possible to omit the training in subsequent (templating) runs, if it has previously been done (set 3rd from last argument to 0). This shortens the run time significantly.
     Once the job has been completed you will receive an email summarising the outcome.

    Running:

    Line: 554 to 552
     
    • weighting = <nop>TrainWeight - is this redundant?

    • TMVAvarset.txt - input variable set

    Added:
    >
    >

    Other switches to influence the running

    In genemflat_batch_Complete2_SL5.sh, at the start of the file there are a number of switches established:

    # Flags to limit the scope of the run if desired                                                                                                                                                               
    Computentps=1
    DoTraining=1
    ComputeTMVA=1
    DoTemplates=1
    DoStackedPlots=1
    DoFit=1
    

    These control whether or not various parts of the code are run - the names of the flags are pretty self-explanatory about what parts of the code they control. For example, it is possible to omit the training in subsequent (templating) runs, if it has previously been done. This shortens the run time significantly.

    ***NOTE*** The flags DoTraining and DoTemplates had previously (until release 00-00-21) been set on the command line. They were moved from the command line when the other flags were introduced.

     

    Where the output is stored

    Revision 1012011-08-16 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 497 to 497
      It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts - general cleaning cuts and the like. (There was a previous version of our inputs where we also required 'sensible states' - for each candidate event we required it to reconstruct tops and Ws with vaguely realistic masses. However - this is a Neural Net analysis, so it has been decided to remove these cuts - they will after all in effect be reintroduced by the net itself if they would have been useful, and by not applying them ourselves, we are passing more information to the net.) We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in TMVAsteer.txt (created in genemflat_batch_Complete2.sh) (not currently used, as explained below) and TreeSpecATLAStth.txt.
    Changed:
    <
    <
    In TreeSpecATLAStth.txt the filters control what is used for the templating, and Computentp:
    >
    >

    TreeSpecATLAStth.txt

    In TreeSpecATLAStth.txt, we establish the filters which control what is used for the templating, and Computentp:

     
    ListParameter SpecifyVariable:Higgs:cutMask 1 Type:int:Default:3
    ListParameter SpecifyVariable:Higgs:invertWord 1 Type:int:Default:0

    InvertWord is used to invert the relevant bits (in this case no bits are inverted) before the cut from cutMask is applied. The cutMask will exclude from templating those events where the matching bits are equal to zero AFTER the inversion. So here, with no inversion applied, those events with my_failEvent == 3 will be used for templating.

    Changed:
    <
    <
    The constraint
    >
    >

    TMVAsteer.txt (genemflat_batch_Complete2.sh)

     
    GeneralParameter string 1 Constraint=(my_failEvent&3)==3
    Changed:
    <
    <
    in genemflat_batch_Complete2.sh controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first two bits are set, and not equal to zero), then the event is used for training. This filter is not used currently, as training of the net takes place based on the Computentp output - this Computentp output only contains sensible states (as specified in the TreeSpecATLAStth.txt file's filter). If further filtering is required, then care must be taken to ensure that my_failEvent (or whatever you wish to base your filter on) is specified in the VariableTreeToNTP file, so that Computentp will copy it into its output.
    >
    >
    This controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first two bits are set, and not equal to zero), then the event is used for training. This filter is not used currently, as training of the net takes place based on the Computentp output - this Computentp output only contains sensible states (as specified in the TreeSpecATLAStth.txt file's filter). If further filtering is required, then care must be taken to ensure that my_failEvent (or whatever you wish to base your filter on) is specified in the VariableTreeToNTP file, so that Computentp will copy it into its output.
     
    Changed:
    <
    <
    If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.
    >
    >
    **If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.**
     

    Running

    Revision 1002011-08-16 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 495 to 495
     

    Filters

    Changed:
    <
    <
    It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts - general cleaning cuts and the like. (There was a previous version of our inputs where we also required 'sensible states' - for each candidate event we required it to reconstruct tops and Ws with vaguely realistic masses. However - this is a Neural Net analysis, so it has been decided to remove these cuts - they will after all in effect be reintroduced by the net itself if they would have been useful, and by not applying them ourselves, we are passing more information to the net.) We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in genemflat_batch_Complete2.sh (not currently used, as explained below) and TreeSpecATLAStth.txt.
    >
    >
    It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts - general cleaning cuts and the like. (There was a previous version of our inputs where we also required 'sensible states' - for each candidate event we required it to reconstruct tops and Ws with vaguely realistic masses. However - this is a Neural Net analysis, so it has been decided to remove these cuts - they will after all in effect be reintroduced by the net itself if they would have been useful, and by not applying them ourselves, we are passing more information to the net.) We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in TMVAsteer.txt (created in genemflat_batch_Complete2.sh) (not currently used, as explained below) and TreeSpecATLAStth.txt.
      In TreeSpecATLAStth.txt the filters control what is used for the templating, and Computentp:

    Revision 992011-08-14 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 495 to 495
     

    Filters

    Changed:
    <
    <
    It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts and have 'sensible states'. The preselection cuts are easy enough to understand - they merely clean the sample - events which fail these are set to zero. However, it is possible for some events to have pass the cuts, but still not be anything like that which we would want (e.g. there is no way to reconstruct a top with a realistic mass). Seeing as it is likely that the backgrounds have more of these non-sensible states, to include them would be to give the ANN an unfair advantage in determining signal from background. But we don't want to simply set them equal to zero, as at other times we are going to be interested in how events passing preselection can fail to have sensible states, and so will want to examine them further. We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in genemflat_batch_Complete2.sh (not currently used, as explained below) and TreeSpecATLAStth.txt.
    >
    >
    It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts - general cleaning cuts and the like. (There was a previous version of our inputs where we also required 'sensible states' - for each candidate event we required it to reconstruct tops and Ws with vaguely realistic masses. However - this is a Neural Net analysis, so it has been decided to remove these cuts - they will after all in effect be reintroduced by the net itself if they would have been useful, and by not applying them ourselves, we are passing more information to the net.) We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in genemflat_batch_Complete2.sh (not currently used, as explained below) and TreeSpecATLAStth.txt.
      In TreeSpecATLAStth.txt the filters control what is used for the templating, and Computentp:

    Revision 982011-08-01 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 248 to 248
     Result of FlatAscii_global validation: OK Result of FlatTRntp validation: OK

    Changed:
    <
    <

    Variables used by the Neural Net

    >
    >

    Variables used by the GlaNtp package

    The variables used by the package can be divided into two sets. The first are those variables that are constant throughout the sample - the 'global' variables (e.g. cross-section of the sample). These can be specified in their own tree, where they will be recorded (and read by GlaNtp) once only. If desired, these variables can be defined within the main tree of the input file - however, then they will be recorded once per event, and read in once per event. This is obviously a bit wasteful, but for historical reasons it can be done. The other variables are those that change on an event-by-event basis. These variables include both the variables we are going to train the Neural Net on (more information relevant to those variables is given in the relevant section of this TWiki), and other useful variables, such as filter flags (that tell GlaNtp whether an event is sensible or not). All of these variables are listed in the file VariableTreeToNTPATLASttHSemiLeptonic-v15.txt

    The file maps logical values to their branch/leaf. The tree can be the global tree or the event tree.

    GeneralParameter string 1 FlatTupleVar/<variable_name>=<tree>/<variable_name_in_tree>
    

    Also specified are the name of the leaf for the cutmask and invert word -- these are global values for a file.

    GeneralParameter string 1 CutMaskString=cutMask
    GeneralParameter string 1 InvertWordString=invertWord
    

    There's also something about

    ListParameter   EvInfoTree:1  1 NN_BJetWeight_Jet1:NN_BJetWeight_Jet1/NN_BJetWeight_Jet1
    
    that I need to ask Rick about...

    Variables used for training the Neural Net

      The list of variables on which the neural net is to train is set in the shell script, under TMVAvarset.txt (this file is created when the script runs). At present, these variables are:

    Revision 972011-06-14 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 252 to 252
      The list of variables on which the neural net is to train is set in the shell script, under TMVAvarset.txt (this file is created when the script runs). At present, these variables are:
    Changed:
    <
    <
    NN_BJetWeight_Jet1
    NN_BJetWeight_Jet2
    NN_BJetWeight_Jet3
    NN_BJetWeight_Jet4
    NN_BJetWeight_Jet5
    NN_BJetWeight_Jet6
    NN_BJet12_M
    NN_BJet13_M
    NN_BJet14_M
    NN_BJet23_M
    NN_BJet24_M
    NN_BJet34_M
    NN_BJet12_Pt
    NN_BJet13_Pt
    NN_BJet14_Pt
    NN_BJet23_Pt
    NN_BJet24_Pt
    NN_BJet34_Pt
    NN_State1_SumTopEt
    NN_State2_SumTopEt
    NN_State3_SumTopEt
    NN_State1_DiffTopEta
    NN_State2_DiffTopEta
    NN_State3_DiffTopEta
    NN_State1_DiffTopPhi
    NN_State2_DiffTopPhi
    NN_State3_DiffTopPhi
    >
    >
    The b-weights for the six 'leading' jets - currently the jets are ranked according to their b-weights, but it is possible to rank them according to pT and energy. The decision about how to rank them is done in the AOD -> NTuple stage: NN_BJetWeight_Jet1
    NN_BJetWeight_Jet2
    NN_BJetWeight_Jet3
    NN_BJetWeight_Jet4
    NN_BJetWeight_Jet5
    NN_BJetWeight_Jet6

    The masses and pT of the various jet combinations (only considering the four 'top' jets - i.e. if ranked by b-weights, the jets that we expect to really be b-jets in our signal: NN_BJet12_M
    NN_BJet13_M
    NN_BJet14_M
    NN_BJet23_M
    NN_BJet24_M
    NN_BJet34_M
    NN_BJet12_Pt
    NN_BJet13_Pt
    NN_BJet14_Pt
    NN_BJet23_Pt
    NN_BJet24_Pt
    NN_BJet34_Pt

    The sums of the eT of the two reconstructed tops, for each of the top three states: NN_State1_SumTopEt
    NN_State2_SumTopEt
    NN_State3_SumTopEt

    And the differences between the eta and phi of the two reconstructed tops, again from the top three states: NN_State1_DiffTopEta
    NN_State2_DiffTopEta
    NN_State3_DiffTopEta
    NN_State1_DiffTopPhi
    NN_State2_DiffTopPhi
    NN_State3_DiffTopPhi

      You also need to provide addresses to the Neural Net so that it can find the variables in the input trees. This is done inside VariableTreeToNTPATLASttHSemiLeptonic-v15.txt

    Revision 962011-05-23 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 109 to 109
     
    qq → ttbb (QCD) 116106 Yes 19985 496 366 76.09 1.888 1.393
    gg → ttbb (EWK) 116100 Yes 19987 981 706 47.02 2.308 1.661
    Changed:
    <
    <

    Issues still to be resolved

    1. In share/TtHHbbSetups.py:

    include( "AtlasGeoModel/SetGeometryVersion.py" )
    include( "AtlasGeoModel/GeoModelInit.py" )
    

    Athena warns that both of these files are obsolete - this does not lead to an ERROR or WARNING, but nonetheless needs to be looked at.

    2. In src/PreselectLeptons.cxx:

        const EMShower* shower;
        if ((*elecItr)->author() != egammaParameters::AuthorUnknown){
          trackIsolationEnergy20 = m_trackIsolationTool->trackIsolationEnergy((*elecItr)->trackParticle(),0.2);
          trackIsolationEnergy30 = m_trackIsolationTool->trackIsolationEnergy((*elecItr)->trackParticle(),0.3);
          trackIsolationEnergy40 = m_trackIsolationTool->trackIsolationEnergy((*elecItr)->trackParticle(),0.4);
          shower                 = (*elecItr)->detail<EMShower>(m_showerContainerName);
          //CCT: shower - seems to have stopped working in 15.6.0.2 for data made with r838 (v15.3.1.6)                                                                               
          //was giving a seg fault as it tried to get etcone20 even if "shower" had not been successfully obtained!                                                                   
          if (!shower) {
            mLog << MSG::WARNING << "Invalid EMShower pointer!" << endreq;
          }else{
            etcone20               = shower->etcone20()/pT;
            mLog << MSG::INFO << "shower->etcone20() = " << shower->etcone20() << ", pT = " << pT << endreq;
          }
        }
    
    >
    >

    Running the Neural Net

     
    Changed:
    <
    <
    The warning message appears an awful lot - also, don't think this influences the Net inputs, but still should be looked at - do we need to get anything from the shower?
    >
    >

    Things to do

     
    Changed:
    <
    <
    3. From the ye olde code, I noticed a 'placeholder' warning to check that W and top masses used in the sensible states are the same as in the generator (this hasn't been done yet). Also, perhaps we can tighten the sensible cut on the W mass? Seems rather wide at the mo (25GeV)....
    >
    >
    *

    In the script used to make the webpage showing the results, the reference to H6AONN5MEMLP is hardwired. It should become a argument. It is the name of the method you give TMVA in the training, and so if it changes in one you should be able to change in the other

     
    Deleted:
    <
    <

    Running the Neural Net

     

    Overview of the process

    Revision 952011-05-23 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 699 to 699
      The Neural Net was then configured to exclude events where: (m_failEvent & 196608)==1
    with 196608=131072+65536.
    Added:
    >
    >

    Creating plots to review the data

    There is a simple shell script included in the running Neural Net code package that can produce a nice html document you can use to review a few plots of interest - plotTMVA.sh. To run it, move it into the run directory you want to review, then it's a simple one-line command:

    ./plotTMVA.sh 120 <run> <job> 
    

    N.B. This is done automatically by genemflat currently.

     

    Debugging the code

    To debug the code, two things need to be done - first, all the debug switches need to be turned on, and then you need to restrict the number of events to ~10 (for a Computentp run this will still manage to generate a 2 GB log file!). All of these switches are found in teststeerFlatReaderATLAStthSemileptonic.txt (the progenitor for all FlatReader files). The debug switches are:

    Revision 942011-05-23 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Changed:
    <
    <
    This page has been substantially rewritten (and remains a work in progress) to focus just on the information required for a successful run of the Computentp and Neural Net package, to deliver exclusions. For information on results obtained using inputs created in v12 of athena, please refer to the archive.
    >
    >
    This page has been substantially rewritten (and remains a work in progress) to focus just on the information required for a successful run of the Computentp and Neural Net package, to deliver exclusions. For information on results obtained using inputs created in v12 of athena, please refer to the archive. This page also describes how to run on GlaNtp - the version of the code set up for use in Glasgow, with no CDF dependencies. To use the previous version of the code (there are some important differences) refer to r93 and earlier.
     

    Project Aims

    Line: 142 to 142
      The warning message appears an awful lot - also, don't think this influences the Net inputs, but still should be looked at - do we need to get anything from the shower?
    Changed:
    <
    <
    3. In the jobOptions file we currently have:

    PreselectLeptons.McEventInfoName = "MyEvent"
    

    However, in the athena output we still have:

    StoreGateSvc      WARNING retrieve(const): No valid proxy for object McEventInfo  of type EventInfo(CLID 2101)
    

    Need to work out why this jobOption does not over-ride the default. It might itself be overridden by python/ttH_defaults.py - if this is the case, then a number of other settings are also over-ridden.

    4. From the ye olde code, I noticed a 'placeholder' warning to check that W and top masses used in the sensible states are the same as in the generator (this hasn't been done yet). Also, perhaps we can tighten the sensible cut on the W mass? Seems rather wide at the mo (25GeV)....

    >
    >
    3. From the ye olde code, I noticed a 'placeholder' warning to check that W and top masses used in the sensible states are the same as in the generator (this hasn't been done yet). Also, perhaps we can tighten the sensible cut on the W mass? Seems rather wide at the mo (25GeV)....
     

    Running the Neural Net

    Line: 230 to 216
     

    User Setup

    To set up the neural net,

    Changed:
    <
    <
    • check out the latest version from subversion (check what this is on trac) using the command

      svn co https://ppesvn.physics.gla.ac.uk/svn/atlas/NNFitter/tags/NNFitter-00-00-0X %BR%

    >
    >
    • check out the latest version of the code running framework from subversion (check what this is on trac) using the command

      svn co https://ppesvn.physics.gla.ac.uk/svn/atlas/NNFitter/tags/NNFitter-00-00-0X %BR%

    • check out a version of the GlaNtp code into your home directory (or set up genemflat_batch_Complete2_SL5.sh to point at someone else's installation of the the code). The procedure for how to do this is described in the next section.

     
    • ensure you know the ntuple_area variable to be passed in at run-time to genemflat_batch_Complete2_SL5.sh. This will be the directory where the input ntuples are stored (currently /data/atlas07/ahgemmell/NTuple-v15-30Aug for ntuples which have sensible states, events passing preselection and events failing preselection having my_failEvent == 3, 1 and 0 respectively – note that by their very nature, sensible states have also passed preselection).

    • The BASEBATCHDIR is now set automatically to the working directory when the script is executed.

    Added:
    >
    >

    Getting a copy of GlaNtp

    • Set yourself up for access into SVN (e.g.

      svn proxy init

    • Create the directory where you want to set up your copy, and copy in the setup script:

    mkdir /home/ahgemmell/GlaNtp
    cd /home/ahgemmell/GlaNtp
    cp /home/stdenis/GlaNtpScript.sh .
    

    • To avoid any potential problems with previously set up aliases etc, clear them all (you will need to do this during the running of the code, so you might as well copy it into your directory):

    cp /home/stdenis/atlas/testGlaNtp/cleanpath3.sh
    source cleanpath3.sh
    

    • Make a directory to hold the code itself:

      mkdir GlaNtpPackage

    • GlaNtpScript.sh not only checks out and compiles the code, it also then goes and validates it. You need to define the input for this:

    export GLANTP_DATA=/data/cdf01/stdenis/GlaNtpData
    

    • You now run the script, specifying whether you want a specific tag (e.g. 00-00-10), or just from the head of the trunk (h) so you're more free to play around with it. It's always a good idea to check out a specific tag, so that whatever you do to the head, you can still run over a valid release.

    ./GlaNtpScript.sh SVN 00-00-10

    *

    This will check out everything, and run a few simple validations - the final output should look like this (i.e. don't be worried that not everything seems to have passed validation!):

    HwwFlatFitATLAS Validation succeeded
    Done with core tests
    Result of UtilBase                          validation:  NOT DONE: NEED
    Result of Steer                             validation:  OK
    Result of StringStringSet                   validation:  OK
    Result of StringIntMap                      validation:  OK
    Result of ItemCategoryMap                   validation:  OK
    Result of FlatSystematic                    validation:  OK
    Result of LJMetValues                       validation:  OK
    Result of PhysicsProc                       validation:  OK
    Result of FlatNonTriggerableFakeScale       validation:  OK
    Result of FlatProcessInfo                   validation:  OK
    Result of PaletteList                       validation:  OK
    Result of CutInterface                      validation:  NOT DONE: NEED
    Result of NNWeight                          validation:  NOT DONE: NEED
    Result of FlatFileMetadata                  validation:  OK
    Result of FlatFileMetadataContainer         validation:  OK
    Result of Masks                             validation:  NOT DONE: NEED
    Result of FFMetadata                        validation:  OK
    Result of RUtil                             validation:  NOT DONE: NEED
    Result of HistHolder                        validation:  NOT DONE: NEED
    Result of GlaFlatFitCDF                     validation:  OK
    Result of GlaFlatFitBigSysTableCDF          validation:  OK
    Result of GlaFlatFitBigSysTableNoScalingCDF validation:  OK
    Result of GlaFlatFitATLAS                   validation:  OK
    Result of FlatTuple                         validation:  OK
    Result of FlatReWeight                      validation:  OK
    Result of FlatReWeight_global               validation:  OK
    Result of FlatReWeightMVA                   validation:  OK
    Result of FlatReWeightMVA_global            validation:  OK
    Result of TreeSpecGenerator                 validation:  OK
    Result of FlatAscii                         validation:  OK
    Result of FlatAscii_global                  validation:  OK
    Result of FlatTRntp                         validation:  OK
    

     

    Variables used by the Neural Net

    The list of variables on which the neural net is to train is set in the shell script, under TMVAvarset.txt (this file is created when the script runs). At present, these variables are:

    Revision 932011-03-04 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 319 to 319
      This file contains various parameters:
    Changed:
    <
    <
    ColumnParameter BackgroundList 0 tt0j=0
    >
    >
    ColumnParameter BackgroundList 0 tt0j=0
    ColumnParameter SignalList     1 ttH=1
     
    Changed:
    <
    <
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList or SignalList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but does not need to correspond to my_Eventtype. However, for completeness' sake within this file I have set it as such.
    >
    >
    Here you specify once again the numbers assigned to the processes by my_Eventtype (for tt0j it equals zero), and list things as BackgroundList or SignalList. The number after 'BackgroundList' or 'SignalList' is unique for each process (to preserve the uniqueness of <tag>:<sequence>), but does not need to correspond to my_Eventtype. However, for completeness' sake within this file I have set it as such. The number at the end of this declaration (ttjj=0 in this case) needs to be sequential - it instructs the net of the order in which to process the samples, so it must go from 0 to n-1 (when you have n samples).
     
    ColumnParameter PseudoDataList 0 tt0j=0
    Changed:
    <
    <
    This is simply a restatement of the BackgroundList - the same numbers in the same place. This list specifies the processes included in the pseudoexperiments, and therefore the signal process is not included in this list.
    >
    >
    This is simply a restatement of the BackgroundList (as we're looking for exclusion, the pseudodata is background only) - the same numbers in the same place. This list specifies the processes included in the pseudoexperiments, and therefore the signal process is not included in this list.
     
    ListParameter     ProcessLabels:1 1 tt0j:t#bar{t}0j
    Changed:
    <
    <
    The number after ProcessLabels again doesn't correspond to my_Eventtype - I have made it the same as the number after BackgroundList/SignalList and PseudoDataList. The important feature from this is that it tells the ANN what to label each of the various processes as in the results plots.
    >
    >
    The number after ProcessLabels again doesn't correspond to my_Eventtype - I have made it the same as the number after BackgroundList/SignalList and PseudoDataList. The important feature from this is that it tells the ANN what to label each of the various processes as in the results plots. Again, the numbers must run from 0 to n-1.
     
    ColumnParameter UCSDPalette 0    tt0j=19
    Line: 344 to 345
     
    ColumnParameter ProcessOrder 0 tt0j=0
    Changed:
    <
    <
    Once again, the number on its own (in this case 0) is the same as the other such instances in this file. The final number (zero in this case) is the order in which this process should be plotted - i.e. in this case, the tt0j sample will be plotted first in the output, with the other samples piled on top of it.
    >
    >
    Once again, the number on its own (in this case 0) is the same as the other such instances in this file. The final number (zero in this case) is the order in which this process should be plotted - i.e. in this case, the tt0j sample will be plotted first in the output, with the other samples piled on top of it. This number obviously does not need to correspond to my_Eventtype.
     

    FlatSysSetAtlastth1.txt

    Revision 922011-03-03 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 601 to 601
     tr[run number].o[PBS job number]

    This output file is written as soon as the job stops, and contains a summary of the full run - useful for looking for error messages.

    Added:
    >
    >
  • TMVAPerf_120_Run[run number]Job2.html

    A useful little html page that one of Rick's scripts creates, showing a number of useful plots - the signal and background Net scores, distributions of input variables and their correlations, and so on.

  •  

    Limitations

    Revision 912011-03-02 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 156 to 156
      Need to work out why this jobOption does not over-ride the default. It might itself be overridden by python/ttH_defaults.py - if this is the case, then a number of other settings are also over-ridden.
    Added:
    >
    >
    4. From the ye olde code, I noticed a 'placeholder' warning to check that W and top masses used in the sensible states are the same as in the generator (this hasn't been done yet). Also, perhaps we can tighten the sensible cut on the W mass? Seems rather wide at the mo (25GeV)....
     

    Running the Neural Net

    Overview of the process

    Revision 902011-03-02 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 682 to 682
      This needs to be set to one if your input datasets have non-sensible states. Otherwise, global variables are loaded on one occasion from the first entry in the file, and kept. If this entry is not sensible, or for some other reason has an unreasonable answer for this global value, a problem will develop. With this switch on, the values will be loaded each and every time – obviously this slows the code down – if the global values are safely stored in every entry, it might be best to set this to false.
    Added:
    >
    >

    TMVAsteer.txt (genemflat_batch_Complete2_SL5.sh)

    H6AONN5MEMLP      MLP         1 !H:!V:NCycles=1000:HiddenLayers=N+1,N:RandomSeed=9876543

    If the phrase 'H6AONN5MEMLP' is changed, then this change must also be propogated to the webpage plotter (e-mail from Rick 1 Mar 2011)

     
    META FILEATTACHMENT attachment="FlatStack_1.eps" attr="" comment="" date="1248433975" name="FlatStack_1.eps" path="FlatStack_1.eps" size="92277" stream="FlatStack_1.eps" tmpFilename="/usr/tmp/CGItemp38062" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="FlatStack_2.eps" attr="" comment="" date="1248437170" name="FlatStack_2.eps" path="FlatStack_2.eps" size="111640" stream="FlatStack_2.eps" tmpFilename="/usr/tmp/CGItemp42033" user="GavinKirby" version="1"
    META FILEATTACHMENT attachment="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" attr="" comment="" date="1248437178" name="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" path="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" size="17392" stream="drivetestFlatFitAtlastth.rootSemiLeptonic_lnsb1.eps" tmpFilename="/usr/tmp/CGItemp41936" user="GavinKirby" version="1"

    Revision 892011-03-01 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 21 to 21
      Samples are produced for the Neural Net from AODs - results have previously been obtained for MC samples derived from v12 and v15 of athena. Current efforts are directed toward debugging the v15 results, and then upgrading to v16 input. The inputs are created from AODs using the TtHHbbDPDBasedAnalysis package (currently 00-04-18 and its branches are for v15, 00-04-19 is for v16).
    Added:
    >
    >

    Current samples in use

    Input data and cross-sections

    These cross-sections are for the overall process, at √s = 7 TeV.

    The ttH sample cross-sections are provided for the overall process - the MC is divided into two samples with W+ and W- independent of one another. These two samples are merged before being put through the ANN.

    The tt samples were initially generated to produce the equivalent of 75fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40fb-1. Divide this by 40 to get the number of events in 1fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 - so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy - simply divide by 40.8.... You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.

    **IMPORTANT** The Filter Efficiency for these samples was calculated based on a no-pileup sample. The filter is generator level, and one of the things it will cut an event for is not enough jets. However, pileup adds jets, but these are added well after the filter. The net result is that a number of events that failed the filter would have passed, had the pileup been added earlier in the process. This means the filter efficiency (and thus the cross-sections) are incorrect, by a yet to determined amount....

    For the other samples, however, we do need to worry about branching ratios - the quoted initial cross-section includes all final states, so we need to apply branching ratios to the cross-section to reduce it down, so that it reflects the sample we've generated. We then subsequently need to reduce the cross-section further so that it reflects the number of sensible states.

    Sample Dataset numbers Cross-section (pb) Branching Ratios Filter Efficiency What the multiplicative factors are Effective cross-section (pb) Sources
    ttH 109840, 109841 0.09756 0.676*0.216*2*0.675 0.8355 Overall 0.01607 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/CERNYellowReportPageAt7TeV
          0.676   W → hadrons   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)    
          2   Account for the 2 W decay routes    
          0.675   H → bb    
            0.8355 Lepton filter efficiency   Filter eff: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGHSG5Dataset7TeV
    tt + 0j 105894, 116102 13.18 1.84   For sample 105894 24.25120 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            0.06774 Filter efficiency for sample 116102   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
    tt + 1j 105895, 116103 13.17 1.84   For sample 105895 24.23280 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            0.2142 Filter efficiency for sample 116103   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
    tt + 2j 105896, 116104 7.87 1.84   For sample 105896 14.48080 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            0.4502 Filter efficiency for sample 116104   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
    tt + 3j 105897, 116105 5.49 1.84   For sample 105897 10.10160 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            0.5860 Filter efficiency for sample 116105   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
    gg → ttbb (QCD) 116101 0.8986 0.676*0.216*2*1.84   Overall 0.48285 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    qq → ttbb (QCD) 116106 0.1416 0.676*0.216*2*1.84   Overall 0.07609 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    gg → ttbb (EWK) 116100 0.0875 0.676*0.216*2*1.84   Overall 0.04702 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    qq → ttbb (EWK) 116107 0.0101 0.676*0.216*2*1.84   Overall 0.00543 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    <-- /editTable -->

    These cross-sections and branching ratios are correct as of 8 Feb 2011. qq→ttbb (EWK) is currently not being used, thanks to a bug in the production of the MC

    Number of events surviving preselection, weights and TrainWeights

    (See later in the TWiki for an explanation of weights and TrainWeights.) This table will be completed with all the relevant weights and TrainWeights at a later date - these values are to be compared to the output from Computentp to ensure everything is working as intended, and are calculated for the sensible cross-sections/events. (A quick check of the TrainWeight is to multiply the number so events of each background by their TrainWeight and sum them - by design, this should equal the number of entries in the ttH sample.)

    Sample Dataset Number Pileup?   Number of events     Cross-section (fb)  
          Total Passing Preselection Sensible States Total Passing Preselection Sensible States
    ttH (W+ sample) 109840 Yes 29968 2685 1936      
        No   2497 1761      
    ttH (W- sample) 109841 Yes 29980 2764 2020      
        No   2600 1879      
    ttH (total)   Yes 59948 5449 3956 16.07 1.460 1.060
        No   5097 3640   1.366 0.976
    tt + 0j 105894 No 25487 6 5 24251 5.709 4.758
      116102 Yes 66911 149 123      
        No   78 66      
    tt + 1j 105895 No 26980 21 18 24233 18.862 16.167
      116103 Yes 211254 960 787      
        No   638 517      
    tt + 2j 105896 No 17487 69 53 14481 57.138 43.889
      116104 Yes 265166 2478 1957      
        No   2026 1548      
    tt + 3j 105896 No 10990 96 77 10102 88.240 70.776
      116105 Yes 241235 3946 3022      
        No   3469 2619      
    gg → ttbb (QCD) 116101 Yes 89887 3550 2560 483 19.070 13.752
    qq → ttbb (QCD) 116106 Yes 19985 496 366 76.09 1.888 1.393
    gg → ttbb (EWK) 116100 Yes 19987 981 706 47.02 2.308 1.661
    <-- /editTable -->
     

    Issues still to be resolved

    1. In share/TtHHbbSetups.py:

    Line: 270 to 358
      Currently, the type of event you are looking at is determined by looking at my_failEvent. States failing preselection have this equal to 0, passing preselection but not having a sensible final state equal 1 and passing preselection and having a sensible final state equal 3. These numbers are the basis of a number of bitwise tests - thus when setting your own my_failEvents, consider which bits in a binary string you want to represent various things, and then convert those to decimal.
    Deleted:
    <
    <

    Current samples in use

    Input data and cross-sections

    These cross-sections are for the overall process, at √s = 7 TeV.

    The ttH sample cross-sections are provided for the overall process - the MC is divided into two samples with W+ and W- independent of one another. These two samples are merged before being put through the ANN.

    The tt samples were initially generated to produce the equivalent of 75fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40fb-1. Divide this by 40 to get the number of events in 1fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 - so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy - simply divide by 40.8.... You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.

    **IMPORTANT** The Filter Efficiency for these samples was calculated based on a no-pileup sample. The filter is generator level, and one of the things it will cut an event for is not enough jets. However, pileup adds jets, but these are added well after the filter. The net result is that a number of events that failed the filter would have passed, had the pileup been added earlier in the process. This means the filter efficiency (and thus the cross-sections) are incorrect, by a yet to determined amount....

    For the other samples, however, we do need to worry about branching ratios - the quoted initial cross-section includes all final states, so we need to apply branching ratios to the cross-section to reduce it down, so that it reflects the sample we've generated. We then subsequently need to reduce the cross-section further so that it reflects the number of sensible states.

    Sample Dataset numbers Cross-section (pb) Branching Ratios Filter Efficiency What the multiplicative factors are Effective cross-section (pb) Sources
    ttH 109840, 109841 0.09756 0.676*0.216*2*0.675 0.8355 Overall 0.01607 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/CERNYellowReportPageAt7TeV
          0.676   W → hadrons   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)    
          2   Account for the 2 W decay routes    
          0.675   H → bb    
            0.8355 Lepton filter efficiency   Filter eff: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGHSG5Dataset7TeV
    tt + 0j 105894, 116102 13.18 1.84   For sample 105894 24.25120 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            0.06774 Filter efficiency for sample 116102   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
    tt + 1j 105895, 116103 13.17 1.84   For sample 105895 24.23280 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            0.2142 Filter efficiency for sample 116103   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
    tt + 2j 105896, 116104 7.87 1.84   For sample 105896 14.48080 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            0.4502 Filter efficiency for sample 116104   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
    tt + 3j 105897, 116105 5.49 1.84   For sample 105897 10.10160 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            0.5860 Filter efficiency for sample 116105   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
    gg → ttbb (QCD) 116101 0.8986 0.676*0.216*2*1.84   Overall 0.48285 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    qq → ttbb (QCD) 116106 0.1416 0.676*0.216*2*1.84   Overall 0.07609 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    gg → ttbb (EWK) 116100 0.0875 0.676*0.216*2*1.84   Overall 0.04702 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    qq → ttbb (EWK) 116107 0.0101 0.676*0.216*2*1.84   Overall 0.00543 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    <-- /editTable -->

    These cross-sections and branching ratios are correct as of 8 Feb 2011. qq→ttbb (EWK) is currently not being used, thanks to a bug in the production of the MC

    Number of events surviving preselection, weights and TrainWeights

    This table will be completed with all the relevant weights and TrainWeights at a later date - these values are to be compared to the output from Computentp to ensure everything is working as intended, and are calculated for the sensible cross-sections/events. (A quick check of the TrainWeight is to multiply the number so events of each background by their TrainWeight and sum them - by design, this should equal the number of entries in the ttH sample.)

    Sample Dataset Number Pileup?   Number of events     Cross-section (fb)  
          Total Passing Preselection Sensible States Total Passing Preselection Sensible States
    ttH (W+ sample) 109840 Yes 29968 2685 1936      
        No   2497 1761      
    ttH (W- sample) 109841 Yes 29980 2764 2020      
        No   2600 1879      
    ttH (total)   Yes 59948 5449 3956 16.07 1.460 1.060
        No   5097 3640   1.366 0.976
    tt + 0j 105894 No 25487 6 5 24251 5.709 4.758
      116102 Yes 66911 149 123      
        No   78 66      
    tt + 1j 105895 No 26980 21 18 24233 18.862 16.167
      116103 Yes 211254 960 787      
        No   638 517      
    tt + 2j 105896 No 17487 69 53 14481 57.138 43.889
      116104 Yes 265166 2478 1957      
        No   2026 1548      
    tt + 3j 105896 No 10990 96 77 10102 88.240 70.776
      116105 Yes 241235 3946 3022      
        No   3469 2619      
    gg → ttbb (QCD) 116101 Yes 89887 3550 2560 483 19.070 13.752
    qq → ttbb (QCD) 116106 Yes 19985 496 366 76.09 1.888 1.393
    gg → ttbb (EWK) 116100 Yes 19987 981 706 47.02 2.308 1.661
    <-- /editTable -->
     

    Setting Systematic Uncertainties

    The fitting code can take into account two different types of systematic uncertainty - rate and shape. The basic method to obtain both these uncertainties is that you should make your input samples for both your nominal sample, and for the two bounds of a given error (e.g. Initial State Radiation, ISR). Repeat this for all of the errors you wish to consider. The rate systematic uncertainty is simply how the number of events change that pass your preselection cuts etc. (you can only consider this, if you like). To obtain the shape uncertainty, you should pass each of the resulting datasets through the ANN (up to and including the templating, so that you have ANN results for both the nominal results, and as a result of varying each background). These ANN outputs can then be used to produce the rate uncertainties based on their integrals, before being normalised to the nominal cross-section so as to find the shape uncertainty - a measure of the percentage change in the bin-by-bin distribution for each error.

    Revision 882011-03-01 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 16 to 16
     The key feature of a neural network is its ability to be "trained" to recognise patterns in data, allowing high efficiency algorithms to be developed with relative ease. This training is typically done with sample data which has been generated artificially, resulting in an algorithm that is very effective at recognising certain patterns in data sets. The only shortcoming is the danger of "over-training" an ANN, meaning that it becomes overly discriminating and searches across a narrower range of patterns than is desired (one countermeasure is to add extra noise to training data).

    Computentp :- Simply running the code as above will result in less than optimal Neural Net training. The training procedure requires equal numbers of events from signal and from background (in this case it results in half of the signal events being used in training, half for testing). However, the above code will take events from the background signal samples in proportion to the file sizes - these result in proportions not quite in accordance with physical ratios. As the Neural Net weights results according to information about the cross-section of the process and so on stored in the tree, the final result is that while the outputs are weighted in a physical fashion, the Net is not trained to the same ratios, and so is not optimally trained. To solve this problem, Computentp is used to mix together all background and signal samples., and assign TrainWeights to them, so that the events are weighted correctly for the Net's training.

    Added:
    >
    >

    Preparing samples for the Neural Net

    Samples are produced for the Neural Net from AODs - results have previously been obtained for MC samples derived from v12 and v15 of athena. Current efforts are directed toward debugging the v15 results, and then upgrading to v16 input. The inputs are created from AODs using the TtHHbbDPDBasedAnalysis package (currently 00-04-18 and its branches are for v15, 00-04-19 is for v16).

    Issues still to be resolved

    1. In share/TtHHbbSetups.py:

    include( "AtlasGeoModel/SetGeometryVersion.py" )
    include( "AtlasGeoModel/GeoModelInit.py" )
    

    Athena warns that both of these files are obsolete - this does not lead to an ERROR or WARNING, but nonetheless needs to be looked at.

    2. In src/PreselectLeptons.cxx:

        const EMShower* shower;
        if ((*elecItr)->author() != egammaParameters::AuthorUnknown){
          trackIsolationEnergy20 = m_trackIsolationTool->trackIsolationEnergy((*elecItr)->trackParticle(),0.2);
          trackIsolationEnergy30 = m_trackIsolationTool->trackIsolationEnergy((*elecItr)->trackParticle(),0.3);
          trackIsolationEnergy40 = m_trackIsolationTool->trackIsolationEnergy((*elecItr)->trackParticle(),0.4);
          shower                 = (*elecItr)->detail<EMShower>(m_showerContainerName);
          //CCT: shower - seems to have stopped working in 15.6.0.2 for data made with r838 (v15.3.1.6)                                                                               
          //was giving a seg fault as it tried to get etcone20 even if "shower" had not been successfully obtained!                                                                   
          if (!shower) {
            mLog << MSG::WARNING << "Invalid EMShower pointer!" << endreq;
          }else{
            etcone20               = shower->etcone20()/pT;
            mLog << MSG::INFO << "shower->etcone20() = " << shower->etcone20() << ", pT = " << pT << endreq;
          }
        }
    

    The warning message appears an awful lot - also, don't think this influences the Net inputs, but still should be looked at - do we need to get anything from the shower?

    3. In the jobOptions file we currently have:

    PreselectLeptons.McEventInfoName = "MyEvent"
    

    However, in the athena output we still have:

    StoreGateSvc      WARNING retrieve(const): No valid proxy for object McEventInfo  of type EventInfo(CLID 2101)
    

    Need to work out why this jobOption does not over-ride the default. It might itself be overridden by python/ttH_defaults.py - if this is the case, then a number of other settings are also over-ridden.

     

    Running the Neural Net

    Overview of the process

    Revision 872011-02-28 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 408 to 408
     
    GeneralParameter string 1 Constraint=(my_failEvent&3)==3
    Changed:
    <
    <
    in genemflat_batch_Complete2.sh controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first to bits are not set, and are equal to zero), then the event is used for training. This filter is not used currently, as training of the net takes place based on the Computentp output - this Computentp output only contains sensible states (as specified in the TreeSpecATLAStth.txt file's filter). If further filtering is required, then care must be taken to ensure that my_failEvent (or whatever you wish to base your filter on) is specified in the VariableTreeToNTP file, so that Computentp will copy it into its output.
    >
    >
    in genemflat_batch_Complete2.sh controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first two bits are set, and not equal to zero), then the event is used for training. This filter is not used currently, as training of the net takes place based on the Computentp output - this Computentp output only contains sensible states (as specified in the TreeSpecATLAStth.txt file's filter). If further filtering is required, then care must be taken to ensure that my_failEvent (or whatever you wish to base your filter on) is specified in the VariableTreeToNTP file, so that Computentp will copy it into its output.
      If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.

    Revision 862011-02-27 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 395 to 395
     

    Filters

    Changed:
    <
    <
    It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts and have 'sensible states'. The preselection cuts are easy enough to understand - they merely clean the sample - events which fail these are set to zero. However, it is possible for some events to have pass the cuts, but still not be anything like that which we would want (e.g. there is no way to reconstruct a top with a realistic mass). Seeing as it is likely that the backgrounds have more of these non-sensible states, to include them would be to give the ANN an unfair advantage in determining signal from background. But we don't want to simply set them equal to zero, as at other times we are going to be interested in how events passing preselection can fail to have sensible states, and so will want to examine them further. We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in genemflat_batch_Complete2.sh and TreeSpecATLAStth.txt.

    The constraint

    GeneralParameter string 1 Constraint=(my_failEvent&3)==0

    in genemflat_batch_Complete2.sh controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first to bits are not set, and are equal to zero), then the event is used for training.

    If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.

    >
    >
    It is possible for the inputs to the ANN to have more events in than those that you want to pass to on for processing. We only want to train the ANN on those samples that would pass our preselection cuts and have 'sensible states'. The preselection cuts are easy enough to understand - they merely clean the sample - events which fail these are set to zero. However, it is possible for some events to have pass the cuts, but still not be anything like that which we would want (e.g. there is no way to reconstruct a top with a realistic mass). Seeing as it is likely that the backgrounds have more of these non-sensible states, to include them would be to give the ANN an unfair advantage in determining signal from background. But we don't want to simply set them equal to zero, as at other times we are going to be interested in how events passing preselection can fail to have sensible states, and so will want to examine them further. We therefore have filters so that Computentp and the ANN only look at events of our choosing. These filters take the place of various bitwise tests in genemflat_batch_Complete2.sh (not currently used, as explained below) and TreeSpecATLAStth.txt.
      In TreeSpecATLAStth.txt the filters control what is used for the templating, and Computentp:
    Line: 412 to 404
      InvertWord is used to invert the relevant bits (in this case no bits are inverted) before the cut from cutMask is applied. The cutMask will exclude from templating those events where the matching bits are equal to zero AFTER the inversion. So here, with no inversion applied, those events with my_failEvent == 3 will be used for templating.
    Changed:
    <
    <
    **NOTE** The above example is inconsistent - the Constraint excludes those that have my_failEvent==3, while the InvertWord/CutMask excludes those that have my_failEvent!=3. This requires some working out to make sure everything works, and is ongoing....
    >
    >
    The constraint

    GeneralParameter string 1 Constraint=(my_failEvent&3)==3

    in genemflat_batch_Complete2.sh controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first to bits are not set, and are equal to zero), then the event is used for training. This filter is not used currently, as training of the net takes place based on the Computentp output - this Computentp output only contains sensible states (as specified in the TreeSpecATLAStth.txt file's filter). If further filtering is required, then care must be taken to ensure that my_failEvent (or whatever you wish to base your filter on) is specified in the VariableTreeToNTP file, so that Computentp will copy it into its output.

    If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.

     

    Running

    Revision 852011-02-25 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 403 to 403
      in genemflat_batch_Complete2.sh controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first to bits are not set, and are equal to zero), then the event is used for training.
    Added:
    >
    >
    If USEHILOSB is set to 1 then && must be appended to cut criteria, e.g. GeneralParameter string 1 Constraint=(my_failEvent&65536)==0&&. This is because USEHILOSB adds more constraints.
     In TreeSpecATLAStth.txt the filters control what is used for the templating, and Computentp:

    ListParameter SpecifyVariable:Higgs:cutMask 1 Type:int:Default:3

    Revision 842011-02-25 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 98 to 98
      NN_BJetWeight_Jet1
    NN_BJetWeight_Jet2
    NN_BJetWeight_Jet3
    NN_BJetWeight_Jet4
    NN_BJetWeight_Jet5
    NN_BJetWeight_Jet6
    NN_BJet12_M
    NN_BJet13_M
    NN_BJet14_M
    NN_BJet23_M
    NN_BJet24_M
    NN_BJet34_M
    NN_BJet12_Pt
    NN_BJet13_Pt
    NN_BJet14_Pt
    NN_BJet23_Pt
    NN_BJet24_Pt
    NN_BJet34_Pt
    NN_State1_SumTopEt
    NN_State2_SumTopEt
    NN_State3_SumTopEt
    NN_State1_DiffTopEta
    NN_State2_DiffTopEta
    NN_State3_DiffTopEta
    NN_State1_DiffTopPhi
    NN_State2_DiffTopPhi
    NN_State3_DiffTopPhi
    Added:
    >
    >
    You also need to provide addresses to the Neural Net so that it can find the variables in the input trees. This is done inside VariableTreeToNTPATLASttHSemiLeptonic-v15.txt

    ListParameter   EvInfoTree:1  1 NN_BJetWeight_Jet1:NN_BJetWeight_Jet1/NN_BJetWeight_Jet1

    Currently all information is in the EvInfoTree, which provides event level information. However, future work will involve trying to establish a GlobalInfoTree, which contains information about the entire sample, such as cross-section - this will only need to be loaded once, and saves having to write the same information into the tree repeatedly, and subsequently reading it repeatedly.

     

    Variable Weights in the Neural Net

    To set up a neural net for the analysis of a particular kind of data it is necessary to train it with sample data; this process will adjust the "weights" on each variable that the neural net analyses in the ntuple, in order to optimise performance. These weights can then be viewed as a scatter plot in ROOT.

    Line: 278 to 281
      This table will be completed with all the relevant weights and TrainWeights at a later date - these values are to be compared to the output from Computentp to ensure everything is working as intended, and are calculated for the sensible cross-sections/events. (A quick check of the TrainWeight is to multiply the number so events of each background by their TrainWeight and sum them - by design, this should equal the number of entries in the ttH sample.)
    Added:
    >
    >
    <-- /editTable -->
     
    Sample Dataset Number Pileup?   Number of events     Cross-section (fb)  
          Total Passing Preselection Sensible States Total Passing Preselection Sensible States
    ttH (W+ sample) 109840 Yes 29968 2685 1936      
    Line: 335 to 339
      The first parameter consists of two parts in this example: 'Combine' and 'Lumi'. The second part is the name of the uncertainty being considered. The first part 'Combine' (and the associated semicolon between them) is optional. It tells the ANN that the uncertainty thus labelled are independent of each other, and can be added in quadrature. 'OnOff' obviously tells the ANN to consider those uncertainty (1) or not (0). 'Low' and 'High' establish the relevant bounds of the uncertainty as fractions of the total (however, for the ANN these uncertainties are symmetrised, so to save time they are here assumed to be symmetric unless elsewhere stated) - note that these are not the uncertainties on the quantity, but rather the effect of that uncertainty on the rate of your process. Process is not actually read by the ANN, but is there to make the whole thing more human-friendly to read. The current errors, and their bounds are below. If no source for these error bounds is given, then they were the defaults found in the files from time immemorial (where as necessary I assumed that all tt + X errors were the same, as were all ttbb (QCD) errors, as in the original files the only samples considered were ttjj, ttbb(EWK), ttbb(QCD) and ttH - these errors probably originate from the CSC note). If you are only considering rate uncertainties, this is where the fitting code will find the relevant numbers.
    Added:
    >
    >
    <-- /editTable -->
     
    Error Combined? Process Upper/Lower Bound Source
    Luminosity Yes All 11% https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopSystematicUncertainties15
    Trigger Yes tt + X 1.5%  
    Line: 396 to 401
     
    GeneralParameter string 1 Constraint=(my_failEvent&3)==0
    Changed:
    <
    <
    in genemflat_batch_Complete2.sh will exclude from training those events where the above constraint is false. So in the above example, only events with the first two bits equal to one will pass the filter.
    >
    >
    in genemflat_batch_Complete2.sh controls the events used in the training, using a bitwise comparison. If the constraint is true (i.e. the first to bits are not set, and are equal to zero), then the event is used for training.
     
    Changed:
    <
    <
    In TreeSpecATLAStth.txt the filters are set with:
    >
    >
    In TreeSpecATLAStth.txt the filters control what is used for the templating, and Computentp:
     
    Changed:
    <
    <
    ListParameter SpecifyVariable:Higgs:cutMask 1 Type:int:Default:1
    >
    >
    ListParameter SpecifyVariable:Higgs:cutMask 1 Type:int:Default:3
     ListParameter SpecifyVariable:Higgs:invertWord 1 Type:int:Default:0
    Changed:
    <
    <
    The constraint is hardwired to be off the form where my_failEvent&cutMask==0 would fail the event, exaclty like the constraint. However, it is not beyond the realms of possibility where you want events with bits of my_failEvent set to zero to pass, not fail. In genemflat this is easily done by changing ==0 into ==1 - however, we cannot directly do this in TreeSpec. To get around the problem we have invertWord - this simply flips the relevant bits in my_failEvent before passing them to the test.
    >
    >
    InvertWord is used to invert the relevant bits (in this case no bits are inverted) before the cut from cutMask is applied. The cutMask will exclude from templating those events where the matching bits are equal to zero AFTER the inversion. So here, with no inversion applied, those events with my_failEvent == 3 will be used for templating.

    **NOTE** The above example is inconsistent - the Constraint excludes those that have my_failEvent==3, while the InvertWord/CutMask excludes those that have my_failEvent!=3. This requires some working out to make sure everything works, and is ongoing....

     

    Running

    Revision 832011-02-24 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 222 to 222
      The tt samples were initially generated to produce the equivalent of 75fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40fb-1. Divide this by 40 to get the number of events in 1fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 - so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy - simply divide by 40.8.... You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.
    Added:
    >
    >
    **IMPORTANT** The Filter Efficiency for these samples was calculated based on a no-pileup sample. The filter is generator level, and one of the things it will cut an event for is not enough jets. However, pileup adds jets, but these are added well after the filter. The net result is that a number of events that failed the filter would have passed, had the pileup been added earlier in the process. This means the filter efficiency (and thus the cross-sections) are incorrect, by a yet to determined amount....
     For the other samples, however, we do need to worry about branching ratios - the quoted initial cross-section includes all final states, so we need to apply branching ratios to the cross-section to reduce it down, so that it reflects the sample we've generated. We then subsequently need to reduce the cross-section further so that it reflects the number of sensible states.
    Line: 236 to 238
     
          0.675   H → bb    
            0.8355 Lepton filter efficiency   Filter eff: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGHSG5Dataset7TeV
    tt + 0j 105894, 116102 13.18 1.84   For sample 105894 24.25120 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
    Changed:
    <
    <
          1.84 0.06774 For sample 116102   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    >
    >
            0.06774 Filter efficiency for sample 116102   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
     
          1.84   k-factor    
    Deleted:
    <
    <
            0.06744 Generator-level filter efficiency    
     
    tt + 1j 105895, 116103 13.17 1.84   For sample 105895 24.23280 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
    Changed:
    <
    <
          1.84 0.2142 For sample 116103   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    >
    >
            0.2142 Filter efficiency for sample 116103   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
     
          1.84   k-factor    
    Deleted:
    <
    <
            0.2142 Generator-level filter efficiency    
     
    tt + 2j 105896, 116104 7.87 1.84   For sample 105896 14.48080 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
    Changed:
    <
    <
          1.84 0.4502 For sample 116104   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    >
    >
            0.4502 Filter efficiency for sample 116104   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
     
          1.84   k-factor    
    Deleted:
    <
    <
            0.4502 Generator-level filter efficiency    
     
    tt + 3j 105897, 116105 5.49 1.84   For sample 105897 10.10160 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
    Changed:
    <
    <
          1.84 0.5860 For sample 116105   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    >
    >
            0.5860 Filter efficiency for sample 116105   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
     
          1.84   k-factor    
    Deleted:
    <
    <
            0.5860 Generator-level filter efficiency    
     
    gg → ttbb (QCD) 116101 0.8986 0.676*0.216*2*1.84   Overall 0.48285 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!

    Revision 822011-02-24 - ChrisCollins

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 224 to 224
      For the other samples, however, we do need to worry about branching ratios - the quoted initial cross-section includes all final states, so we need to apply branching ratios to the cross-section to reduce it down, so that it reflects the sample we've generated. We then subsequently need to reduce the cross-section further so that it reflects the number of sensible states.
    Added:
    >
    >

    <-- /editTable -->
     
    Sample Dataset numbers Cross-section (pb) Branching Ratios Filter Efficiency What the multiplicative factors are Effective cross-section (pb) Sources
    ttH 109840, 109841 0.09756 0.676*0.216*2*0.675 0.8355 Overall 0.01607 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/CERNYellowReportPageAt7TeV
          0.676   W → hadrons   Branching ratios: 2008 PDG Booklet
    Line: 267 to 271
     
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    Added:
    >
    >

      These cross-sections and branching ratios are correct as of 8 Feb 2011. qq→ttbb (EWK) is currently not being used, thanks to a bug in the production of the MC

    Revision 812011-02-24 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 216 to 216
     

    Input data and cross-sections

    Changed:
    <
    <
    These cross-sections are for the overall process, at √s = 7 TeV. The 'final effective cross-section' is the cross-section for the sample we're looking at in in its entirety. For processing in the ANN this is further modified after an initial run by the ANN production code, based on how many events of the total cross-section produce sensible states - the ANN trains only on sensible states, so we must use the cross-section relevant to those in our final analysis.
    >
    >
    These cross-sections are for the overall process, at √s = 7 TeV.
      The ttH sample cross-sections are provided for the overall process - the MC is divided into two samples with W+ and W- independent of one another. These two samples are merged before being put through the ANN.
    Added:
    >
    >
    The tt samples were initially generated to produce the equivalent of 75fb-1 of data, based on the LO cross-sections. Taking into account the k-factor of 1.84, this means that now all samples simulate 40.8fb-1 of data. These samples have also had a generator-level filter applied - most events (especially for tt+0j) are of no interest to us, so we don't want to fill up disk-space with them, so we apply filters based on the numbers of jets etc. The Filter Efficiency is the fraction of events that pass from the general sample into the final simulated sample. To clarify how all the numbers hang together, consider the case of tt+0j. We have simulated 66,911 events - as said above, this corresponds to 40.8fb-1 of data. We have a Filter Efficiency of 0.06774, so the full number of events that a complete semi-leptonic event would be comes to 987,762 events in 40fb-1. Divide this by 40 to get the number of events in 1fb-1 (i.e. the cross-section), and you get 24,694 events per fb-1. Our starting point for our cross-section is 13.18, with a k-factor of 1.84, which gives a cross-section of 24.25 - so all the numbers compare with each other pretty favourably. This of course makes getting from the number of sensible state events to the number expected per fb-1 rather easy - simply divide by 40.8.... You'll notice that the cross-section includes all the branching ratios already, so we don't need to worry about that.

    For the other samples, however, we do need to worry about branching ratios - the quoted initial cross-section includes all final states, so we need to apply branching ratios to the cross-section to reduce it down, so that it reflects the sample we've generated. We then subsequently need to reduce the cross-section further so that it reflects the number of sensible states.

     
    Sample Dataset numbers Cross-section (pb) Branching Ratios Filter Efficiency What the multiplicative factors are Effective cross-section (pb) Sources
    ttH 109840, 109841 0.09756 0.676*0.216*2*0.675 0.8355 Overall 0.01607 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/CERNYellowReportPageAt7TeV
          0.676   W → hadrons   Branching ratios: 2008 PDG Booklet
    Line: 228 to 232
     
          0.675   H → bb    
            0.8355 Lepton filter efficiency   Filter eff: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGHSG5Dataset7TeV
    tt + 0j 105894, 116102 13.18 1.84   For sample 105894 24.25120 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
    Changed:
    <
    <
          1.84 0.06774 For sample 116102 1.64728 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    >
    >
          1.84 0.06774 For sample 116102   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
     
          1.84   k-factor    
            0.06744 Generator-level filter efficiency    
    tt + 1j 105895, 116103 13.17 1.84   For sample 105895 24.23280 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
    Changed:
    <
    <
          1.84 0.2142 For sample 116103 5.19067 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    >
    >
          1.84 0.2142 For sample 116103   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
     
          1.84   k-factor    
            0.2142 Generator-level filter efficiency    
    tt + 2j 105896, 116104 7.87 1.84   For sample 105896 14.48080 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
    Changed:
    <
    <
          1.84 0.4502 For sample 116104 6.51926 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    >
    >
          1.84 0.4502 For sample 116104   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
     
          1.84   k-factor    
            0.4502 Generator-level filter efficiency    
    tt + 3j 105897, 116105 5.49 1.84   For sample 105897 10.10160 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
    Changed:
    <
    <
          1.84 0.5860 For sample 116105 5.91954 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    >
    >
          1.84 0.5860 For sample 116105   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
     
          1.84   k-factor    
            0.5860 Generator-level filter efficiency    
    gg → ttbb (QCD) 116101 0.8986 0.676*0.216*2*1.84   Overall 0.48285 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
    Line: 279 to 283
     
    ttH (total)   Yes 59948 5449 3956 16.07 1.460 1.060
        No   5097 3640   1.366 0.976
    tt + 0j 105894 No 25487 6 5 24251 5.709 4.758
    Changed:
    <
    <
      116102 Yes 66911 149 123 1643 3.658 3.020
        No   78 66   1.915 1.620
    >
    >
      116102 Yes 66911 149 123      
        No   78 66      
     
    tt + 1j 105895 No 26980 21 18 24233 18.862 16.167
    Changed:
    <
    <
      116103 Yes 211254 960 787 5191 23.588 19.337
        No   638 517   15.676 12.703
    >
    >
      116103 Yes 211254 960 787      
        No   638 517      
     
    tt + 2j 105896 No 17487 69 53 14481 57.138 43.889
    Changed:
    <
    <
      116104 Yes 265166 2478 1957 6519 60.923 48.114
        No   2026 1548   49.810 38.058
    >
    >
      116104 Yes 265166 2478 1957      
        No   2026 1548      
     
    tt + 3j 105896 No 10990 96 77 10102 88.240 70.776
    Changed:
    <
    <
      116105 Yes 241235 3946 3022 5920 96.829 74.155
        No   3469 2619   85.124 64.266
    >
    >
      116105 Yes 241235 3946 3022      
        No   3469 2619      
     
    gg → ttbb (QCD) 116101 Yes 89887 3550 2560 483 19.070 13.752
    qq → ttbb (QCD) 116106 Yes 19985 496 366 76.09 1.888 1.393
    gg → ttbb (EWK) 116100 Yes 19987 981 706 47.02 2.308 1.661

    Revision 802011-02-08 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 206 to 206
      The <sequence> parameter (in this case '0') is there so that you can specify the parameters for a given error for multiple channels, without falling foul of the uniqueness requirement for <tag>:<sequence>. We have chosen it so that it equals my_Eventtype for that process. 'Channel' is present just in case you're considering multiple channels. We're only considering the one channel in this case (SemiLeptonic). The final parameter (Process) is not actually used - the second parameter tells the ANN which errors are which, but this isn't very easily read by you, so feel free to add it in to help you keep track of the various errors! These final few parameters can be placed in any order, so long as they are separated by semicolons.
    Added:
    >
    >

    Passing preselection and sensible states

    Many of the generated events in our samples will not pass the preselection cuts we would use in our final analysis. Sometimes to pass preselection requires some mistakes on the part of the reconstruction (e.g. tt + 0j), othertimes to fail preselection requires either the final state particles to be inherently unsuitable for our reconstruction, or to be mis-reconstructed. However, even if an event passes preselection it is possible that the events as reconstructed give a nonsensical final state - for example, the the light jets might not be able to be combined in such a way as to give a reasonable value of the W mass. Based on a few simple mass cuts, an event passing preselection can be determined to have a sensible state or not.

    Currently, the type of event you are looking at is determined by looking at my_failEvent. States failing preselection have this equal to 0, passing preselection but not having a sensible final state equal 1 and passing preselection and having a sensible final state equal 3. These numbers are the basis of a number of bitwise tests - thus when setting your own my_failEvents, consider which bits in a binary string you want to represent various things, and then convert those to decimal.

     

    Current samples in use

    Input data and cross-sections

    These cross-sections are for the overall process, at √s = 7 TeV. The 'final effective cross-section' is the cross-section for the sample we're looking at in in its entirety. For processing in the ANN this is further modified after an initial run by the ANN production code, based on how many events of the total cross-section produce sensible states - the ANN trains only on sensible states, so we must use the cross-section relevant to those in our final analysis.

    Added:
    >
    >
    The ttH sample cross-sections are provided for the overall process - the MC is divided into two samples with W+ and W- independent of one another. These two samples are merged before being put through the ANN.
     
    Sample Dataset numbers Cross-section (pb) Branching Ratios Filter Efficiency What the multiplicative factors are Effective cross-section (pb) Sources
    ttH 109840, 109841 0.09756 0.676*0.216*2*0.675 0.8355 Overall 0.01607 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/CERNYellowReportPageAt7TeV
          0.676   W → hadrons   Branching ratios: 2008 PDG Booklet
    Line: 260 to 268
     

    Number of events surviving preselection, weights and TrainWeights

    Added:
    >
    >
    This table will be completed with all the relevant weights and TrainWeights at a later date - these values are to be compared to the output from Computentp to ensure everything is working as intended, and are calculated for the sensible cross-sections/events. (A quick check of the TrainWeight is to multiply the number so events of each background by their TrainWeight and sum them - by design, this should equal the number of entries in the ttH sample.)

    Sample Dataset Number Pileup?   Number of events     Cross-section (fb)  
          Total Passing Preselection Sensible States Total Passing Preselection Sensible States
    ttH (W+ sample) 109840 Yes 29968 2685 1936      
        No   2497 1761      
    ttH (W- sample) 109841 Yes 29980 2764 2020      
        No   2600 1879      
    ttH (total)   Yes 59948 5449 3956 16.07 1.460 1.060
        No   5097 3640   1.366 0.976
    tt + 0j 105894 No 25487 6 5 24251 5.709 4.758
      116102 Yes 66911 149 123 1643 3.658 3.020
        No   78 66   1.915 1.620
    tt + 1j 105895 No 26980 21 18 24233 18.862 16.167
      116103 Yes 211254 960 787 5191 23.588 19.337
        No   638 517   15.676 12.703
    tt + 2j 105896 No 17487 69 53 14481 57.138 43.889
      116104 Yes 265166 2478 1957 6519 60.923 48.114
        No   2026 1548   49.810 38.058
    tt + 3j 105896 No 10990 96 77 10102 88.240 70.776
      116105 Yes 241235 3946 3022 5920 96.829 74.155
        No   3469 2619   85.124 64.266
    gg → ttbb (QCD) 116101 Yes 89887 3550 2560 483 19.070 13.752
    qq → ttbb (QCD) 116106 Yes 19985 496 366 76.09 1.888 1.393
    gg → ttbb (EWK) 116100 Yes 19987 981 706 47.02 2.308 1.661
     

    Setting Systematic Uncertainties

    The fitting code can take into account two different types of systematic uncertainty - rate and shape. The basic method to obtain both these uncertainties is that you should make your input samples for both your nominal sample, and for the two bounds of a given error (e.g. Initial State Radiation, ISR). Repeat this for all of the errors you wish to consider. The rate systematic uncertainty is simply how the number of events change that pass your preselection cuts etc. (you can only consider this, if you like). To obtain the shape uncertainty, you should pass each of the resulting datasets through the ANN (up to and including the templating, so that you have ANN results for both the nominal results, and as a result of varying each background). These ANN outputs can then be used to produce the rate uncertainties based on their integrals, before being normalised to the nominal cross-section so as to find the shape uncertainty - a measure of the percentage change in the bin-by-bin distribution for each error.

    Revision 792011-02-08 - AlistairGemmell

    Line: 1 to 1
     
    META TOPICPARENT name="WebHome"
    <-- p { margin-bottom: 0.21cm; }h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Serif",serif; }h1.cjk { font-family: "DejaVu Sans"; }h1.ctl { font-family: "DejaVu Sans"; }h2 { margin-bottom: 0.21cm; }h4 { margin-bottom: 0.21cm; }h5 { margin-bottom: 0.21cm; }h3 { margin-bottom: 0.21cm; }h3.western { font-family: "Liberation Serif",serif; }h3.cjk { font-family: "DejaVu Sans"; }h3.ctl { font-family: "DejaVu Sans"; }pre.cjk { font-family: "DejaVu Sans",monospace; }a:link { } -->

    Computentp, Neural Nets and MCLIMITS

    Line: 206 to 206
      The <sequence> parameter (in this case '0') is there so that you can specify the parameters for a given error for multiple channels, without falling foul of the uniqueness requirement for <tag>:<sequence>. We have chosen it so that it equals my_Eventtype for that process. 'Channel' is present just in case you're considering multiple channels. We're only considering the one channel in this case (SemiLeptonic). The final parameter (Process) is not actually used - the second parameter tells the ANN which errors are which, but this isn't very easily read by you, so feel free to add it in to help you keep track of the various errors! These final few parameters can be placed in any order, so long as they are separated by semicolons.
    Changed:
    <
    <

    Current samples in use and the relevant cross-sections

    >
    >

    Current samples in use

    Input data and cross-sections

      These cross-sections are for the overall process, at √s = 7 TeV. The 'final effective cross-section' is the cross-section for the sample we're looking at in in its entirety. For processing in the ANN this is further modified after an initial run by the ANN production code, based on how many events of the total cross-section produce sensible states - the ANN trains only on sensible states, so we must use the cross-section relevant to those in our final analysis.
    Changed:
    <
    <
    Sample Dataset numbers Cross-section (pb) Branching Ratios etc. What the multiplicative factors are Final effective cross-section (pb) Sources
    ttH 109840, 109841 0.09756 0.676*0.216*2*0.675*0.8355 W → hadrons 0.01607 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/CERNYellowReportPageAt7TeV
          0.216 W → leptons (electron/muon)   Branching ratios: 2008 PDG Booklet
          2 Account for the 2 W decay routes    
          0.675 H → bb    
          0.8355 Lepton filter efficiency   Filter eff: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGHSG5Dataset7TeV
    tt + 0j 105894, 116102 13.18 1.84 ( * 0.06774) k-factor 24.25120 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            Filter efficiency for sample 116102 1.64728 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    tt + 1j 105895, 116103 13.17 1.84 ( * 0.2142) k-factor 24.23280 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            Filter efficiency for sample 116103 5.19067 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    tt + 2j 105896, 116104 7.87 1.84 ( * 0.4502) k-factor 14.48080 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            Filter efficiency for sample 116104 6.51926 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    tt + 3j 105897, 116105 5.49 1.84 ( * 0.5860) k-factor 10.10160 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
            Filter efficiency for sample 116105 5.91954 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
    gg → ttbb (QCD) 116101 0.8986 1.84*0.676*0.216*2 k-factor 0.48285 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
            W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
            W → leptons (electron/muon)    
            Account for the 2 W decay routes    
    qq → ttbb (QCD) 116106 0.1416 1.84*0.676*0.216*2 k-factor 0.07609 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
            W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
            W → leptons (electron/muon)    
            Account for the 2 W decay routes    
    gg → ttbb (EWK) 116100 0.0875 1.84*0.676*0.216*2 k-factor 0.04702 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
            W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
            W → leptons (electron/muon)    
            Account for the 2 W decay routes    
    qq → ttbb (EWK) 116107 0.0101 1.84*0.676*0.216*2 k-factor 0.00543 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
            W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
            W → leptons (electron/muon)    
            Account for the 2 W decay routes    
    >
    >
    Sample Dataset numbers Cross-section (pb) Branching Ratios Filter Efficiency What the multiplicative factors are Effective cross-section (pb) Sources
    ttH 109840, 109841 0.09756 0.676*0.216*2*0.675 0.8355 Overall 0.01607 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/CERNYellowReportPageAt7TeV
          0.676   W → hadrons   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)    
          2   Account for the 2 W decay routes    
          0.675   H → bb    
            0.8355 Lepton filter efficiency   Filter eff: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGHSG5Dataset7TeV
    tt + 0j 105894, 116102 13.18 1.84   For sample 105894 24.25120 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
          1.84 0.06774 For sample 116102 1.64728 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
            0.06744 Generator-level filter efficiency    
    tt + 1j 105895, 116103 13.17 1.84   For sample 105895 24.23280 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
          1.84 0.2142 For sample 116103 5.19067 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
            0.2142 Generator-level filter efficiency    
    tt + 2j 105896, 116104 7.87 1.84   For sample 105896 14.48080 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
          1.84 0.4502 For sample 116104 6.51926 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
            0.4502 Generator-level filter efficiency    
    tt + 3j 105897, 116105 5.49 1.84   For sample 105897 10.10160 Initial cross-section and filter efficiency: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbar
          1.84 0.5860 For sample 116105 5.91954 k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV
          1.84   k-factor    
            0.5860 Generator-level filter efficiency    
    gg → ttbb (QCD) 116101 0.8986 0.676*0.216*2*1.84   Overall 0.48285 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    qq → ttbb (QCD) 116106 0.1416 0.676*0.216*2*1.84   Overall 0.07609 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    gg → ttbb (EWK) 116100 0.0875 0.676*0.216*2*1.84   Overall 0.04702 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar
          0.676   W → hadrons (electron/muon)   Branching ratios: 2008 PDG Booklet
          0.216   W → leptons (electron/muon)   k-factor: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/TopMC2009#ttbar_7_TeV - need to verify there's nothing more suitable than applying tt+X value!
          2   Account for the 2 W decay routes    
          1.84   k-factor    
    qq → ttbb (EWK) 116107 0.0101 0.676*0.216*2*1.84   Overall 0.00543 Initial cross-section: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/HiggsWGBGDataset7TeV#ttbarbbbar