"MarlinReco"  1.16.0
ThrustReconstruction.h
1 #ifndef ThrustReconstruction_h
2 #define ThrustReconstruction_h 1
3 #include <vector>
4 #include "marlin/Processor.h"
5 #include "lcio.h"
6 #include <iostream>
7 #include <string>
8 #include <IMPL/ReconstructedParticleImpl.h>
9 
10 #include <CLHEP/Vector/ThreeVector.h>
11 #include <CLHEP/Random/RanluxEngine.h>
12 
13 namespace CLHEP{} // declare namespace CLHEP for backward compatibility
14 using namespace CLHEP ;
15 
16 
17 using namespace lcio ;
18 using namespace marlin ;
19 
20 
21 
30 class ThrustReconstruction : public Processor {
31 
32 public:
33 
34  virtual Processor* newProcessor() { return new ThrustReconstruction;}
35 
36 
38 
42  virtual void init() ;
43 
46  virtual void processRunHeader( LCRunHeader* run ) ;
47  virtual void modifyRunHeader( LCRunHeader* run ) {}
48 
51  virtual void processEvent( LCEvent * evt ) ;
52  virtual void modifyEvent( LCEvent * evt ) {}
53 
54 
55 
56 
59  virtual void end() ;
60 
61 protected:
62  int TassoThrust();
63  int JetsetThrust();
64  double sign(double a,double b);
65  double min(double a,double b);
66 
70  std::string _inputCollectionName ;
71  int _typeOfThrustFinder;
72 
73  float _principleThrustValue;
74  float _majorThrustValue;
75  float _minorThrustValue;
76  Hep3Vector _principleThrustAxis;
77  Hep3Vector _majorThrustAxis;
78  Hep3Vector _minorThrustAxis;
79  float _min,_max;
80  LCCollection* _inParVec;
81  std::vector<Hep3Vector> _partMom;
82  std::string filename;
83  RanluxEngine myrnd;
84 } ;
85 
86 #endif
Thrust processor for marlin.
Definition: ThrustReconstruction.h:30
std::string _inputCollectionName
Input collection name.
Definition: ThrustReconstruction.h:70