MarlinTPC  1.2.0
PathFinderInterfaceProcessor.h
1 #ifndef PATHFINDERINTERFACEPROCESSOR_H
2 #define PATHFINDERINTERFACEPROCESSOR_H
3 
4 #include <marlin/Processor.h>
5 #include <marlin/Global.h>
6 #include <lcio.h>
7 #include <string>
8 
9 #include <gear/TPCModule.h>
10 
11 #include "FinderParameter.h"
12 
13 #include "TFile.h"
14 #include "TTree.h"
15 
17 using namespace pathfinder;
18 
19 namespace marlintpc
20 {
22 
32 class PathFinderInterfaceProcessor : public marlin::Processor
33 {
34  public:
35 
36  virtual Processor* newProcessor() { return new PathFinderInterfaceProcessor; }
37 
39 
40  virtual void init();
41 
42  virtual void processRunHeader(lcio::LCRunHeader* run);
43 
44  virtual void processEvent(lcio::LCEvent* evt);
45 
46  virtual void check(lcio::LCEvent* evt);
47 
48  virtual void end();
49 
50 
51 
52  protected:
53  /* the place for protected and private member data and functions */
54  std::string _inputColName;
55  std::string _outputColName;
56  std::string _outputHitColName;
57 
58  int _nEvt;
59  TFile* _rootFile;
60  TTree* _rootTree;
61  double trackD0, trackPhi, trackOmega, trackZ0, trackTanL;
62  double trackD0Error, trackPhiError, trackOmegaError, trackZ0Error, trackTanLError;
63  double trackSlopeXY, trackOffsetXY;
64  double trackSlopeXYError, trackOffsetXYError;
65  int nHitsOnTrack;
66  double hitX[1000], hitY[1000], hitZ[1000], xError[1000], yError[1000], zError[1000], hitPhi[1000], hitR[1000], phiError[1000];
67 
68  private:
69 
70  gear::Vector3D _referencePoint;
71 
72  int track_type;
73  bool usevertex;
74  bool useconformalmapping;
75 
76  double xydistance;
77  double szdistance;
78  double xydistancefit;
79  double szdistancefit;
80  int minhitnumber;
81  int maxhits;
82  // double mind0xy;
83  //double maxd0xy;
84  //double minomegaxy;
85  //double maxomegaxy;
86  //double mind0sz;
87  //double maxd0sz;
88  int xythetabins;
89  int xydzerobins;
90  int xyomegabins;
91  int szthetabins;
92  int szdzerobins;
93  //double xyd0binwidth;
94  //double xyomegabinwidth;
95  //double szd0binwidth;
96  double maxdxy;
97  double maxdsz;
98  bool searchneighborhood;
99  bool saverootfile;
100  bool shifthits;
101 
102  // std::vector<double> vertexposition;
103 
104  //currently vertex constraint is only used for the xy circle search, so only these compnents are needed
105  double vertexpositionx;
106  double vertexpositiony;
107 
108  double referencepointx;
109  double referencepointy;
110  double referencepointz;
111 
112  FinderParameter* TrackFinderParameter;
113 
114  gear::Vector3D FindModuleCenter(const std::vector<gear::TPCModule*> theModules);
115 
116 };
117 
118 } // namespace marlintpc
119 #endif // PATHFINDERINTERFACEPROCESSOR_H
std::string _outputColName
Name of the output collection.
Definition: PathFinderInterfaceProcessor.h:55
Short description of processor.
Definition: PathFinderInterfaceProcessor.h:32
std::string _inputColName
Name of the input collection.
Definition: PathFinderInterfaceProcessor.h:54