All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
marlin::SatoruJetFinderProcessor Class Reference

A universal jetfinder module developed by Satoru Yamashita. More...

#include <SatoruJetFinderProcessor.h>

Inheritance diagram for marlin::SatoruJetFinderProcessor:
[legend]

Classes

struct  MD
 

Public Member Functions

virtual ProcessornewProcessor ()
 
 SatoruJetFinderProcessor ()
 
virtual void init ()
 Called at the begin of the job before anything is read. More...
 
virtual void processRunHeader (LCRunHeader *run)
 Called for every run. More...
 
virtual void processEvent (LCEvent *evt)
 Called for every event - the working horse. More...
 
virtual void end ()
 Called after data processing for clean up. More...
 

Private Member Functions

void putPartons (LCEvent *evt)
 
void callSatoru (LCEvent *evt)
 
void goSatoru (LCEvent *evt, LCCollection *JetsCol)
 
void getJets (LCEvent *evt, LCCollection *JetsCol)
 
void writePartons ()
 
void writeJets ()
 
void writeParameters ()
 

Private Attributes

std::string _inputCollection
 
std::string _outputCollection
 
std::string _successTag
 
bool _writeTag
 
std::string _jetFindingMode
 
SatoruPartonArray _partonsWorkArray
 
SatoruJetsArray _jetsWorkArray
 
std::string _globalMode
 
int _nJetRequested
 
float _threshold
 
int _primaryJetFindingMode
 
float _yCutParam
 
float _rConeParam
 
float _epsConeParam
 
float _yCut [2]
 
int _mergingMode
 
float _mergingThreshold
 
int _secondJetFindingMode
 
int _debug
 
float _YMinus
 
float _YPlus
 

Detailed Description

A universal jetfinder module developed by Satoru Yamashita.

This processor is a wrapper to the multi algorithm jet finder code written by Satoru Yamashita for the OPAL collaboratoin. For further details concerning this fortran code read the OPAL Technical Note TN579.

To compile this processor, you need a FORTRAN77 compiler like g77 and you have to link against the CERNLIB. If you use the MARLIN package mechanism you have to add the following two lines to the 'userlib.gmk' file in the MARLIN directory: USERLIBS += -lg2c USERLIBS += -L /opt/products/cernlib/pro/lib/ -lmathlib -lkernlib

Steering file parameters:
Allways to specify:
InputCollection (e.g. energy flow object )of type reconstructed particle OutputCollection (e.g. jets )of type reconstructed particle Mode

At the moment 5 modes are implemented:

DurhamNjet: durham jetfinding with a fixed number of jets to be specify with NJetRequested

DurhamYCut: durham jetfinding with a fixed ycut to be specify with YCut

ConeBlanka cone jet finder with cone threshold energy of 0.7 GeV and R =0.2

Saturo first durham jetfinding, afterwards reassignment of the objects to the jet axes found in this first iteration with the jade sceme number of jets to be specify with NJetRequested

Manual everything to be set by hand:

* GlobalMode  (=MD below)                                                          
* NJetRequested  (=NJETRQ)                                                         
* Threshold      (= THRESH)                                                        
* PrimaryJetFindingMode (=IMODE)                                                   
* YCut           (=YCUTS)                                                          
* MerginMode     (=IEXAM)                                                          
* MergingThreshold (=FRAC)                                                         
* SecondJetFindingMode (=IEXAM4)                                                   
*                                                                                  
* Description                                                                      
* Inputs:                                                                          
*   MD      ; mode (see below)                                                     
*   NJETRQ  : fixed number of jets ; =0 variable -- use YCUT etc...                
*   THRESH  : threshold (GeV) for the primary jet finding                          
*   IMODE   : Kernel Jet finding mode                                              
*      1- 6 : YKERN                                                                
*       IF(IMODE.EQ.1) THEN                                                        
*          CM = 'JADE E0'                                                          
*        ELSEIF(IMODE.EQ.2) THEN                                                   
*          CM = 'JADE P '                                                          
*        ELSEIF(IMODE.EQ.3) THEN                                                   
*          CM = 'JADE P0'                                                          
*        ELSEIF(IMODE.EQ.4) THEN                                                   
*          CM = 'JADE E '                                                          
*        ELSEIF(IMODE.EQ.5) THEN                                                   
*          CM = 'DURHAM '                                                          
*        ELSEIF(IMODE.EQ.6) THEN                                                   
*          CM = 'GENEVA '                                                          
*        ELSE                                                                      
*          WRITE(6,281) IMODE                                                      
* 281      FORMAT(/,' ### YKERN: IMODE =',I3,' INVALID; SET TO 1 ###')             
*          IMODE = 1                                                               
*          CM = 'JADE E0'                                                          
*        ENDIF                                                                     
*                                                                                  
*                                                                                  
*                                                                                  
*         7 : cambridge                                                            
*      9-11 : LUCLUS                                                               
*        12 : cone                                                                 
*   YCUTS   : (1) ycut or xcut or Cone Radius (2) EPS                              
*   IEXAM   : Particle re-association method 1-6                                   
*            EXAM(1) = THETA                                                       
*            EXAM(2) = PART(4)*PJSTMP(4,J)-PART(1)*PJSTMP(1,J)                     
*     +                -PART(2)*PJSTMP(2,J)-PART(3)*PJSTMP(3,J)                    
*            EXAM(3) = DURHAM                                                      
*            EXAM(4) = E0JADE                                                      
*            EXAM(5) = Geneva Scheme                                               
*            EXAM(6) = EJADE   ! it makes too bad cross talk                       
*                                                                                  
*   FRAC    : core rate                                                            
*   IEXAM4  : Jet merge method 1-8                                                 
*            EXAM(1,N) = PL(4,I)*PL(4,J)                                           
*            EXAM(2,N) = PL(4,I)*PL(4,J)-PL(1,I)*PL(1,J)                           
*     +           -PL(2,I)*PL(2,J)-PL(3,I)*PL(3,J)                                 
*            EXAM(3,N) = DURHAM(I,J)                                               
*            EXAM(4,N) = E0JADE(I,J)                                               
*            EXAM(5,N) = EJADE(I,J)                                                
*            EXAM(6,N) = ANGLE(I,J)                                                
*            EXAM(7,N) = ECOS(I,J)                                                 
*            EXAM(8,N) = PL(6,I)*PL(6,J)                                           
*   NPAR    : Number of "particles"                                                
*   IDIM    : first dimension of PPAR array                                        
*   PPAR    : Particle Momenta                                                     
*   MXJET   : Maximum Number of Jets (buffer size for PJETS = MXJETS*JDIM)         
*   JDIM    : first dimension of PJETS array                                       
*                                                                                  
* Outputs:                                                                         
*   NJET    : Number of Jets                                                       
*   IASS    : Jet assosiation for "particle"s                                      
*   PJETS   : Jet momenta                                                          
*   Y34     : YHI (sometimes not filled)                                           
*   Y45     : YLO (sometimes not filled)                                           
*   IERR    : Error flag  0==All O.K.                                              
*     -9999: abnormal error                                                        
*      -999: boundary error                                                        
*       -99: input mismatch                                                        
*      Others : error from various internal calls                                  
* ==========================================================================       
*   MD                                                                             
* There are 11 variations                                                          
* MD   Name      : Final NJ    : 1st process  : 2nd process : 3rd process          
* 0a. Traditional: variable    :  fixed Ycuts :     -       :   -                  
* 0b. Traditional: fixed Njets :  fixed Njets :     -       :   -                  
* 0c. Just Merge : fixed Njets :  fixed Ycuts : do merge    :   -                  
* 1a. LMODE1     : variable    :  fixed Ycuts : do SYJETF1  :   -                  
* 1b. LMODE1     : fixed final :  fixed Ycuts : do SYJETF1  : do merge             
* 1c. LMODE1     : fixed final :  fixed Njets : do SYJETF1  :   -                  
* 1d. LMODE1     : fixed final :  fixed Ycuts : do merge    : do SYJETF1           
* 2a. LMODE2     : variable    :  fixed Ycuts : do SYJETF2  :   -                  
* 2b. LMODE2     : fixed final :  fixed Ycuts : do SYJETF2  : do merge             
* 2c. LMODE2     : fixed final :  fixed Njets : do SYJETF2  :   -                  
* 2d. LMODE2     : fixed final :  fixed Ycuts : do merge    : do SYJETF2           
* ===========================================================================      
*  MD & NJETRQ &  IMODE  & YCUTS & IEXAM &  Frac   &  IEXAM4 &     ISYMOD          
*  0a &   -    &   1-12  &  > 0  &   -   &   -     &     -   &        1            
*  0b &  > 0   &   1-12  &   -   &   -   &   -     &     -   &        2            
*  0c &  > 0   &   1-12  &  > 0  &   -   &   -     &    1-8  &        3            
*  1a &   -    &   1-12  &  > 0  &  1-6  & 0.0-1.0 &     -   &       11            
*  1b &  > 0   &   1-12  &  > 0  &  1-6  & 0.0-1.0 &    1-8  &       12            
*  1c &  > 0   &   1-12  &   -   &  1-6  & 0.0-1.0 &     -   &       13            
*  1d &  > 0   &   1-12  &  > 0  &  1-6  & 0.0-1.0 &    1-8  &       14            
*  2a &   -    &   1-12  &  > 0  &  1-6  & 0.0-1.0 &     -   &       21            
*  2b &  > 0   &   1-12  &  > 0  &  1-6  & 0.0-1.0 &    1-8  &       22            
*  2c &  > 0   &   1-12  &   -   &  1-6  & 0.0-1.0 &     -   &       23            
*  2d &  > 0   &   1-12  &  > 0  &  1-6  & 0.0-1.0 &    1-8  &       24            
* ===========================================================================      
*                                                                                  
*                                                                                  
*                                                                                    
* 
Author
Satoru Yamashita (original fortran code), Thorsten Kuhl, Jörgen Samson
Version
$Id$

Definition at line 223 of file SatoruJetFinderProcessor.h.

Constructor & Destructor Documentation

marlin::SatoruJetFinderProcessor::SatoruJetFinderProcessor ( )

Definition at line 34 of file SatoruJetFinderProcessor.cc.

Member Function Documentation

void marlin::SatoruJetFinderProcessor::callSatoru ( LCEvent *  evt)
private

Definition at line 244 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::end ( )
virtual

Called after data processing for clean up.

Definition at line 200 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::getJets ( LCEvent *  evt,
LCCollection *  JetsCol 
)
private

Definition at line 267 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::goSatoru ( LCEvent *  evt,
LCCollection *  JetsCol 
)
private

Definition at line 208 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::init ( )
virtual

Called at the begin of the job before anything is read.

Use to initialize the module, e.g. book histograms.

Definition at line 126 of file SatoruJetFinderProcessor.cc.

virtual Processor* marlin::SatoruJetFinderProcessor::newProcessor ( )
inlinevirtual

Definition at line 228 of file SatoruJetFinderProcessor.h.

void marlin::SatoruJetFinderProcessor::processEvent ( LCEvent *  evt)
virtual

Called for every event - the working horse.

Definition at line 189 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::processRunHeader ( LCRunHeader *  run)
virtual

Called for every run.

Definition at line 183 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::putPartons ( LCEvent *  evt)
private

Definition at line 217 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::writeJets ( )
private

Definition at line 313 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::writeParameters ( )
private

Definition at line 314 of file SatoruJetFinderProcessor.cc.

void marlin::SatoruJetFinderProcessor::writePartons ( )
private

Definition at line 233 of file SatoruJetFinderProcessor.cc.

Member Data Documentation

int marlin::SatoruJetFinderProcessor::_debug
private

Definition at line 274 of file SatoruJetFinderProcessor.h.

float marlin::SatoruJetFinderProcessor::_epsConeParam
private

Definition at line 269 of file SatoruJetFinderProcessor.h.

std::string marlin::SatoruJetFinderProcessor::_globalMode
private

Definition at line 263 of file SatoruJetFinderProcessor.h.

std::string marlin::SatoruJetFinderProcessor::_inputCollection
private

Definition at line 255 of file SatoruJetFinderProcessor.h.

std::string marlin::SatoruJetFinderProcessor::_jetFindingMode
private

Definition at line 259 of file SatoruJetFinderProcessor.h.

SatoruJetsArray marlin::SatoruJetFinderProcessor::_jetsWorkArray
private

Definition at line 261 of file SatoruJetFinderProcessor.h.

int marlin::SatoruJetFinderProcessor::_mergingMode
private

Definition at line 271 of file SatoruJetFinderProcessor.h.

float marlin::SatoruJetFinderProcessor::_mergingThreshold
private

Definition at line 272 of file SatoruJetFinderProcessor.h.

int marlin::SatoruJetFinderProcessor::_nJetRequested
private

Definition at line 264 of file SatoruJetFinderProcessor.h.

std::string marlin::SatoruJetFinderProcessor::_outputCollection
private

Definition at line 256 of file SatoruJetFinderProcessor.h.

SatoruPartonArray marlin::SatoruJetFinderProcessor::_partonsWorkArray
private

Definition at line 260 of file SatoruJetFinderProcessor.h.

int marlin::SatoruJetFinderProcessor::_primaryJetFindingMode
private

Definition at line 266 of file SatoruJetFinderProcessor.h.

float marlin::SatoruJetFinderProcessor::_rConeParam
private

Definition at line 268 of file SatoruJetFinderProcessor.h.

int marlin::SatoruJetFinderProcessor::_secondJetFindingMode
private

Definition at line 273 of file SatoruJetFinderProcessor.h.

std::string marlin::SatoruJetFinderProcessor::_successTag
private

Definition at line 257 of file SatoruJetFinderProcessor.h.

float marlin::SatoruJetFinderProcessor::_threshold
private

Definition at line 265 of file SatoruJetFinderProcessor.h.

bool marlin::SatoruJetFinderProcessor::_writeTag
private

Definition at line 258 of file SatoruJetFinderProcessor.h.

float marlin::SatoruJetFinderProcessor::_yCut[2]
private

Definition at line 270 of file SatoruJetFinderProcessor.h.

float marlin::SatoruJetFinderProcessor::_yCutParam
private

Definition at line 267 of file SatoruJetFinderProcessor.h.

float marlin::SatoruJetFinderProcessor::_YMinus
private

Definition at line 275 of file SatoruJetFinderProcessor.h.

float marlin::SatoruJetFinderProcessor::_YPlus
private

Definition at line 276 of file SatoruJetFinderProcessor.h.


The documentation for this class was generated from the following files: