\section{marlin\-:\-:Satoru\-Jet\-Finder\-Processor Class Reference}
\label{classmarlin_1_1SatoruJetFinderProcessor}\index{marlin\-::\-Satoru\-Jet\-Finder\-Processor@{marlin\-::\-Satoru\-Jet\-Finder\-Processor}}


A universal jetfinder module developed by Satoru Yamashita.  




{\ttfamily \#include $<$Satoru\-Jet\-Finder\-Processor.\-h$>$}

Inheritance diagram for marlin\-:\-:Satoru\-Jet\-Finder\-Processor\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classmarlin_1_1SatoruJetFinderProcessor}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual Processor $\ast$ {\bfseries new\-Processor} ()\label{classmarlin_1_1SatoruJetFinderProcessor_a6c3d3ea14680c56a0b7784283a299ceb}

\item 
virtual void {\bf init} ()
\begin{DoxyCompactList}\small\item\em Called at the begin of the job before anything is read. \end{DoxyCompactList}\item 
virtual void {\bf process\-Run\-Header} (L\-C\-Run\-Header $\ast$run)\label{classmarlin_1_1SatoruJetFinderProcessor_ab57c394da0f2439ae7505e268be3846e}

\begin{DoxyCompactList}\small\item\em Called for every run. \end{DoxyCompactList}\item 
virtual void {\bf process\-Event} (L\-C\-Event $\ast$evt)\label{classmarlin_1_1SatoruJetFinderProcessor_a9ee78a1e5dc1eeddbd8041098af7aaf4}

\begin{DoxyCompactList}\small\item\em Called for every event -\/ the working horse. \end{DoxyCompactList}\item 
virtual void {\bf end} ()\label{classmarlin_1_1SatoruJetFinderProcessor_a6bfe12d0713d714b03aa9018312538ee}

\begin{DoxyCompactList}\small\item\em Called after data processing for clean up. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{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 O\-P\-A\-L collaboratoin. For further details concerning this fortran code read the O\-P\-A\-L Technical Note T\-N579.

To compile this processor, you need a F\-O\-R\-T\-R\-A\-N77 compiler like g77 and you have to link against the C\-E\-R\-N\-L\-I\-B. If you use the M\-A\-R\-L\-I\-N package mechanism you have to add the following two lines to the 'userlib.\-gmk' file in the M\-A\-R\-L\-I\-N directory\-: U\-S\-E\-R\-L\-I\-B\-S += -\/lg2c U\-S\-E\-R\-L\-I\-B\-S += -\/\-L /opt/products/cernlib/pro/lib/ -\/lmathlib -\/lkernlib

Steering file parameters\-:\par
 Allways to specify\-:\par
 {\bfseries Input\-Collection} (e.\-g. energy flow object )of type reconstructed particle {\bfseries Output\-Collection} (e.\-g. jets )of type reconstructed particle {\bfseries Mode} 

At the moment 5 modes are implemented\-:

{\bfseries Durham\-Njet\-:} durham jetfinding with a fixed number of jets to be specify with N\-Jet\-Requested

{\bfseries Durham\-Y\-Cut\-:} durham jetfinding with a fixed ycut to be specify with Y\-Cut

{\bfseries Cone\-Blanka} cone jet finder with cone threshold energy of 0.\-7 Ge\-V and R =0.\-2

{\bfseries 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 N\-Jet\-Requested

{\bfseries Manual} everything to be set by hand\-: \begin{DoxyVerb}* 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            
* ===========================================================================      
*                                                                                  
*                                                                                  
*                                                                                    
* \end{DoxyVerb}


\begin{DoxyAuthor}{Author}
Satoru Yamashita (original fortran code), Thorsten Kuhl, J\"{o}rgen Samson 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}

\end{DoxyVersion}
\begin{DoxyParagraph}{Id\-:}
\doxyref{Satoru\-Jet\-Finder\-Processor.\-h}{p.}{SatoruJetFinderProcessor_8h_source} 2553 2011-\/09-\/20 14\-:50\-:20\-Z gaede 
\end{DoxyParagraph}


\subsection{Member Function Documentation}
\index{marlin\-::\-Satoru\-Jet\-Finder\-Processor@{marlin\-::\-Satoru\-Jet\-Finder\-Processor}!init@{init}}
\index{init@{init}!marlin::SatoruJetFinderProcessor@{marlin\-::\-Satoru\-Jet\-Finder\-Processor}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}virtual void marlin\-::\-Satoru\-Jet\-Finder\-Processor\-::init (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}\label{classmarlin_1_1SatoruJetFinderProcessor_a09185425ef5c6ee3a4bed2a86bf941af}


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

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

The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
Satoru\-Jet\-Finder\-Processor.\-h\end{DoxyCompactItemize}
