"MarlinReco"  1.32.0
SatoruJetFinderProcessor.h
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3 ** This file is part of the MarlinReco Project.
4 ** Forming part of the SubPackage: SatoruJetFinder.
5 **
6 ** For the latest version download from Web CVS:
7 ** http://www-zeuthen.desy.de/lc-cgi-bin/cvsweb.cgi/marlinreco/?cvsroot=MarlinReco
8 **
9 ** $Id$
10 **
11 **
12 */
13 
14 #ifndef SatoruJetFinderProcessor_h
15 #define SatoruJetFinderProcessor_h 1
16 
17 #include "marlin/Processor.h"
18 
19 #include "lcio.h"
20 #include "IMPL/LCCollectionVec.h"
21 
22 
23 using namespace lcio ;
24 
25 
27  int NumberOfPartons;
28  float Momentum[1200];
29  int PointerParticleToJets[300];
30 };
32  int NumberOfJets;
33  float Momentum[80];
34 };
35 
36 extern "C" {
37  void syjkrn_( const char* GlobalModus_,
38  // Primary jet finding
39  int &NJetRequested_,float &Threshold_,
40  int &PrimaryJetFindingMode_,float* YCut_,
41  // Reassosiation after first jet finding
42  int &MergingMode_,float &MergingThreshold_,
43  // Second Jet finding mode
44  int &SecondJetFindingMode_,
45  // input array--> array of
46  // PPartons(DimensionOfInputArray(4-6),NumberOfPartons)
47  int &NumberOfPartons_,
48  int &DimensionOfInputArray_,float *PPartons_,
49  // Output
50  int &MaximalNumberOfJets_,
51  int &NJetsFound_,int *PointerParicleToJet_,
52  int &DimensionOfOutputArray_,float *PJets_,
53  float &YMinus_,float &YPlus_,
54  // error flag
55  int &IError_,int GlobalModusLenght_)
56  ;}
57 
58 
59 namespace marlin
60 {
61 
62 
223  class SatoruJetFinderProcessor : public Processor {
224 
225 
226  public:
227 
228  virtual Processor* newProcessor() { return new SatoruJetFinderProcessor ; }
229 
230 
232 
236  virtual void init() ;
237 
240  virtual void processRunHeader( LCRunHeader* run ) ;
241 
244  virtual void processEvent( LCEvent * evt ) ;
245 
246 
249  virtual void end() ;
250 
251 
252 
253  private:
254 
255  std::string _inputCollection;
256  std::string _outputCollection;
257  std::string _successTag;
258  bool _writeTag;
259  std::string _jetFindingMode;
260  SatoruPartonArray _partonsWorkArray;
261  SatoruJetsArray _jetsWorkArray;
262  // int _nJetVal;
263  std::string _globalMode;
264  int _nJetRequested;
265  float _threshold;
266  int _primaryJetFindingMode;
267  float _yCutParam;
268  float _rConeParam;
269  float _epsConeParam;
270  float _yCut[2];
271  int _mergingMode;
272  float _mergingThreshold;
273  int _secondJetFindingMode;
274  int _debug;
275  float _YMinus;
276  float _YPlus;
277  void putPartons(LCEvent * evt);
278  void callSatoru(LCEvent * evt);
279  void goSatoru(LCEvent * evt,LCCollection *JetsCol);
280  void getJets(LCEvent * evt,LCCollection *JetsCol);
281 
282  /* debug routines */
283  void writePartons();
284  void writeJets();
285  void writeParameters();
286 
287  // true constants for mode selection
288  struct MD
289  {
290  const static int JADE_E0 = 1;
291  const static int JADE_P = 2;
292  const static int JADE_P0 = 3;
293  const static int JADE_E = 4;
294  const static int DURHAM = 5;
295  const static int GENEVA = 6;
296  const static int CAMBRIDGE = 7;
297  const static int LUCLUS_1 = 8;
298  const static int LUCLUS_2 = 9;
299  const static int LUCLUS_3 = 10;
300  const static int LUCLUS_4 = 11;
301  const static int CONE = 12;
302  };
303 
304  } ;
305 
306 
307 
308 } // namespace marlin
309 #endif
310 
311 
312 
A universal jetfinder module developed by Satoru Yamashita.
Definition: SatoruJetFinderProcessor.h:223
Definition: SatoruJetFinderProcessor.h:26
Definition: SatoruJetFinderProcessor.h:31