MarlinTrk  2.2.0
MarlinAidaTT.h
1 #ifndef MarlinAidaTT_h
2 #define MarlinAidaTT_h
3 
4 #include "MarlinTrk/IMarlinTrkSystem.h"
5 
6 #include "DDRec/SurfaceManager.h"
7 
8 //LCIO:
9 #include "lcio.h"
10 #include "UTIL/BitField64.h"
11 #include "UTIL/LCTOOLS.h"
12 #include <LCRTRelations.h>
13 
14 #include "streamlog/streamlog.h"
15 
16 #include "TObjArray.h"
17 #include "TVector3.h"
18 
19 #include <cmath>
20 #include <vector>
21 
22 #include "aidaTT/AidaTT.hh"
23 #include "aidaTT/IGeometry.hh"
24 
25 namespace EVENT{
26  class TrackerHit ;
27 }
28 
29 namespace aidaTT{
30  class IGeometry ;
31  class IBField ;
32  class IFittingAlgorithm ;
33  class IPropagation ;
34 }
35 
36 namespace MarlinTrk{
37 
38  typedef std::multimap< long, const aidaTT::ISurface* > SurfMap ;
39 
40 
44 
45  public:
46 
47  friend class MarlinAidaTTTrack;
48 
49  // define some configuration constants
50  static const bool FitBackward = kIterBackward ;
51  static const bool FitForward = kIterForward ;
52  static const bool OrderOutgoing = true ;
53  static const bool OrderIncoming = false ;
54 
56  MarlinAidaTT() ;
57 
59  ~MarlinAidaTT() ;
60 
62  void init() ;
63 
65  virtual std::string name() { return "AidaTT" ; }
66 
69 
70 
71  protected:
72 
73  // /** take multiple scattering into account during the fit */
74  // void includeMultipleScattering( bool on ) ;
75 
76  // /** take energy loss into account during the fit */
77  // void includeEnergyLoss( bool on ) ;
78 
79  // /** Store active measurement module IDs for a given TVKalDetector needed for navigation */
80  // void storeActiveMeasurementModuleIDs(TVKalDetector* detector);
81 
82  // /** Store active measurement module IDs needed for navigation */
83  // void getSensitiveMeasurementModules( int detElementID, std::vector< const DDVMeasLayer *>& measmodules) const;
84 
85  // /** Store active measurement module IDs needed for navigation */
86  // void getSensitiveMeasurementModulesForLayer( int layerID, std::vector<const DDVMeasLayer *>& measmodules) const;
87 
88  // // void init(bool MSOn, bool EnergyLossOn) ;
89  // bool is_initialised ;
90 
91  // //** find the measurment layer for a given hit
92  // const DDVMeasLayer* findMeasLayer( EVENT::TrackerHit * trkhit) const ;
93  // //** find the measurment layer for a given det element ID and point in space
94  // const DDVMeasLayer* findMeasLayer( int detElementID, const TVector3& point) const ;
95 
96  // // get the last layer crossed by the helix when extrapolating from the present position to the pca to point
97  // const DDVMeasLayer* getLastMeasLayer(THelicalTrack const& helix, TVector3 const& point) const ;
98 
99  // std::multimap< int,const DDVMeasLayer *> _active_measurement_modules;
100  // std::multimap< int,const DDVMeasLayer *> _active_measurement_modules_by_layer;
101 
102 
103  bool _useQMS ;
104  bool _usedEdx ;
105  bool _is_initialised ;
106 
108  SurfMap _surfMap ;
109 
110  const aidaTT::IGeometry* _geom ;
111  aidaTT::IBField* _bfield ;
112  aidaTT::IFittingAlgorithm* _fitter ;
113  aidaTT::IPropagation* _propagation ;
114 
115  } ;
116 
117 } // end of namespace MarlinTrk
118 
119 #endif
MarlinAidaTT()
Default c'tor.
Definition: MarlinAidaTT.cc:37
Interface to KaltTest Kalman fitter - instantiates and holds the detector geometry.
Definition: MarlinAidaTT.h:43
void init()
initialise track fitter system
Definition: MarlinAidaTT.cc:52
bool _useQMS
take multiple scattering into account during the fit
Definition: MarlinAidaTT.h:103
virtual std::string name()
the name of the implementation
Definition: MarlinAidaTT.h:65
Interface for generic tracks in MarlinTrk.
Definition: IMarlinTrack.h:28
~MarlinAidaTT()
d'tor
Definition: MarlinAidaTT.cc:44
SurfMap _surfMap
multi-map of surfaces
Definition: MarlinAidaTT.h:108
Definition: MarlinAidaTTTrack.h:30
Base class for tracking system implementations in MarlinTrk.
Definition: IMarlinTrkSystem.h:45
MarlinTrk::IMarlinTrack * createTrack()
instantiate its implementation of the IMarlinTrack
Definition: MarlinAidaTT.cc:105