Difference between revisions of "DSelector"

From GlueXWiki
Jump to: navigation, search
(Creating a DSelector)
(Using a DSelector)
Line 54: Line 54:
 
= Using a DSelector =
 
= Using a DSelector =
  
 +
* Example:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
root -l -b my_tree_file.root
 
root -l -b my_tree_file.root

Revision as of 11:30, 7 April 2016

Overview

  • Inherits from TSelector: Can be used with TTree::Process(), PROOF.

Improvements over TSelectors

Setting up the software & environment

1) Go to the directory where you want the source code to go. Checkout the software here:

svn co https://halldsvn.jlab.org/repos/trunk/home/pmatt/RootAnalysis/

2) Set the path to the checked-out RootAnalysis directory to be the variable:

$ROOT_ANALYSIS_HOME

3) After sourcing your standard GlueX environment file, set the following environment variables:

setenv OS_NAME $BMS_OSNAME
setenv LD_LIBRARY_PATH ${ROOT_ANALYSIS_HOME}/${OS_NAME}/lib/:$LD_LIBRARY_PATH
setenv PATH ${ROOT_ANALYSIS_HOME}/${OS_NAME}/bin/:$PATH

4) Build and install the DSelector library

cd $ROOT_ANALYSIS_HOME/DSelector
make all

5) Build and install the MakeDSelector binary

cd $ROOT_ANALYSIS_HOME/MakeDSelector
make all

Creating a DSelector

1) Run the MakeDSelector program to make a DSelector for your TTree. Run it with no arguments for usage instructions.

MakeDSelector

2) When customizing your DSelector be very careful to read ALL of the pre-generated comments. They are there for a reason.

3) Declare your histograms and/or histogram actions in the class definition (header file).

4) Create your histograms where indicated in the Init() function.

5) Fill your histograms in the Process() function.

6) The histograms are automatically saved to the output ROOT file. Do not try to save them manually.

Using a DSelector

  • Example:
root -l -b my_tree_file.root
.x $ROOT_ANALYSIS_HOME/Load_DSelector.C
my_tree_name->Process("my_selector.C+");
.q

Using DSelector's with PROOF-Lite

1) After each time the DSelector library is built, (re-)build the PROOF DSelector package:

cd $ROOT_ANALYSIS_HOME/MakePROOFPackage/
./build.sh

2) Launch ROOT, and load the DSelector library:

root -l my_tree_file.root
.x $ROOT_ANALYSIS_HOME/Load_DSelector.C

3) Run PROOF-Lite:

DPROOFLiteManager::Process_Tree("my_tree_file.root", "my_tree_name", "my_selector.C+", "my_outfile.root", my_num_threads); //my_num_threads = unsigned int