"MarlinReco"  1.32.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 
35  ThrustReconstruction& operator=(const ThrustReconstruction&) = delete;
36 
37  virtual Processor* newProcessor() { return new ThrustReconstruction;}
38 
39 
41 
45  virtual void init() ;
46 
49  virtual void processRunHeader( LCRunHeader* run ) ;
50  virtual void modifyRunHeader( LCRunHeader* /*run*/ ) {}
51 
54  virtual void processEvent( LCEvent * evt ) ;
55  virtual void modifyEvent( LCEvent * /*evt*/ ) {}
56 
57 
58 
59 
62  virtual void end() ;
63 
64 protected:
65  int TassoThrust();
66  int JetsetThrust();
67  double sign(double a,double b);
68  double min(double a,double b);
69 
73  std::string _inputCollectionName{};
74  int _typeOfThrustFinder{};
75 
76  float _principleThrustValue{};
77  float _majorThrustValue{};
78  float _minorThrustValue{};
79  Hep3Vector _principleThrustAxis{};
80  Hep3Vector _majorThrustAxis{};
81  Hep3Vector _minorThrustAxis{};
82  float _min{},_max{};
83  LCCollection* _inParVec{};
84  std::vector<Hep3Vector> _partMom{};
85  std::string filename{};
86  RanluxEngine myrnd{};
87 } ;
88 
89 #endif
Thrust processor for marlin.
Definition: ThrustReconstruction.h:30