Difference: JetFlavourTagging (11 vs. 12)

Revision 122013-07-16 - DanProtopopescu

Line: 1 to 1
 
META TOPICPARENT name="WebHome"

Jet Flavour Tagging Howto

Line: 23 to 23
 
Changed:
<
<
The JetFinder processor reconstructs 2 and 4 jets events from the input collection (LooseSelectedPandoraPFANewPFOs was used). For the reconstructed 4 jets, MyTrueAngularJetFlavourProcessor determines MC Jet Flavour by angular matching of heavy quarks to jets, and also determines hadronic and partonic charge of the jet.
>
>
The JetFinder processor reconstructs 2 and 4 jets events from the input collection (LooseSelectedPandoraPFANewPFOs was used). For the reconstructed 4 jets, MyTrueAngularJetFlavourProcessor determines MC Jet Flavour by angular matching of heavy quarks to jets, and also determines hadronic and partonic charge of the jet. The LCIOOutput processor creates new slcio files containing the new collections added by the above processors.
  The LCFI processors have the following functions:
Line: 50 to 50
  The processors listed above could be run in sequence, or split in several steps, invoking a LCIOOutput processor to write intermediate slcio outputs at every step. Here's a script for that, where the intermediate xml files are slight modifications of the files provided in LCFIVertex/steering examples. We found that the most time-consuming processor is ZVTOP_ZVRES with more than 10 s/event.
Changed:
<
<
The LCIOOutput processor creates new slcio files containing the new collections added by the above processors.
>
>
We found it easier to run processors 1 to 6 on batches of 10 input files, and save the outputs as zvresX_out.slcio. Then we ran processors 7 and 8 on these files to produce a new set ftiX_out.slcio. We used all these to train the neural net, but then again was easier to run flavour tagging (see below) on the individual ftiX_out.slcio files. Again we used all files for the purity vs. efficiency plots (see below).
  Troubleshooting: The b3_D0CutValue parameter of the IPRPCutProcessor was set to 5O instead of 50, and was causing a crash. For the ZVRESRPCut processor, h1_MCPIDEnable had to be set to false. See also this post.
Line: 54 to 54
  Troubleshooting: The b3_D0CutValue parameter of the IPRPCutProcessor was set to 5O instead of 50, and was causing a crash. For the ZVRESRPCut processor, h1_MCPIDEnable had to be set to false. See also this post.
Deleted:
<
<
 

Neural Network Training

Changed:
<
<
The slcio files created at the previous step contain the collections Durham_4Jets, FlavourTagInputs and TrueJetFlavour_4Jets, which we will use now to train our neural nets. We use the NeuralNetTrainer code included in the LCFI package. Separate nets were trained for 1, 2, or 3+ vertices to identify b-jets, c-jets, and c-jets with b background. Our steering file contains only:
>
>
The slcio files created at the previous step contain the collections Durham_4Jets, FlavourTagInputs and TrueJetFlavour_4Jets, which we will use now to train our neural nets. We use a customised version of the NeuralNetTrainer code included in the LCFI package. Separate nets were trained for 1, 2, or 3+ vertices to identify b-jets, c-jets, and c-jets with b background. Our steering file contains only:
 
Changed:
<
<
>
>
 
Changed:
<
<
The neural nets are saved as XML files in nnets/ and will be used for flavour tagging (next step). No slcio output is written at this time.
>
>
This processor is a slightly modified version of the NeuralNetTrainer included in the LCFI package, where the polar angle cut was introduced as a steering parameter:
// Theta cut parameters: _jetThetaAngleCut < theta < (180 - _jetThetaAngleCut)
        registerProcessorParameter( "JetThetaAngleCut" ,
                                    "Cut on the jets theta angle"  ,
                                    _jetThetaAngleCut,
                                    (float)15.);
such that we can pass a cut angle different of the 30º default:
<!-- Jet theta angle cut (only the Glasgow NN trainer has this option) -->
                <parameter name="JetThetaAngleCut" type="float"> 24. </parameter>
The neural nets are saved as XML files in gnets/ and will be used for flavour tagging (next step). No slcio output is written at this time.
 

Flavour Tagging

Changed:
<
<
Now we are ready to employ the FlavourTag processor, which will do flavour tagging using the neural nets trained in the previous step. The input slcio file contains the FlavourTagInputs and FTSelectedJets (or Durham_4Jets, not sure if there's a difference at this level) collections.
>
>
Now we are ready to employ the FlavourTag processor, which will do flavour tagging using the neural nets trained in the previous step. The input slcio files contain the FlavourTagInputs and FTSelectedJets (or Durham_4Jets, not sure if there's a difference at this level) collections.
 
  <processor name="MyFlavourTag"/>
  <processor name="MyLCIOOutputProcessor"/>  
Changed:
<
<
The output slcio will contain the collection FlavourTag which will be used for our ZZFusion analysis.
>
>
The output slcio will contain a new collection FlavourTag (or FlavourTagGla in our customised configuration).
 

Purity and Efficiency Studies

Line: 86 to 95
 
Changed:
<
<
We had to provide MyPlot with the actual name of the TrueJetFlavourCollection:
>
>
We had to provide MyPlot with the actual names of our collections:
 
<parameter name="TrueJetFlavourCollection" type="string">TrueJetFlavour_4Jets </parameter>
Added:
>
>
<--In fti-steer.xml this parameter is called "FlavourTagCollection", without the 's' -->
FlavourTagGla
  Note that LCFI must be compiled with ROOT if one wants .root output from PlotProcessor (instead of .txt). For this, we added
Line: 104 to 115
  Once the AIDA Plots processors are run via Marlin, a RAIDA root file is produced. We customised the MakePurityVsEfficiencyRootPlot.C macro and ran it to use this RAIDA file as input to produce the purity vs. efficiency plots:
Changed:
<
<
root -l MakePurityVsEfficiencyRootPlot.C
>
>
root -l bbPurityVsEfficiencyRootPlotGla.C
 
Changed:
<
<

>
>
Here's a plot of our flavour tagging purity vs. efficiencies (using cca. 22k events):
Screen_Shot_2013-07-16_at_13.40.40.png
 
META FILEATTACHMENT attachment="BRTotalUncertBands_lm.png" attr="" comment="Higgs branching ratios (from A. Denner et al., EPJ C71, p.1753)" date="1372689661" name="BRTotalUncertBands_lm.png" path="BRTotalUncertBands.png" size="114345" stream="BRTotalUncertBands.png" tmpFilename="/usr/tmp/CGItemp36847" user="DanProtopopescu" version="2"
META FILEATTACHMENT attachment="Timing-ScreenShot.png" attr="" comment="Screen shot: time used by Marlin processors" date="1372694627" name="Timing-ScreenShot.png" path="Timing-ScreenShot.png" size="72589" stream="Timing-ScreenShot.png" tmpFilename="/usr/tmp/CGItemp32197" user="DanProtopopescu" version="1"
Line: 115 to 126
 
META FILEATTACHMENT attachment="Vertexing_Howto.pdf" attr="" comment="Vertexing HowTo (Ben Jeffery)" date="1372697529" name="Vertexing_Howto.pdf" path="Vertexing Howto.pdf" size="761330" stream="Vertexing Howto.pdf" tmpFilename="/usr/tmp/CGItemp32366" user="DanProtopopescu" version="1"
META FILEATTACHMENT attachment="jet_truth_tag-steer.xml" attr="" comment="Steering file 1: jet finder and truth flavour tagging" date="1372699245" name="jet_truth_tag-steer.xml" path="jet_truth_tag-steer.xml" size="84107" stream="jet_truth_tag-steer.xml" tmpFilename="/usr/tmp/CGItemp32410" user="DanProtopopescu" version="1"
META FILEATTACHMENT attachment="runLCFI.txt" attr="" comment="Script to run LCFI sequence of processors" date="1372954507" name="runLCFI.txt" path="runLCFI.txt" size="1170" stream="runLCFI.txt" tmpFilename="/usr/tmp/CGItemp32298" user="DanProtopopescu" version="1"
Added:
>
>
META FILEATTACHMENT attachment="Screen_Shot_2013-07-16_at_13.40.40.png" attr="" comment="Flavour tagging purity vs. efficiency plots (using cca. 22k events)" date="1373979756" name="Screen_Shot_2013-07-16_at_13.40.40.png" path="Screen Shot 2013-07-16 at 13.40.40.png" size="22046" stream="Screen Shot 2013-07-16 at 13.40.40.png" tmpFilename="/usr/tmp/CGItemp35477" user="DanProtopopescu" version="1"
 
META TOPICMOVED by="DanProtopopescu" date="1373037183" from="LinearCollider.ZZfusionMain" to="LinearCollider.JetFlavourTagging"
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback